javascript - 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
});
解决方案
使用事件是不可能的change
,因为这只会暴露元素是否为空以及它是否“看起来”完整。
您可以使用 stripe.js 首先使用该元素创建一个 PaymentMethod ,然后从该 PaymentMethod 获取到期日期。但是,这需要您的用户首先完全填写元素。
推荐阅读
- java - 使用大画布时 JavaFX 中的 NullPointers
- android - 在 Flutter 中显示列表中的一个元素
- ruby-on-rails - Rails ActionView::SyntaxErrorInTemplate(渲染模板时遇到语法错误:)
- ssl - 如何为 Google Cloud 负载均衡器设置 Letsencrypt?
- json - 使用 Spring Batch 生成非常大的复杂 JSON 文件
- reactjs - 如何使用 useContext 钩子传递数据?
- apache-kafka - Confluent Replicator 的偏移转换如何处理时钟偏差?
- html - 如何根据屏幕大小对齐项目?
- excel - 发送附件 PDF
- python - Python NameError:未定义名称'timeInMinutes'