stripe.confirmCardSetup(clientSecret,
{
payment_method: {
card: {
number: this.state.form.values.number,
exp_month: this.state.form.values.expiry.substring(0,2),
exp_year: this.state.form.values.expiry.substring(3,5),
cvc: this.state.form.values.cvc,
},
billing_details: {
name: name,
},
},
}
).then(function(result) {...})
我试图创建一种付款方式,客户稍后可以通过stripe的confirmCardSetup使用,不使用stripe元素,而是在付款方式字段中输入卡信息(编号、cvc、到期日(。它没有起作用,我想知道我是否可以做这种性质的事情?(我们使用的是react native,不想使用tipsi条纹(
我想好了如何实现这一点。以下是解决方案,以防其他人遇到同样的问题:
var paymentMethod = {
payment_method: {
card: this.cardNumberElement,
billing_details: {
name: this.billingNameText.getValue()
}
}
};
stripe.confirmCardSetup(setupIntentSecret, paymentMethod)
.then(function(result) { ... });
如果将属性card
分配给使用以下代码创建的cardElement
对象,则此操作有效:
this.elements = this.stripe.elements();
this.cardNumberElement = this.elements.create('cardNumber');
this.cardNumberElement.mount('#card-number');
this.cardExpiryElement = this.elements.create('cardExpiry');
this.cardExpiryElement.mount('#card-expiry');
this.cardCvcElement = this.elements.create('cardCvc');
this.cardCvcElement.mount('#card-cvc');
关键是必须从同一个elements
对象创建所有组件。这将所有组件关联在一起,并将所有对象的所有信息发送到Stripe API。