使用 Paypal IPN 订阅

Posted

技术标签:

【中文标题】使用 Paypal IPN 订阅【英文标题】:Subscriptions with Paypal IPN 【发布时间】:2010-11-06 21:29:51 【问题描述】:

我正在使用运行良好的 Paypal IPN 向网站添加订阅,我可以成功创建新订阅并验证它。该订阅有两周的免费试用期。不幸的是,该指南对订阅状态有点含糊。

目前,一旦收到 subscr_signup 或 subscr_payment,用户帐户将获得订阅状态,并在收到 subscr_cancel 或 subscr_failed 时删除。我相信这是正确的,但最好确认一下。

还有什么是 subscr_eot? IPN 指南将其描述为“订阅期结束”。试用期结束后会触发吗?

【问题讨论】:

【参考方案1】:

subscr_eot 在用户的最后一次付费间隔到期时发送。 subscr_cancel 在用户取消订阅后立即发送 - 例如:

用户在第 1 天注册订阅,每月计费一次。 subscr_signup 立即发送,subscr_payment 在付款完成后立即发送(通常也是立即发送)。

在第 13 天,用户取消了。 subscr_cancel 会立即发送,尽管用户在技术上已经支付到第 30 天。此时取消取决于您。

在第 30 天,发送 subscr_eot - 用户已取消,这是他最后一次付款的日期。

试用订阅没有太大变化 - 如果用户在试用订阅结束前取消,则立即发送subscr_cancel,并在试用结束时发送subscr_eot

【讨论】:

我不确定这一定是真的。我认为这取决于他们拥有的订阅类型,从 I/S 等开始 我听说 subscr_* 是旧方法。真的吗?无论如何,我试图弄清楚这些 txn_type 值。 ***.com/questions/13855287/… 只是补充一点-afaik-如果您没有进行免费试用,那么只有在第一次付款也成功时才会发送“subscr_signup”。所以你可以只听 subscr_signup 和 subscr_eot 来激活/停用订阅。 @Peter subscr_eot 结束后,我们是要求用户重新注册订阅还是修改现有订阅?那么在学期结束后它会是 subscr_modify 还是 subscr_signup 。还是针对已取消的用户? 非常感谢您描述 subscr_eot【参考方案2】:

另外,一个有趣的细节是subscr_eot 如何与subscr_failed 协同工作。

看起来subscr_eot 出现在FINAL subscr_failed 之后。因此,如果您在您的帐户中将其设置为自动重试失败的付款 3 次,那么它应该是这样的:

第一次付款失败 => subscr_failed 第二次付款失败=> subscr_failed 第三次付款失败 => subscr_failed 和 subscr_eot

所以基本上在你的代码中你可以设置subscr_failed来触发像

这样的电子邮件

您好,用户, 请花点时间检查 您的付款信息,您可能需要 更新信用卡到期 日期等。您仍然可以访问, 我们过几天再试。

并设置 subscr_eot 以实际关闭他们的订阅并触发类似

的电子邮件

抱歉,我们还没有收到付款 并删除了您的个人资料。你 仍然可以通过登录并更新您的付款信息来重新激活它

基本上,这是一种“不错”的做法,因此客户有一个宽限期,并且他们的帐户不会因为信用卡过期或类似情况而意外关闭。

【讨论】:

付款失败和发送 subscr_eot 通知是否仍然像 2009 年那样有效? @ajbeaven:看来自从帖子在四月更新以来,信息仍然是最新的。 @BrainArmstrong 在 subscr_eot 结束后,我们是要求用户重新注册订阅还是修改现有订阅?那么在学期结束后它会是 subscr_modify 还是 subscr_signup 。还是针对已取消的用户?【参考方案3】:

Chris 发布的帖子最近已更新。

2010 年的某个时候,当用户取消帐户时,PayPal 停止使用 subscr_eot。在多次投诉后,他们恢复了这一点,但花了 6 个月的时间才这样做。这意味着您可以再次按照 Peter 在接受的答案中描述的方式处理订阅通知。

来自 PayPal 代表:

subscr_cancel 表示配置文件是 取消了,没有未来 付款。但是,如果买家有 已支付当前帐单 循环,因为它们预先充电, 那么你可以使用 subscr_eot 来 终止配置文件。

但仍不确定如果多次尝试付款失败会发生什么。目前的 PayPal 文档很糟糕。

【讨论】:

当然是。关于 API/IPN 相关内容的权威文档很少,而且通常与 other 文档或称为现实的混蛋相矛盾。 是的,就像那天 _payment ipn 发生在 _signup ipn 之前:D【参考方案4】:

subscr_eot是否被发送取决于帐户是否是新帐户,这有点超出我的理解?

我还没有找到管理订阅的正确方法。如果付款延迟,在服务器上计算日期可能会很快出错。

【讨论】:

以上是关于使用 Paypal IPN 订阅的主要内容,如果未能解决你的问题,请参考以下文章

Paypal 订阅 IPN - 用户多次订阅的问题

使用 Paypal IPN 订阅

PayPal订阅IPN下次结算日期

Paypal 订阅 IPN 自定义变量

Paypal IPN 订阅协议

PayPal 订阅 IPN 和其他