Stripe теперь предлагает выплаты, которые работают путем создания токена банковского счета во внешнем интерфейсе. Оттуда токен отправляется на сервер, где вы создаете объект recipient с этим токеном банковского счета. Оттуда вы используете этот объект получателя в передачах.
Хотя я знаком с тем, что вы можете создавать пользовательские формы для платежей с помощью stripe.js, когда дело доходит до создания токена для получателей, я не могу найти никакой документации, кроме это.
Вот моя проблема, сначала моя форма:
<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 — проблема точно не в этом. Спасибо за помощь!