2016-12-03 91 views
0

我正在通過this example在條紋上工作,並且承諾的表單中斷從不發生。表格只是正常提交​​而已,這是它的結束。條紋形式不起作用

在我腦子裏,我有

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

然後,這裏是我的表格:

<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=hidden name=publication_id value="<?php echo $pub_id; ?>" /> 
    <input type="submit" class="submit" value="Submit Payment"> 
</form> 

和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; 
    }); 
}); 

當我提交,它只是去形式行動(我還沒有設置任何東西)。

回答

1

你應該傳遞一個對象Stripe.card.createToken,如下解釋:

https://stripe.com/docs/stripe.js?#collecting-card-details

此外,還要確保你已經定義了stripeResponseHandler。

+0

OP描述中包含的[示例](https://stripe.com/docs/custom-form)會聲明:'第一個參數是付款明細。這可以作爲通用對象的單獨成員提供,也可以通過傳遞整個表單的引用來提供。「但也許主要問題是響應處理程序沒有被定義... –

+0

謝謝,但根據說明,這已經在Stripe.card.createToken($ form,stripeResponseHandler)的javascript函數中處理過了(它通過表單輸入創建對象)。那麼,我按照你所建議的方式嘗試過,但行爲是一樣的。 –

+0

就是這樣@sam Onela。我一步一步走,但我想我需要一次完成所有事情。 –