我正在使用Stripe API(PHP)创建使用自定义字段的签出表单。我正在尝试创建Stripe令牌,但是它不起作用:
var stripe = Stripe('pk_test_yzxdfxfsd9mafsfasfFnFhfsaP1zt');
var elements = stripe.elements();
var cardNumber = elements.create('cardNumber');
cardNumber.mount('#card-number');
var cardExpiry = elements.create('cardExpiry');
cardExpiry.mount('#card-expiry');
var cardCvc = elements.create('cardCvc');
cardCvc.mount('#card-cvc');
stripe.createToken({
number: $('.card-number').val(),
cvc: $('.card-cvc').val(),
exp_month: '04',
exp_year: '21',
}).then(function(result) {
if (result.error) {
// Inform the user if there was an error.
var errorElement = document.getElementById('card-errors');
errorElement.textContent = result.error.message;
} else {
// Send the token to your server.
stripeTokenHandler(result.token);
}
});
我尝试手动传递卡的值,如上所示,但出现错误:
Stripe Elements must be mounted in a DOM element that can contain child nodes. `input` elements are not permitted to have child nodes. Try using a `div` element instead.
这是表单的HTML:
<div>
<span class="checkoutFormLabel">Card Number</span>
</div>
<div>
<input type="text" name="card_num" id="card-number" class="full_width" />
</div>
<div>
<span class="checkoutFormLabel">Name on Card</span>
</div>
<div>
<input type="text" name="name_on_card" class="full_width" />
</div>
<div>
<span class="checkoutFormLabel">Expiration</span>
</div>
<div>
<input type="text" name="expiryDate" id="card-expiry" placeholder="MM/YY" class="full_width" />
</div>
<span class="checkoutFormLabel">CVC</span>
<input type="text" name="cvc" class="full_width" id="card-cvc" style="width:100px;" />
如何修复我的条纹结帐表单以使其与上面设置的自定义表单字段一起使用?
谢谢!
查看Stripe文档,我认为您将无法做到这一点。Stripe为您提供了一组非常具体的参数,createToken
可以接受,仅此而已。
再一次,错误提示您该card-number
元素不仅仅是一个input
类型,而是一个div
可能包括的元素input
。实际上,我敢打赌该createToken
方法本身就是要提取该信息,而不是冒着给您提供虚假信息的风险。我试图深入研究StripeElement卡元素,它非常复杂,隐藏得很好,旨在让人们三思而后行。
我想放弃尝试重新发明轮子并使用它们给您的StripeElement并按预期使用它。到您发现所有东西时,createToken
很可能正在寻找验证它是否具有正确的表单元素,同时具备所有的安全性,您已经浪费了很多时间,可能会花很多时间在其中添加功能或修复错误。应用的其余部分。
我怎么知道 我做过与您相同的事情,经过数小时无处可去之后,我放弃了,只使用了经过精心设计,看似安全且易于使用的元素,花费了几分钟的时间进行工作。
本文收集自互联网,转载请注明来源。
如有侵权,请联系 [email protected] 删除。
我来说两句