Paypal IPN не вызывает проблему

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

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

Дополнительная информация: Я проверил бизнес A / c 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 

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

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

К сожалению, для меня не так много информации о конкретной проблеме, поэтому давайте сделаем это Руководство по устранению неполадок 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 Integration не передает 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 отсутствует, на более низком уровне возникает проблема подключения. Чаще всего это вызвано:

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

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

  3. Если сообщения IPN отмечены как «SENT» (HTTP 200 Received), следующий шаг в обработке IPN отправляет данные обратно в PayPal для проверки. Вы можете активировать ведение журнала внутри сценария (дамп HTTP-запроса и ответа в файле на сервере) – или вы можете связаться с PayPal MTS ( 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.