Может ли PDT сработать до IPN или как синхронизировать IPN и PDT? - PullRequest
1 голос
/ 20 октября 2011

Я внедряю IPN + PDT, ситуация такова:

IPN, приходящий от PayPal, после этого я проверяю IPN, отправляя его обратно в PayPal (проверка занимает некоторое время), и если все в порядке, я устанавливаю флагв базе данных, что IPN в порядке (транзакция остается неоплаченной).Затем PDT срабатывает, когда пользователь попадает в мою систему из PayPal, и только в это время я устанавливаю текущую транзакцию как оплаченную после того, как проверяю идентификатор транзакции и проверяю, был ли статус IPN этого перевода в порядке.

Итак, пока все хорошо выглядит в среде разработки (мой компьютер dev + PC), но теоретически это может произойти до того, как IPN будет обработан / завершен (проверка IPN задерживается, и по какой-то причине занимает больше времени).PDT может быть запущен, и в результате транзакция не может быть помечена как оплаченная, и это будет проблемой.

Я гуглил это и нашел Какова последовательность запуска событий - IPN & PDT , говорящая:

Итак, по-видимому, IPN срабатывает перед PDT.Но иногда PayPal не получает http 200 нормально с вашего сайта (по какой-то причине), а затем PayPal считает, что IPN не был запущен должным образом, затем через некоторое время PayPal снова отправляет IPN.В этом случае есть шанс получить PDT до IPN.

Может ли кто-нибудь подтвердить, что:

  1. Есть ли какой-нибудь опытный PDT, отправляющий до завершения IPN?
    Если ответ на предыдущий вопрос - ДА - в таком случае мой второй вопрос:
  2. Можно ли синхронизировать IPN и PDT (задержать PDT до завершения IPN)?

1 Ответ

2 голосов
/ 21 октября 2011

Не используйте PDT для управления заказами. Под PDT подразумевается несколько простое решение для отображения деталей транзакции вашему покупателю, когда они возвращаются на ваш сайт. На него не следует полагаться при выполнении задач управления заказами, поскольку (как вы упомянули также) это зависит от того, вернется ли покупатель на ваш сайт, что может случиться не при всех обстоятельствах.

IPN надежен тем, что всегда отправляет POST к вашему сценарию IPN.

Что касается последовательности PDT в сравнении с IPN: ее нет, поскольку PDT представляет собой запрос на извлечение (от вас к PayPal), а IPN - на передачу (от PayPal к вам).

Короче говоря; отбросьте PDT, если вы не используете его для отображения приятного сообщения «добро пожаловать назад, $ user», и используйте IPN, чтобы проверить, прошел ли платеж, и соответственно обновите вашу базу данных.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...