34

是否可以进行条纹支付,

首先我们将使用条带验证信用卡,然后我们生成令牌并创建客户。我们将在数据库中保存令牌而不是信用卡信息,稍后我们将根据令牌或客户而不是信用卡信息向客户付款。

在 javscript 文件中我们如何处理stripeResponseHandlerfunction stripeResponseHandler(status, response)

因为我们已经使用

Stripe.createToken({
            number: cardNumber,
            cvc: cardCVC,
            exp_month: $('#expiration-month').val(),
            exp_year: $('#expiration-year').val()
        }, stripeResponseHandler);

在付款步骤中,我们如何调用 stripeResponseHandler?


请理解需求

1-通过验证信用卡信息保存令牌,在这种情况下不涉及付款。金额/价格将为零(0)。

2-将此令牌保存在您的数据库中,但此令牌使用一次并不多次。如果稍后使用此令牌,它将不起作用。

3-创建客户将在stripe.com创建一个客户,我们也可以保存在我们的数据库中,但原因是我们不会从我们的网站充值,我们必须登录stripe.com并从该网站充值。当我们从该站点充值时,我们无法将其记录保存在我们的数据库中。此外,在创建客户时,我们必须为后者创建充值。如果我们使用这个客户,我们还需要再次使用信用卡。所以这是主要问题。

4- 我们可以制作自己的函数stripeResponseHandler ,因为通过stripeResponseHandler验证卡片可以在条带服务器的 stripe.js 中完成。

4

5 回答 5

37

我建议不要保存令牌本身,而是创建一个客户并保存您的客户 ID。然后,您可以在将来的任何时间向您的客户收费。稍后请参阅我们关于保存卡详细信息的文档。

在 javscript 文件中,我们如何处理 stripeResponseHandler 和函数 stripeResponseHandler(status, response)。

您将需要创建一个函数并stripeResponseHandler在调用时将其作为您的传递createToken。所有这个功能需要做的就是将您的令牌插入您的表单并提交它。这里有一个简单的例子:https ://gist.github.com/bocher/1750375

于 2013-08-22T10:30:40.223 回答
25

在 Stripe 中,为了保存一张卡(或银行帐户)以供以后收费,您必须创建一个客户,然后将付款来源(卡或银行帐户)添加到该客户。

创建具有付款来源(或多个来源)的客户后,您有 3 个选项来创建费用。

  1. 使用默认来源向客户收费:

    Stripe::Charge.create(
        amount: 1000,
        currency: 'usd',
        customer: 'cus_xxxx'
    )
    
  2. 使用信用卡向客户收费:

    Stripe::Charge.create(
        amount: 5000,
        currency: 'usd',
        customer: 'cus_xxxx',
        card: 'card_xxxx'
    )
    
  3. 使用银行账户向客户收费:

    Stripe::Charge.create(
        amount: 8000,
        currency: 'usd',
        customer: 'cus_xxxx',
        bank_account: 'ba_xxxx'
    )
    
于 2016-06-03T04:50:39.097 回答
8

与其保存令牌,不如创建一个客户对象并仅在本地保存卡 ID。当您付款时,您可以选择定义要收费的卡。(如果您将客户 ID 传递给 stripe.charges.create)。在这种情况下,您不必传递令牌。使用这种方法,您也不需要处理默认卡。

stripe.charges.create({
amount: 400,
currency: "usd",
card: "card_xxxxx", 
customer: "cus_xxxxxx", 
于 2014-12-08T23:09:15.280 回答
2

使用此代码剪断,稍后您可以通过传递捕获交易 id 上的付款:true

token = params[:stripeToken]
    # Charge the user's card:
    charge = Stripe::Charge.create(
      :amount => 1000,
      :currency => "usd",
      :description => "Example charge",
      :capture => false,
      :source => token,
    )

有关更多详细信息,请参阅链接 ,如下所述:

capture:- 可选,默认为true 是否立即捕获费用。如果为 false,则收费会发出授权(或预授权),并且需要稍后捕获。未捕获的费用将在 7 天后到期。有关更多信息,请参阅授权收费和稍后结算。

我认为它可以解决您面临的问题

于 2017-12-13T15:51:43.137 回答
0

要创建令牌,您首先需要从 stripe.com 引用 stripe.js

   <script src="https://js.stripe.com/v3/"></script>

然后添加以下代码以添加您的卡信息并生成令牌。

    var stripe = Stripe('Your stripe publisheable key');
  var elements = stripe.elements;

stripe.createToken(elements[0], additionalData).then(function (result) {
                example.classList.remove('submitting');

                if (result.token) {
                    // If we received a token, show the token ID.
                    example.querySelector('.token').innerText = result.token.id;
                    example.classList.add('submitted');
                }

在这里,您将获得一个令牌,这是创建您的客户所必需的。使用以下代码创建您的客户。我使用 C#.NET

StripeConfiguration.SetApiKey("sk_test_JTJYT2SJCb3JjLQQ4I5ShDLD");

var options = new CustomerCreateOptions {
  Description = "Customer for jenny.rosen@example.com",
  SourceToken = "tok_amex"
};

var service = new CustomerService();
Customer customer = service.Create(options);

然后,您可以从您从 stripe 获得的卡令牌中从该用户那里削减您的价格,如下所示:

StripeConfiguration.SetApiKey("sk_test_JTJYT2SJCb3JjLQQ4I5ShDLD");

var options = new ChargeCreateOptions {
    Amount = 2000,
    Currency = "aud",
    Description = "Charge for jenny.rosen@example.com",
    SourceId = "tok_amex" // obtained with Stripe.js, }; var service = new ChargeService(); Charge charge = service.Create(options);
于 2018-10-31T08:27:19.723 回答