如果我的 IPN 侦听器不满足我的条件,它应该怎么办?

What should my IPN listener do if it fails my conditions?

我正在努力为我的 Paypal IPN 侦听器设置条件,例如确保交易编号与我数据库中的先前编号不匹配,确保收件人电子邮件正确等。如果这些测试之一失败了吗?它会停止付款吗?用户应该被重定向到某个地方吗?感谢所有帮助!

这里只是将我的评论合并为一个答案,以防万一它可以帮助您和任何其他可能有相同问题的未来访问者:)

当用户完成支付并且用户仍在使用 PayPal 网站时,PayPal 网站会调用您的 PayPal IPN 侦听器代码。

所以你不能将用户重定向到任何地方。另外,你想做什么,都应该在代码的 "VERIFIED" 部分完成,所以你也不会 return 向 PayPal 发送任何数据。

你应该自己处理你想做的事情,然后正如@Barmar 所说,将你的数据记录到本地文件或数据库中,然后手动或通过你为你编写的某种类型的自定义日志查看器监视这些日志文件申请...

当然,您已经在 PayPal 中设置了两个 links 以获取成功,并取消了 PayPal 将 return 用户设置为其中一个 links 取决于付款状态。

当将用户从您的站点发送到 PayPal 进行付款时,您可以在名为 custom 的字段中发送一些自定义数据,您可以使用此字段发送 userID 或当前用户的任何唯一 ID .然后当 PayPal 调用您的 IPN 侦听器时,会将此字段连同交易数据发送给您。

假设您的条件之一不合格,但在 PayPal 上付款成功。您可以在数据库或本地文件中为该条件设置记录 + userID 或您从完成付款的用户那里获得的唯一密钥(来自自定义字段)。然后在您的成功页面中,您可以使用访问该页面的用户的 userID 查询 table,如果找到任何记录,则表示出现问题。然后你可以做你在这种情况下必须做的事情(显示相关消息等)

但使用此方法需谨慎,因为用户可能会在付款后关闭浏览器而不会return访问您的网站!

所以你可以让你的代码成功link,但你也必须在你的管理部分监控交易记录。因为您可能需要在您的某些条件失败或任何其他需要您身边的人际互动的情况下联系用户...