我正在使用Paypal IPN为网站添加订阅功能,效果非常好。我可以成功地创建新的订阅并进行验证。这个订阅有两周的免费试用期。不幸的是,指南在订阅状态方面有点模糊。
目前,用户帐户在接收到subscr_signup或subscr_payment后会获得订阅状态,并在接收到subscr_cancel或subscr_failed时删除。我认为这是正确的,但最好确保一下。
另外,subscr_eot是什么?IPN指南将其描述为“订阅结束”。这是否会在试用期结束后触发?
我正在使用Paypal IPN为网站添加订阅功能,效果非常好。我可以成功地创建新的订阅并进行验证。这个订阅有两周的免费试用期。不幸的是,指南在订阅状态方面有点模糊。
目前,用户帐户在接收到subscr_signup或subscr_payment后会获得订阅状态,并在接收到subscr_cancel或subscr_failed时删除。我认为这是正确的,但最好确保一下。
另外,subscr_eot是什么?IPN指南将其描述为“订阅结束”。这是否会在试用期结束后触发?
subscr_eot
当用户的最后一个付费周期过期时发送。 subscr_cancel
会在用户取消订阅时立即发送-例如:
用户在第1天注册按月计费的订阅。 subscr_signup
立即发送,subscr_payment
在付款成功后立即发送(通常也是立即)。
在第13天,用户取消了订阅。尽管用户实际上已经支付到第30天,但subscr_cancel
会立即发送。此时是否取消取决于您。
在第30天,将发送subscr_eot
- 用户已取消订阅,并且这是他最后一次付款的截止日期。
试用订阅没有太多变化-如果用户在试用订阅结束之前取消订阅,则会立即发送subscr_cancel
,并在试用结束时发送subscr_eot
。
另外一个有趣的细节是关于 subscr_eot
如何与 subscr_failed
协作。
看起来 subscr_eot
在最后一次 FINAL 的subscr_failed
后面。所以如果在您的帐户中设置了自动重试失败的支付 3 次,那么应该是这样的:
第一次失败的付款 => subscr_failed 第二次失败的付款 => subscr_failed 第三次失败的付款 => subscr_failed 和 subscr_eot
因此,基本上在您的代码中,您可以将 subscr_failed
设置为触发电子邮件,例如
嗨,用户, 请稍微花点时间检查您的付款信息,您可能需要更新信用卡过期日期等。您仍然可以访问,我们将在几天后再试一次。
并设置 subscr_eot
来实际关闭他们的订阅并触发像这样的电子邮件
很抱歉,我们仍然没有收到付款并已将您的个人资料下架。您仍然可以通过登录并更新您的付款信息来重新激活它
基本上,这是“好”的方式,以便客户有一个宽限期,并且由于过期的信用卡或其他原因而意外关闭他们的帐户。
Chris发布的帖子最近有更新。
在2010年左右,PayPal停止使用subscr_eot,当用户取消账户时。在收到一些投诉后,他们恢复了此功能,但用了6个月的时间才做到。这意味着您可以像Peter在已接受的答案中描述的那样再次处理订阅通知。
来自PayPal代表的声明:
subscr_cancel表示档案已取消,不会进行未来付款。但是,如果买家已支付当前的计费周期,因为他们是预先收费的,那么您可以使用subscr_eot终止档案。
然而,在多次付款失败的情况下会发生什么还不确定。目前PayPal的文档非常糟糕。
如果账户是新的或不是新的,是否发送subscr_eot
取决于账户本身,这有点超出了我的理解范围。
我还没有找到正确的管理订阅的方法。如果付款有延迟,服务器上计算日期可能会非常快地出错。