0

我正在尝试使用自己的输入表单来获取信用卡信息,然后使用它来生成令牌。在 Stripe.js 3 中,这显然很难实现,因为它使用 iframe 将输入字段安装到每个div元素。显然有一个update()函数可以用来从其他地方(我自己的 UI)获取值,但我无法让它工作。有谁知道如何实现这一点?

var cardNumber = elements.create('cardNumber');
cardNumber.mount('#number');
var cardExpiry = elements.create('cardExpiry');
cardExpiry.mount('#example2-card-expiry');
var cardCvc = elements.create('cardCvc');
cardCvc.mount('#example2-card-cvc');

https://jsfiddle.net/507oh942/2/

https://stripe.com/docs/stripe.js#other-methods

我也不确定支持此功能的 Stripe.js 2 是否仍然有效。有没有人有使用旧版本的工作小提琴?

4

1 回答 1

1

在 Stripe.js v3 中,所有卡片信息都在 Stripe 域托管的 iframe 上提供,无法从您自己的表单中获取卡片信息。如果您需要这样做,我将继续使用 Stripe.js v2,但请注意随之而来的 PCI 影响(SAQ A-EP 与 SAQ A)。

如果您想将 v3 中的字段拆分为单独的组件(一个字段用于数字、到期等),您可以轻松地做到这一点,尽管它们仍然托管在 iframe 中。

有关完整示例,请参见此处,https://jsfiddle.net/o2n3js2r/132/

var cardNumberElement = elements.create('cardNumber', {
  style: style
});
cardNumberElement.mount('#card-number-element');

var cardExpiryElement = elements.create('cardExpiry', {
  style: style
});
cardExpiryElement.mount('#card-expiry-element');

var cardCvcElement = elements.create('cardCvc', {
  style: style
});
cardCvcElement.mount('#card-cvc-element');

var postalCodeElement = elements.create('postalCode', {
  style: style
});
postalCodeElement.mount('#postal-code-element');
于 2017-10-29T16:33:33.917 回答