我正在使用贝宝订阅和即时支付通知 (IPN) 来处理我网站上的订阅者。
在大多数情况下,它运行良好,但我偶尔会遇到一个问题。
通常,如果用户取消订阅,我会等待“期限结束”(subscr_eot)通知,然后再禁用对我网站的访问。
因此,如果他们预付了整个月的费用,然后立即取消,他们仍然可以在本月的剩余时间内访问(应该如此)。
但是一些用户遇到了这个问题,他们:
- 取消他们的订阅
- 在达到“期限结束”之前,他们决定重新订阅
- 当他们的第一次订阅达到“期限结束”时,我的应用程序会收到通知并向用户发送一封电子邮件,其中包含“您的帐户已被禁用,如果您想再次注册,您可以重新-点击这里订阅”。
- 这让他们感到困惑,因为他们在想……这很奇怪,我以为我像一周前一样订阅了(他们确实做到了)。所以他们再次订阅。现在他们有两个同时运行的订阅我的网站,我在一两个月内收到一封支持电子邮件(“你这个月向我收费两次,混蛋!!”)
所以我还没有找到解决这个问题的好方法。我想最好的解决方案是在收到“期限结束”通知时进行额外的 API 调用,该通知询问贝宝“嘿,这个人已经重新订阅了吗?”。如果是这样,则无需关闭该电子邮件。但是我还没有看到任何方法来做这个 API 调用。
另一种解决方案是在他们取消时立即禁用他们的帐户(“subscr_cancel”通知),但随后我收到不同的愤怒支持电子邮件“嘿,我预付了整个月的费用,为什么我的帐户已经被禁用了!!”。
其他人解决了这个问题吗?