Получение L_ERRORCODE0 = 10001 & тайм-аут обработки запроса - PullRequest
3 голосов
/ 06 марта 2012

Я пытаюсь смоделировать фиктивный параллельный платеж для 2 пользователей, используя curl. Я сделал все согласно документации, но проблема в том, что я получаю

Получение 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 ]

2 голосов
/ 07 марта 2012

Я прошу прощения за мой упущение с моим другим ответом.Пожалуйста, посмотрите на свой код, и вы увидите, что у вас есть только один запрос на оплату, 0, но два продавца.Вы должны увеличить 'n' в PAYMENTREQUEST_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
0 голосов
/ 08 марта 2012

Если вы все еще видите ошибку, удалите;

["PAYMENTREQUEST_0_PAYMENTREQUESTID"]=> string(18) "CART26485-PAYMENT0"
0 голосов
/ 07 марта 2012

Вы используете тестовую кредитную карту Payflow?

Тестовые кредитные карты Payflow запрещены в песочнице, одним словом. Вы всегда получите ответ 10001 с указанными ниже тестовыми кредитными картами Payflow (см. Стр. 49 и 50) :

  • American Express
    • 378282246310005
    • 371449635398431
  • American Express Корпоративный
    • 378734493671000
  • Diners Club
    • 30569309025904
    • 38520000023237
  • Discover
    • 6011111111111117
    • 6011000990139424
  • JCB
    • 3530111333300000
    • 3566002020360505
  • MasterCard
    • 5555555555554444
Visa
  • 4111111111111111
  • 4012888888881881
  • 4222222222222 - ПРИМЕЧАНИЕ. Даже если это число отличается от числа другие тестовые номера, это правильный и функциональный номер
...