Laravel Paypal IPN 与 localtunnel 随机 400 错误请求

Posted

技术标签:

【中文标题】Laravel Paypal IPN 与 localtunnel 随机 400 错误请求【英文标题】:Laravel Paypal IPN with localtunnel randomly 400 Bad request 【发布时间】:2021-10-10 19:41:22 【问题描述】:

我使用在 Paypal.com 上找到的 php 实现。

我运行 php artisan serve 来启动服务器。

然后我使用 localtunnel 使服务器可以通过 paypal 访问。

问题: 我收到一条 ipn 消息,这条消息被发送回 paypal,然后:

有时消息会得到已验证,有时我会收到

<!DOCTYPE html PUBLIC "-//IETF//DTD HTML 2.0//EN">
<html><head>
<title>400 Bad Request</title>
</head><body>
<h1>Bad Request</h1>
<p>Your browser sent a request that this server could not understand.<br />
</p>
</body></html>

如果我从 Paypal 重新发送 IPN,我什么也收不到,只有当我第一次付款时,我认为问题是我通过 localtunnel 接收消息并从我的 laravel 后端发回,所以有 2 个不同的服务器如果我做对了就参与其中。

如果方法可能是错误的,我怎样才能让它 100% 工作,为什么有时它还能工作。

【问题讨论】:

【参考方案1】:

在沙盒模式下测试 IPN 时是否会出现此 400 错误?如果是这样,则该问题与 PayPal 最近将沙盒迁移到云端有关。现在,将沙盒回发验证主机名从 ipnpb 更改为 www

https://www.sandbox.paypal.com/cgi-bin/webscr

【讨论】:

这有帮助,谢谢。你知道为什么“贝宝通知历史”的重新发送没有出现吗? IPN 仅在我付款时才有效。现在我已经在服务器中验证了”,在 paypal IPN 上验证了 500。也许这通常是 paypal 的问题? IPN 未发送或重新发送的问题与您的系统验证 IPN 来自 PayPal 的能力无关。

以上是关于Laravel Paypal IPN 与 localtunnel 随机 400 错误请求的主要内容,如果未能解决你的问题,请参考以下文章

PayPal IPN POST 结果为 0 PHP Laravel

laravel 中的 PayPal IPN 集成(需要在我的后端实时更新定期付款状态)

使用 API 设置 PayPal IPN URL

Paypal 中的 IPN 与 PDT

Paypal 中的 IPN 与 PDT

将 PayPal IPN 与 WooCommerce 一起使用