【问题标题】:How to Validate Transaction id (TXN) during paypal checkout如何在贝宝结帐期间验证交易 ID (TXN)
【发布时间】: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 概述。

标签: php mysql paypal payment


【解决方案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 代码示例非常可靠。
猜你喜欢
  • 2011-07-17
  • 2021-12-15
  • 1970-01-01
  • 2015-08-11
  • 2016-01-04
  • 1970-01-01
  • 2012-09-28
  • 2015-12-30
  • 2013-08-09
相关资源
最近更新 更多