简单的Paypal IPN示例?

19
我想要一个带有提交按钮的文本输入表单,该按钮可连接到PayPal。支付成功后,该表单的内容应存入MySQL数据库。
这听起来很简单,但我遇到了PayPal IPN的问题。
有谁能指导我一下吗?
谢谢!
6个回答

15

PayPal网站上有一些示例代码。然而,你将面临的更大问题是用户可能会想要实时响应。这通常通过处理当用户点击返回到您的网站时提交给您网站的PDT数据来完成。稍后PayPal会向您的IPN网址发布类似的数据。您需要避免重复处理数据。

此外,所讨论的数据仅为PayPal有关交易的数据。它不包含任意数据。您应该在将客户发送到PayPal之前记录客户的订单,或者查找一个直接传递的变量。例如,创建计费协议时,有一个名为custom的变量,它会像您创建它时传回给您。您可以在该变量中存储订单编号或任何您想要的内容。请注意验证其内容,以确保其对于交易细节仍然正确。


@Robert,你好。我是这样设置的:顾客到PayPal支付订单,然后被重定向回一个返回URL,在那里检查并存储付款信息到数据库,然后生成一封电子邮件,其中包含有关运输等方面的详细信息。但我想知道,如果顾客在支付完PayPal后关闭浏览器,然后没有回到我的网站,订单就无法存储?因此,我想使用IPN来完成,但我不确定哪种方式最好。你有什么建议吗? - Sarah

6
您无法从Paypal获取表单的全部内容,也不需要这样做。您将收到一个回传到您在“return”字段中发送的地址的POST请求。从您的表单到回传过程中传递任意信息的最佳方法是使用“item_number”字段(最好将其用作与要跟踪的任何信息相关联的数据库中的ID)。请注意,保留html标记。

6
我知道这个问题已经几年前就有答案了,但对于未来会遇到这个问题的人来说……
我发现这个类和示例特别有用,以至于我在无数项目中重复使用:http://www.micahcarrick.com/php-paypal-ipn-integration-class.html 更新:该页面现在已下线,但在这里有一个存档版本,仍然有可下载的链接:https://web.archive.org/web/20140210202247/http://www.micahcarrick.com/php-paypal-ipn-integration-class.html 以下是存档下载的直接链接:https://web.archive.org/web/20140210202247/http://www.micahcarrick.com/files/paypal-1.3.0.zip 从存档页面中,作者还链接到他的库的新版本,现在可能是更好的选择:https://github.com/Quixotix/PHP-PayPal-IPN

1
@michaelmsm89 没问题。幸运的是,archive.org有一个备份,并且有一个可用的下载链接。我会更新我的答案。 - Josh1billion

2
这个 PHP示例 可以帮助你开始使用IPN。
在这里,你可以找到 PayPal 的 PHP API,尽管它不包括处理 IPN 的示例,但仍可能有用。

1

如果您点击此链接,您将找到一些IPN脚本的示例。

https://paypaltech.com/SG2/

只需选择您的编程语言和所需要的脚本类型。


当我选择C#时,该网站只会显示“即将推出”。 - Gordon Tucker

0
我猜你想要的是制作一个表单,当用户点击提交按钮后,会被带到PayPal,然后回到你的网站,这样你就可以获取你的表单内容?
我没有看到人们这样做过,我看到人们这样做:当用户提交表单时,他们会被带到一个处理表单的脚本,在该脚本中,他们会被重定向到PayPal进行付款,然后你可以使用IPN来处理PayPal的响应。

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接