【问题标题】:Unique PayPal IPN variable for buyer and seller买方和卖方的唯一 PayPal IPN 变量
【发布时间】:2014-01-04 20:22:22
【问题描述】:

我一直在开发一个网站,人们可以在该网站上在线向我提交问题,我会收取少量费用来回答这些问题。我正在使用 PayPal 收取这笔小额费用,并且我最近成功实施了 PayPal IPN 以收集交易 ID。我计划做的是存储交易 ID,并在他们提出问题时询问个人交易 ID。一旦一个事务 ID 有一个与之关联的问题,它就会被标记为已使用并且不能被使用两次。我选择了这种方法,而不是让人们创建一个帐户并在每个帐户中存储变量,因为我认为人们会被阻止使用我的服务(它与学术界有关),所以这有点完美。

那么..有什么问题?

我让一个朋友尝试了一下,不幸的是我们发现我存储的交易ID与他获得的交易ID不同,因此彻底破坏了我预想的系统.

我的问题

通过 PayPal IPN 传递的唯一变量是什么,我可以使用它来询问买家并确保它不会被使用两次?

我希望流程自动化,从而消除发票的可能性,因为您每次都必须手动完成。

感谢您的想法和努力。

【问题讨论】:

  • 您是如何获得交易 ID 的?你应该得到它:$_POST['txn_id'],而不是你应该将它存储在数据库中。我用它将它附加到实际的 URL(在使用当前时间模式对其应用 md5() 之后),这给了我一个唯一的值(存储在数据库中),而不是用来附加到通过电子邮件发送的 URL到贝宝用户帐户,使用$_POST['receiver_email']
  • @SolomonClosson 我正在和你一样的庄园里取回它。我喜欢这个主意,但你如何确保有人不只是重复使用该 URL?
  • 您可以在 views 中放置一列,每次访问该 url 时,增加 views 数据库列。或者您可以调用列locked,当它被访问时,将其从0更改为1。如果列,lockedviews(无论您决定如何称呼它)等于1,而不是don '不允许访问。应该是TINYINT(2) db 列。

标签: php paypal transactions paypal-ipn


【解决方案1】:

您可以在您的 PayPal 集成中传递 custom,该信息随后会在 IPN 消息中返回。

即,对于快速结帐:

METHOD=SetExpressCheckout  
PAYMENTREQUEST_0_AMT=1.00  
RETURNURL=http://...  
CUSTOM=yourUniqueDataHere  

或支付标准:

<input type="hidden" name="custom" value="yourUniqueDataHere">

交易完成后,您可以在 IPN 消息的 POST 数据中找到custom

【讨论】:

    猜你喜欢
    • 2015-04-10
    • 2020-10-29
    • 2011-12-27
    • 1970-01-01
    • 1970-01-01
    • 2012-03-03
    • 2012-12-05
    • 2011-06-21
    • 2012-01-26
    相关资源
    最近更新 更多