我正在尝试在我的网站上创建一个基本订阅服务,我不确定处理订阅的标准方法 . 我敢肯定我可以一起破解,但我只是想知道是否有建议的方式 .

  • 所以我创建了一个billing plan并激活了它 .

  • 我的网站上有一个订阅按钮,它创建一个billing agreement,引用步骤1中创建的结算方案,并将用户重定向到PayPal网站,他们可以登录并接受订阅 .

  • 一旦用户完成PayPal网站上的操作,他们就会返回我的网站并带有令牌,然后根据文档使用PayPal返回的令牌执行协议 .

所以我想在这些步骤之后,为该用户创建了订阅,该活动处于活动状态,并且第一笔付款是立即进行的 .

在我的数据库中,我有一个每个用户名 subscribed 的字段,它的值是 boolean ,一旦它们返回到我的站点并且执行命令成功,我将其设置为true .

我的问题是为每个用户保持这个 boolean 值是最新的,因为这是我检查他们是否可以访问内容的值 .

取消 - 我可以在我的网站上提供取消按钮取消订阅,成功时我可以将值设置为 false . 但如果他们通过PayPal网站取消怎么办?我认为有一个webhook名称 BILLING.SUBSCRIPTION.CANCELLED 可能会向我发送协议ID,如果我将其保存在我的数据库中,我可以看到它属于哪个用户并将其订阅设置为 false .

在第一个月过去并且下一笔付款到期后,是否有成功付款或付款失败的webhook,因此我可以相应地设置订阅 Value ?我看到有一个名为 PAYMENT.SALE.COMPLETED 的webhook,但我不知道这是否因为付款成功而被解雇,而 PAYMENT.SALE.DENIED 则表示付款失败 . 如果订阅存在这些webhook,我想它应该是一个简单的解决方案,以保持这个订阅的值是最新的 .

希望这有一定道理 .