Почему для Paypal требуется DoExpressCheckoutPayment?

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

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

Затем я попробовал Express Checkout, следуя инструкциям здесь . В основном это сработало, но, насколько я понимаю, после отправки SetExpressCheckout вы должны прослушать запрос от PayPal и выполнить DoExpressCheckoutPayment для завершения транзакции. Ссылка SO .

Я нахожу это немного неприятным, потому что что, если мой сервер не может получить запрос от PayPal, а я никогда не отправляю DoExpressCheckoutPayment? Таким образом, клиент ДУМАЕТ, что он завершил отправку заказа, но заказ так и не был получен.

Кто-нибудь знает, как пропустить этот шаг «подтверждения»? Я считаю это ненужным и не уверен, почему это требуется PayPal.

12
задан Community 23 May 2017 в 12:00
поделиться