使用Laravel出纳和;条纹

使用Laravel出纳和;条纹,laravel,laravel-4,stripe-payments,Laravel,Laravel 4,Stripe Payments,我对出纳/条带订阅如何在没有预付卡试用的情况下工作感到困惑。 我已将试用期设置为Stripe并创建了计划。 我已将无卡前置模式特性设置为false $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 throug

我对出纳/条带订阅如何在没有预付卡试用的情况下工作感到困惑。 我已将试用期设置为Stripe并创建了计划。 我已将无卡前置模式特性设置为false

$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);

有什么想法吗?

根据您的评论,您似乎已经回答了这个问题,但对于未来的读者,我遇到了一个类似的问题,用户可以从几个计划中选择,其中一个是免费的

要解决此问题,请将其添加到您的
用户
模型:

protected $cardUpFront = false;
protected $trial_ends_at = null;
然后,您可以使用空令牌订阅用户:

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

我还没有检查,但我认为如果/当你转向付费计划时,它不会抛出同样的错误,也就是说,它们可以更改,但我猜Stripe会返回一个错误,因为它会向用户支付账单,没有信用卡详细信息。

我将回答我自己的问题,希望它能帮助其他人。Taylor Otwell善意地指出,您只需为无卡预付客户设置试用结束日期。在客户付款之前,不会实际创建条带帐户。onTrial()函数只是检查这个日期并做出相应的响应。我遇到了类似的问题。我试图从下个月的第一天开始向客户收取分条费用。我这样做是为了让出纳将
试用期结束时间设置为正确的日期(下个月1日),但是即使将预付卡特征设置为false,客户仍会立即支付账单。你有什么建议吗?它正在工作,但当我更新任何计划时,它将不会更新,我们必须创建一个新的订阅。
        \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.');
    }