2013-01-07 19 views
8

सबसे पहले, मेरे पास एक सौहार्द खाता नहीं है, इसलिए यदि यह समस्या है, तो बस मुझे बताएं, क्योंकि यह पता लगाना लगभग असंभव है कि पेपैल एक्सप्रेस चेकआउट के लिए आवश्यकता कहां है उनकी आधिकारिक वेबसाइट।10001 पेपैल आंतरिक त्रुटि: टाइमआउट प्रसंस्करण अनुरोध एक्सप्रेस चेकआउट

इस एपीआई के लिए मेरे कोड है:

$requestParams = array(
    'METHOD' => $method, 
    'VERSION' => $this -> _version, 
    'USER' => $PayPalApiUsername, 
    'PWD' => $PayPalApiPassword, 
    'SIGNATURE' => $PayPalApiSignature 
); 

$request = array_merge($requestParams, $params); 
//$params is bringed from other php. 

$ch = curl_init(); 
    curl_setopt($ch,CURLOPT_URL ,'https://api-3t.paypal.com/nvp'); 
    curl_setopt($ch,CURLOPT_VERBOSE ,1); 
    curl_setopt($ch,CURLOPT_SSL_VERIFYPEER ,false); 
    curl_setopt($ch,CURLOPT_SSL_VERIFYHOST ,false); 
    curl_setopt($ch,CURLOPT_RETURNTRANSFER ,1); 
    curl_setopt($ch,CURLOPT_HTTPGET ,true); 
    curl_setopt($ch,CURLOPT_POSTFIELDS ,$request); 

$response = curl_exec($ch); 

फिर, यहाँ तक (मुझे लगता है कि) सब ठीक है। लेकिन कुछ चेकों कर इस मैं $ अनुरोध के साथ क्या भेजा है:

$request: array(16) { 
["METHOD"]=> 
string(18) "SetExpressCheckout" 
["VERSION"]=> 
string(4) "97.0" 
["USER"]=> 
string(27) "xxx_api1.example.com" 
["PWD"]=> 
string(16) "yyyyyyyyyyyyyyyy" 
["SIGNATURE"]=> 
string(56) "zzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzz" 
["RETURNURL"]=> 
string(50) "http%3A%2F%2Fwww.website.com%2Fcontinue.php" 
["CANCELURL"]=> 
string(53) "http%3A%2F%2Fwww.website.com%2Fpaypal%2Fcancel_url.php" 
["PAYMENTREQUEST_0_AMT"]=> 
string(5) "10.95" 
["PAYMENTREQUEST_0_CURRENCYCODE"]=> 
string(3) "EUR" 
["PAYMENTREQUEST_0_ITEMAMT"]=> 
string(5) "10.95" 
["PAYMENTREQUEST_0_SELLERPAYPALACCOUNTID"]=> 
string(24) "xxx%40example.com" 
["PAYMENTREQUEST_0_PAYMENTACTION"]=> 
string(4) "Sale" 
["L_PAYMENTREQUEST_0_NAME0"]=> 
string(17) "ProductA" 
["L_PAYMENTREQUEST_0_AMT0"]=> 
string(5) "10.95" 
["L_PAYMENTREQUEST_0_QTY0"]=> 
string(1) "1" 
["L_PAYMENTREQUEST_0_NUMBER0"]=> 
string(1) "1" 
} 

और यह मैं क्या Paypal से प्राप्त है:

$response: 
TIMESTAMP=2013%2d01%2d07T23%3a20%3a43Z 
CORRELATIONID=7a8130fb32e44 
ACK=Failure 
L_ERRORCODE0=10001 
L_SHORTMESSAGE0=Internal%20Error 
L_LONGMESSAGE0=Timeout%20processing%20request 

किसी को भी पता है कि यहाँ क्या हो रहा है? क्या यह गलत है? क्या प्रमुख खाता यहां समस्या है?

उत्तर

15

समाधान:

मैं इस के साथ इस समस्या का समाधान:

बचने पैरामीटर एन्कोड करने के लिए, सामान्य रूप में अपने डेटा को बचाने "() urlencode" का उपयोग।

उदाहरण:

array(
    'RETURNURL' => 'http://www.yourwebsite.com/confirm.php', //without urlencode() 
    'CANCELURL' => 'http://www.yourwebsite.com/cancel.php' //without urlencode() 
); 

उपयोग http_build_query ($ अनुरोध) पल में "कर्ल" के माध्यम से इसे भेजने से पहले इस तरह:

curl_setopt($ch,CURLOPT_POSTFIELDS , http_build_query($request)); 
+2

'http_build_query ($ अनुरोध) के साथ एक उप डोमेन उपयोग कर रहा था' –

+2

पवित्र बकवास मेरे लिए यह किया था, यह वह जगह है "मल्टीपार्ट/फॉर्म-डेटा" एन्कोडिंग के पेपैल के हैंडलिंग में एक बग .. और 3 साल बाद – hanshenrik

0

क्या आप किसी भी मौके से अंडरस्कोर के साथ सबडोमेन के रूप में अपनी वापसी यूआरएल नहीं करते हैं?

+0

अच्छी तरह से, http://www.yourwebsite.com/PP_confirm.php और /PP_cancel.php जैसी सामान्य वेबसाइट है। क्या यह प्रतीक" _ "है एक समस्या? –

+0

मैंने पाया मेरे विकास डोमेन paypal से कुछ वास्तव में अस्पष्ट त्रुटियों मिल रहे थे, क्योंकि मैं एक अंडरस्कोर जैसे my_subdomain.example.com – Chris

1

मैं एक ही त्रुटि हालांकि मेरी समस्या हो रही थी कार्ड समाप्ति तिथि का गलत प्रारूप था। जो त्रुटि मैं प्राप्त कर रहा था वह उस तिथि के कारण हुई थी जिसे मैं पार कर रहा था। यह सही प्रारूप में नहीं था। इसे 032018 "नहीं" 3/2018 "

संबंधित मुद्दे