我正在尝试使用curl模拟2个用户的虚拟并行付款。 我按照文档做了一切,但问题是我得到了
获取L_ERRORCODE0 = 10001&超时处理请求
我不知道为什么。
我的代码如下:
<?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);
?>
以下是请求的vardump:
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 :(得分:2)
我为我的疏忽而道歉,我的另一个答案。请查看您的代码,您将看到只有一个付款请求,0,但有两个卖家。你必须增加&#39; n&#39;在PAYMENTREQUEST_n_中使用并行付款发送多笔付款。
但是,我必须承认,每当我发送与您完全相同的数据时,我会得到一个10400&#34;订单总数缺失&#34;,所以我会更深入地查看您的代码。
我得到了以下成功的回复:
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
答案 1 :(得分:0)
您使用的是Payflow测试信用卡吗?
Paybox的测试信用卡一言不发在沙箱中被禁止。您将始终使用以下Payflow test credit cards (see page 49 & 50)获得10001回复:
答案 2 :(得分:0)
如果您仍然看到错误,请删除;
["PAYMENTREQUEST_0_PAYMENTREQUESTID"]=> string(18) "CART26485-PAYMENT0"