Мы разработали 1 сайт Bootstrap с возможностью однократной покупки с использованием PayPal, и пока IPN реагирует быстро, без проблем.
Затем у нас есть другой сайт Bootstrap, который использует повторяющуюся подписку, и IPN всегда задерживается. Мы также разработали 2 других сайта Drupal с периодической подпиской, используя модуль «Роли PayPal», и IPN всегда задерживается на этих сайтах.
Когда клиент / пользователь возвращается на какой-либо из наших веб-сайтов подписки после завершения оплаты, наша страница подтверждения возвращает ошибку «У вас нет прав для просмотра этой страницы …», поскольку IPN задерживается и еще не получен от PayPal. Обычно, если мы подождем около 5-10 секунд и обновим страницу, IPN будет загружен, обновит базу данных, ошибка исчезнет, и пользователь сможет получить доступ к нашему веб-сайту. Однако во время тестирования был один раз, когда прибытие IPN заняло 10 минут.
На веб-сайте PayPal Developer я прочитал, что IPN не является решением в реальном времени, но, похоже, не существует решения, предлагаемого для решения этой проблемы. Так что же является лучшим решением для обхода потенциальной задержки IPN? Поскольку большинство платежей прошло успешно, мы хотели бы, чтобы наши клиенты получили немедленный доступ к нашему веб-сайту после завершения платежа. Если по какой-либо причине платеж не проходит, мы можем просто обновить учетную запись клиента вручную.
Мне удалось связаться со службой технической поддержки PayPal, и я подумал, что поделюсь, что существует альтернатива опции IPN, которая называется PDT (Transfer Data Transfer).
PDT незамедлительно вернет данные транзакции и будет полезна для сайтов, которые должны предоставлять немедленный ответ клиентам, например, в магазине, предлагающем цифровой продукт или услугу.
PDT не разрешает гостевую проверку, и он будет отправлять данные транзакции только один раз. Он не будет повторять попытки отправки уведомлений, если ваш сайт не работает, и не будет отправлять другие будущие уведомления о возвратах платежей, возвратах и т. Д.
PayPal обычно рекомендует IPN, но открыто заявляет, что он может иметь задержки.
PayPal прав. IPN не являются системой реального времени. Вы можете получить IPN уже через час (или, если ваша система не работает, придется ждать повторной попытки IPN).
Если в реальном времени это так важно, то вам следует перейти на Payments Pro. API предоставляет вам ответ в режиме реального времени, который должен соответствовать вашим потребностям. Однако вам придется подписаться как на Payments Pro, так и на систему регулярных платежей.