您如何将 Paypal IPN 确认连接到用户?

Posted

技术标签:

【中文标题】您如何将 Paypal IPN 确认连接到用户?【英文标题】:How do you connect a Paypal IPN confirmation to a user? 【发布时间】:2010-10-08 17:05:46 【问题描述】:

我想使用 Paypal 的 IPN 服务来验证我网站的定期订阅费用的付款。您如何将 IPN 确认与您网站中的用户联系起来?

IPN 确认消息包含姓名、电子邮件、paypal ID、定期付款 ID,但它似乎没有给出唯一标识符,因为我不知道 paypal ID 或定期付款 ID 来自哪里,而且可能不是将用户在其贝宝帐户(或在那里输入)上的姓名/电子邮件与我在我的网站上为他们拥有的姓名/电子邮件唯一匹配是微不足道的(可能有很多 John Smith,并且该人可能会选择使用不同的电子邮件。)

1) 当我向 Paypal 发送初始付款请求时,我可以在请求他们发回给我的 URL 中附加一个唯一的 UUID,因此如果我为该用户保存该唯一 ID,我可以将该付款确认与发起它的用户。我做的比现在更难吗?有没有更简单的方法?

2) 另外,对于经常性/订阅费用,paypal 是否总是使用我在初始付款时指定的 URL?有没有人有使用 IPN 的定期 Paypal 付款的实际经验,它是否重用了那个唯一的 URL?还是在收到第一笔定期付款后,我是否必须将 Paypal ID 与用户关联?

【问题讨论】:

【参考方案1】:

1) 您可以在初始订阅设置中发送一个“item_number”参数,该参数将返回给您。我建议在其中嵌入一个识别令牌。

2) 如果您的意思是“return”参数,不,那是为了在订阅设置结束时将用户发送到。续订是自动的,不会“ping”该页面。

【讨论】:

【参考方案2】:

将唯一数据附加到付款请求几乎是公认的方法。

我对经常性收费没有任何经验。

【讨论】:

您知道如何在通过单击 PayPal“立即付款”按钮生成的初始 PayPal 请求中传播一些数据以及其他 PayPal 数据吗? @VladimirDespotovic 在“立即付款”按钮和付款请求 API 中都有一个额外的字段,您可以在其中添加自定义数据。该自定义数据会在与交易相关的每个响应中发回给您。【参考方案3】:

我最近还使用 Paypal 设置了一些重复付款。

我实际上希望人们在支付订阅费用后注册为会员,如果他们愿意的话。因为必须注册为会员可能会给销售过程增加一些摩擦。所以我不会随订阅按钮发送任何用户信息。

我的 IPN 脚本的作用是在 Activations 表中生成一个与 Paypal 订阅 ID 相关联的唯一激活码,然后将此代码发送给支付订阅费用的人,并附上有关如何激活的说明。

在激活时,您需要注册或登录。此时,用户 ID 已添加到 Activations 表中的相关行。

当 EndOfTerm IPN 通知进入 IPN 脚本时,会根据 IPN 中给出的 SubscriberID 从 Activations 表中查找用户 ID。然后我可以对那个用户做任何我需要做的事情来禁用他们的订阅。

IPN 脚本的 URL 始终保持不变。

【讨论】:

您对哪些 txn_type 状态代码有反应?我很难回答这个问题。 ***.com/questions/13855287/…【参考方案4】:

1) 您想使用item_number 参数。在您向客户显示的 html 表单中设置此项,它将由 paypal IPN 返回给您,因此您可以在此处输入数据库行 ID,并使用它来匹配合适的人。

【讨论】:

以上是关于您如何将 Paypal IPN 确认连接到用户?的主要内容,如果未能解决你的问题,请参考以下文章

PayPal IPN 模拟器:尝试连接到 URL 时出现问题。请检查网址并重试

PayPal IPN - 如果响应无效,要发回啥 http 状态标头?

如何集成 Paypal IPN 以进行定期付款?

Paypal IPN 模拟器问题

您是不是需要使用 IPN 和快速结帐来确认 PayPal 付款?

无法连接到文件系统。请确认您的凭据