Вот расширенный пример потока, который должен работать в живой среде:
- Отправить запрос оплаты с помощью actionType = CREATE
- Отправить запрос SetPaymentOptions с помощью возвращенного payKey
- Перенаправить пользователя для подтверждения платежа.
- Получить IPN
- Отправьте запрос PaymentDetails с помощью возвращенного payKey
- Отправьте запрос GetPaymentOptions, используя возвращенный payKey
- Отправьте запрос ExecutePayment, используя возвращенный payKey
Все работает нормально, до последнего шага. Как-то платеж устанавливается в состояние ЗАВЕРШЕНО, как только пользователь одобряет платеж.
Что я делаю не так? Я использовал другую карту, чтобы принять платеж, и никакой учетной записи PayPal, чтобы я не рассматривался как один и тот же пользователь. Вот подробности после того, как пользователь принимает оплату:
[status] => COMPLETED
[trackingId] =>
[payKey] => AP-XXXXXXXXX
[actionType] => CREATE
[feesPayer] => EACHRECEIVER