我正在尝试使用 curl 模拟对 2 个用户的虚拟并行支付。 我已按照文档完成所有操作,但问题是我得到了
Getting L_ERRORCODE0=10001& Timeout processing request
我不知道为什么。
我的代码如下:
<?php
$data = array(
'USER'=>urlencode('xxx'),
'PWD'=>urlencode('xxxx'),
'SIGNATURE'=>urlencode('xxxx'),
'VERSION'=>urlencode('86.0'),
'METHOD'=>urlencode('SetExpressCheckout'),
'RETURNURL'=>urlencode('http://75.125.190.162:7132/sample/php_nvp_samples/myCheckout.php'),
'CANCELURL'=>urlencode('http://75.125.190.162:7132/sample/php_nvp_samples/myCheckout.php'),
'PAYMENTREQUEST_0_CURRENCYCODE'=>urlencode('USD'),
'PAYMENTREQUEST_0_AMT'=>urlencode('300'),
'PAYMENTREQUEST_0_ITEMAMT'=>urlencode('200'),
'PAYMENTREQUEST_0_TAXAMT'=>urlencode('100'),
'PAYMENTREQUEST_0_DESC'=>urlencode('Summer Vacation trip'),
'PAYMENTREQUEST_0_SELLERPAYPALACCOUNTID'=>urlencode('himans_1331094418_biz@smartdatainc.net'),
'PAYMENTREQUEST_0_PAYMENTACTION'=>urlencode('Order'),
'PAYMENTREQUEST_0_PAYMENTREQUESTID'=>urlencode('CART26488-PAYMENT0'),
'PAYMENTREQUEST_1_CURRENCYCODE'=>urlencode('USD'),
'PAYMENTREQUEST_1_AMT'=>urlencode('100'),
'PAYMENTREQUEST_1_ITEMAMT'=>urlencode('50'),
'PAYMENTREQUEST_1_TAXAMT'=>urlencode('50'),
'PAYMENTREQUEST_1_DESC'=>urlencode('Dancing class'),
'PAYMENTREQUEST_1_SELLERPAYPALACCOUNTID'=>urlencode('himans_1320303266_biz@smartdatainc.net'),
'PAYMENTREQUEST_1_PAYMENTACTION'=>urlencode('Order'),
'PAYMENTREQUEST_1_PAYMENTREQUESTID'=>urlencode('CART26485-PAYMENT0')
);
$curl = curl_init('https://api-3t.sandbox.paypal.com/nvp');
curl_setopt($curl,CURLOPT_RETURNTRANSFER ,1);
curl_setopt($curl,CURLOPT_HTTPGET ,true);
curl_setopt($curl,CURLOPT_POSTFIELDS ,$data);
$response = curl_exec($curl);
echo $response;
exit;
curl_close($curl);
?>
这是请求的转储:
array(15) {
["USER"]=> string(43) "XXX"
["PWD"]=> string(10) "XXX"
["SIGNATURE"]=> string(56) "XXX"
["VERSION"]=> string(4) "56.0"
["METHOD"]=> string(18) "SetExpressCheckout"
["RETURNURL"]=> string(78)
"http%3A%2F%2F75.125.190.162%3A7132%2Fsample%2Fphp_nvp_samples%2FmyCheckout.php"
["CANCELURL"]=> string(78)
"http%3A%2F%2F75.125.190.162%3A7132%2Fsample%2Fphp_nvp_samples%2FmyCheckout.php"
["PAYMENTREQUEST_0_CURRENCYCODE"]=> string(3) "USD"
["PAYMENTREQUEST_0_AMT"]=> string(3) "100"
["PAYMENTREQUEST_0_ITEMAMT"]=> string(2) "50"
["PAYMENTREQUEST_0_TAXAMT"]=> string(2) "20"
["PAYMENTREQUEST_0_DESC"]=> string(13) "Dancing class"
["PAYMENTREQUEST_0_SELLERPAYPALACCOUNTID"]=> string(21) "seller-136@paypal.com"
["PAYMENTREQUEST_0_PAYMENTACTION"]=> string(5) "Order"
["PAYMENTREQUEST_0_PAYMENTREQUESTID"]=> string(18) "CART26485-PAYMENT0"
}
有意删除了 API 凭据。
这是响应:
TIMESTAMP=2012%2d03%2d06T09%3a29%3a41Z
&CORRELATIONID=184b37b1fd85
&ACK=Failure
&L_ERRORCODE0=10001
&L_SHORTMESSAGE0=Internal%20Error
&L_LONGMESSAGE0=Timeout%20processing%20request
最佳答案
对于我在其他回答中的疏忽,我深表歉意。请看你的代码,你会看到你只有一个付款请求,0,但是有两个卖家。您必须增加 PAYMENTREQUEST_n_ 中的“n”才能使用并行付款发送多笔付款。
但是,我必须承认,每当我发送与您完全相同的数据时,我都会收到 10400“订单总数丢失”,因此我会进一步查看您的代码。
我得到了以下成功响应:
API 请求:
USER=***************************
PWD=***************************
SIGNATURE=***************************
METHOD=SetExpressCheckout
VERSION=86.0
RETURNURL=http://www.site.com/checkout.php
CANCELURL=http://www.site.com/cancel.php
PAYMENTREQUEST_0_PAYMENTACTION=Sale
PAYMENTREQUEST_0_AMT=524.20
PAYMENTREQUEST_0_ITEMAMT=458.00
PAYMENTREQUEST_0_SHIPPINGAMT=20.00
PAYMENTREQUEST_0_TAXAMT=46.20
PAYMENTREQUEST_0_CURRENCYCODE=USD
PAYMENTREQUEST_0_DESC=test EC payment
PAYMENTREQUEST_0_PAYMENTREQUESTID=111
L_PAYMENTREQUEST_0_NAME0=Books
L_PAYMENTREQUEST_0_AMT0=154.00
L_PAYMENTREQUEST_0_NUMBER0=ABC123
L_PAYMENTREQUEST_0_QTY0=2
L_PAYMENTREQUEST_0_NAME1=CDs
L_PAYMENTREQUEST_0_AMT1=50.00
L_PAYMENTREQUEST_0_NUMBER1=BY-Z4736
L_PAYMENTREQUEST_0_QTY1=3
PAYMENTREQUEST_0_SELLERPAYPALACCOUNTID=seller1@paypal.com
PAYMENTREQUEST_1_PAYMENTACTION=Sale
PAYMENTREQUEST_1_AMT=494.20
PAYMENTREQUEST_1_ITEMAMT=428.00
PAYMENTREQUEST_1_SHIPPINGAMT=20.00
PAYMENTREQUEST_1_TAXAMT=46.20
PAYMENTREQUEST_1_CURRENCYCODE=USD
PAYMENTREQUEST_1_DESC=test EC payment
PAYMENTREQUEST_1_PAYMENTREQUESTID=222
L_PAYMENTREQUEST_1_NAME0=DVDs
L_PAYMENTREQUEST_1_AMT0=154.00
L_PAYMENTREQUEST_1_NUMBER0=ABC123
L_PAYMENTREQUEST_1_QTY0=2
L_PAYMENTREQUEST_1_NAME1=Computers
L_PAYMENTREQUEST_1_AMT1=40.00
L_PAYMENTREQUEST_1_NUMBER1=BY-Z4736
L_PAYMENTREQUEST_1_QTY1=3
PAYMENTREQUEST_1_SELLERPAYPALACCOUNTID=seller2@paypal.com
API 响应:
TOKEN=EC-4XP542213W924160A
TIMESTAMP=2012-03-07T05:16:27Z
CORRELATIONID=357d629ee6eda
ACK=Success
VERSION=86.0
BUILD=2571254
关于php - Getting L_ERRORCODE0=10001&超时处理请求,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9579977/