Paypal NVP с IPN для подтверждения - что связывает их вместе - PullRequest
5 голосов
/ 19 декабря 2011

Я использую PayPal с NVP API (используя PHP) для экспресс-оплаты.Я создаю запись счета в базе данных, прежде чем перенаправить пользователя в Paypal.Если пользователь не возвращается на мой сайт после обработки, я использую IPN для подтверждения покупки, а затем обновляю запись в счете, подтверждающую платеж.Я все еще нахожусь в режиме песочницы и пытаюсь выяснить, как связать транзакцию, начатую с NVP, с подтверждением, которое я получаю с IPN.

Мне нужно проверить, будет ли "PAYMENTREQUEST_n_INVNUM", отправленный в NVP, возвращаться как "счет-фактура" в сообщении IPN.

Похоже, я не могу проверить это до тех пор, пока я живу, так какПохоже, что IPN в изолированной программной среде не активен с транзакциями в изолированной среде, инициированными NVP. Это правильно?

Спасибо за вашу помощь.

Ответы [ 2 ]

6 голосов
/ 20 декабря 2011

Вы можете проверить это в Песочнице.Но если вы используете «PayPal NVP», я предполагаю, что вы используете PayPal Express Checkout и вызываете API SetExpressCheckout и DoExpressCheckoutPayment.
Если это так, вам действительно не нужен IPN, потому чтоТранзакция будет завершена только после того, как вы позвоните DoExpressCheckoutPayment.

Другими словами, покупатели будут всегда перенаправляться на RETURNURL, указанный вами в SetExpressCheckout, и транзакция будет завершена (или нет), когда вы позвоните DoExpressCheckoutPayment на этой странице возврата,

Чтобы получить номер счета-фактуры, вы можете позвонить по номеру GetExpressCheckoutDetails и предоставить ТОКЕН, который вы получили ранее (он также добавляется к ПОЛУЧЕНИЮ ВОЗВРАТА).

Наконец, проверьте PAYMENTSTATUS=Completed в ответе API DoExpressCheckoutPayment, чтобы увидеть, завершена ли транзакция.

0 голосов
/ 21 декабря 2011

Спасибо, Роберт, за ясность процесса - особенно useraction = commit.

Наконец-то я понял, что могу включить IPN в Песочнице для своего тестового продавца и протестировать NVP вместе с IPN.Я смог убедиться, что PAYMENTREQUEST_0_INVNUM соответствует параметру «INVOICE» в IPN POST.

Я буду использовать настраиваемое поле для передачи клиентской электронной почты из моей системы в случае, если они используют другую электронную почту для входа в PayPal,поэтому позволяет мне иметь пару номеров электронной почты / счета-фактуры для подтверждения.

...