2015-07-08 2 views
0

настоящее время я использую следующие библиотеки:Paypal IPN - Получение + потеря данных?

https://github.com/paypal/adaptiveaccounts-sdk-php/tree/master/samples/IPN

И Paypal IPN, кажется, работает хорошо ... Я могу успешно проверка и все данные POST от Paypal регистрируется на моем сервере, единственная проблема is - Как я могу проверить его, когда пользователь вернулся на сайт?

В настоящее время у меня есть URL-адрес возврата, равный URL-адресу IPN (смотрите в github для кода), и после того, как я получу все допустимые данные, пользователь возвращается на страницу IPN, и он говорит о недопустимости.

Не совсем уверен, какие-либо мысли?

+0

Должен ли я хранить данные на СЕССИИ, может быть? – Jarkerwastaken

ответ

0

Не разработчик Php и не смотрел, но если вы действительно хотите использовать один и тот же URL-адрес (я бы не стал использовать их для разных целей), то разница была бы (http) методом запроса:

  • GET для редиректа и
  • POST для СПИ

Это будет один, как вы бы определить, какой тип Request, что URL получает и обрабатывать, как вы считаете нужным.

1

IPN НЕ должен использоваться в качестве обратного URL.

  • Обратный URL возвращает покупателя на ваш сайт. Страница на обратном URL должна отображать либо общую страницу с благодарностью, либо страницу с указанием статуса заказа покупателя. Какой из перечисленных выше вариантов зависит от выбранного вами продукта PayPal, вашей интеграции и потока покупок.
  • URL-адрес скрипта для прослушивателя IPN используется для автоматизации процесса обработки заказов. Слушатель IPN получает сообщения IPN, обрабатывает ваш заказ определенным образом.

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

Я думаю, что именно по этой причине ваш покупатель получает «недействительный»: ваш слушатель IPN получает данные запроса, когда покупатель возвращается к вашему слушателю, и использует данные для проверки IPN с помощью PayPal. PayPal возвращает «invalid», поскольку данные не являются действительными сообщениями IPN и, следовательно, не могут быть проверены.