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

9

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

IPN确认消息具有名称、电子邮件、Paypal ID、定期付款ID,但似乎没有提供唯一标识符,因为我不知道Paypal ID或定期付款ID来自哪里,而且可能不容易将用户在其Paypal帐户上(或输入其中)的名称/电子邮件与我在我的网站上为他们拥有的名称/电子邮件匹配(可能有许多约翰·史密斯,并且该人可能选择使用不同的电子邮件地址)。

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

2)此外,对于重复/订阅收费,Paypal是否总是使用我指定的初始付款启动时的URL?是否有任何使用IPN的重复Paypal付款的实际经验,它会重复使用该唯一URL?还是我必须在收到第一笔重复付款后将Paypal ID与用户关联起来?

4个回答

3

将唯一数据附加到付款请求中是做法上已经被接受的方式。

我没有处理循环收费的经验。


你知道如何在 PayPal 的“立即支付”按钮点击生成的初始 PayPal 请求中,传递一些数据以及其他 PayPal 数据吗? - Vladimir Despotovic
2
@VladimirDespotovic 在“立即支付”按钮和付款请求API中都有一个额外的字段,您可以在其中添加自定义数据。该自定义数据将在与交易相关的每个响应中发送回给您。 - greyfade

2

我最近也使用Paypal设置了一些定期付款。

实际上,我希望人们在付费订阅后才注册成为会员(如果他们想要的话)。因为注册成为会员可能会增加销售过程中的阻力。因此,我不会在“订阅”按钮中发送任何用户信息。

我的IPN脚本生成一个与Paypal subscriptionID相关联的唯一激活代码,并将此代码发送给支付订阅的人,其中包含如何激活的说明。

在激活时,您需要注册或登录。此时,userID将添加到Activations表中的相应行中。

当EndOfTerm IPN通知进入IPN脚本时,它根据IPN中提供的SubscriberID从Activations表中查找userID。然后,我可以对该用户执行所需的操作以禁用其订阅。

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


你对哪些txn_type状态码做出反应?我很难得到这个问题的答案。https://dev59.com/12zXa4cB1Zd3GeqPPQcP - Volomike

0

1) 你需要使用item_number参数。在向客户展示的HTML表单中设置它,PayPal IPN会将其返回给你,因此你可以在这里放置一个数据库行ID,并用它来匹配正确的人。


0

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

2) 如果您指的是“return”参数,那么不,它是用于在订阅设置结束时将用户发送到的页面。续订是自动进行的,不会“ping”该页面。


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