Stripe API订阅

时间:2017-02-14 19:24:41

标签: php api stripe-payments subscriptions

我在使用新计划更新订阅时遇到了一些困难。 我要做的是以下内容:

检查订阅是否仍处于试用模式。获取trial_end时间戳

  1. 如果尚未发生trial_end。制定新计划。订阅客户到新计划。不要按比例分配任何东西。将trial_end用于新计划。 (换句话说,在试用期结束之前不要向客户收费。)

  2. 如果trial_end已经过去,请为新计划创建新计划Sub客户。按比例分配新计划。进行下一个结算日期。 (另请注意,不要立即向客户收费,而是将按比例分配的金额添加到下一张发票中)

  3. 这是我到目前为止的代码:

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

    当我这样做时,如果客户处于试用订阅并注册新计划,则订阅将变为活动状态,并立即向客户收取新计划的金额。

    我确定这是一件容易的事,只是想不出来。 非常感谢任何帮助。

    Ť

1 个答案:

答案 0 :(得分:0)

您希望执行上一个订阅的trial_end日期,并将其包含在您正在制作的更新通话中。