Stripe は、フロントエンドで銀行口座トークンを作成することで機能する支払いを提供するようになりました。そこからトークンがサーバーに送信され、そこでその銀行口座トークンを使用して受信者オブジェクトを作成します。そこから、転送でこの受信者オブジェクトを使用します。
strip.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の 3 つです。これらのフィールドを Stripe.js で使用できるように、Javascript を見てみましょう。
// 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 のインポートを除外しました - それは確かに問題ではありません。助けてくれてありがとう!