9

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

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

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

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

4

4 回答 4

3

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

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

于 2009-02-19T21:44:07.603 回答
2

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

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

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

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

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

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

于 2009-02-19T22:10:45.823 回答
0

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

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

于 2009-02-19T21:44:03.097 回答
0

1) You want to be using the item_number parameter. Set this in your HTML form shown to the customer, and it will be returned to you by the paypal IPN, so you can put a database row ID in here, and use it to match up to the right person later.

于 2010-02-11T16:46:51.253 回答