获得L_ERRORCODE0 = 10001&超时处理请求

时间:2012-03-06 08:10:06

标签: php paypal paypal-sandbox paypal-adaptive-payments

我正在尝试使用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

3 个答案:

答案 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回复:

  • 美国运通卡
    • 378282246310005
    • 371449635398431
  • 美国运通公司
    • 378734493671000
  • 大来俱乐部
    • 30569309025904
    • 38520000023237
  • 发现
    • 6011111111111117
    • 6011000990139424
  • JCB
    • 3530111333300000
    • 3566002020360505
  • 万事达卡
    • 5555555555554444
    • 5105105105105100
  • 签证
    • 4111111111111111
    • 4012888888881881
    • 4222222222222 - 注意:即使这个数字的字符数不同于 其他测试编号,是正确的功能编号

答案 2 :(得分:0)

如果您仍然看到错误,请删除;

["PAYMENTREQUEST_0_PAYMENTREQUESTID"]=> string(18) "CART26485-PAYMENT0"