2016-09-02 3 views
0

사용자 가입 계획을 작성 중입니다.이를 위해 laravel 5.2에서 계산원 패키지를 사용하고 있습니다. laravel 문서 https://laravel.com/docs/5.2/billing에있는 자습서에서 제공된 정확한 방법을 따르고 있습니다. 나는 $ creditCardToken 변수 안에 값을 전달해야합니까laravel에서 계산원 패키지를 사용하는 방법 5.2?

$user = User::find(2); 
$res = $user->newSubscription('main', 'monthly')->create($creditCardToken); 
dd($res); 

:하지만 오류를

ErrorException in FacebookScraperController.php line 1767: 
Undefined variable: creditCardToken 

내 컨트롤러 코드를 얻고있다. 이 변수 안에 카드 정보를 제공하려고했습니다. 그러나 오류가 발생했습니다. 도와주세요.

답변

1

카드 입력시 생성 된 토큰과 함께 여기에 가입 계획을 전달해야합니다. 다음은 수행 할 수있는 단계입니다. 뷰 페이지 작성 :

public function subscription(Request $request) 
    { 
     $user = User::find(1); 
     $creditCardToken = $request->stripeToken; 
     $res = $user->newSubscription('main', 'pro') 
      ->trialDays(30) 
      ->create($creditCardToken, [ 
      'plan' => 'pro', 
      'email' => $user->email, 

     ]); 

    } 
:

<form action="/subscription" method="POST" id="payment-form"> 
    <span class="payment-errors"></span> 

    <div class="form-row"> 
     <label> 
      <span>Card Number</span> 
      <input type="text" size="20" data-stripe="number"> 
     </label> 
    </div> 

    <div class="form-row"> 
     <label> 
      <span>Expiration (MM/YY)</span> 
      <input type="text" size="2" data-stripe="exp_month"> 
     </label> 
     <span>/</span> 
     <input type="text" size="2" data-stripe="exp_year"> 
    </div> 

    <div class="form-row"> 
     <label> 
      <span>CVC</span> 
      <input type="text" size="4" data-stripe="cvc"> 
     </label> 
    </div> 


    <input type="submit" class="submit" value="Submit Payment"> 
</form> 
<script src="//code.jquery.com/jquery-1.9.1.js"></script> 
<script src="//ajax.aspnetcdn.com/ajax/jquery.validate/1.9/jquery.validate.min.js"></script> 
<script type="text/javascript" src="https://js.stripe.com/v2/"></script> 
<script type="text/javascript"> 
    Stripe.setPublishableKey('pk_test_TSGgkchoa9iQU4ZQ628a8Auz'); 
</script> 
<script> 
    $(function() { 
     var $form = $('#payment-form'); 
     $form.submit(function(event) { 
      // Disable the submit button to prevent repeated clicks: 
      $form.find('.submit').prop('disabled', true); 

      // Request a token from Stripe: 
      Stripe.card.createToken($form, stripeResponseHandler); 

      // Prevent the form from being submitted: 
      return false; 
     }); 
    }); 
    function stripeResponseHandler(status, response) { 
     // Grab the form: 
     var $form = $('#payment-form'); 

     if (response.error) { // Problem! 

      // Show the errors on the form: 
      $form.find('.payment-errors').text(response.error.message); 
      $form.find('.submit').prop('disabled', false); // Re-enable submission 

     } else { // Token was created! 

      // Get the token ID: 
      var token = response.id; 

      // Insert the token ID into the form so it gets submitted to the server: 
      $form.append($('<input type="hidden" name="stripeToken">').val(token)); 

      // Submit the form: 
      $form.get(0).submit(); 
     } 
    }; 
</script> 

및 컨트롤러의

관련 문제