Экспресс-проверка PayPal для обработки «ожидающих платежей» с IPN - PullRequest
7 голосов
/ 16 февраля 2012

Я не могу найти никаких четких документов по этому поводу.
Если вы используете PayPal Express Checkout, когда ожидается платеж, что будет дальше?
PayPal отправляет вам IPN обновление, если меняется состояние, есть ли у вас варианты?

Допустим, вы делаете DoExpressCheckoutPayment (с NVP) и вы получите это:

&PAYMENTSTATUS=Pending 
&PENDINGREASON= ECHECK //The payment is pending because it was made by an eCheck that has not yet cleared. 
&REASONCODE=None

Итак, вы сделали платеж и хотите подождать, пока он не будет очищен? Что делать дальше

Обновление некоторых (внешняя документация). Я нашел только то, что вы можете использовать (IPN?) Для обработки ожидающих платежей.

"Если ответ PENDINGREASON на Do Express Checkout Payment является значением если нет или не выполнено, платеж ожидает обработки. Как правило, это означает, что клиент заплатил с помощью aneCheck. В таком случае средства не гарантированы, и вы не должны отправлять или доставлять предметы или услуги, пока оплата не будет успешно завершена. Примечание:
PayPal рекомендует заблокировать электронные чеки в качестве способа оплаты, если вы не в состоянии обрабатывать ожидающие государственные платежи. Чтобы узнать статус В ожидании платежа вы можете:

Отправить запрос транзакции.

Проверьте статус с помощью PayPal Manager. См. Интерактивную справку PayPal Manager для деталей. "

Похоже, что в песочнице paypal есть возможность проверять сообщения IPN для типа экспресс-оплаты. Единственная корреляция (если ее использовать таким образом) между DoExpressCheckoutPayment и IPN кажется, что вы можете использовать «настраиваемое» поле для отслеживания состояния ожидания. Txn_id (ipn) не указан в DoExpressCheckoutPayment (nvp). У кого-нибудь есть опыт с этим?

Ответы [ 3 ]

13 голосов
/ 17 февраля 2012

Идентификатор транзакции, скорее всего, указан в DoExpressCheckoutPayment, даже если PAYMENTSTATUS = Pending. Ожидающий платеж все еще является транзакцией.

Так что да, вы будете уведомлены через IPN, когда транзакция будет завершена. Обычно это занимает несколько рабочих дней.
После завершения вы можете соотнести транзакцию из DoExpressCheckoutPayment с IPN, который вы получите через txn_id в IPN.

Примечание. Если вы хотите проверить платеж "Ожидание" в песочнице PayPal, просто перейдите на https://developer.paypal.com/> Тестовый аккаунт и нажмите "Проверка платежа" для аккаунта продавца, с которым вы тестируете.
После включения проверки платежа на этом счете продавца все полученные транзакции будут находиться в состоянии «Ожидание».
Просто отключите проверку платежа, чтобы впоследствии разблокировать транзакции.

3 голосов
/ 19 марта 2014

Я думал, что добавлю к этому свои мысли в два пенса.

Я получил статус ожидающего возврата с помощью Express Checkout через dotNet SDK, в соответствии с документами и примерами, которые я должен был получить «одобренный» статус.

Я не мог понять, почему, но это произошло потому, что я проходил через новую валюту, в нашем случае «GBP». Я должен был войти как учетная запись песочницы посредника и решить, что делать с новой валютой .. конвертировать ее или установить новый баланс в валюте. Как только я сделал это и установил его как действие по умолчанию, статус ожидающего возврата больше не возникал.

надеюсь, что это поможет кому-то!

1 голос
/ 06 декабря 2013

Одна вещь, не отмеченная здесь, и я не нашел ничего другого, чтобы подтвердить ..., что Paypal Express API не поддерживает передачу NOTIFYURL с кодом.Таким образом, вы должны использовать жестко заданный URL-адрес IPN, установленный в вашей учетной записи PayPal.Это, конечно, вызывает проблемы, потому что вам нужен общий файл обратного вызова, который можно перенаправить на отдельные варианты оплаты.

Например, если вы используете Paypal Express и Paypal Advanced. Ни один из них должным образом не поддерживает передачу уведомлений виспользуя кодPaypal Advanced заявляет о себе, но, похоже, не работает.Таким образом, должен существовать общий файл обратного вызова IPN, который обрабатывает перенаправление для каждого.

Если кто-то еще не может подтвердить рабочий URL-адрес уведомления для переменной Express Checkout, которая может быть передана в коде?

...