2017-10-27 5 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을 따를 수 있습니다.