Ответ IPN с 200 HTTP-кодом, но ничего в моей базе данных - PullRequest
0 голосов
/ 07 апреля 2019

Мне действительно нужна помощь, потому что я не знаю, что делать на данный момент. Я разработал веб-сайт, где новый пользователь должен заплатить за регистрацию, я установил правильную кнопку формы PayPal и о деньгах все работает хорошо, проблема в том, что я не могу обновить свою базу данных. Я использую эти файлы (они предоставлены на gitHub, а также в официальном руководстве Paypal есть ссылка на них): «PaypalIPN.php» и «example_usage.php». Я также добавил к своему облачному серверу Ubuntu (где находится мой веб-сайт) cert / cacert.pem, я не знаю, нужно ли мне это делать, но в первом файле это требуется.

Я пытался запустить симулятор IPN, но он не работает, я искал ту же проблему и обнаружил, что может быть проблема с симулятором, поэтому я сделал несколько реальных транзакций (я читал это живое производство тест выполняется правильно с этим кодом). Поэтому:

  • деньги на транзакции в порядке;
  • в истории уведомлений о мгновенных платежах есть все выполненные мной тесты, и в идентификаторе сообщения я могу прочитать правильные данные, переданные в сообщении IPN, тип IPN - «Транзакция выполнена», а код ответа - 200. Я заметил, что в «example_usage.php» код ответа 200 был вне if ($ Verified), так что, только для моего последнего теста, я поместил его в if и yes, ответ снова был таким:
  • Я попробовал свой код для обновления базы данных mongodb поддельными данными, и, очевидно, он работает.

Как это возможно? Пожалуйста, помогите мне и спасибо.

1 Ответ

0 голосов
/ 08 апреля 2019

Вы убедились, что правильный адрес отображается в деталях истории IPN?Иногда люди используют кнопку, которая использует notify_url, чтобы переопределить настройки учетной записи PayPal, и тогда IPN работают, но они идут в другое место, чем ожидалось.Поэтому сначала проверьте это.

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

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

...