У меня также есть страница возврата, ожидающая поступления уведомления IPN на мой сервер, и вы, безусловно, можете сделать это, если все сделаете правильно.
Изначально страница возврата опрашивает поле в моемвнутренняя база данных, которую обновляет обработчик IPN.Затем, когда на странице возврата отображается это обновление поля, клиент получает свою кнопку «Вот, за что вы заплатили».
У меня также есть минутный таймаут на этот процесс.Когда это истекает (хотя я не могу вспомнить последний раз, когда это произошло на самом деле), я отображаю сообщение об ошибке «все для всех» («возникла проблема при обработке транзакции») и приглашаю клиента связаться со мной для получения помощи.
Я также говорю им, что их лицензионный ключ (который я покупаю в моем случае) может быть отправлен по электронной почте, поскольку, как правило, это так.По какой-то причине уведомления IPN могут иногда занимать некоторое время, но мой обработчик IPN отправляет электронное письмо с подтверждением в качестве резервной копии, чтобы они получили его в должное время.Обычно это решает проблему, мне редко нужно принимать непосредственное участие.
Если PayPal приостанавливает транзакцию, похоже, он никогда не перенаправит клиента на страницу возврата (я, конечно, никогда не видел, чтобы это произошло).Вместо этого я предполагаю, что это позволяет клиенту узнать, что он должен дождаться освобождения средств, и оставляет его при этом.
Уведомление IPN отправляется, однако , когда транзакция в конечном итоге очищается, итогда вы можете попросить своего обработчика отправить это электронное письмо.
Чтобы это не звучало как большая работа, вам все равно следует отправлять электронное письмо от вашего обработчика IPN, так как клиенты хотят получать записи о своих покупках.Как только вы установите этот механизм на место, все остальное легко.
Примечание: Следите за транзакциями IPN, помеченными как «echeque». Средства еще не очищены , вы получите другое уведомление, когда они это сделают. Затем вы можете отправить им свой договор по электронной почте.Если память не изменяет, перенаправляет их на страницу возврата, поэтому вам нужно разобраться с этим, сообщив им, что они должны ждать.На практике это, кажется, происходит не очень часто.
Предложение: попросите ваши скрипты отправить вам электронное письмо, когда произойдет что-то неожиданное.Это несколько раз спасло мой бекон, когда PayPal без видимых причин изменил имена полей, передаваемых обработчику IPN.
Резюме: Это практическая запись, основанная на опытеКак работает мой сайт, и он работает хорошо.Надеюсь, что читатели этого поста найдут его полезным, несмотря на загадочные откаты.