支付 IPN - 支付集成问题 - 1 个贝宝帐户上的多个订阅

Posted

技术标签:

【中文标题】支付 IPN - 支付集成问题 - 1 个贝宝帐户上的多个订阅【英文标题】:Payment IPN - Payment Integration Issue - Multiple subscriptions on 1 paypal account 【发布时间】:2015-06-15 01:49:28 【问题描述】:

我的 PayPal 结帐系统有一个问题,我们似乎无法解决。这是问题所在。

让我正确设置场景:

User A = Office Manager of 3 realtors

User B = A realtor at that office

User C = Another realtor at the same office

User A is in charge of purchasing the upgrades to all of the realtors in this particular office (Users B &C). 

在我们的系统中,用户 A 必须登录到他们的帐户,点击相应的购物车并结帐。这会将他们带到 PayPal 结账处。他们登录并确认购买。这是一个持续 X 天的订阅。

现在,该用户注销并使用用户 B(因为他们是办公室经理)帐户登录并进行结帐。他们使用之前用于购买用户 A 升级的相同 PayPal 帐户登录。他们确认购买。

所以,让我们回顾一下我们目前所拥有的。用户 A 已使用 PayPal 帐户 1 登录并从我们的服务购买了两个单独的订阅。每个人都有自己独特的凭据。

我们继续,

用户 A 现在登录到用户 C 帐户,并再次使用同一个 PayPal 帐户重复这些步骤。

到目前为止一切都很好,因为没有人取消他们的订阅付款。现在这有点棘手。

用户 B 告诉办公室经理他们不再希望升级自己的帐户并要求经理处理。用户 A(经理)登录用于购买该办公室内所有订阅的 PayPal 帐户并取消用户 B 订阅。

现在这个动作已经发生了,这就是我们遇到问题的地方。因为在续订时间到来时,所有订阅都是在这个帐户下购买的,所以我们收到的 IPN 通知并未单独识别购买。基本上是说该帐户已付款(因为用户 A 和用户 C)仍然有有效订阅。因此,在我们这一端,系统认为用户 B 仍处于活动状态,他们获得了本应取消的“免费”升级。

我希望我解释得足够好。也许这是我们需要做的一个简单调整,以便从 PayPal 收到的信息使我们能够正确识别 3 次付款之间的正确识别,并仅保持已进行续订付款的帐户处于活动状态。

谢谢!

【问题讨论】:

【参考方案1】:

在这种情况下,我们面临的问题是,当我们取消一个帐户时,另一个帐户也会在这种情况下被取消。我们已按照您所说的进行设置。所有这些用户的付款都是从同一个 paypal 帐户完成的。

【讨论】:

嗨@debojit,你能澄清一下发生了什么吗?当买家试图在PayPal上取消一项订阅时,这两个订阅都被取消了吗?还是买家去 PayPal 并取消了一项订阅,但您的系统上的两个用户升级都被取消了? 你好马特,我们在这里给出一个场景。假设有两个用户 A 和 B。他们都使用相同的 paypal id(例如:abcd@gmail.com)购买订阅产品。时间( A= 13apr 10am,B=13apr 10.15am.At 10.30 am A 取消订阅。所以 A 应该在 4 月 14 日 10am 之前拥有该产品,B 应该继续(订阅每天更新)。但我们看到一天后4 月 14 日上午 11 点左右,两个订阅都被取消了(A 和 B)。我们按照您提到的方式设置了功能。但是我们正面临这个问题。您能提一下这里出了什么问题吗?谢谢。【参考方案2】:

简而言之,您应该注意每个 IPN 中返回的订阅 ID (subscr_id) — 这将唯一标识每个订阅。

当每个用户创建订阅时,您应该会获得一个 IPN,其中 txn_type 设置为 subscr_signup,订阅 ID 为 subscr_id。 每次处理订阅付款时,您都应该获得一个将txn_type 设置为subscr_payment 的IPN,以及subscr_id 中的相关订阅ID。 当用户 B 取消订阅时,您将获得一个将 txn_type 设置为 subscr_cancel 的 IPN,让您知道他们取消了订阅。 (订阅 ID 为subscr_id。) 当用户 B 的订阅期限到期时,您将获得一个将 txn_type 设置为 subscr_eot 的 IPN(同样,subscr_id 中的订阅 ID)。获得此 IPN 后,您可以停用此用户帐户的升级。

因此,如果您跟踪每个订阅 ID 及其所属的用户,应该很容易确定谁在付费,谁没有付费。

【讨论】:

我们已经尝试过了,但没有成功。 :) 关于可能解决的任何其他想法? 到底哪一部分没有工作?您根本没有收到任何 IPN 吗?您没有获得特定的 IPN 吗?或者您没有在 IPN 中收到订阅 ID? 请看debojit的回复。我邀请他们参加对话,因为他们更了解与 IPN 连接和未连接的内容。这个问题是独一无二的,因为它发生在一个贝宝帐户上购买了 2 个或更多订阅时。在测试中,订阅是在同一天购买的,并且持续相同的时间。我正在真实账户中测试 1 天的持续时间,但我们暂时无法解决此故障的原因。我非常感谢您的帮助。 我今天在一个真实账户上取笑时注意到,在订阅上创建的配置文件 ID 做了一些我直到今天才注意到的事情。以下是行动: 1) 付费订阅。这在 paypal 帐户中创建了一个操作,用于创建和完成。创建配置文件 ID 与完整配置文件 ID 不同。我立即取消了付款,现在记录了取消操作。该配置文件 ID 与创建的 ID 相同。为什么完成的个人资料 ID 与某些订阅相关联却不同? 嗨@CaptainObvious,你能给我提供个人资料ID吗?我想对此进行更多研究。

以上是关于支付 IPN - 支付集成问题 - 1 个贝宝帐户上的多个订阅的主要内容,如果未能解决你的问题,请参考以下文章

贝宝 IPN 消息

贝宝自适应支付和ipn响应

测试定期付款(贝宝 IPN)

从 cURL 支付向 paypal IPN 添加自定义变量

如何汇款到任何贝宝账户

有高手用ThinkPHP集成过paypal快速支付吗?有很急的问题请教,急急!