我正在使用 PayPal 订阅和即时付款通知 (IPN) 来处理我网站上的订阅者。
在大多数情况下,它运行良好,但我偶尔遇到一个问题。
通常,如果用户取消订阅,我会等待“期限结束”(subscr_eot) 通知,然后再禁用对我的网站的访问。
因此,如果他们预付整个月的费用,然后立即取消,他们仍然可以使用该月剩余的时间(理应如此)。
但有些用户遇到了这个问题:
- 取消他们的订阅
- 在“期限结束”之前,他们决定重新订阅
- 当他们的第一次订阅达到“期限结束”时,我的应用程序会收到通知并向用户发送一封电子邮件,内容类似于“您的帐户已被禁用,如果您想再次注册,可以重新-点击此处订阅”。
- 这让他们感到困惑,因为他们在想……这很奇怪,我以为我一周前就订阅了(他们确实订阅了)。所以他们又去订阅了。现在他们对我的网站有两个并发运行的订阅,我在一两个月内收到一封支持电子邮件(“wtf,你这个月向我收取了两次费用,混蛋!!”)
所以我还没有找到好的方法来解决这个问题。我想最好的解决方案是在收到“期限结束”通知时进行额外的 API 调用,该通知会询问 paypal“嘿,这个人已经重新订阅了吗?”。如果是这样,则无需关闭该电子邮件。但我还没有找到任何方法来执行此 API 调用。
另一个解决方案是在他们取消时立即禁用他们的帐户(“subscr_cancel”通知),但随后我收到不同的愤怒的支持电子邮件“嘿,我预付了整个月,为什么我的帐户已经被禁用了!”。
还有其他人解决了这个问题吗?
我知道这是一个旧线程,但我还没有看到这个问题的实际答案,所以如果有人碰巧像我一样想知道这个问题,这里有一个解决方案。
如果有人在学期结束(subscr_eot)之前取消他们的帐户(subscr_cancel),我会在我的数据库中设置它来处理它。例如,如果数据库中有一个“Users”表,只需添加一个新的“int”字段并将其命名为“Term”。默认情况下,该字段应设置为“0”。然后,在 IPN 内部进行设置,以便如果用户在期限结束之前取消订阅,则会将该用户的“期限”字段设置为“1”。如果该用户返回并重新订阅您的服务,请让 IPN 将该用户的“期限”字段更新回“0”。
然后,在您的邮件脚本内,让它在学期结束时检查该用户的“学期”字段。如果它设置为“0”,则不发送电子邮件。如果它设置为“1”,则发送电子邮件说“再见!”
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)