【问题标题】:What should my IPN listener do if it fails my conditions? [closed]如果 IPN 侦听器不符合我的条件,我应该怎么做? [关闭]
【发布时间】:2017-01-12 23:56:06
【问题描述】:

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

【问题讨论】:

  • 我刚刚检查了我们的代码。如果出现问题,它会记录错误并且不会更新用户的帐户。无论成功与否,它都不会向 PayPal 发送任何内容。我想当监听器运行时,客户的账户已经被扣款了。
  • 但这是与我无关的旧代码,我不能保证它实际上是正确的程序。
  • 听起来更像是商业实践,而不是编码逻辑
  • @nogad 好点。有什么好的论坛可以发这个吗?
  • @Barmar 记录的信息去哪儿了?

标签: php paypal listener paypal-ipn


【解决方案1】:

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

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

因此您不能将用户重定向到任何地方。此外,您想要做的一切都应该在代码的“已验证”部分完成,因此您也不会将任何数据返回给 PayPal。

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

当然,您已经在 PayPal 中设置了两个链接以获得成功并取消哪个 PayPal 将根据付款状态将用户返回到这些链接之一。

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

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

但是你必须小心使用这种方法,因为用户可能会关闭浏览器,付款后不会返回你的网站!

因此,您可以将代码放在成功链接中,但您还必须在管理部分监控交易记录。因为您可能需要在某些条件失败或任何其他需要您身边的人机交互的情况下联系用户...

【讨论】:

    猜你喜欢
    • 2012-02-11
    • 2014-07-30
    • 2022-11-12
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2014-02-28
    相关资源
    最近更新 更多