Подписки PayPal - Обработка IPN и работа сайта?

StackOverflow https://stackoverflow.com/questions/1090296

  •  11-09-2019
  •  | 
  •  

Вопрос

Для моего сайта членства я настроил обработчик IPN.Мой вопрос относится к сайту "flow".

Вот как это происходит:Пользователь -> Посадка -> Регистрация -> Верификация -> PayPal -> Спасибо

Итак, вот в чем проблема (которая может быть просто у меня в голове).Допустим, вы зарегистрировались и подтвердили свою учетную запись.Затем вы нажимаете "Подписаться!" ссылка и отправляется на paypal, где вы завершаете платеж и попадаете на страницу "Спасибо".

Что, если IPN не вернется на мой сайт быстро?Ссылка подписаться все еще будет там, и пользователи могут нажать на нее снова, думая, что они не подписались (даже если они подписались, это просто займет время).

Если я буду бороться с этим, обновив их профиль, чтобы сказать..."Активация ...", когда они нажимают на ссылку "Подписаться", и они не завершают процесс PayPal...это могло бы означать бесконечное повторение "Активация ...".

Просто любопытно, так как это мой первый раз, когда я интегрирую PayPal:

  • Как вы обрабатываете состояние между моментом, когда пользователь нажимает на ссылку подписки, и временем, необходимым для завершения процесса IPN?

  • Были ли у вас когда-нибудь какие-либо проблемы с тем, что IPN не приходил быстро?

Это было полезно?

Решение

Ваш вопрос предполагает, что подключение к удаленному серверу является асинхронным (ajax)?

Вероятно, проще записать это синхронно, так что IPN гарантированно вернется.Если это не так, это означает, что:

а) Пользователь закрыл браузер после перенаправления на удаленный сервер;
б) Удаленный сервер не ответил.

Хорошие платежные шлюзы перенаправят пользователя обратно на ваш сайт, если он, возможно, нажмет кнопку "Отмена", но возврат никогда не гарантируется, поэтому вам нужно правильно с этим справиться.

У меня была бы отдельная таблица для регистрации транзакций для данного пользователя;это:

один пользователь, много транзакций

Некоторые платежные шлюзы позволяют вам определить обратный вызов на ваш сервер после завершения транзакции.То есть соединение инициируется шлюзом - он не запускает браузер, поскольку пользователь может закрыть вкладку / окно - где он отправляет сообщение на ваш URL обратного вызова, а затем вы обновляете статус транзакции.

Я не уверен, допускает ли PayPal подобные вещи, но до сих пор у меня никогда не возникало проблем с PayPal, потому что я всегда писал его синхронно.

Конечно, если требуется асинхронность, то ваша ajax-функция должна иметь обработчик таймаута / ошибок - я рекомендую jQuery, конечно.

Другие советы

У меня никогда не было никаких проблем с тем, что IPN не приходил быстро, но опять же, у меня никогда по-настоящему не было огромного веб-сайта с большим количеством пользователей.Я также не вносил никаких существенных изменений в учетную запись пользователя, пока не получил IPN.

Я сделал платную регистрацию на одном из своих веб-сайтов, используя paypal API.Пользователь должен ввести свое имя пользователя, пароль и т.д.и я бы передал переменные в API paypal.С этими данными не будут действовать до тех пор, пока я не получу IPN.

Вы всегда можете связать временную метку с ожидающим платежом, если считаете, что статус "Активация ..." важен в профиле пользователя.Ожидающий платеж может истечь по истечении 10 минут.

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top