отсутствует платежное действие PayPal - PullRequest
2 голосов
/ 13 марта 2012

Я сделал то, что обязательно говорит последняя доступная документация при интеграции PayPal в нашу систему магазинов. Я только что узнал, что в NVP, похоже, есть параметр PAYMENTREQUEST_n_PAYMENTACTION.

Я получаю данные платежа, используя токен и идентификатор PayerID, возвращенные SetExpressCheckout. Когда я выводил свой возвращенный cURL, я только что узнал это:

[CHECKOUTSTATUS] => PaymentActionNotInitiated

В чем проблема?

Я использую этот запрос в cURL:

// Prepare PayPal API URL
$url = "https://api-3t.sandbox.paypal.com/nvp";

// $PAYMENTACTION = "Sale"

// Prepare PayPal NVP (Name-Value Pair) payment request
$nvp = "METHOD=" . $SETMETHOD;
$nvp .= "&VERSION=" . $VERSION;
$nvp .= "&USER=" . $USERNAME;
$nvp .= "&PWD=" . $PASSWORD;
$nvp .= "&SIGNATURE=" . $SIGNATURE;
$nvp .= "&PAYMENTREQUEST_0_PAYMENTACTION=" . $PAYMENTACTION;
$nvp .= "&PAYMENTREQUEST_0_CURRENCYCODE=" . $CURRENCY;
$nvp .= "&SOLUTIONTYPE=" . $SOLUTIONTYPE;
$nvp .= "&RETURNURL=" . $RETURNURL;
$nvp .= "&CANCELURL=" . $CANCELURL;
$nvp .= "&L_PAYMENTREQUEST_0_NAME0=" . $PAYMENTNAME0;
$nvp .= "&L_PAYMENTREQUEST_0_DESC0=" . $PAYMENTDESC0;
$nvp .= "&L_PAYMENTREQUEST_0_AMT0=" . $PAYMENTAMT0;
$nvp .= "&L_PAYMENTREQUEST_0_QTY0=" . $PAYMENTQTY0;
$nvp .= "&PAYMENTREQUEST_0_ITEMAMT=" . $PAYMENTITEMAMT;
$nvp .= "&PAYMENTREQUEST_0_AMT=" . $PAYMENTAMT;
$nvp .= "&PAYMENTREQUEST_0_CURRENCYCODE=" . $CURRENCY;
$nvp .= "&LOCALECODE=" . $LOCALECODE;
$nvp .= "&HDRIMG=" . $HEADERLOGO;
$nvp .= "&PAYFLOWCOLOR=" . 262626;

1 Ответ

9 голосов
/ 13 марта 2012

PaymentActionNotInitiated не относится к PAYMENTREQUEST_0_PAYMENTACTION.
Это просто означает, что вы еще не направили покупателя на страницу PayPal для подтверждения его / ее платежа.

Напомним, что Express Expressout работает следующим образом:

  1. SetExpressCheckout устанавливает платеж и возвращает токен
  2. Вы перенаправляете покупателя на https://www.paypal.com/cgi-bin/webscr?cmd=_express-checkout&token=TOKEN-HERE, где TOKEN-HERE - токен, который вы получили ранее
  3. После того, как покупатель согласился с оплатой, он возвращается на ваш сайт
  4. Вы можете вызвать GetExpressCheckoutDetails и предоставить токен в качестве параметрачтобы получить PAYERID покупателя.
  5. Вызовите DoExpressCheckoutPayment с помощью токена и PAYERID, предоставленных для завершения платежа
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...