【问题标题】:PayPal IPN and updating databasePayPal IPN 和更新数据库
【发布时间】:2011-06-30 21:39:04
【问题描述】:

我了解 IPN 的工作原理,以及发送信息、验证等的基本概念。但对于我来说,我无法让它工作!!

这就是我想要做的......

用户选择要购买的产品的某个部分,一旦他们点击它,他们就会链接到我添加了 2 个文本字段的 paypal 按钮。第一个是用户 ID,第二个是他们选择的部分的名称——这两个值都是自动添加的。一切正常。

然后他们按“立即购买”并填写他们的卡详细信息,然后将其购买并重定向到成功页面。

但是,我希望它更新他们在我的数据库中的个人资料,以显示他们已经购买了该产品。

我了解,使用 PayPal 的 IPN,我可以将信息发送到我网站上的某个页面进行检查,如果付款完成,则采取任何必要的行动。

我已经尝试了 PayPal 网站本身的脚本,但完全没有得到任何响应。有人可以给我一个非常非常简单的方法来实现我所追求的吗?因为那里的每个教程都过于复杂或不起作用,而且这些示例对我没有丝毫帮助,而且它们与您交谈,就好像您应该已经知道它是如何完成的一样。

我什至已经阅读了整个 PDF,但我仍然不知道如何使它工作。有什么帮助吗?

【问题讨论】:

  • 我正在努力实现同样的目标,+1。

标签: paypal paypal-ipn


【解决方案1】:

这实际上取决于您如何将用户存储在数据库中。

  1. 他们是如何识别的,他们有用户名吗?
  2. 您是否在将信息提交给 PayPal 之前将交易保存到数据库中?

基本上,您会想查看IPN Variables,看看当您的脚本收到 IPN 消息时,您可以使用什么将数据与您的数据库关联起来。

假设您有以下数据库:

Users: ID, email, etc.. etc..

Transactions: ID, emailofUser, invoiceID, Success/Fail(bool)

您想在将数据发送到 PayPal 之前将信息存储到数据库中 - “嘿,这个人被派到 PayPal 购买这个”。

然后,当您想要确保该项目是实际购买时,IPN 就会出现。您不想为某人提供购买物品的好处,只是为了发送到 PayPal,您想确保他们确实完成了付款。脱离 IPN 变量,您可以轻松地使用“发票”变量(只要您在将数据发送到 PayPal 时适当地定义它)。

假设您将买家发送到 PayPal,他完成了结帐,并且您的脚本会收到一条 IPN 消息。您需要执行以下操作:

  1. Verify the IPN
  2. 检查这是什么发票

    mysql_query("SELECT * FROM Transactions WHERE invoiceID=$_POST['invoice']");

  3. 查看交易是否成功。

    if ($_POST['payment_status'] == 'completed')
    { 
    //update whatever information you need to
    }
    else
    {
    //something else happened with this transaction, put a flag on it for review by
    //an admin
    }
    

您应该查看下面的链接,其中描述了有关管理订单的更多信息

Order Management Automation Order Management Guide

【讨论】:

  • 非常感谢!不幸的是,我最终使用了不同的付款方式,所以我实际上无法尝试对其进行测试,但是根据您的说明似乎很容易理解,它非常详细,我不明白为什么它不会工作。我相信我将来会需要它。
猜你喜欢
  • 2013-06-14
  • 2021-06-17
  • 2015-04-13
  • 2012-05-14
  • 2020-05-05
  • 1970-01-01
  • 1970-01-01
  • 2017-09-19
  • 2013-02-22
相关资源
最近更新 更多