gpt4 book ai didi

javascript - Stripe.js - 收集收件人信息

转载 作者:太空狗 更新时间:2023-10-29 15:11:34 25 4
gpt4 key购买 nike

Stripe 现在提供支付功能,它通过在前端创建一个银行账户 token 来工作。从那里, token 被发送到您使用该银行帐户 token 创建收件人对象的服务器。从那里您可以在传输中使用此收件人对象。

虽然我很熟悉,但您可以创建 custom forms for payments对于 stripe.js,在为收件人创建 token 时,我似乎找不到除 this 之外的任何文档.

这是我的问题,首先是我的表格:

<form method="POST" id="inst-form">    

<div class="form-row">
<label>
<span>Bank Location</span>
<select data-stripe="country">
<option value="US">United States</option>
</select>
</label>
</div>

<div class="form-row">
<label>
<span>Routing Number</span>
<input type="text" size="9" data-stripe="routingNumber"/>
</label>
</div>

<div class="form-row">
<label>
<span>Account Number</span>
<input type="text" size="17" data-stripe="accountNumber"/>
</label>
</div>


<button type="submit">Make Recipient!</button>
</form>

到目前为止,我需要从这个表单中获得的三样东西是country、routingNumber 和accountNumber。让我们看看 Javascript,以便我可以将这些字段与 Stripe.js 一起使用:

  // Create a handler to manage what Stripe returns.
var stripeResponseHandler = function(status, response) {
var $form = $('#inst-form');
if (response.error)
{
alert("Error");
// Not sure how to get these errors.
$form.find('button').prop('disabled', false);
}
else
{
var token = response.id;
$form.append($('<input type="hidden" name="stripeToken" />').val(token));
$form.get(0).submit();
}
};

// Now the handler is done, lets use it when the form is submitted.
// On form submission execute:
jQuery(function($) {
$('#inst-form').submit(function(event) {
// Get the form object.
var $form = $(this);
// Disable the submit button to prevent repeated clicks
$form.find('button').prop('disabled', true);
// Create a token with Stripe
Stripe.bankAccount.createToken({
country: $('.country').val(),
routingNumber: $('.routingNumber').val(),
accountNumber: $('.accountNumber').val(),
}, stripeResponseHandler);
// Prevent the form from submitting with the default action
return false;
});
});

我的问题是 alert() 被触发,这意味着有错误。我查看了 API,但不确定如何显示这些专门用于创建收件人的错误。对于付款,它给出了以下示例:

$(".payment-errors").text(response.error.message);

注意 - 我排除了 jQuery/Stripe.js 的导入 - 这肯定不是问题所在。感谢您的帮助!

最佳答案

根据我的经验,response.error.message 确实是正确的处理方式。

这是我自己的代码示例:

Stripe.bankAccount.createToken({
country: 'US',
routingNumber: bank_routing_number,
accountNumber: bank_account_number,
}, function(status, response) {
if (response.error)
{
console.log(response);
alert(response.error.message);
}
else
{
var token = response.id;
/* send the token to the server along with the withdraw request */
}
});

如果您仍然没有看到正确的错误,您应该尝试 console.log(response) 并查看 javascript 控制台以获取线索。

这是一个容易重现的错误示例:

Routing number must have 9 digits

当然,您应该使用 Stripe.js 提供的例程来验证您的帐户和路由号码。这里的示例用法取自他们的文档:

// This will return true, indicating a potentially valid bank
// routing number.

Stripe.bankAccount.validateRoutingNumber('111000025')
Stripe.bankAccount.validateRoutingNumber('110000000')

// These invalid bank routing numbers will all return false.

Stripe.bankAccount.validateRoutingNumber('990000000')
// (Doesn't pass the checksum check.)
Stripe.bankAccount.validateRoutingNumber('12345')
Stripe.bankAccount.validateRoutingNumber('mistake')

相关文档在这里:https://stripe.com/docs/stripe.js#collecting-bank-account-details

关于javascript - Stripe.js - 收集收件人信息,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17585335/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com