2017-01-12 11 views
0

Я работаю над установкой условий в своем прослушивателе IPN Paypal, например, чтобы убедиться, что номер транзакции не соответствует предыдущему номеру в моей базе данных, убедившись, что адрес электронной почты получателя правильный и т. Д. Что я должен делать, если один из них тесты терпят неудачу? Остановит ли он платеж? Должен ли пользователь перенаправляться куда-нибудь? Вся помощь приветствуется!Что должен сделать мой слушатель IPN, если он не соответствует моим условиям?

+0

Я просто проверил наш код. Если что-то не так, он регистрирует ошибку и не обновляет учетную запись пользователя. Он не отправляет ничего обратно в PayPal, независимо от того, успешный или нет. Я думаю, что к тому моменту, когда прослушиватель запускается, учетная запись клиента уже дебетована. – Barmar

+0

Но это старый код, с которым я имел мало общего, я не могу гарантировать, что это на самом деле правильная процедура. – Barmar

+0

звучит скорее как деловая практика, а не логика кодирования – nogad

ответ

0

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

Ваш код PayPal IPN слушателя вызывается сайт PayPal, когда оплата выполняется пользователем и когда пользователь все еще находится на веб-сайте PayPal.

Таким образом, вы не можете перенаправить пользователя в любом месте. Кроме того, что вы хотите сделать, все должно быть сделано в разделе «VERIFIED» вашего кода, чтобы вы также не возвращали данные в PayPal.

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

Конечно, вы установили две ссылки в PayPal для успеха и отменили, какой PayPal вернет пользователей на одну из этих ссылок в зависимости от состояния платежа.

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

Скажите, что одно из ваших условий не удалось, но платеж был успешным в PayPal. Вы можете установить запись в своей базе данных или локальном файле для этого условия + userID или уникальный ключ, который у вас есть у пользователя, выполнившего платеж (из настраиваемого поля). Затем на странице успеха вы можете запросить эту таблицу с пользователем userID, посетив эту страницу, и если какие-либо записи обнаружены, значит, что-то пошло не так. Тогда вы можете делать то, что когда-либо вам нужно делать в ситуации (Показать связанные сообщения или т. Д.)

Но вы должны быть осторожны, используя этот метод, поскольку пользователь может закрыть браузер и не вернуться на ваш сайт после оплата!

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