注意:我已经审查过this stackoverflow post,但并没有帮助解决我的问题。
使用Stripe,我将客户从每月订阅升级为每年订阅,并且一点也不难。但是,通常,客户在每月订购时会剩下一些天数。目前有哪些不同的方法可以使他在不退款的情况下获得信誉?通过使用以下this page in the stripe docs中的示例代码,我可以从每月更改为每年:
\Stripe\Stripe::setApiKey('sk_test_5TTqs8H');
$subscription = \Stripe\Subscription::retrieve('sub_49ty4767H20z6a');
\Stripe\Subscription::update('sub_49ty4767H20z6a', [
'cancel_at_period_end' => false,
'proration_behavior' => 'none',
'items' => [
[
'id' => $subscription->items->data[0]->id,
'price' => 'price_CBb6IXqvTLXp3f',
],
],
]);
以上结果导致我现在要收费。现在假设他当前的帐单周期还剩15天。我如何才能将他的下一份帐单再延迟15天,而不是给他15天的信用额度。 Stripe文档建议将trial_end
设置为下次计费之前的15天。但是,必须有更好的方法,因为用户status
将在下一年零15天试用。这与我的应用程序的其他部分弄乱了,后者依赖于了解用户是否为试用用户。
尽管如此,Stripe建议这样做:
$new_anchor = 1605830400;
\Stripe\Subscription::update('sub_49ty4767H20z6a', [
'trial_end' => $new_anchor
]);
同样,这似乎是一种黑客行为,因为它会在用户未试用时将其标记为试用。只是想知道其他人如何完成此升级。同样,现在尝试向客户收费,不按比例分配,也不尝试使用Stripe正在使用的试用建议。