2016-05-28 3 views
2

Ich benutze Paypal-Transaktion von DoDirectPayment-Methode, ich habe meine API-Anmeldeinformationen über 100 Mal verifiziert; Es ist nicht falsch.PayPal METHOD = DoDirectPayment # 10759 Fehler

Array (
     [TIMESTAMP] => 0000-00-00T00:00:00Z 
     [CORRELATIONID] => 0000000000 
     [ACK] => Failure 
     [VERSION] => 56.0 
     [BUILD] => 000000 
     [L_ERRORCODE0] => 10759 
     [L_SHORTMESSAGE0] => Transaction cannot be processed. 
     [L_LONGMESSAGE0] => Please use a different payment card. 
     [L_SEVERITYCODE0] => Error 
     [AMT] => 0.50 
     [CURRENCYCODE] => USD 
) 

Oben ist Antwort, die ich von paypal bekomme.

ich alle Karten von hier versucht: https://www.paypalobjects.com/en_US/vhelp/paypalmanager_help/credit_card_numbers.htm

Mein Code:

$request = 'METHOD=DoDirectPayment'; 
$request .= '&VERSION=56.0'; 
$request .= '&USER='.$paypal_user; 
$request .= '&PWD='.$paypal_pass; 
$request .= '&SIGNATURE='.$paypal_sign; 
$request .= '&CUSTREF=' . $post_id; 
$request .= '&PAYMENTACTION=Authorization'; 
$request .= '&AMT='.$amount; 
$request .= '&EXPDATE=' . $expmonth . $expyear; 
$request .= '&CVV2=' . $ccv; 
$request .= '&ACCT=' . $card_number; 
$request .= '&CURRENCYCODE=USD'; 
$request .= '&IPADDRESS=' . urlencode($_SERVER['REMOTE_ADDR']); 
$request .= '&CREDITCARDTYPE=' . $cardtype; // VISA AND ALL 

$curl = curl_init($apiurl); 
curl_setopt($curl, CURLOPT_PORT, 443); 
curl_setopt($curl, CURLOPT_HEADER, 0); 
curl_setopt($curl, CURLOPT_SSL_VERIFYPEER, 0); 
curl_setopt($curl, CURLOPT_RETURNTRANSFER, 1); 
curl_setopt($curl, CURLOPT_FORBID_REUSE, 1); 
curl_setopt($curl, CURLOPT_FRESH_CONNECT, 1); 
curl_setopt($curl, CURLOPT_POST, 1); 
curl_setopt($curl, CURLOPT_POSTFIELDS, $request); 

// Request to paypal 
$response = curl_exec($curl); 

Bitte lassen Sie mich wissen, was ich hier fehlt.

+0

Sind Sie die Testkarte Senden von Daten an _sandbox_ (vs. Produktion) [Endpunkte] (https://developer.paypal.com/docs/classic/api/#wpp)? Der Fehler zeigt auf Paypal _declining_ die Karte, die erwartet werden würde, wenn _test_ cards zur Produktion senden würde .... – EdSF

+0

Ich verstehe Ihren Punkt nicht? Ich benutze Sandbox-Konto für Testzahlung und ich bekomme diesen Fehler beim Testen von Transaktionen. –

Antwort

4

Die unter dieser URL bereitgestellten Karten wurden in der Sandbox so oft verwendet, dass sie einfach nicht mehr funktionieren. Mit PayFlow tun sie das, aber nicht mit DoDirectPayment.

Stattdessen generate fresh numbers here, wenn Sie sie brauchen. Jede dort erzeugte Nummer wird mit einem beliebigen Sicherheitscode und einem gültigen Ablaufdatum funktionieren.

+0

Ja, obige Kartendetails funktionieren für mich. Aber warum sollte ich keine Standardkartendaten von PayPal verwenden? Gibt es irgendwelche Dinge mit Code falsch? –

+0

Diese Nummern werden nur überstrapaziert und das System mag sie nicht mehr. Wenn Ihr Code mit den frisch generierten Nummern arbeitet, ist Ihr Code in Ordnung. –

+0

Danke, @Andrew Angell Mein Code arbeitet mit frisch erzeugten Zahlen. –