Paypal是否为“ cmd ”参数定义了一个值(用于通过发送 cmd = _notify-validate 以及接收到的值来验证IPN响应)只是取消付款?像 cmd = _notify-ignore ?
之类的东西我需要这个的原因是,我正在维护一个配置文件(我正在使用PHP),我可以将“Allow_Payments”值设置为“是”或的 “否”即可。因此,在Paypal中不时启用和禁用付款是一种混乱的解决方案。另一个问题是我的“立即购买”按钮放在不同的网站上,但所有这些按钮都使用相同的IPN侦听器。这就是为什么我正在寻找一个可以在IPN Listener中使用的解决方案。这就是为什么我认为'cmd'参数在这种情况下会有所帮助。
提前谢谢。
答案 0 :(得分:5)
我相信你对IPN有错误的想法。
PayPal IPN只是一个监听器或处理程序。 成功付款后,您的IPN将被触发。
我认为实施从您的IPN触发的取消命令是错误的,因为这会在收到后取消付款 - 并且对刚刚付款的用户来说很烦人。
更好的选择是在PayPal付款页面之前使用全能处理页面。所有立即购买按钮将指向与您的IPN(创建结帐样式流)在同一域上托管的此文档。需要验证付款数据以防止欺诈(例如付款金额和商业邮件),然后检查您的“Allow_Payments”标记。如果允许付款且我们有有效的付款数据,请继续付款。 这样,您的用户将在付款前停止使用,并且无需取消或退款。
答案 1 :(得分:3)
对于您的服务器(商店)通知PayPal有关已购买产品的数量和价格,您的服务器通常会将HTTP重定向发送回客户的浏览器。这会导致客户的浏览器被重定向到付款的PayPal。
此重定向存在漏洞。如果购物者控制了他们的浏览器,他们可以拦截此重定向并将产品的价格设置为0 $。
您真正必须准确检查未发生这种情况的唯一机会是在IPN阶段。如果您发现价格/数量出现意外情况,则必须在此时取消交易(付款后)。