Транзакция Paypal REST API одобрена

Я выполняю интеграцию с PayPal. Я использую REST API для java. В настоящее время у меня проблема с ожидающими платежами. Когда я ищу платеж (https://api.paypal.com/v1/payments/payment/ {paymentId}) в тестовую среду, чтобы проверить статус платежа, ответы различаются. Когда я одобрил платеж как продавец, платеж находится в статусе

одобренный

и распродажа в статусе

завершенный

пример ответа: { "id": "PAY-5YK922393D847794YKER7MUI", "create_time": "2013-02-19T22:01:53Z", "update_time": "2013-02-19T22:01:55Z", "state": "approved", "intent": "sale", "payer": { "payment_method": "credit_card", "funding_instruments": [ { "credit_card": { "type": "mastercard", "number": "xxxxxxxxxxxx5559", "expire_month": "2", "expire_year": "2018", "first_name": "Betsy", "last_name": "Buyer" } } ] }, "transactions": [ { "amount": { "total": "7.47", "currency": "USD", "details": { "subtotal": "7.47" } }, "description": "This is the payment transaction description.", "related_resources": [ { "sale": { "id": "36C38912MN9658832", "create_time": "2013-02-19T22:01:53Z", "update_time": "2013-02-19T22:01:55Z", "state": "completed", "amount": { "total": "7.47", "currency": "USD" }, "parent_payment": "PAY-5YK922393D847794YKER7MUI", "links": [ { "href": "https://api.sandbox.paypal.com/v1/payments/sale/36C38912MN9658832", "rel": "self", "method": "GET" }, { "href": "https://api.sandbox.paypal.com/v1/payments/sale/36C38912MN9658832/refund", "rel": "refund", "method": "POST" }, { "href": "https://api.sandbox.paypal.com/v1/payments/payment/PAY-5YK922393D847794YKER7MUI", "rel": "parent_payment", "method": "GET" } ] } } ] } ], "links": [ { "href": "https://api.sandbox.paypal.com/v1/payments/payment/PAY-5YK922393D847794YKER7MUI", "rel": "self", "method": "GET" } ] }
и иногда платеж

в ожидании

и статус продажи в

завершенный пример ответа: { "id": "PAY-5YK922393D847794YKER7MUI", "create_time": "2013-02-19T22:01:53Z", "update_time": "2013-02-19T22:01:55Z", "state": "pending", "intent": "sale", "payer": { "payment_method": "credit_card", "funding_instruments": [ { "credit_card": { "type": "mastercard", "number": "xxxxxxxxxxxx5559", "expire_month": "2", "expire_year": "2018", "first_name": "Betsy", "last_name": "Buyer" } } ] }, "transactions": [ { "amount": { "total": "7.47", "currency": "USD", "details": { "subtotal": "7.47" } }, "description": "This is the payment transaction description.", "related_resources": [ { "sale": { "id": "36C38912MN9658832", "create_time": "2013-02-19T22:01:53Z", "update_time": "2013-02-19T22:01:55Z", "state": "completed", "amount": { "total": "7.47", "currency": "USD" }, "parent_payment": "PAY-5YK922393D847794YKER7MUI", "links": [ { "href": "https://api.sandbox.paypal.com/v1/payments/sale/36C38912MN9658832", "rel": "self", "method": "GET" }, { "href": "https://api.sandbox.paypal.com/v1/payments/sale/36C38912MN9658832/refund", "rel": "refund", "method": "POST" }, { "href": "https://api.sandbox.paypal.com/v1/payments/payment/PAY-5YK922393D847794YKER7MUI", "rel": "parent_payment", "method": "GET" } ] } } ] } ], "links": [ { "href": "https://api.sandbox.paypal.com/v1/payments/payment/PAY-5YK922393D847794YKER7MUI", "rel": "self", "method": "GET" } ] }

Аналогично Sanbox работает, когда я отклоняю транзакцию. Как только статус платежа не выполнен, и статус продажи меняется на противоположный, и в другой раз ожидается и зарезервировано.

У меня вопрос: когда можно быть на 100% уверенным в том, что транзакция завершена или не удалась? Должен ли я проверять статус оплаты или статус продажи? Возможно, эта проблема связана только с песочницей, а не с производством.

PS. Этот код является всего лишь образцом, НЕ анализируйте его.


person kleo    schedule 01.04.2014    source источник


Ответы (1)


Вы должны убедиться, что даже если состояние продажи показывает завершенное, оплата была одобрена. Даже после того, как статус продажи отображается как завершенный, может быть что-то, связанное с учетной записью конкретного покупателя, которая удерживает платеж в состоянии ожидания. Перед отправкой продукта убедитесь, что оплата была одобрена.

person Avi Das    schedule 01.04.2014