我有一个网络表单,它向贝宝发布用户支付的所有贝宝变量:
<input type="hidden" name="item_name" value="Digital Download" />
<input type="hidden" name="amount" value="9.99" />
<input type="hidden" name="on0" value="Payment For" />
<input type="hidden" name="os0" value="My Product Description" />
以及更多。然而,用户可以很容易地修改这些变量,并且发送到贝宝的数据是错误的。
我知道我仍然可以检查IPN响应,以确定付款是否匹配,但我也希望能够保护用户免受这些变量的篡改。
据我所见,贝宝在他们的网站上有一个"立即创建购买按钮"表单,它做同样的事情,但生成一个加密的表单数据,然后在贝宝解密。
我有可能在发送给贝宝的数据中以某种方式使用这种加密和解密吗?
您可以使用php自己对按钮进行加密,但这需要一些工作——它确实完成了这项工作。
https://cms.paypal.com/us/cgi-bin/?cmd=_render-内容&content_ID=开发人员/e_howto_html_encryptedwebpayments#id08A3I0P1017Q
您可以检查他们的文档,以使用他们的NVP API(名称-值对)生成安全按钮。
虽然生成加密按钮仍然有效,但它需要更多的工作,这种方法更简单,也提供了安全性。