Stripe支持两步付款流程,用于授权和获取卡上的资金。为此,我们必须发送一个capture = false参数。
我的问题是如何在javascript api中发送此参数?
var args = {
number: jQuery('#AccountNumber').val(),
exp_month: jQuery('#ExpirationMonth').val(),
exp_year: jQuery('#ExpirationYear').val(),
address_line1: jQuery('#baddress1').val(),
address_line2: jQuery('#baddress2').val(),
address_city: jQuery('#bcity').val(),
address_state: jQuery('#bstate').val(),
address_zip: jQuery('#bzipcode').val(),
address_country: jQuery('#bcountry').val()
};
//create token
Stripe.createToken(args, stripeResponseHandler);
答案 0 :(得分:1)
Stripe的典型付款流程可分为两个步骤:
客户端,在您的前端(HTML + Javascript)代码中,您使用Stripe的预建Checkout表单或您自己的Stripe.js库自定义表单来收集客户的付款信息。这将返回您随后发送到服务器的令牌。
服务器端,在您的后端代码中(使用PHP,Python,Ruby或您喜欢的服务器端编程语言),您可以使用charge creation request中的令牌来实际为卡充电。
如果要使用"auth & capture"流,则需要在费用创建请求中传递capture=false
参数,即在服务器端代码中,而不是在令牌创建步骤中。
答案 1 :(得分:0)
将Stripe.createToken(args, stripeResponseHandler);
替换为
Stripe.card.createToken(args, stripeResponseHandler);
现在,您的stripeResponseHandler
是一个Javascript函数,在捕获信用卡详细信息后,从Stripe的服务器收到响应后执行。因此,您需要某种代码来处理响应:
function stripeResponseHandler(status, response) {
// Grab the form:
var $form = $('#payment-form');
if (response.error) { // Problem!
// Show the errors on the form
$form.find('.payment-errors').text(response.error.message);
$form.find('button').prop('disabled', false); // Re-enable submission
} else { // Token was created!
// Get the token ID:
var token = response.id;
// Insert the token into the form so it gets submitted to the server:
$form.append($('<input type="hidden" name="stripeToken" />').val(token));
// Submit the form:
$form.get(0).submit();
}
}
有关详细信息:https://stripe.com/docs/stripe.js#collecting-card-details