gpt4 book ai didi

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

转载 作者:太空宇宙 更新时间:2023-11-03 15:49:45 24 4
gpt4 key购买 nike

我正在使用 Paypal 订阅和即时付款通知 (IPN) 来处理我网站上的订阅者。

在大多数情况下,它运行良好,但我偶尔会遇到一个问题。

通常,如果用户取消订阅,我会等待“期限结束”(subscr_eot) 通知,然后再禁止访问我的网站。

因此,如果他们预付了整个月的费用,然后立即取消,他们仍然可以访问该月的剩余时间(这是应该的)。

但是一些用户在以下地方遇到了这个问题:

  1. 取消订阅
  2. 在“期限结束”到来之前,他们决定重新订阅
  3. 当他们的第一个订阅达到“期限结束”时,我的应用会收到通知并向用户发送一封电子邮件,其中包含“您的帐户已被禁用,如果您想再次注册,您可以点击这里重新订阅”。
  4. 这让他们感到困惑,因为他们在想......这很奇怪,我想我一周前就订阅了(他们订阅了)。所以他们又去订阅了。现在他们有两个同时运行的订阅到我的网站,我会在一两个月内收到一封支持电子邮件(“你这个月 SCSS 向我收费了两次!!”)

所以我还没有找到解决这个问题的好方法。我想最好的解决方案是在收到“期限结束”通知时进行额外的 API 调用,该通知询问 Paypal “嘿,这个人已经重新订阅了吗?”。如果是这样,则无需发送该电子邮件。但我还没有看到任何方法来执行此 API 调用。

另一种解决方案是在他们取消时立即禁用他们的帐户(“subscr_cancel”通知),但随后我收到不同的愤怒支持电子邮件“嘿,我预付了整个月的费用,为什么我的帐户已经被禁用了!!”。

还有其他人解决过这个问题吗?

最佳答案

我知道这是一个旧线程,但我还没有看到这个问题的实际答案,所以如果有人像我一样想知道这个问题,这里有一个解决方案。

如果有人在学期结束前 (subscr_eot) 取消他们的帐户 (subscr_cancel),我会在我的数据库中设置它来处理它。例如,如果您的数据库中有一个“Users”表,只需添加一个新的“int”字段并将其命名为“Term”。默认情况下,该字段应设置为“0”。然后,在您的 IPN 内部进行设置,以便如果用户在期限结束前取消订阅,它会将该用户的“期限”字段设置为“1”。如果该用户返回并重新订阅您的服务,让 IPN 将该用户的“期限”字段更新回“0”。

然后,在您的邮件脚本中,让它在学期末运行时检查该用户的“学期”字段。如果它设置为“0”,则不发送电子邮件。如果设置为“1”,则发送电子邮件说“Adios!”

关于ruby-on-rails - Paypal 订阅 IPN - 用户多次订阅的问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2527710/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com