2014-10-02 2 views
2

Cashier/Stripe 구독이 카드를 사용하지 않고 어떻게 작동하는지 혼동합니다. Stripe에서 시험 사용 기간을 설정하고 계획을 만들었습니다. 카드가없는 앞면 모델 특성을 false로 설정했습니다.Laravel Cashier & Stripe를 사용하여 no card up front 구독을 시작하십시오.

$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

다른 사람들을 돕기 위해 내 자신의 문제에 대한 답변을 드리겠습니다. Taylor Otwell은 카드를 사용하지 않는 고객의 시험 종료일을 설정했다고 간단히 지적했습니다. Stripe 계정은 고객이 비용을 지불 할 때까지 실제로 생성되지 않습니다. onTrial() 함수는이 날짜를 확인하고 그에 따라 응답합니다. – Plasticated

+0

비슷한 문제가 발생했습니다. 다음 달 첫날부터 Stripe 고객에게 요금을 청구하려고합니다. 계산원이'trial_ends_at' 필드를 올바른 날짜 (다음 달 1 일)로 설정하도록 했으므로 카드를 앞면 특성이 false로 설정되어 있어도 고객이 즉시 청구됩니다. 조언 있니? –

답변

1

귀하의 의견에 따르면, 이미 답변 해 주신 것처럼 보이지만, 향후 독자를 위해 몇 가지 계획 중에서 하나를 선택할 수있는 유사한 문제가 발생했습니다. 한 번은 무료입니다.

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

는 다음 사용자를 구독 할 수 있지만, 널 토큰을 사용하여 : : 해결하려면

, 당신의 User 모델이 추가

$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

작동 중입니다.하지만 계획을 업데이트 할 때 업데이트되지 않습니다. 새 구독을 만들어야합니다. –