Stripe payments 如何添加持卡人';使用元素的条带签出的名称?

Stripe payments 如何添加持卡人';使用元素的条带签出的名称?,stripe-payments,stripe.js,Stripe Payments,Stripe.js,我需要在自定义表单中添加一个附加字段,我想添加信用卡的名称 我尝试了以下方法: var cardNameElement = elements.create('cardName', { style: style //, placeholder: 'Custom card number placeholder', }); cardNameElement.mount('#card-name-element'); <div id="card-name-element" class="fi

我需要在自定义表单中添加一个附加字段,我想添加信用卡的名称

我尝试了以下方法:

var cardNameElement = elements.create('cardName', {
  style: style
  //, placeholder: 'Custom card number placeholder',
});
cardNameElement.mount('#card-name-element');

<div id="card-name-element" class="field"></div>

卡号
到期日
CVC
付25美元
成功!你的条纹标记是

元素目前不支持收集持卡人姓名。它侧重于收集:

  • 卡号
  • 有效期
  • CVC
  • 邮政编码(在某些国家)
如果您想收集持卡人姓名,您必须为该姓名构建自己的字段,并在令牌创建期间将其提交给API:

var card_name = document.getElementById('card_name').value;
stripe.createToken(card, {name: card_name}).then(setOutcome);

您可以在这里看到JSFIDLE上的一个实例:

我在这方面像idoit一样挣扎了一段时间。自2019年2月起,您可以添加tokenData对象,其中包含卡的详细信息。例如:

let custData = {
                          name: 'Firstname Lastname',
                          address_line1: '21 Great Street',
                          address_line2: 'Shilloong',
                          address_city: 'Chicago',
                          address_state: 'Illinois',
                          address_zip: '12345',
                          address_country: 'US'
              };

              stripe.createToken(card, custData).then(function(result) {
                if (result.error) {
                  // Inform the user if there was an error.
                  var errorElement = document.getElementById('card-errors');
                  errorElement.textContent = result.error.message;
                } else {
                  // Send the token to your server.
                  stripeTokenHandler(result.token);
                }
              });
            });
如果您使用的是“PaymentIntents”,如果您是基于欧盟/SCA的,则可能应该使用该选项,那么该选项的格式再次发生了轻微变化

stripe.confirmCardPayment(
  '{PAYMENT_INTENT_CLIENT_SECRET}',
  {
    payment_method: {
      card: cardElement,
      billing_details: {
        name: 'Jenny Rosen'
      }
    }
  }
).then(function(result) {
  // Handle result.error or result.paymentIntent
});
stripe.confirmCardPayment
单据:

账单详情
对象单据:


我将元数据用于自定义字段,如持卡人姓名:

... create({
              amount: myAmount,
              currency: 'USD,
              description: "Put your full discription here",
              source: tokenid,
              metedata: {any: "set of", key: "values", that: "you want", cardholder: "name"}
           },
             idempotency_key "my_idempotency_key"
           )}

资源:

填写除名称外的所有数据时,发送表单时不会显示字段名称的错误,如何使用条带或jQuery的javascript代码验证它simple@StaOne只需在代码中添加一些逻辑,查看字段是否为空,如果不是空的话,只需创建一个令牌。如果我之前找到了这篇文章,那么我就可以省下几个小时浏览糟糕的(尽管内容广泛)条带文档。元素似乎缺少它所能做的,并且它们没有暗示额外的UI组件根本不存在的事实。感谢您提供的信息koopajah。我还没有在生产中使用它,它在测试环境中工作。如果Stripe不知道持卡人的姓名,费用能支付吗?@Adam:是的,交易不需要持卡人。现在我想知道如何发送电子邮件?你可能知道吗?