如何根据产品价格验证PayPal IPN?

时间:2012-05-29 04:46:58

标签: php paypal-ipn

我正在构建一个软件交付平台。我用PayPal编写了一个完全正常的自定义IPN脚本,用PHP编写,但我遇到的问题是确认价格。

简单地说,比较实际产品价格与来自PayPal IPN的字段的算法是什么?

我将产品价格标记为1.00美元,但来自英国的IPN(使用美元货币)表示mc_gross为1.20美元,而mc_fee表示为0.34(并且没有mc_shipping值)。请注意,这是一个简单的产品 - 没有订阅,运输,税收和其他复杂性。

所以,由于1.00美元与1.20美元不相符,并且(1.00美元 - 0.34美元= 0.86美元!== 1.00美元),我真的不知道确定该价格的公式是什么。这意味着有人可以使用PP按钮代码,更改价格并购买。然后IPN会耸耸肩并接受这个价格,除非我能找到验证价格的技巧。

请注意,我确实传递了一个自定义字段,告诉我产品ID是什么以及购买了多少数量,例如4pk小部件。

我查看了使用PHP动态创建加密支付按钮需要什么,它需要一个具有完全root功能的专用主机方案,因为它涉及安全证书和其他一些因素。所以,这似乎不太可能在这里使用。

1 个答案:

答案 0 :(得分:0)

创建加密支付按钮不需要完全root功能,但使用专用主机可以更轻松地保护您的私有证书。您可以咨询您的提供商,了解他们有哪些保护措施,以确保其他人无法进入您的主目录并窥探。

您可以在本地计算机上生成私有证书并将其上载到您的服务器。服务器将需要openssl扩展名才能执行签名。