Экспресс-касса Paypal с опцией useraction = совершить транзакцию без создания транзакции

Я встроил экспресс-кассу PayPal на свой веб-сайт. Вроде все нормально работает. Когда покупатель перенаправляется на PayPal для оплаты, появляется кнопка Оплатить сейчас, поскольку я использую: useraction=commit, то есть:

https://www.paypal.com/cgi-bin/webscr?cmd=_express-checkout&token=MYTOKEN&useraction=commit

Клиент входит в систему через Paypal и нажимает кнопку Оплатить сейчас. Paypal не выдает ошибок, все кажется успешным, и клиент перенаправляется на RETURNURL, но транзакция не создается ни в учетной записи покупателя, ни в учетной записи продавца.


person George Georgallides    schedule 27.08.2012    source источник


Ответы (2)


Боюсь, я пропустил некоторые моменты из документации Paypal API .useraction=commit НЕ завершит транзакцию. После возврата из Paypal нам все еще нужно выполнить DoExpressCheckoutPayment, чтобы завершить транзакцию.

person George Georgallides    schedule 28.08.2012
comment
Это так глупо, почему PayPal вынуждает пользователя вернуться на сайт, чтобы передать транзакцию ... кажется таким странным. - person Petrogad; 15.01.2013
comment
@Petrogad Мне это кажется разумным, если продавец не использует уведомление о мгновенных платежах. В противном случае у продавца нет возможности быть уверенным в том, что транзакция действительно завершена. Перенаправление может быть сфальсифицировано покупателем, продавец должен напрямую связываться с PayPal. - person panzi; 17.10.2013

Как сказал Джордж, useraction = commit не завершает транзакцию. Он изменяет только пользовательский интерфейс PayPal, чтобы клиент чувствовал, что он подтвердил его там, поэтому вам не нужно добавлять пользовательский интерфейс подтверждения на свой сайт. Вам все равно нужно сделать запрос за кулисами, чтобы подтвердить его.

В документации PayPal говорится следующее:

Параметр URL-адреса useraction в вашем перенаправлении на PayPal определяет, завершают ли покупатели свои покупки через PayPal или на вашем веб-сайте. Если вы настроили действие пользователя на фиксацию, PayPal установит текст кнопки «Оплатить сейчас» на странице PayPal «Просмотрите свою информацию». Этот текст сообщает покупателям, что они завершают свои покупки, если нажимают кнопку.

После того, как PayPal перенаправит покупателей на ваш сайт, вызовите GetExpressCheckoutDetails и DoExpressCheckoutPayment, чтобы PayPal успешно завершил платеж. Позвоните в DoExpressCheckoutPayment, не дожидаясь взаимодействия с покупателем. Используйте информацию из ответа GetExpressCheckoutDetails, чтобы заполнить страницу подтверждения заказа.

person Henrik N    schedule 12.11.2014