我明白IPN的工作原理,以及发送信息、验证等的基本思路。但是,对于我的生活,我不能让它工作!!。
这是我想做的...
用户选择产品的某个部分进行购买,一旦点击,就会链接到一个paypal按钮,我在这个按钮上添加了2个文本字段。首先是用户ID,其次是所选部件的名称--这两个字段的值都是自动添加进去的。这一切都很好。
然后,他们按 "立即购买",填写他们的卡的详细信息,它被购买并重定向到一个成功的页面。
然而,我希望它能更新他们在我的数据库中的个人资料,以显示他们已经购买了该产品。
我知道使用PayPal的IPN,我可以将信息发送到我网站上的一个页面来检查,如果付款完成,然后采取任何需要的行动。
我已经尝试了PayPal网站本身的脚本,但我没有得到任何回应。谁能给我一个非常非常简单的方法来实现我的要求?因为每一个教程都过于复杂,或者不起作用,而且例子对我没有丝毫帮助,他们跟你说得好像你应该知道怎么做一样。
我甚至已经读完了整个PDF,但我还是对如何让这个工作毫无头绪。有什么帮助吗?
这真的取决于你如何将用户存储在数据库中。
基本上,你会想看一看 IPN变量 看看当脚本接收到IPN消息时,你可以用什么方法将数据与你的数据库关联起来。
假设你有以下数据库。
Users: ID, email, etc.. etc..
Transactions: ID, emailofUser, invoiceID, Success/Fail(bool)
你想在将数据发送到PayPal之前将信息存储到数据库中 - "嘿,这家伙被送到PayPal购买这个"。
然后,当你想确保物品确实被购买时,IPN就会出现。你不想因为被发送到PayPal就给别人提供购买商品的好处,你要确保他们真的完成了付款。根据IPN变量,你可以很容易地使用 "发票 "变量(只要你在向PayPal发送数据时适当地定义它)。
因此,假设你向PayPal发送了一个买家,他完成了结账,而你的脚本收到了一个IPN消息。你会想做一些类似下面的事情。
检查一下这是什么发票
mysql_query("SELECT * FROM Transactions WHERE invoiceID=$_POST['invoice']")。
查看交易是否成功。
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
}
你应该看看下面的链接,其中描述了更多关于管理你的订单的内容。