Я реализую API Express Checkout для веб-приложения, и все работает нормально. Тем не менее, у меня остались сомнения относительно хода операции.
Если я хорошо понимаю, пользовательский опыт выглядит следующим образом:
- Пользователь заказывает некоторые товары на торговых сайтах
- Перед оплатой пользователь отправляется на сайт PayPal
- После аутентификации пользователь может подтвердить некоторые детали о транзакции, например, заказ на доставку, но НЕ общая сумма
- Пользователь перенаправляется на сайт продавца, где он может подтвердить другую информацию, в частности общую сумму заказа
- Оплата завершена, и пользователь получает страницу подтверждения от продавца.
Вызов SetExpressCheckout
происходит между 1 и 2, GetExpressCheckoutDetails
между 3 и 4 и, наконец, DoExpressCheckoutPayment
между 4 и 5.
Тот факт, что пользователю не предоставляется возможность подтвердить общую сумму на шаге 3, объясняется тем, что в этот момент у продавца может не быть информации о стоимости доставки. Действительно, в документации прямо сказано , что сумма может меняться между звонком на SetExpressCheckout
и звонком на DoExpressCheckoutPayment
.
Так что, если продавец обманывает пользователя? Я могу сказать, что вы подтверждаете платеж на 20EUR и взимаете с вас 2000EUR. Это мошенничество, и я могу быть привлечен к ответственности, но это все равно не должно быть разрешено.
Обратите внимание, что в документации также утверждается , что получение сведений о транзакции с помощью вызова GetExpressCheckoutDetails
необязательно. Аналогично, шаг 4, на котором пользователь просматривает данные платежа, может быть пропущен полностью, и в этом случае пользователь не подтвердит какую-либо сумму!
Я что-то не так понимаю, или есть причина для этой работы?