Я хочу выполнить неявный платеж с моей учетной записи (подписанный paypal api) в другой (или несколько как параллельный платеж).
Я решил использовать Adaptive Payments и внедрил функцию для вызова действия Pay, как показано ниже.
$bodyparams = array ( "requestEnvelope.errorLanguage" => "en_US", 'actionType' => 'PAY', 'currencyCode' => 'USD', 'receiverList.receiver(0).email' => 'receiver@domain.com', 'receiverList.receiver(0).amount' => '1.00', 'senderEmail' => 'myaccount@domain.com', 'memo' => 'Test memo', 'ipnNotificationUrl' => 'http://google.com', 'cancelUrl' => 'http://google.com', 'returnUrl' => 'http://google.com' ); $url = "https://svcs.paypal.com/AdaptivePayments/Pay"; $ch = curl_init(); curl_setopt($ch, CURLOPT_URL, $url); curl_setopt($ch, CURLOPT_HTTPHEADER, array( 'X-PAYPAL-SECURITY-USERID: XXX', 'X-PAYPAL-SECURITY-PASSWORD: XXX', 'X-PAYPAL-SECURITY-SIGNATURE: XXX', 'X-PAYPAL-REQUEST-DATA-FORMAT: NV', 'X-PAYPAL-RESPONSE-DATA-FORMAT: JSON', 'X-PAYPAL-APPLICATION-ID: APP-XXX', )); curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1); curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, false); curl_setopt($ch, CURLOPT_POSTFIELDS, http_build_query($bodyparams)); $response = json_decode(curl_exec($ch)); $pk=""; if(isset($response->responseEnvelope) && $response->responseEnvelope->ack == "Success"){ $pk = $response->payKey; }else{ die(var_dump($response)); } $ch = curl_init(); header("Location: https://www.paypal.com/cgi-bin/webscr?cmd=_ap-payment&paykey=".$pk); die();
Paypal возвращает мне « You do not have permission to execute this payment implicitly
»
{ "responseEnvelope": { "timestamp": "2016-05-19T10:05:05.407-07:00", "ack": "Failure", "correlationId": "22e0930fcae7d", "build": "20420247" }, "error": [ { "errorId": "550001", "domain": "PLATFORM", "subdomain": "Application", "severity": "Error", "category": "Application", "message": "You do not have permission to execute this payment implicitly" } ] }
Но когда я переключаю 2 счета (т.е. только для теста, другая учетная запись отправляет мне деньги), я перенаправляюсь на процесс утверждения.
Теперь приложение, которое я использую, имеет флаг, как показано на рисунке ниже
Что я должен проверить? Кажется, что paypal не позволяет мне отправлять неявные платежи, но не знаю, по какой причине (поддержка PayPal не могла сказать ничего другого, а затем дать мне некоторые ссылки).
ВАЖНОЕ ИЗМЕНЕНИЕ
Если я использую учетные данные для песочницы, оплата будет « COMPLETED
»