2009-07-07 4 views
4

Для моего сайта членства у меня обработчик IPN. Мой вопрос - один из «потоков» сайта.Подписки PayPal - Обработка IPN и поток сайта?

Вот как это происходит: пользователя -> Посадка -> SignUp -> Проверка -> PayPal -> ThankYou

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

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

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

Просто интересно, так как это мой первый раз интеграции PayPal:

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

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

ответ

1

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

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

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

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

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

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

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

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

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

+0

Это уже синхронно ... если вы считаете, что IPN вернется достаточно быстро, это, вероятно, не проблема ... и я придумываю проблемы, которые даже не проблемы. Спасибо! – Chaddeus

+0

Всегда полезно рассматривать пессимистические сценарии, чтобы мы могли справиться с этим в коде :) – Wayne

1

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

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

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

+0

Ну, если IPN прибывает быстро, я, вероятно, изобретаю проблему, которая еще не существует. Моя целевая аудитория - японская, поэтому я хотел убедиться, что она была такой же гладкой, как я мог это сделать. Спасибо! – Chaddeus

Смежные вопросы