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