如何在贝宝结帐期间验证交易 ID (TXN)
Posted
技术标签:
【中文标题】如何在贝宝结帐期间验证交易 ID (TXN)【英文标题】:How to Validate Transaction id (TXN) during paypal checkout 【发布时间】:2016-10-08 07:47:20 【问题描述】:所以我需要在我的网站中集成 PAYPAL 结帐。而且我对 Paypal 集成没有太多经验。如果你能帮上忙,那就太好了。 所以我遵循了这个 Tutorial
我创建了两个 PAYPAL 沙盒帐户。一个给买方,另一个给卖方。 我可以用这些付款。 但问题出在success.php页面 我需要验证付款的地方。
我所做的是检查事务 ID 是否已存在于数据库中。但问题是success.php 使用GET 方法,并且可以在GET 方法中编辑事务ID。因此,将交易 ID 更改为任何内容(随机字符串)将验证交易 ID 不存在于数据库中并且您可以付款的条件。
因此,付款被标记为有效,余额被添加到用户数据库中。有什么方法可以检查交易 ID 是 Valid Paypal TX id。
谢谢:)
【问题讨论】:
呃...我认为本教程有点错误。您依靠用户返回您的成功页面来存储交易信息。如果用户在完成交易后没有返回您的成功页面会怎样?那么你会遇到问题,因为事务不会保存在你的数据库中。 但如果他们使用 html 代码,并更改成功页面,那么这是他们的问题。 我不是指他们搞乱 HTML。我说的是他们没有点击返回您网站的链接。即使您添加设置以自动将他们重定向回您的站点,在他们无法到达您的站点的情况下也可能发生某些事情。处理付款的正确或更安全的方法是使用 PayPal IPN,如教程末尾所述并由 jsabina 概述。 【参考方案1】:您不应依赖退货页面来验证交易。 您通过 GET 收到的内容可以更改,客户可能会在之前关闭页面或连接问题永远不会被重定向。 使用 PayPal 标准,您应该使用 IPN 来验证付款 https://developer.paypal.com/docs/classic/ipn/integration-guide/IPNIntro/ 网上有关于他们的文档和脚本示例的信息。 您需要设置一个监听器,在交易执行后将由 paypal 调用
【讨论】:
是的,IPN 是 PayPal 推荐的完成订单的方式,主要是因为它是一种强大且安全的机制。 PDT 只是为了向客户提供确认,如果他们返回站点。 PayPal 建议检查多个 IPN 值是否存在欺诈,例如,receiver_email 与您的主要 PP 电子邮件匹配,以及产品代码和价格匹配,此外仅针对 txn_id 的一条“已完成”txn_status IPN 消息发送商品。请注意,IPN 处理并非微不足道,但他们提供的 PHP 代码示例非常可靠。以上是关于如何在贝宝结帐期间验证交易 ID (TXN)的主要内容,如果未能解决你的问题,请参考以下文章