如果IPN听众在我的条件不合格时应该怎么做?

时间:2017-01-12 23:56:07

标签: php paypal listener paypal-ipn

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

1 个答案:

答案 0 :(得分:0)

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

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

因此您无法将用户重定向到任何位置。此外,您要执行的操作,都应该在代码的“已验证”部分中完成,因此您也不会将任何数据返回给PayPal。

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

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

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

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

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

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