2017-02-14 19 views
0

私は、新しいプランでサブスクリプションを更新するのに少し苦労しています。 私がしようとしていることは次のとおりです:ストライプAPIサブスクリプション

サブスクリプションがトライアルモードであるかどうかを確認してください。 trial_endタイムスタンプを取得

  1. trial_endがまだ発生していない場合。新しい計画を作成する。新しいプランに顧客を登録します。何かを比例配分しないでください。新しいプランの試用期間を持ちます。試用期間が終了するまで顧客に請求しないでください。

  2. trial_endが既に完了している場合は、新しいプランを作成し、新しいプランを作成します。新しい計画を比例配分する。次の請求日を持ちます。

    //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(); 
    

    私はそれこれを行うと:ここでは

は、私がこれまで持っているコードです(意味、再び、今の顧客を充電するが、次の請求書に比例配分された金額を追加しないでください)顧客が試用契約に加入し、新しいプランにサインアップすると、契約はアクティブになり、顧客は新しいプランの金額をすぐに請求されます。

私はそれが簡単なことだと確信して、ちょうどそれを把握することはできません。 何か助けていただければ幸いです。

T

答えて

0

あなたは、以前の契約からtrial_end日まで運ぶためにしたい、とのアップデートであなたが作っている呼び出すことを含んでます。

+0

thx @floatingLomas私は今、その部分を稼働させました。試用期間がすでに終了している場合はどうなりますか?請求日も守る必要がありますか?または私が上に掲示した更新でストライプはそれを世話しますか?また、次の請求日にプリオレーションを追加しますか? – 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 IF($ trial_end <時間()){ \t \t \t $ subscription-> proration_date = $ proration_date。 \t \t}他{ \t \t \t $ subscription-> trial_end = $ trial_end。 \t \t} \t \t \t \t // $ subscription-> proration_date = $ proration_date。 \t \t $ subscription-> trial_end = $ trial_end; \t \t $ subscription-> save(); ' – cnapsys