Stripe auth并在javascript中捕获

时间:2016-12-06 11:18:22

标签: stripe-payments

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);

2 个答案:

答案 0 :(得分:1)

Stripe的典型付款流程可分为两个步骤:

  1. 客户端,在您的前端(HTML + Javascript)代码中,您使用Stripe的预建Checkout表单或您自己的Stripe.js库自定义表单来收集客户的付款信息。这将返回您随后发送到服务器的令牌。

  2. 服务器端,在您的后端代码中(使用PHP,Python,Ruby或您喜欢的服务器端编程语言),您可以使用charge creation request中的令牌来实际为卡充电。

  3. 如果要使用"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