PayPal IPN и AutoReturn - PullRequest
       8

PayPal IPN и AutoReturn

0 голосов
/ 01 июня 2018

У меня есть прослушиватель ipn, который обновляет мои транзакции (от ожидающих до завершенных) и платежи по моим контрактам с завершенных на платные.Это потрясающе!У меня также есть страница возврата ... Из PayPal на мой сайт ... На этой странице отображаются слова "спасибо" и ", чтобы разрешить им скачивать последний оплаченный онлайн-контракт" (оплаченный через PayPal).Моя проблема в том, что .... Ipn слушатель иногда приходит через 3 секунды после того, как моя страница возврата показывается пользователю ....

На моей странице возврата в этом случае.Транзакция и контракт не оплачены ... И когда ipn listener ловит результаты ... Затем эта транзакция и контракт переходят в платный статус.Но слушатель ipn выполняется на бэк-энде.На моем сервере.И моя страница возврата была показана за 3 или 2 секунды до моего пользователя.Что я могу сделать?

Должен ли я добавить таймер (задержку) на мою страницу возврата, ожидая, пока ipn обновит статус моей транзакции и контракта?А затем покажите пользователю кнопку «Вы можете скачать свой последний оплаченный контракт!».Или лучше я должен забыть этот шаг.И на моей странице возврата всегда без ожидания показывать пользователю «спасибо за ваш платеж».«Вы можете загрузить свой последний оплаченный контракт!»

Ответы [ 2 ]

0 голосов
/ 08 июня 2018

У меня также есть страница возврата, ожидающая поступления уведомления IPN на мой сервер, и вы, безусловно, можете сделать это, если все сделаете правильно.

Изначально страница возврата опрашивает поле в моемвнутренняя база данных, которую обновляет обработчик IPN.Затем, когда на странице возврата отображается это обновление поля, клиент получает свою кнопку «Вот, за что вы заплатили».

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

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

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

Уведомление IPN отправляется, однако , когда транзакция в конечном итоге очищается, итогда вы можете попросить своего обработчика отправить это электронное письмо.

Чтобы это не звучало как большая работа, вам все равно следует отправлять электронное письмо от вашего обработчика IPN, так как клиенты хотят получать записи о своих покупках.Как только вы установите этот механизм на место, все остальное легко.

Примечание: Следите за транзакциями IPN, помеченными как «echeque». Средства еще не очищены , вы получите другое уведомление, когда они это сделают. Затем вы можете отправить им свой договор по электронной почте.Если память не изменяет, перенаправляет их на страницу возврата, поэтому вам нужно разобраться с этим, сообщив им, что они должны ждать.На практике это, кажется, происходит не очень часто.

Предложение: попросите ваши скрипты отправить вам электронное письмо, когда произойдет что-то неожиданное.Это несколько раз спасло мой бекон, когда PayPal без видимых причин изменил имена полей, передаваемых обработчику IPN.

Резюме: Это практическая запись, основанная на опытеКак работает мой сайт, и он работает хорошо.Надеюсь, что читатели этого поста найдут его полезным, несмотря на загадочные откаты.

0 голосов
/ 02 июня 2018

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

Вам необходимо отрегулировать, чтовы показываете на своей странице возврата соответственно.

Все, что вам действительно нужно здесь сделать, это поблагодарить клиента за его бизнес и сказать ему, что загрузка, доставка или что-то еще станет доступной немедленно, PayPal уведомит вас о фактическом переводе.

И обратите внимание, что это может занять намного больше, чем три секунды.Если они решили оплатить платеж со своего банковского счета, это может занять 3-5 дней: , и всегда существует вероятность полного сбоя этого процесса из-за недостатка средств.

не будьте слишком оптимистичны при разработке страницы возврата.Сделка не будет завершена, пока деньги не будут в банке.

На этой странице показано "спасибо"

Хорошо.

и«Кнопка, позволяющая загрузить последний оплаченный онлайн-контракт»

Bad.Это должно быть где-то в «Моем аккаунте».

...