php - 处理从 cURL 输出的数据

标签 php paypal

$res verbal 中的以下数据是 cURL 的输出,我正尝试使用它来使以下脚本正常工作。但它根本不处理数据。我检查过它的第一行是 $lines[0] 中的 SUCCESS。它应该输出其余的数据,但它没有。任何人都对如何解决这个问题有任何想法。或者是因为我没有通过 cURL 处理数据来测试它。在我上线之前,我要如何使脚本完美运行。 cURL pules 来自 PayPal 的数据作为 pdt,而 PayPals 沙箱是垃圾

$res = "SUCCESS 
transaction_subject=Subscribe+to+Notary+Accounting 
payment_date=16%3A29%3A09+May+24%2C+2014+PDT
txn_type=subscr_payment
subscr_id=S-01T86772CP0815034
last_name=Kurth
option_selection1=1+month
residence_country=US
item_name=Subscribe+to+Notary+Accounting
payment_gross=0.05
mc_currency=USD
business=rdkurth%40live.com
payment_type=instant
protection_eligibility=Ineligible
payer_status=unverified
payer_email=rich%40notaryaccounting.com
txn_id=94V17846W2603332N
receiver_email=rdkurth%40live.com
first_name=Richard
option_name1=Payment+options
payer_id=AAAE8FMAK2TH2
receiver_id=5GZ34FDY49A64
recur_times=4146841749
payment_status=Completed
payment_fee=0.05
mc_fee=0.05
btn_id=81809415
mc_gross=0.05
charset=windows-1252";

if(!$res){
    //HTTP ERROR
}else{

     // parse the data
    $lines = explode("\n", $res);
    $keyarray = array();
    if (strcmp ($lines[0], "SUCCESS") == 0) {
        for ($i=1; $i<count($lines);$i++){
        list($key,$val) = explode("=", $lines[$i]);
        $keyarray[urldecode($key)] = urldecode($val);

    }

    $firstname = $keyarray['first_name'];
    $lastname = $keyarray['last_name'];
    $itemname = $keyarray['item_name'];
    $amount = $keyarray['payment_gross'];

    echo ("<p><h3>Thank you for your purchase!</h3></p>");

    echo ("<b>Payment Details</b><br>\n");
    echo ("<li>Name: $firstname $lastname</li>\n");
    echo ("<li>Item: $itemname</li>\n");
    echo ("<li>Amount: $amount</li>\n");
    echo ("");
    }
    else if (strcmp ($lines[0], "FAIL") == 0) {
        echo(' log for manual investigation');
    }
}

最佳答案

这是一个已知的 paypal 问题,您需要像这样从第一个响应行中删除一些空格:

if (strcmp (trim($lines[0]), "SUCCESS") == 0) {

关于php - 处理从 cURL 输出的数据,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23860351/

相关文章:

php - Laradock 单元测试数据库错误 PDOException

php - Laravel 5.4 : Eloquent. 查找最近的日期

PHP 公共(public)函数的行为类似于静态

php - MySQL查询: get the last row of related table on multi table selection

Paypal 错误 : Dispatch Error

paypal - Paypal 或 Stripe 是否支持多人付款?

paypal - 我无法通过 WooCommerce 使用 Paypal 付款

javascript - 如何在angular js中将数据从一个页面传递到另一个页面

paypal - 测试 Paypal Express 集成/沙盒凭证/我不是程序员

PayPal IPN - 自动返回