Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/296.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/api/5.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Php 条带API订阅_Php_Api_Stripe Payments_Subscriptions - Fatal编程技术网

Php 条带API订阅

Php 条带API订阅,php,api,stripe-payments,subscriptions,Php,Api,Stripe Payments,Subscriptions,我很难用新计划更新订阅。 我想做的是: 检查订阅是否仍处于试用模式。获取试用结束时间戳 如果审判尚未结束。创建新计划。向客户订阅新计划。不要按比例分配任何东西。为新计划进行试验。(换句话说,在试用期结束之前不要向客户收费。) 如果试用结束已通过,则创建新计划,将客户分到新计划。按比例分配新计划。携带下一个账单日期。(也就是说,现在不向客户收费,而是将按比例的金额添加到下一张发票中) 以下是我目前掌握的代码: //CREATE NEW PLAN $plan = \Stripe\Plan::crea

我很难用新计划更新订阅。 我想做的是:

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

  • 如果审判尚未结束。创建新计划。向客户订阅新计划。不要按比例分配任何东西。为新计划进行试验。(换句话说,在试用期结束之前不要向客户收费。)

  • 如果试用结束已通过,则创建新计划,将客户分到新计划。按比例分配新计划。携带下一个账单日期。(也就是说,现在不向客户收费,而是将按比例的金额添加到下一张发票中)

  • 以下是我目前掌握的代码:

    //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

    您将需要执行上一次订阅的
    试用期
    日期,并将其包含在您正在进行的更新呼叫中

    thx@floatingLomas我现在已经把那个部分搞定了。如果试用期已经结束怎么办?我也需要带账单日期吗?或者stripe会通过我上面发布的更新来解决这个问题吗?此外,他们是否会将按比例计算添加到下一个计费日期?如果试用期已结束,您可以忽略
    试用期结束
    值。如果按比例分配,则最终的计费日期将与您升级/降级的日期相同。这就是我目前掌握的情况:
    $planid=$plan->id;$proration_date=time();$subscription=\Stripe\subscription::retrieve($subid);$trial\u end=$subscription->trial\u end;$subscription->plan=$planid;if($subscription->trial\u end=$proration\u date;}否则{$subscription->trial\u end=$trial\u end;}/$subscription->proration\u date=$proration\u date;$subscription->trial\u end=$trial\u end;$subscription->save()
    我能够确认,在试用期间,试用结束后是否能正常工作。仍在等待试用期结束后,是否将按比例分摊到下一个原始计费日期。我唯一担心的是,我不希望立即收取按比例分摊的费用