2016-09-02 9 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

カードの入金時に生成されたトークンを使って、ここにサブスクリプションプランを渡す必要があります。 ここにあなたが従うことができるステップがあります。 ビューページを作成します。

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

とあなたのコントローラで:

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, 

     ]); 

    } 
関連する問題