2017-02-14 204 views
0

我正在用新計劃更新訂閱時有點困難。 我想要做的是以下幾點:Stripe API訂閱

檢查訂閱是否仍處於試用模式。獲取trial_end時間戳

  1. 如果trial_end還沒有發生。創建新的計劃。訂閱客戶新計劃。不要按比例分配任何東西。爲新計劃攜帶trial_end。 (換句話說,直到試用期結束後才收取客戶費用。)

  2. 如果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(); 

當我做這個如果客戶正在試用訂閱並簽署新計劃,訂閱就會變得活躍,客戶將立即收取新計劃的金額。

我相信這是一件容易的事情,只是無法弄清楚。 任何幫助,不勝感激。

牛逼

回答

0

你會希望通過從之前的認購trial_end日期攜帶,幷包括在更新叫你正在做。

+0

thx @floatingLomas我現在正在那部分工作。如果試用期已經結束呢?我是否也需要記帳日期?或者在我上面發佈的更新中使用stripe處理?另外,他們會將分攤額添加到下一個結算日期嗎? – cnapsys

+0

如果試用結束,您可以忽略'trial_end'值。如果您按比例分配,則最終的結算日期與您升級/降級的日期相同。 – floatingLomas

+0

這是我迄今爲止:'$ 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