2014-10-02 42 views
2

我感到困惑出纳/条纹订阅如何与不卡了前面的试验工作,无卡前面订阅。 我已经在Stripe上设置了试用期并创建了计划。 我已将无卡前置模型特征设置为false。开始使用Laravel出纳及条纹

$user = User::find(1); 

// This doesn't seem to do anything. No sub created in Stripe. 

$user->subscription('yearly_uk'); 

// This throws an error as I am not passing through a card token. 

$user->subscription('yearly_uk')->create(); 

// This throws an nasty api error but strangely does create a customer in Stripe. 

$user->subscription('yearly_uk')->create(null); 

任何想法?

+1

我要回答我自己的问题,希望它能帮助别人。泰勒奥特威尔指出,你只需设置无卡预付费客户的试用结束日期。在客户付款之前,Stripe账户并不实际创建。 onTrial()函数只是检查这个日期并作出相应的响应。 – Plasticated 2014-10-02 13:44:08

+0

我遇到了类似的问题。我正在尝试从下个月的第一天起对Stripe进行收费。我已经这样做了,所以收银员将'trial_ends_at'字段设置为正确的日期(下个月的第一天),但是即使将卡的前期特征设置为假,客户仍然立即收费。你有什么建议吗? – 2014-10-27 11:57:04

回答

1

通过您的评论,看起来你已经回答了这一点,但对于未来的读者,我遇到了类似的问题,用户可以从几个方案可供选择,这一次是免费的。

要解决,添加到您的User型号:

protected $cardUpFront = false; 
protected $trial_ends_at = null; 

,那么你可以订阅用户,但使用空令牌:

$user->subscription('yearly_uk')->create(null); 

我没有检查,但我相信它不会抛出相同类型的错误,如果/当你移动到付费计划 - 即他们将能够改变,但我会猜想Stripe会返回一个错误,因为它会向用户提供没有信用卡细节的账单。

0
 \Stripe\Stripe::setApiKey(env('STRIPE_SECRET')); 

    $user_id = Auth::user()->id; 
    $AuthUser = Auth::user(); 

    $stripe_plan = 'plan_CMFx07YJ96oL6h'; //Free stripe plan 

    $user = User::find($user_id); 
    $user->newSubscription('main',$stripe_plan)->create(null); 

    if($AuthUser->subscribed('main')){ 
     return redirect('subscription')->with('status','You are subscribed successfully.'); 
    } 
+0

它的工作,但当我更新任何计划,然后它不会更新,我们必须创建一个新的订阅。 – 2018-02-23 06:48:38