0
我得到一個很奇怪的行爲,我不知道如何獲得有關正在發生的更多信息...Curl以空字符串響應。如何獲得更多信息?
我使用Paypal Express Checkout
與NVP API。基本上,我發送一個請求和貝寶迴應key1=value1&key2=value2...
我發送第一個請求curl,一切都很好。
然後我用curl發送下一個請求,但是$result
是空的。但奇怪的是,如果我打印$paypal_url
並將其複製/粘貼到瀏覽器中,我會得到正確的回覆。
所以似乎curl沒有發送請求,但我不明白爲什麼。我怎樣才能窺探curl和Paypal之間的交流?或者我怎樣才能獲得更多關於發生了什麼的信息?
謝謝!
//First request (fine) : Get Paypal Checkout Details
$paypal_url = $url."?VERSION=204.0&USER=".$user."&PWD=".$pwd."&SIGNATURE=".$signature."&METHOD=GetExpressCheckoutDetails&TOKEN=".$token;
$curl = curl_init();
curl_setopt($curl, CURLOPT_URL, $paypal_url);
curl_setopt($curl, CURLOPT_RETURNTRANSFER, true);
curl_setopt($curl, CURLOPT_COOKIESESSION, true);
curl_setopt($curl, CURLOPT_FOLLOWLOCATION, true);
$result = curl_exec($curl);
curl_close($curl);
//parse the result
parse_str($result);
//Check data integrity (nothing relevant)
if($ACK!="Success" || $token!=$TOKEN || $amount!=$PAYMENTREQUEST_0_AMT || $currency!=$PAYMENTREQUEST_0_CURRENCYCODE) {
header("HTTP/1.0 402 Payment Required");
die("Couldn't realize the payment checkout : ".$ACK." ".$TOKEN." required: ".$PAYMENTREQUEST_0_AMT." ".$PAYMENTREQUEST_0_CURRENCYCODE."<br/>".$token." payed : ".$amount." ".$currency);
}
//Second request : Do Paypal checkout
$paypal_url = $url;
$paypal_url .= "?VERSION=204.0";
$paypal_url .= "&USER=".$user;
$paypal_url .= "&PWD=".$pwd;
$paypal_url .= "&SIGNATURE=".$signature;
$paypal_url .= "&METHOD=DoExpressCheckoutPayment";
$paypal_url .= "&TOKEN=".$token;
$paypal_url .= "&PAYERID=".$payerid;
$paypal_url .= "&PAYMENTREQUEST_0_PAYMENTACTION=Sale";
$paypal_url .= "&PAYMENTREQUEST_0_AMT=".$amount;
$paypal_url .= "&PAYMENTREQUEST_0_CURRENCYCODE=".$currency;
$paypal_url .= "&PAYMENTREQUEST_0_ITEMAMT =".$amount;
$curl = curl_init();
curl_setopt($curl, CURLOPT_URL, $paypal_url);
curl_setopt($curl, CURLOPT_RETURNTRANSFER, true);
curl_setopt($curl, CURLOPT_COOKIESESSION, true);
curl_setopt($curl, CURLOPT_FOLLOWLOCATION, true);
$result = curl_exec($curl);
curl_close($curl);
//Display the URL and the result... But the result is missing !
die($paypal_url."\n".$result);
//If I now copy/paste the content of $paypal_url into a browser, I get the expected result.
我只是幸運地解決了我的問題:有一個空格等於PAYMENTREQUEST_0_ITEMAMT =之前。我認爲它使捲曲崩潰,但不是瀏覽器。無論如何,我的問題是「如何獲得更多細節」,你完全可以回答這個問題。謝謝 ! – Sharcoux
對,CURL不喜歡url中的空格,接下來的空格被解析爲另一個命令行參數) –