Перед разработкой вы должны ознакомиться с концепцией PayPal IPN и PDT. Прочитайте документацию Переменные IPN и PDT . Вот возможные варианты статуса оплаты на этой странице документа:
payment_status
Статус платежа:
Canceled_Reversal: A reversal has been canceled. For example, you won a dispute with the customer, and the funds for the transaction that was reversed have been returned to you.
Completed: The payment has been completed, and the funds have been added successfully to your account balance.
Created: A German ELV payment is made using Express Checkout.
Denied: You denied the payment. This happens only if the payment was previously pending because of possible reasons described for the pending_reason variable or the Fraud_Management_Filters_x variable.
Expired: This authorization has expired and cannot be captured.
Failed: The payment has failed. This happens only if the payment was made from your customer’s bank account.
Pending: The payment is pending. See pending_reason for more information.
Refunded: You refunded the payment.
Reversed: A payment was reversed due to a chargeback or other type of reversal. The funds have been removed from your account balance and returned to the buyer. The reason for the reversal is specified in the ReasonCode element.
Processed: A payment has been accepted.
Voided: This authorization has been voided.
Чаще всего я получаю статус Completed
и Pending
. Распространенной причиной Pending
является использование другой валюты между покупателем и продавцом, например: вы продаете в долларах США, покупатель платит GBP, PayPal помечает транзакцию как ожидающую и будет очищена через несколько дней. Один из моих клиентов хочет, чтобы я обработал Pending
так же, как и Completed
, поскольку он просто продает цифровые товары (файл PDF) и не несет риска в случае задержки платежа, в отличие от продавца с физическими товарами.
Вы можете получить полную документацию PayPal на этой странице .
Следует отметить, что переменная payment_status
была просто st
. Paypal, очевидно, изменил переменную st
на payment_status
.