Intereting Posts
Объединение таблиц из разных баз данных Есть ли в PHP встроенный отладочный журнал, например Ruby on Rails logger.info (), в файл development.log? Как интегрировать msg91 php api с Prestasms или Prestashop? MySQL "ERROR 1046 (3D000): не выбрана база данных" в запросе обновления PDO позиционные и именованные параметры как часть одного и того же подготовленного запроса? Уникальный хэш изображения, который не изменяется, если обновлена ​​информация EXIF Тема WordPress Child включает в себя файлы Интеграция оболочки Mailjet API v3 в виде библиотеки Codeigniter Ошибка Hybridauth аутентификации! Facebook вернул неверный идентификатор пользователя Лучший веб-сайт с несколькими языками Как игнорировать доступ к php-файлам с помощью mod_rewrite? php javascript java апплет смарт-карты подписание pdf на сервере php проверить расширение файла в форме загрузки В чем разница между генератором и массивом? Лучший способ проверить существующего пользователя в базе данных mySQL?

PayPal Adaptive Payments IMPLICIT Pay API

Я в основном пытаюсь использовать PAY-вызов Adaptive Payments для программной обработки и немедленно отправлять средства с моей учетной записи PayPal на другие учетные записи. Согласно документации , пока я укажу senderEmail (мой собственный адрес PayPal, используемый для настройки Adaptive Payments), это должно работать дословно.

Однако, когда я звоню, я всегда получаю результат «СОЗДАН» вместо «ЗАВЕРШЕН». Созданный означает, что система все еще хочет, чтобы я вручную заходил в PayPal и одобрял платежи. Мне действительно нужно, чтобы эти платежи происходили автоматически на месте. Любая помощь будет оценена по достоинству.

Вот моя строка запроса:

currencyCode=USD& returnUrl=http%3A%2F%2Fwww.website.com%2F& actionType=PAY& cancelUrl=http%3A%2F%2Fwww.website.com%2F& receiverList.receiver%280%29.email=receiver%40gmail.com& receiverList.receiver%280%29.amount=1.00& requestEnvelope.senderEmail=me%40gmail.com& clientDetails.deviceId=mydevice& clientDetails.ipAddress=127.0.0.1& clientDetails.applicationId=APP-ZZZZZZZZZZZZZ& requestEnvelope.errorLanguage=en_US& memo=memo& feesPayer=EACHRECEIVER& ipnNotificationUrl=http%3A%2F%2Fwww.website.com%2Fpay.php 

И вот ответ от PayPal:

 [responseEnvelope.timestamp] => 2012-03-01T19:09:57.290-08:00 [responseEnvelope.ack] => Success [responseEnvelope.correlationId] => 71efd416a2100 [responseEnvelope.build] => 2486531 [payKey] => AP-ZZZZZZZZZZZZZZZ [paymentExecStatus] => CREATED 

    Related of "PayPal Adaptive Payments IMPLICIT Pay API"

    Забудьте все, что я сказал ранее. Проблема заключается не в несогласованности между Sandbox и Live, а скорее неправильным параметром для 'senderEmail'.

    Просто измените:

     requestEnvelope.senderEmail=me@gmail.com& 

    Для того, чтобы:

     senderEmail=me@gmail.com& 

    Например, следующее возвращает 'COMPLETED' неявный платеж.

     <?php function AdaptiveCall($bodyparams, $method, $payKey) { try { $body_data = http_build_query($bodyparams, "", chr(38)); $url = trim("https://svcs.sandbox.paypal.com/AdaptivePayments/".$method.""); $params = array("http" => array( "method" => "POST", "content" => $body_data, "header" => "X-PAYPAL-SECURITY-USERID: xxxxxxxxx\r\n" . "X-PAYPAL-SECURITY-SIGNATURE: xxxxxxxxxxx\r\n" . "X-PAYPAL-SECURITY-PASSWORD: xxxxxxx\r\n" . "X-PAYPAL-APPLICATION-ID: APP-80W284485P519543T\r\n" . "X-PAYPAL-REQUEST-DATA-FORMAT: NV\r\n" . "X-PAYPAL-RESPONSE-DATA-FORMAT: NV\r\n" ) ); //create stream context $ctx = stream_context_create($params); //open the stream and send request $fp = @fopen($url, "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") { echo "<strong>".$method ."</strong><br>"; foreach ($kArray as $key =>$value){ echo $key . ": " .$value . "<br/>"; } // Return payKey global $payKey; if(!empty($kArray['payKey'])) { $payKey = $kArray['payKey']; return($payKey); } } 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()."||"; } } //Create Pay body $bodyparams = array ( "requestEnvelope.errorLanguage" => "en_US", 'actionType' => 'PAY', 'currencyCode' => 'USD', 'receiverList.receiver(0).email' => 'another_account@domain.tld', 'receiverList.receiver(0).amount' => '1.00', 'senderEmail' => 'xxxxxxxxx', 'memo' => 'Test memo', 'ipnNotificationUrl' => 'http://xxxxxxxx', 'cancelUrl' => 'http://xxxxxxxxx', 'returnUrl' => 'http://xxxxxxxxxx' ); // Call Pay API AdaptiveCall($bodyparams, "Pay"); ?> 

    Ответ на платеж:
    responseEnvelope.timestamp: 2012-03-03T09% 3A10% 3A22.900-08% 3A00
    responseEnvelope.ack: Успех
    responseEnvelope.correlationId: 4bc5cfc4a7514
    responseEnvelope.build: 2486531
    payKey: AP-1XJ7636763429720C
    paymentExecStatus: ЗАВЕРШЕН