【问题标题】:Paypal + PHP: how to receive a value on success salePaypal + PHP:如何获得成功销售的价值
【发布时间】:2011-01-14 11:37:44
【问题描述】:

我的网站上有一个表单中的 paypal 按钮。该表单有一个称为 ID 的附加输入,用户必须在其中输入特定值。

销售完成后,Paypal 将用户返回到 domain.com/credits?done

如何接收用户在 /credits?done 中输入的原始 ID 值?需要它来自动修改他的数据库记录。

谢谢。

【问题讨论】:

    标签: php paypal


    【解决方案1】:

    请参阅 PayPal 集成中心网站上的 PayPal Instant Payment NotificationIPN PHP code sample 文档。

    【讨论】:

      【解决方案2】:

      如果您引用的 ID 是您使用的唯一引用,请使用 item_number 元素在 Paypal 和您的网站之间来回传递。

      在您向客户显示的 HTML 表单中设置 ID,并注意您还可以指定 3 个 URL:

      <input type="hidden" name="item_name" value="Box of stuff"></input>
      <input type="hidden" name="item_number" value="12345"></input>
      <input type="hidden" name="return" value="http://www.blah.com/paypal_thanks.asp"></input>
      <input type="hidden" name="notify_url" value="http://www.blah.com/paypal_callback.asp"></input>
      <input type="hidden" name="cancel_return" value="http://www.blah.com/paypal_cancel.asp"></input>
      

      我在上面使用了“paypal_callback.asp”,这会覆盖您在登录 Paypal 并编辑设置时可以设置的 IPN 链接。所以这个值是可选的。

      scrpt paypal_callback.asp(假设是用 ASP 写的)可以这样说:

      iAdvertId = Request.Form("item_number")
      

      请注意,此页面不是向用户显示的页面!它在幕后受到 Paypals 服务器的攻击。烦人的是 paypal_callback.asp 不会立即被 Paypal 调用。可能是 3 天后...或者他们可能会在一个月后取消付款。

      在我的示例中,客户将被重定向到 paypal_thanks.asp 或 paypal_cancel.asp。这些页面不会传递表单或查询字符串,因此获取您在item_number 中放置的号码的唯一方法是在用户提交购买表单之前将其存储在 cookie 中。

      当您收到来自 Paypal 的电子邮件时,item_number 将在主题行中提及,在邮件正文中也会提及(在描述行的末尾)。

      还可以在自定义字段中设置附加信息。 Paypal documentation 详细说明了如何执行此操作,您可以在 sandbox 中使用他们的 IPN 模拟器对其进行测试。

      【讨论】:

      • 如果我需要发送 2 个变量怎么办?
      • 我测试了整个东西,但我有一个问题。一旦转移成功,它会将我重定向回 domain.com/buy?merchant_return_link=blabla 而不是按钮中设置为成功返回点的链接。为什么?
      • 只是我的一个习惯。我敢肯定它来自多年前...也许 IE 很不高兴,除非你添加它。现在想不起来了!
      【解决方案3】:

      您可以创建一个简单的购物车系统,该系统将有一张独特的发票来区分每笔交易。将付款数据发送到贝宝时,将此发票作为参数传递。任何其他数据都可以只存储在您的数据库中,无需将其发送到贝宝,因为您可以使用发票作为唯一标识符来确定每笔交易。

      您还需要创建一个ipn 处理程序页面,以便在用户在那里付款时从贝宝接收数据,以便您可以更新数据库中的付款状态。这样,用户在付款后不必点击返回您的站点链接,但您仍然可以更新相关数据。

      为了使集成更容易,您可以考虑使用Micah Carrick's Paypal IPN Class。基本上它和paypal提供的代码是一样的,但是它被封装在一个类中,所以你可以在你的页面中使用它。

      【讨论】:

        猜你喜欢
        • 2018-12-06
        • 2015-04-24
        • 1970-01-01
        • 2022-10-04
        • 2020-07-13
        • 2013-09-26
        • 2019-11-24
        • 2015-10-07
        • 1970-01-01
        相关资源
        最近更新 更多