订阅与贝宝IPN

我正在使用Paypal IPN添加订阅到一个网站,工作得很好,我可以成功地创build一个新的订阅并validation它。 订阅有两个星期免费试用。 该指南不幸在订阅状态上有点模糊。

此时,一旦收到subscr_signup或subscr_payment,用户帐户就会获取订阅状态,并在收到subscr_cancel或subscr_failed时被删除。 我相信这是正确的,但最好确保。

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

subscr_eot在用户上次付款时间间隔过期时发送。 subscr_cancel在使用取消订阅后立即发送 – 例如:

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

在第13天,用户取消。 立刻发送subscr_cancel ,虽然用户技术上已经支付到第30天。取消在这一点是取决于你。

在第30天, subscr_eot被发送 – 用户已经取消,这是他最后一次支付的date。

试用版订阅没有太多变化 – 如果用户在试用版订阅之前取消订阅, subscr_cancel立即发送, subscr_eot在试用结束时发送。

此外,一个有趣的细节是subscr_eot如何与subscr_failed一起subscr_failed

它看起来像subscr_eot之后是最后 subscr_failed 。 因此,如果您的帐户中设置为自动重试失败的付款3次,则应该如下所示:

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

所以基本上在你的代码中,你可以设置subscr_failed来触发一个类似的电子邮件

嗨用户,请花点时间检查您的付款信息,您可能需要更新信用卡到期date等,您仍然可以访问,我们将在几天内再次尝试。

并设置subscr_eot实际上closures他们的订阅,并触发一个类似的电子邮件

对不起,我们还没有得到付款,并已经把你的个人资料。 您仍然可以通过login并更新付款信息来重新激活它

基本上这是这样做的“好”的方式,所以客户有一个宽限期,他们的帐户不会因为信用卡过期或类似的事情而意外closures。

Chris发布的post最近更新了。

在2010年的某个时候,当用户取消帐户时,PayPal停止使用subscr_eot。 经过一些投诉,他们恢复了这个,但花了6个月的时间。 所有这一切意味着您可以再次处理您的订阅通知,如Peter在接受的答案中所述。

来自PayPal代表:

subscr_cancel表示个人资料被取消,不会有未来的付款。 但是,如果买方已经支付当前的结算周期,那么您可以使用subscr_eot来终止configuration文件。

但是,仍然不确定发生多次付款失败的情况。 PayPal文档目前非常糟糕。

这取决于帐户,如果它是新的或不subscr_eot被发送,这是有点超越我?

我还没有findpipe理订阅的正确方法。 如果延迟付款,计算服务器上的date可能会出错。