首页 > 解决方案 > StripeJS - 在输入中获取 Exp 月份和年份

问题描述

我正在实现 StripeJS Elements 以允许用户在我们的平台中添加他们的信用卡信息。

作为我们实施的一部分,我们希望在用户的信用卡在订阅周期内过期时向用户显示一些 UI。为此,我们需要在用户输入时从 Card 元素中提取到期月份和到期年份。我已经搜索了 Stripe 文档,但似乎找不到办法做到这一点?

到目前为止,这是我的实现:

stripe = Stripe('pk_test_xxxxxxxxxxxxxxxxxxxxxxxxx');
elements = stripe.elements({
    locale: auto
});

card = elements.create('card', {
    iconStyle: 'solid',
    style: {
      base: {
        iconColor: '#495057',
        color: '#495057',
        fontWeight: 400,
        fontFamily: 'Poppins, Helvetica, sans-serif',
        fontSize: '14px',
        fontSmoothing: 'antialiased',

        ':-webkit-autofill': {
          color: '#fce883',
        },
        '::placeholder': {
          color: '#e2e5ec',
        },
      },
      invalid: {
        iconColor: '#FF0000',
        color: '#FF0000',
      },
    },
});

card.addEventListener('change', function(event) {

    // this doesn't seem to be capturing keystrokes, or give me any real info about the card

});

标签: javascriptstripe-payments

解决方案


使用事件是不可能的change,因为这只会暴露元素是否为空以及它是否“看起来”完整。

您可以使用 stripe.js 首先使用该元素创建一个 PaymentMethod ,然后从该 PaymentMethod 获取到期日期。但是,这需要您的用户首先完全填写元素。


推荐阅读