PayPal IPN向通知URL发送带有可变数量字段的POST请求,为了确认POST请求是合法的,我们需要cmd=_notify-validate向PayPal 重新提交相同的请求以及其他字段,然后PayPal回复VERIFIED或INVALID.
我的问题是,为什么我们需要将请求重新发送给PayPal?这样的东西不够吗?
if (preg_match('~^(?:.+[.])?paypal[.]com$~i', gethostbyaddr($_SERVER['REMOTE_ADDR'])) > 0)
{
// request came from PayPal, it's legit.
}
Run Code Online (Sandbox Code Playgroud)
当且仅当我们可以信任的服务器正确地解析IP地址,我认为我们可以从贝宝信任所有的要求,不是吗?
好吧,我之前没有使用托管按钮,但它更有意义,因为它们更安全.
我环顾四周,一直在阅读文档(这些文档并不是那么有用),到目前为止我找到的最好的帮助就在这里 ; 虽然我仍然对确切放置代码的地方感到困惑?
另外,我在技术上不想要一个"按钮",但它背后的想法似乎是我想要的.
我想要做的就是每次都使用相同的查询变量而只是想改变价格 - 价格是动态的,具体取决于用户在表单中选择的内容.
另外,我本来不想要一个按钮,我更倾向于用适当的数据将用户重定向到贝宝,但不确定如何在设置动态价格时这样做呢?
如果我没有设置动态价格,我知道我可以将查询变量附加到URL上的托管按钮,然后重定向到该URL,但我需要更改价格,因此我的问题......