2

Paypal 是否为“ cmd ”参数定义了一个值(用于通过发送cmd=_notify-validate以及接收到的值来验证 IPN 响应)只是为了取消付款?类似cmd=_notify-ignore 的东西?

我需要这个的原因是,我正在维护一个配置文件(我正在使用 PHP),我可以将"Allow_Payments"值设置为"Yes""No"。因此,不时在 Paypal 中启用和禁用付款是一种混乱的解决方案。另一个问题是我的“立即购买”按钮放置在不同的站点上,但它们都使用相同的 IPN 侦听器。这就是为什么我正在寻找可以在 IPN 侦听器中使用的解决方案。这就是为什么我认为 'cmd' 参数在这种情况下会有所帮助。

先感谢您。

4

2 回答 2

4

我相信你对 IPN 有错误的想法。

PayPal IPN 只是一个侦听器或处理程序。付款成功后将触发您的 IPN 。

我认为执行从您的 IPN 触发的取消命令是错误的,因为这将在收到付款后取消付款 - 并且对于刚刚付款的用户来说很烦人。

一个更好的选择是在 PayPal 支付页面之前使用一个包罗万象的处理页面。所有立即购买按钮都将指向与您的 IPN 托管在同一域中的此文档(创建结帐样式流程)。需要验证付款数据以防止欺诈(例如付款金额和业务电子邮件),然后检查您的“Allow_Payments”标志。如果允许付款并且我们有有效的付款数据,请继续使用 PayPal 付款。这样,您的用户将在付款之前被停止,并且没有麻烦取消或退款。

于 2012-07-03T10:09:20.840 回答
3

为了让您的服务器(商店)通知 PayPal 已购买产品的数量和价格,您的服务器通常会向客户的浏览器发回 HTTP 重定向。这会导致客户的浏览器被重定向到发生付款的 PayPal。

此重定向存在漏洞。如果购物者可以控制他们的浏览器,他们可以拦截此重定向并将产品的价格设置为 0 美元。

您真正必须准确检查这是否没有发生的唯一机会是在 IPN 阶段。如果您检测到价格/数量发生了意外情况,您必须在此时取消交易(付款后)。

于 2012-09-20T09:32:48.537 回答