2012-04-21 5 views
6

Entschuldigung im Voraus, wenn dies eine dumme Frage ist. Ich habe versucht zu graben, konnte aber keine Antwort finden.PayPal Adaptive Payments - Fehler 520009 - Konto ist eingeschränkt

Ich versuche eine verkettete Zahlung (in der Sandbox-Umgebung) einzurichten, bekomme aber Fehler 520009 (Account ist eingeschränkt). Versuchte mehrere E-Mail-Adressen, und sie alle geben mir diesen Fehler. Die E-Mail-Adressen sind nicht bei Paypal registriert, aber soweit ich weiß, sollte dies kein Problem sein, da das Modul für adaptive Zahlungen nicht verlangt, dass die Empfänger Paypal-Konten im Voraus haben (obwohl sie Konten benötigen, um das Geld tatsächlich zu erhalten , Na sicher).

Was mache ich falsch? Ich habe den Gebührenzahler auf EACHRECEIVER gesetzt (wie auf einigen Threads vorgeschlagen), aber der Fehler bleibt bestehen.

Dies ist, was bekomme ich zurück: ERROR Code: 520009 Fehlermeldung: Konto [email protected] ist

eingeschränkt

Hier ist mein Code:

// Config 
$endpoint = trim("https://svcs.sandbox.paypal.com/AdaptivePayments/Pay"); 
$API_UserName = "MY_USERNAME_FROM_SANDBOX"; 
$API_Password = "MY_PASSWORD_FROM_SANDBOX"; 
$API_Signature = "MY_SIGNATURE_FROM_SANDBOX"; 
$API_AppID = "APP-80W284485P519543T";  
$API_RequestFormat = "NV"; 
$API_ResponseFormat = "NV"; 

    // Create request payload with minimum required parameters 
$bodyparams = array ( 
     "requestEnvelope.errorLanguage" => "en_US", 
     "actionType" => "PAY_PRIMARY", 
     "cancelUrl" => 'http://www.beta.com/cancel', 
     "returnUrl" => 'http://www.beta.com/return', 
     "currencyCode" => 'USD', 
     "feesPayer" => "EACHRECEIVER", 
     "actionType" => "PAY_PRIMARY", 
     "receiverList.receiver[0].email" => '[email protected]', 
     "receiverList.receiver[0].amount" => '10', 
     "receiverList.receiver[0].primary" => 'true', 
     "receiverList.receiver[1].email" => '[email protected]', 
     "receiverList.receiver[1].amount" => '5', 
     "receiverList.receiver[1].primary" => 'false', 
    ); 

    // Convert payload array into url encoded query string 
    $body_data = http_build_query($bodyparams, "", chr(38)); 

try 
{ 
    //create request and add headers 
$params = array("http" => array(
    "method" => "POST", 
    "content" => $body_data, 
    "header" => 
     "X-PAYPAL-SECURITY-USERID: " . $API_UserName . "\r\n" . 
     "X-PAYPAL-SECURITY-SIGNATURE: " . $API_Signature . "\r\n" . 
     "X-PAYPAL-SECURITY-PASSWORD: " . $API_Password . "\r\n" . 
     "X-PAYPAL-APPLICATION-ID: " . $API_AppID . "\r\n" . 
     "X-PAYPAL-REQUEST-DATA-FORMAT: " . $API_RequestFormat . "\r\n" . 
     "X-PAYPAL-RESPONSE-DATA-FORMAT: " . $API_ResponseFormat . "\r\n" 
     )); 

    //create stream context 
    $ctx = stream_context_create($params); 

    //open the stream and send request 
$fp = @fopen($endpoint, "r", false, $ctx); 

    //get response 
    $response = stream_get_contents($fp); 

    //check to see if stream is open 
if ($response === false) { 
    throw new Exception("php error message = " . "$php_errormsg"); 
    } 

    //close the stream 
    fclose($fp); 

    //parse the ap key from the response 
$keyArray = explode("&", $response); 

    foreach ($keyArray as $rVal){ 
     list($qKey, $qVal) = explode ("=", $rVal); 
      $kArray[$qKey] = $qVal; 
    } 

    //print the response to screen for testing purposes 
If ($kArray["responseEnvelope.ack"] == "Success") { 

     foreach ($kArray as $key =>$value){ 
     echo $key . ": " .$value . "<br/>"; 
} 
} 
else { 
    echo 'ERROR Code: ' . $kArray["error(0).errorId"] . " <br/>"; 
    echo 'ERROR Message: ' . urldecode($kArray["error(0).message"]) . " <br/>"; 
    } 

    } 
catch(Exception $e) { 
    echo "Message: ||" .$e->getMessage()."||"; 
    } 

Dank!

+0

möglich Duplikat von [Error # 520009 - Konto beschränkt ist] (http://stackoverflow.com/questions/12247050/error-520009-account-is-restricted) – billinkc

Antwort

0

„aber soweit ich weiß, sollte dies kein Problem, da das Modul adaptive Zahlungen nicht den Empfänger benötigt Paypal-Konten im Voraus zu haben“

, die falsch ist. Für adaptive gekoppelte Zahlungen müssen alle Empfänger über ein aktives und verifiziertes Personal-, Premier- oder Geschäfts-PayPal-Konto verfügen.

+1

Laut ‚Adaptive ReferencePP_AdaptivePayments Payments Developer Guide SOAP API Entwickler .pdf '; "Der Anwendungseigentümer muss über ein PayPal Business-Konto verfügen. Absender und Empfänger können einen beliebigen PayPal-Kontotyp haben" – plenderj

+0

Der Anwendungsbesitzer und der/die Empfänger können unterschiedliche Konten haben und daher unterschiedliche Anforderungen haben. ;-) – Robert

+0

Verstehe diesen Kommentar nicht. Für verkettete Zahlungen benötigen Empfänger KEINE Premier- oder Business-PayPal-Konten. Sie brauchen nur ein aktives/verifiziertes PayPal-Konto. –

4

EDIT: Ich könnte das Problem lösen, indem Sie den Parameter "GebührenPayer" entfernen, der im Falle einer einseitigen Zahlung der Standardwert (d. H. EACHRECEIVER) sein muss.

Ich bin mit diesem Problem auch fest.

Ich frage mich, wie ich könnte eine „einseitige Zahlung“, zu erreichen, die von PayPal wird wie folgt beschrieben:

Sie können die Pay-API-Operation verwenden, um einseitige Zahlungen unter begrenzten Umständen zu machen. Eine einseitige Zahlung ist eine Zahlung, die an einen Empfänger ohne PayPal-Konto vorgenommen wird. Einseitige Zahlungen können mit einfachen oder parallelen Zahlungen verwendet werden, die implizit oder vorab genehmigt sind. Einseitige Zahlungen sind nicht für die Verwendung mit verketteten Zahlungen oder Zahlungen vorgesehen, die eine manuelle Genehmigung über den Web-Stream erfordern. Wenn Sie eine einseitige Zahlung senden, senden Sie eine Zahlung Anfrage, die eine E-Mail-Adresse für einen Empfänger enthält, und diese E-Mail-Adresse ist nicht mit einem registrierten PayPal-Konto verknüpft. Der Empfänger erhält eine E-Mail mit der Benachrichtigung des Empfängers, ein Konto zu erstellen und die Zahlung zu beanspruchen. PayPal hält eine Zahlung an einen Empfänger, dessen E-Mail-Adresse noch nicht registriert oder bestätigt ist, bis der Empfänger ein PayPal-Konto erstellt und die E-Mail-Adresse bestätigt. Wenn eine Rückerstattung einen Empfänger angibt, dessen E-Mail-Adresse noch nicht registriert oder bestätigt ist, wird die Zahlung an den Empfänger storniert.

jemand eine Idee, welche Parameter-Einstellung mit NVP aufweist, ist erforderlich, um dies zu erreichen, ohne ERROR Code: 520009 ERROR Message: Account [email protected] is restricted

bekommen

Jeder Hinweis ist sehr zu schätzen!

+0

Vielen Dank ... Ich kann Paypal-Dokumentation kaum verstehen. – geekazoid

Verwandte Themen