我希望为我的用户提供锁定X年数的费率。但是,使用Stripe API或Cashier无法做到这一点。这就是为什么我必须在我的应用程序端完成它。为此,我需要一个subscribed_at列。我知道我可以直接从Stripe客户的订阅(字段current_period_start)获得它,但是它需要太多时间来检索它,我将需要相当多的功能。所以,在我的订阅表中,我有所有Cashier所需的字段(stripe_id,stripe_active,...,subscription_ends_at),我想添加这个subscribed_at列。现在,我希望在订阅创建,恢复或取消时自动更新此值。取消时我需要将值设置为NULL。
我不想要(并且这不是一个好习惯)来修改Cashier的代码。 (在StripeGateway.php中有一个方法updateLocalStripeData(),它正好触发这三个选项,但正如我所说,我不想修改它。)
我无法覆盖StripeGateway.php方法updateLocalStripeData(),因为我的订阅模型没有扩展它。
到目前为止,唯一有效但我不太喜欢的解决方案是使用模型事件保存并检索订阅的current_period_start字段并将其插入我的订阅模型的subscribed_at字段
还有其他方法吗?