PayPal Adaptive Payments - Ошибка 520009 - Учетная запись ограничена

Заранее извиняюсь, если это глупый вопрос. Я попытался покопаться, но не смог найти ответ.

Я пытаюсь настроить цепочечный платеж (в среде песочницы), но получаю ошибку 520009 (учетная запись ограничена). Пробовал несколько адресов электронной почты, и все они дают мне эту ошибку. Адреса электронной почты не зарегистрированы в Paypal, но, насколько мне известно, это не должно вызывать проблем, поскольку модуль адаптивных платежей не требует, чтобы получатели заранее имели учетные записи Paypal (хотя им понадобятся учетные записи для фактического получения денег)., конечно).

Что я делаю неправильно? Я установил плательщика комиссии в EACHRECEIVER (как это предлагается в некоторых темах), но ошибка остается.

Это то, что я получаю обратно: Код ОШИБКИ: 520009 Сообщение об ошибке: Учетная запись somebody1@gmail.com ограничена

Вот мой код:

// 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" => 'someone1@gmail.com',
        "receiverList.receiver[0].amount" => '10',
        "receiverList.receiver[0].primary" => 'true', 
        "receiverList.receiver[1].email" => 'someone2@gmail.com',
        "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()."||";
  }

Спасибо!

2 ответа

РЕДАКТИРОВАТЬ: Я мог бы решить эту проблему, удалив параметр "feePayer", который должен быть значением по умолчанию (т.е. EACHRECEIVER) в случае одностороннего платежа.

Я тоже застрял в этой проблеме.

Интересно, как я мог добиться "одностороннего платежа", который описывается PayPal следующим образом:

Вы можете использовать операцию Pay API для осуществления односторонних платежей при ограниченных обстоятельствах. Односторонний платеж - это платеж, который производится получателю, у которого нет учетной записи PayPal. Односторонние платежи могут использоваться с простыми или параллельными платежами, которые являются неявными или предварительно утвержденными. Односторонние платежи не предназначены для использования с связанными платежами или платежами, которые требуют ручного одобрения через веб-поток. Когда вы отправляете односторонний платеж, вы отправляете запрос на платеж, который включает адрес электронной почты для получателя, и этот адрес электронной почты не связан с зарегистрированной учетной записью PayPal. Получатель получает электронное письмо, уведомляющее получателя о создании учетной записи и требовании оплаты. PayPal удерживает платеж получателю, чей адрес электронной почты еще не зарегистрирован или не подтвержден, пока получатель не создаст учетную запись PayPal и не подтвердит адрес электронной почты. Если при возврате денег указывается получатель, чей адрес электронной почты еще не зарегистрирован или не подтвержден, платеж получателю отменяется.

Любой, имеющий представление о том, какая настройка параметров с помощью NVP необходима для достижения этой цели без получения ERROR Code: 520009 ERROR Message: Account someone1@gmail.com is restricted

Любая подсказка высоко ценится!

"но, насколько я знаю, это не должно быть проблемой, поскольку модуль адаптивных платежей не требует, чтобы получатели заранее имели счета Paypal"

Это неверно Для адаптивных цепочек платежей все получатели должны иметь активную и проверенную личную, Premier или Business PayPal учетную запись.

Другие вопросы по тегам