3DS 检查后条纹订阅不完整
Stripe Subscription incomplete after 3DS check
我不确定我是否理解这个 "new" Stripe SCA 3DS 流程。当我成功完成3DS认证,创建客户,然后订阅,订阅标记为"incomplete".
这是我当前的 Javascript 实现:
form.addEventListener('submit', function(event) {
event.preventDefault();
disableFormSubmit(true);
stripe.confirmCardPayment($('input#client_secret').val(), {
payment_method: {
card: cardElement,
billing_details: {
name: $('input#first_name').val()+' '+$('input#last_name').val(),
email: $('input#email').val(),
}
}
}).then(function(result){
console.log(result);
if (result.error) {
disableFormSubmit(false);
showPaymentError(result.error.message);
} else {
if (result.paymentIntent.status === 'succeeded') {
disableFormSubmit(true);
$('input#payment_method').val(result.paymentIntent.payment_method);
form.submit();
}
}
});
});
confirmCardPayment
已经进行了验证,向我展示了这个叠加层,我在其中单击 "Complete Authentication"。
在此之后,成功创建了客户(和付款方式)并为客户附加了订阅。但是订阅状态现在显示 "incomplete" 和 "requires_action"。现在这是我不明白的。之前的overlay不是负责这个吗?根据文档 (https://stripe.com/docs/billing/subscriptions/set-up-subscription#manage-sub-status) 我应该再次调用 confirmCardPayment
,我不明白,因为我刚刚这样做了,请参阅 JS 代码。
为什么我的订阅仍然未完成并显示 "requires_action" 状态,即使我确实刚刚完成了这一步?
part of the guide you're looking at 是关于处理额外的身份验证操作和从失败的付款中恢复。此时您应该只提供 client_secret
:
stripe.confirmCardPayment(client_secret)
在您的代码片段中,您再次提供了 cardElement
,而它已经是 provided earlier:
stripe.createPaymentMethod({
type: 'card',
card: cardElement, // <-------
billing_details: {
email: 'jenny.rosen@example.com',
},
})
我怀疑因此发生了意外情况,因此请调整您的代码以遵循指南的流程,它应该可以工作。
我不确定我是否理解这个 "new" Stripe SCA 3DS 流程。当我成功完成3DS认证,创建客户,然后订阅,订阅标记为"incomplete".
这是我当前的 Javascript 实现:
form.addEventListener('submit', function(event) {
event.preventDefault();
disableFormSubmit(true);
stripe.confirmCardPayment($('input#client_secret').val(), {
payment_method: {
card: cardElement,
billing_details: {
name: $('input#first_name').val()+' '+$('input#last_name').val(),
email: $('input#email').val(),
}
}
}).then(function(result){
console.log(result);
if (result.error) {
disableFormSubmit(false);
showPaymentError(result.error.message);
} else {
if (result.paymentIntent.status === 'succeeded') {
disableFormSubmit(true);
$('input#payment_method').val(result.paymentIntent.payment_method);
form.submit();
}
}
});
});
confirmCardPayment
已经进行了验证,向我展示了这个叠加层,我在其中单击 "Complete Authentication"。
在此之后,成功创建了客户(和付款方式)并为客户附加了订阅。但是订阅状态现在显示 "incomplete" 和 "requires_action"。现在这是我不明白的。之前的overlay不是负责这个吗?根据文档 (https://stripe.com/docs/billing/subscriptions/set-up-subscription#manage-sub-status) 我应该再次调用 confirmCardPayment
,我不明白,因为我刚刚这样做了,请参阅 JS 代码。
为什么我的订阅仍然未完成并显示 "requires_action" 状态,即使我确实刚刚完成了这一步?
part of the guide you're looking at 是关于处理额外的身份验证操作和从失败的付款中恢复。此时您应该只提供 client_secret
:
stripe.confirmCardPayment(client_secret)
在您的代码片段中,您再次提供了 cardElement
,而它已经是 provided earlier:
stripe.createPaymentMethod({
type: 'card',
card: cardElement, // <-------
billing_details: {
email: 'jenny.rosen@example.com',
},
})
我怀疑因此发生了意外情况,因此请调整您的代码以遵循指南的流程,它应该可以工作。