2016-09-28 65 views
0

我的条纹码是不是生成令牌将被发送到服务器端代码的用户收费,而是返回:条状返回缺少帕拉姆

Missing required param: number. 

我已经通过我的代码无数次阅读,阅读Stripe文档等。控制台中返回的唯一错误是来自Stripe的400请求错误,因为“缺少参数”,尽管它存在AND使用数据条。

片段的形式为:

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

的JavaScript代码:

<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

在控制台,检查哪些数据解析在'POST',当它发射的AJAX令牌 – Poonam

+0

你确定你已经包括jQuery和'$ form'确实含有与该''

元素各种'data-stripe =“...”'字段? – Ywain

回答

1

你不能只从卡号令牌生成。您还需要传递以下数据。

  1. 卡号
  2. CVC

  3. exp_month

  4. exp_year

表单应捕获来自用户所有这些细节。

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