Paypal IPN не звонит Проблема

У меня возникла проблема с тем, что Paypal IPN не запускается на одном из моих серверов. Ниже сценарий.

1) У меня есть два сайта, сайт A (старый) находится на сервере X, а сайт B (новый) на сервере Y. Оба сайта имеют одинаковую отправку формы экспресс-оплаты Paypal и код IPN. 2) Сайт A работает без сбоев с отправкой формы экспресс-оплаты PayPal, и IPN запускается правильно. 3) Но с сайтом B, несмотря на то, что наша форма была отправлена ​​​​правильно и оплата прошла успешно, IPN не увольняется.

Дополнительная информация: я проверил бизнес-аккаунт Paypal на наличие каких-либо функций, которые могут потребоваться для добавления IP/домена, где находится IPN.

Я также обратился в службу поддержки Paypal, где они сказали, что с 25 марта 2014 года они сказали добавить IP-адрес, связанный с API Paypal, в брандмауэры наших серверов. Мы закончили с добавлением этих IP-адресов, но все равно это не работает.

  URL : https://ppmts.custhelp.com/app/answers/detail/a_id/14/related/1/session/L2F2LzEvdGltZS8xNDAxMTcyODkwL3NpZC9VbENEUWhWbA%3D%3D

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

Заранее спасибо.


person hakhiste    schedule 27.05.2014    source источник


Ответы (1)


К сожалению, у меня не так много информации по конкретной проблеме, с которой я мог бы работать, поэтому давайте сделаем это Руководством по устранению неполадок IPN для дальнейшего использования :)

Проверьте статус функции IPN для данной учетной записи -

https://www.paypal.com/cgi-bin/customerprofileweb?cmd=_profile-ipn-notify (сначала войдите в свою учетную запись, затем перейдите по ссылке, чтобы перейти к настройкам IPN)

Альтернатива:

  • Войти на PayPal.com
  • Открыть профиль --> Мои настройки продаж
  • Найдите опцию «Мгновенные уведомления о платежах».

IPN может находиться в четырех состояниях:

  • Включено --> Если вам будет предложено выбрать параметры, IPN включен, и IPN будут отправлены, если в запросе на оформление заказа будет передан URL-адрес уведомления.

  • Включено с установленным URL-адресом по умолчанию --> Если отображается «URL-адрес уведомления» и включена «Доставка сообщений», URL-адрес по умолчанию будет использоваться каждый раз, когда вы не указываете другой URL-адрес IPN в запросе на оформление заказа (например, транзакции eBay). будет отправлен на URL-адрес по умолчанию, поскольку интеграция eBay Express Checkout не передает URL-адрес уведомления)

  • Отключено --> Вы никогда не устанавливали URL-адрес по умолчанию, но URL-адрес IPN, переданный в ваших транзакциях, вызывал слишком много ошибок. Вы должны увидеть пустое поле «Адрес» и отмеченную опцию «Не получать сообщения IPN (отключено)».

  • Отключено с установленным URL-адресом по умолчанию --> URL-адрес IPN по умолчанию был настроен в какой-то момент времени, но из-за сбоев в URL-адресе по умолчанию или динамических URL-адресах функция IPN была отключена. Вы увидите URL-адрес и «Доставка сообщений = отключена».

Почему PayPal отключает доставку IPN?

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

  1. Если IPN включен, проверьте статус последних сообщений IPN в разделе https://www.paypal.com/cgi-bin/webscr?cmd=%5fdisplay%2dipns%2dhistory&nav=0%2e3%2e4

    Он покажет вам последние коды ответов HTTP, которые ваш сервер отправляет обратно, и вы сможете отфильтровать сообщения о неудачных/повторных попытках.

    Посетите http://en.wikipedia.org/wiki/List_of_HTTP_status_codes, чтобы узнать, что означает этот статус.

  2. Если нет кода ответа HTTP, проблема с подключением находится на более низком уровне. Чаще всего вызывают:

    • Firewalls
    • Проблемы с подключением SSL (попробуйте использовать HTTP)
    • Маршрутизация через черную дыру

    Если вы считаете, что все настроено правильно, проверьте https://ppmts.custhelp.com/app/answers/detail/a_id/733

  3. Если сообщения IPN помечены как «ОТПРАВЛЕННЫЕ» (получено HTTP 200), следующим шагом в обработке IPN является отправка данных обратно в PayPal для проверки. Вы можете либо включить ведение журнала внутри скрипта (сбрасывать HTTP-запрос и ответ в файл на сервере), либо обратиться в PayPal МТС ( https://www.paypal.com/mts) и спросите, что видно на стороне PayPal.

    Хорошим тестом для проверки подключения к PayPal является запуск следующей команды на самом веб-сервере:

    curl -d "cmd=_notify-validate" -v https://www.paypal.com/cgi-bin/webscr

  4. Если вы видите, что POST достиг PayPal, но PayPal отвечает INVALID для всех сообщений:

    Проверьте свой код, https://github.com/paypal/ipn-code-samples. является хорошим источником образцов

  5. Если PayPal отвечает INVALID на некоторые сообщения, вы, вероятно, столкнулись с проблемой кодировки. Лучше всего установить параметры кодировки символов в разделе https://www.paypal.com/cgi-bin/customerprofileweb?cmd=_profile-language-encoding — для достижения наилучших результатов установите для них значение UTF8.

  6. Если PayPal отвечает VERIFIED, но ваш скрипт не продолжает обработку после проверки платежа, убедитесь, что вы запустили TRIM() (или эквиваленты на используемом языке), чтобы удалить пробелы, переводы строк и CRLF.

  7. Что происходит потом, зависит от сценария IPN, вы можете столкнуться с ошибками при подключении к базе данных, синтаксическом анализе сообщения IPN для определенных данных или некоторых ошибок кодирования.

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

Надеюсь, это поможет решить проблемы с IPN. Есть вопросы по IPN? Свяжитесь с paypal.com/mts, если вы хотите выяснить, что происходит на стороне PayPal.

person PayPal_Martin    schedule 27.05.2014
comment
У меня такая же проблема на сайте нашей компании. Наша реализация IPN не менялась как минимум 18 месяцев, и за последнюю неделю у нас было 11 ошибок. Это прерывистая проблема (не может быть воспроизведена), и мы не получаем ни VERIFIED, ни INVALID. Вместо этого мы получаем следующее: Произошла ошибка при обработке вашего запроса. Ссылка № 39.86cd417.1401321268.3e750f3 Мне кажется, что это ошибка сервера, но я не уверен. - person James Pegg; 29.05.2014
comment
Это действительно так, а точнее: Akamai. Если вы видите эту ошибку, проверьте настройки DNS на наличие устаревших записей/жесткого кодирования. Если вы столкнулись с этой проблемой, а конфигурация DNS в порядке, свяжитесь с нами напрямую, указав ссылку # по адресу paypal.com/mts. Обходной путь: переключитесь на использование IPNPB.paypal.com в качестве целевого URL-адреса обратной отправки POST. Вы можете найти IP-адреса PayPal здесь: ppmts.custhelp.com/app/answers/ деталь/a_id/92 - person PayPal_Martin; 29.05.2014