0
我正在用新計劃更新訂閱時有點困難。 我想要做的是以下幾點:Stripe API訂閱
檢查訂閱是否仍處於試用模式。獲取trial_end時間戳
如果trial_end還沒有發生。創建新的計劃。訂閱客戶新計劃。不要按比例分配任何東西。爲新計劃攜帶trial_end。 (換句話說,直到試用期結束後才收取客戶費用。)
如果trial_end已通過,則爲新計劃創建新計劃Sub客戶。推測新計劃。繼續下一個開票日期。 (意思是,再一次,現在不向客戶收取,但比例分攤金額增加至下一發票)
下面的代碼我到目前爲止:
//CREATE NEW PLAN
$plan = \Stripe\Plan::create(array(
"id" => $usremail.'_'.time(),
"name" => $usremail.'-'.time(),
"currency" => "usd",
"amount" => $totalamount,
"interval" => "month",
));
$planid = $plan->id;
$proration_date = time();
//UPDATE SUBSCRIPTION
$subscription = \Stripe\Subscription::retrieve($subid);
$subscription->plan = $planid;
$subscription->proration_date = $proration_date;
$subscription->save();
當我做這個如果客戶正在試用訂閱並簽署新計劃,訂閱就會變得活躍,客戶將立即收取新計劃的金額。
我相信這是一件容易的事情,只是無法弄清楚。 任何幫助,不勝感激。
牛逼
thx @floatingLomas我現在正在那部分工作。如果試用期已經結束呢?我是否也需要記帳日期?或者在我上面發佈的更新中使用stripe處理?另外,他們會將分攤額添加到下一個結算日期嗎? – cnapsys
如果試用結束,您可以忽略'trial_end'值。如果您按比例分配,則最終的結算日期與您升級/降級的日期相同。 – floatingLomas
這是我迄今爲止:'$ planid = $ plan-> id; \t \t $ proration_date = time(); \t \t \t $ subscription = \ Stripe \ Subscription :: retrieve($ subid); \t \t $ trial_end = $ subscription-> trial_end; \t \t $ subscription-> plan = $ planid; \t \t \t 如果\t($ trial_end <時間()){ \t \t \t $訂閱的> proration_date = $ proration_date;其他{ \t \t \t $ subscription-> trial_end = $ trial_end; \t \t} \t \t \t // \t $訂閱的> proration_date = $ proration_date; \t \t $ subscription-> trial_end = $ trial_end; \t \t $ subscription-> save();' – cnapsys