Как обеспечить уникальность IPN PayPal перед их обработкой? - PullRequest
2 голосов
/ 18 февраля 2012

Для subscr_payment и web_accept вы должны проверить txn_id, было ли оно отправлено вам ранее.

А как же

subscr_cancel, 
subscr_modify, 
subscr_eot, 
subscr_failed, 
subscr_signup

где нет txn_id?

Если я получу subscr_modify 3 раза от PayPal, как мой сценарий узнает, был ли один и тот же IPN отправлен 3 раза или пользователь изменил свою подписку 3 раза?

Кто-нибудь знает, если ipn_track_id остается прежним, если одно и то же сообщение IPN отправляется несколько раз?

1 Ответ

1 голос
/ 24 февраля 2012

Если я получаю subscr_modify 3 раза от PayPal, как мой сценарий узнает, что один и тот же IPN был отправлен 3 раза или пользователь изменил свою подписку 3 раза?

Вы только собираетесьполучить повторный ответ IPN от PayPal, если на первый ответ не был получен код ответа Http 200, например, из-за кода ошибки Server 500 или без ответа.

Но как насчет

subscr_cancel, subscr_modify, subscr_eot, subscr_failed, subscr_signup

там, где нет txn_id?

Документация PayPal действительно неясна и сложна, но я нашел ссылку, котораяможет быть полезным, он показывает список каждой переменной, присутствующей в каждом типе ответа IPN: https://www.paypalobjects.com/en_US/ebook/subscriptions/Appx-ipn_subscription_variables.html

subscr_id МОЖЕТ быть тем, что вы ищете, но я неуверен, если он меняется с каждым ответом или нет.

...