Paypal IPN возвращает пустую строку вместо VERIFIED или INVALID

В реальной среде (не в песочнице) Paypal IPN отправляет данные POST со статусом payment_status = Completed. Но когда я попытался получить подтверждение транзакции от Paypal (используя CURL), я получил пустую строку (не «ПРОВЕРЕНО» или «НЕДОПУСТИМО»).

CURL не возвращает никаких ошибок. Для подтверждения в реальной среде я использую https://www.paypal.com/cgi-bin/webscr (это точно). При этом в Sandbox все работает корректно.

Ошибка появилась около 2 месяцев назад. Я заметил, что PayPal немного изменил дизайн сайта. Возможно, изменился и процесс подтверждения. Но я не нашел никаких обновлений в документации.

Кто-нибудь встречал подобную проблему?


person Alexander Elgin    schedule 06.02.2011    source источник


Ответы (2)


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

person Alessandro    schedule 23.02.2011
comment
Привет, Аллесандро, If you get empty responses, just retry. Что повторить? If all retries fail, send out a 500 Internal Server Error and the PayPal IPN server will retry later. На какой адрес отправить? И самый интересный вопрос (за 1 000 000$): Почему так происходит, что Paypal IPN начинает присылать пустой ответ. Раньше все было нормально. Я предпочитаю решать источник проблемы, а не ее результаты. У тебя есть ответы, Алессандро? Вы встретились и решили проблему, которую я описал выше. Или вы просто публикуете общие советы? - person Alexander Elgin; 25.02.2011
comment
Если вы получили пустой ответ от сервера проверки PayPal, просто повторите проверочный вызов. Внутренняя ошибка сервера 500 должна быть отправлена ​​как HTTP-ответ вашей страницы IPN. Я не могу сказать, почему это происходит: сбои PayPal, проблемы с сетью и т. д. Прежде всего, нужно записывать все в журнал, а затем обращаться за помощью в устранении проблем. Без подробностей вам никто не поможет. - person Alessandro; 25.02.2011

Поздно к игре, но на всякий случай, если кто-то еще спросит.

Я устранял эту проблему в течение нескольких часов, и, как это случилось в моем случае, PayPal требует, чтобы вы использовали полный URL-адрес для тестирования IPN с помощью Sandbox.

например, используйте этот URL "https://www.sandbox.paypal.com/cgi-bin/webscr", а не "https://sandbox.paypal.com/cgi-bin/webscr". Вам нужно указать www, иначе PayPal выдаст вам пустую строку. Он не вернет INVALID и не проверит - он просто даст вам пустое значение.

Это сработало для меня в любом случае. Как только я изменил это, все было в порядке.

person RalphTheWonderLlama    schedule 26.05.2015