2013-01-07 7 views
8

Vor allem nicht, dass ich ein Bussiness-Konto hat, so dass, wenn das Problem ist, sagen Sie mir nur, weil fast unmöglich ist, wo sie zu finden die requeriment für Paypal Express Checkout ist in ihre offizielle Website.10001 paypal interne Fehler: Timeout Verarbeitungsanforderung Express Checkout

für diese API Mein Code ist:

$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); 

Dann bis hier ist (glaube ich) alles in Ordnung. Aber einige Prüfungen dies zu tun ist, was ich mit $ Anfrage gesendet:

$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" 
} 

Und das ist, was ich von Paypal erhalten:

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

Weiß jemand, was hier geschieht? Ist das falsch? Ist das Hauptkonto das Problem hier?

Antwort

15

LÖSUNG:

ich dieses Problem mit diesem gelöst:

AVOID mit "urlencode()" die params zu kodieren, Ihre Daten als normal speichern.

Beispiel:

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

USE http_build_query ($ request) in dem Moment, bevor es über "Locke" wie folgt zu senden:

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

'http_build_query ($ Anfrage)' tat es für mich –

+2

heilige Scheiße, dieses ist ein Fehler in Paypal Umgang mit der "Multipart/Form-Daten" -Kodierung .. und nach 3 Jahren – hanshenrik

0

Sie haben nicht Ihre Rückkehr URLs als Subdomain mit einem Unterstrich in ihnen?

+0

gut, ist eine normale Website wie http://www.yourwebsite.com/PP_confirm.php und /PP_cancel.php. Ist das Symbol ‚_‘ ein Problem? –

+0

Ich fand, dass meine Entwicklungsdomains einige wirklich obskure Fehler von paypal erhielten, weil ich eine Subdomain mit einem Unterstrich zB my_subdomain.example.com verwendete – Chris

1

ich die gleichen Fehler aber mein Problem war das falsche Format für das Ablaufdatum der Karte. Der Fehler, den ich erhielt, wurde durch das Datum verursacht, an dem ich starb. Es war nicht im richtigen Format. Es mußte sein „“ 032018" nicht ‚3/2018‘.

Verwandte Themen