2017-10-27 9 views
0

私はストライプの初心者です。私はドキュメントに苦労しています。私はいくつかのチュートリアルを試しましたが、どれも自分のフォームを動作させることができませんでした。ストライプフォームはクレジットカードを作成しません

フォームはトークンと顧客を作成します(私はStripe Dashboardで見ることができます)が、その顧客のクレジットカードを作成せず、その顧客をプランに加入しようとすると、私はエラーが発生します。ストライプのAPIによって与えられた

<body> 

    <div id="listblock"> 

     <div class="lines" id="logo"> 
      <h2>Pay from here! </h2> 
     </div> 

     <form action="payment.php" method="post" id="payment-form"> 
      <input class="card-number" type="text" required placeholder="1234 5678 8765 4321"> 
      <input class="card-expiry-month" type="number" required placeholder="MM"> 
      <input class="card-expiry-year" type="number" required placeholder="YY"> 
      <input class="card-cvc" type="number" required placeholder="CVC"> 
      <input type="radio" name="plan" value="1" checked>Basic annual subscription (99€/year) 
      <input type="radio" name="plan" value="2" checked>Basic monthly subscription (9,99€/month) 

      <button class="button" type="submit">Submit Payment</button> 
     </form> 

    </div> 

</body> 

<script src="https://js.stripe.com/v2/"></script> 
<script src="https://js.stripe.com/v3/"></script> 


<script src="https://ajax.googleapis.com/ajax/libs/jquery/3.2.1/jquery.min.js"></script> 

<script> 
    Stripe.setPublishableKey('my key is here'); 

    var $form = $('#payment-form'); // On récupère le formulaire 

    $form.submit(function (e) { 

     e.preventDefault(); 
     $form.find('button').prop('disabled', true); // On désactive le bouton submit 

     Stripe.card.createToken({ 

      number:  $('.card-number').val(), 
      cvc:  $('.card-cvc').val(), 
      exp_month: $('.card-expiry-month').val(), 
      exp_year: $('.card-expiry-year').val() 

     }, function (status, response) { 

      if (response.error) { // Ah une erreur ! 

       // On affiche les erreurs 
       $form.find('.payment-errors').text(response.error.message); 
       $form.find('button').prop('disabled', false); // On réactive le bouton 

      } else { // Le token a bien été créé 

       var token = response.id; // On récupère le token 
       // On crée un champs cachée qui contiendra notre token 
       $form.append($('<input type="hidden" name="stripeToken" />').val(token)); 
       $form.get(0).submit(); // On soumet le formulaire 

      } 
     }); 
    }); 


</script> 

エラーがある:あなたの助けのための

{ 
    "error": { 
    "type": "invalid_request_error", 
    "message": "This customer has no attached payment source" 
    } 
} 

おかげ

は、ここに私のフォームのコードです!

+0

V2またはV3のみを使用して開始します。両方を使用することはできません。 – cyberwombat

答えて

1

あなたのアプリケーションを開発しているようだから、v3のStripeの更新版を間違いなく使用してください。

あなたの顧客が再発支払いプランにサブスクライブしたい場合さて、あなたはまずカスタマーを作成し、サブスクリプションプラン(APIを使用するか、ダッシュボードからのどちらか)を作成する必要があります。顧客を作成するには、次のようにコードを作成する必要があります。

stripe.customers.create({ 
    email: "[email protected]", 
}, function(err, customer) { 
    // asynchronously called 
}); 

そして、すでに作成した計画に顧客を登録します。そのすべてはofficial docに記載されています。ちょっと注意深くお読みください。

また、定期購読を実装する必要がない場合は、後払いのために顧客情報を保存したい場合は、quick start guide、具体的にはthis partに従うことができます。

関連する問題