2016-09-28 1 views
0

Mein Stripe-Code wird nicht ein Token zu erzeugen, um den serverseitigen Code gesendet werden, um einen Benutzer zu laden, anstatt sie zurückgibt:Streifen Formular gibt Fehlendes Param

Missing required param: number. 

ich durch meinen Code unzählige Male gelesen habe Lesen Sie die Stripe-Dokumentation usw. Der einzige Fehler, der in der Konsole zurückgegeben wird, ist der 400-Anforderungsfehler von Stripe wegen des "fehlenden Param", obwohl er existiert UND verwendet Datenstripe.

Snippet der Form:

<input type="text" data-stripe="number" class="form-control" placeholder="Card Number"> 

Der JavaScript-Code:

<script type="text/javascript" src="https://js.stripe.com/v2/"> </script> 
<script type="text/javascript"> 
Stripe.setPublishableKey('pk_test_6G4sPCuttf9bYhMhs0xM3JEo'); 
</script> 

<script type="text/javascript"> 
$(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(); 
} 
}; 

+0

In Konsole zu überprüfen, welche Daten in 'Post' ist das Parsen, wenn es eine Ajax für Token – Poonam

+0

gefeuert Sind Sie sicher, Sie haben jQuery enthalten und' $ form' enthält das ''

Element mit der verschiedene 'data-stripe =" ... "' Felder? – Ywain

Antwort

1

Sie können nicht Token generieren nur von Kartennummer. Sie müssen auch folgende Daten weitergeben.

  1. Kartennummer
  2. cvc

  3. exp_month

  4. exp_year

Ihre Form all diese Details von Benutzer erfassen sollte.

<form action="/your-charge-code" 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>