使用 createbutton api 进行的付款与 ipn 消息之间的关系

Relation between payment made with createbutton api and ipn message


我们的客户通过电子邮件发送他们对我们产品的要求。他们的请求保存在我们的数据库中,在我们检查他们的请求后,我们想向他们发送一封包含贝宝付款的电子邮件 link。要执行此操作,我正在使用 Paypal 的 BMCreateButton ButtonManager API 方法。

https://developer.paypal.com/docs/classic/api/button-manager/BMCreateButton_API_Operation_NVP/

此方法 returns EMAILLINK 参数,我在电子邮件中使用此参数将用户重定向到贝宝支付页面。此方法还 returns HOSTEDBUTTONID 并且我将此参数和 EMAILLINK 参数保存到数据库中以建立电子邮件之间的关系 link(hostedbuttonid) 和用户请求。

对于支付通知,我想我唯一的选择是Paypal的IPN。我开发了一个页面来处理来自 paypal 的 IPN 消息,它工作正常,但是当我想将支付信息与发送给客户的电子邮件 link 联系起来时,问题就出现了。我的意思是我想知道这笔付款是针对哪个请求进行的。 IPN 消息没有 return 有关 HOSTEBUTTONID 的任何信息。它 returns btn_id(不同于 HOSTEBUTTONID),txn_idipn_track_id 但其中 none 可用于将客户请求(或发送的电子邮件)与付款相关联。

你对我的问题有什么建议吗?或者您认为我应该使用另一种方式向用户发送付款电子邮件,而不是 BMCreateButton ButtonManager API 的方法。

在为按钮设置标准 PayPal 变量的 BMCreateButton 调用中,添加 CUSTOM 参数。在其中您可以传递任何您想要的值(最多 256 个字符),然后相同的值将返回到 IPN 中,因此您可以相应地关联它。

如果您有特定的订单 ID,您可以改用 INVOICE 字段,它也会在 IPN 中返回。