如何只允许 Paypal 请求我的 notify_url?

Posted

技术标签:

【中文标题】如何只允许 Paypal 请求我的 notify_url?【英文标题】:How do I allow only Paypal to request my notify_url? 【发布时间】:2016-04-06 06:27:50 【问题描述】:

我在我的网站上使用 Paypal 进行付款,当有人成功完成购买时,Paypal 会调用我指定的 notify_url 并向其传递一些 POST 数据。从 POST 我只使用 item_number 和 txn_id。

我用于 notify_url 的 URL 是公共 URL,任何人都可以访问它。如何确保只有 Paypal 可以请求此 URL 而其他所有人都被阻止?

【问题讨论】:

【参考方案1】:

只允许 POST,并实现 IPN 文档中描述的回调验证。

【讨论】:

【参考方案2】:

正如@EJP 提到的,将验证发送回 PayPal 将允许您验证数据是否来自 PayPal,以便您知道它是合法的,但其他人仍然可以点击该 URL。

如果您想完全阻止它们,您可以通过服务器上的 .htaccess 文件(假设您正在运行 Apache)或使用防火墙来实现。您只需要阻止 PayPal 的 IPN IP 地址以外的所有流量。

64.4.248.8
64.4.249.8
173.0.84.40
173.0.84.8
173.0.88.40
173.0.88.8
173.0.92.8
173.0.93.8

【讨论】:

以上是关于如何只允许 Paypal 请求我的 notify_url?的主要内容,如果未能解决你的问题,请参考以下文章

PayPal IPN _notify-validate 在沙盒中引发错误 302

贝宝 IPN 安全

Paypal 响应未出现在 Paypal IPN 中的 notify_url 页面上

Paypal IPN 货币和响应

不同网站上的 PayPal ipn notify_url

PayPal,notify_url 从未执行过