如何通过braintree.js创建隐藏的'payment_method_nonce'输入?

时间:2015-02-10 11:06:18

标签: javascript braintree

我像这样配置braintree.js:

braintree.setup(
        brainTreeClientToken= 'token_from_server'
        'dropin', {
            container: 'brainTreeDropin',
            form: 'checkout'
        });
</script>

正如我从developers.braintree的文档中了解到的那样,您需要向您的服务器发送一个名为“payment_method_nonce”的请求参数,但它在请求中不存在。顺便说一下,我没有在浏览器控制台中看到任何js错误。 这是我的表格:

<form id="checkout" method="post"
      th:action="....">
    <div id="brainTreeDropin"></div>
    <div >
        <div class="form-group">
            <label for="cardNumber">Credit Card Number</label>
            <input data-braintree-name="number" ..other details.. "/>
        </div>
        <div class="form-group">
            <label for="cardHolder">Name on Card</label>
            <input data-braintree-name="cardholder_name" ..other details.. />
        </div>
    </div>
    <div >
        <div class="form-group">
            <label for="cvc">Security Code(CVC)</label>
            <input data-braintree-name="cvv"  ..other details.. />
        </div>
        <div class="form-group">
            <label for="expDate">Expiration Date</label>
            <input data-braintree-name="expiration_date" ..other details.. />
        </div>
    </div>
</form>

知道我的错是什么意思?

1 个答案:

答案 0 :(得分:2)

我在SDK团队的Braintree工作。

Drop-In集成要求表单中包含buttontype=["submit"]元素。我尝试了您的集成,并通过添加payment_method_nonce元素将<button>Pay</button>值发送到我的服务器。试试看是否能解决你的整合问题。

另外,出于好奇,您是否打算在同一form内使用2张信用卡输入法? Drop-In表单包含信用卡的必填字段,您不需要data-braintree-name注释输入。