I'm not sure I understand this "new" Stripe SCA 3DS flow. When I successfully complete the 3DS authentication, create a customer, then the subscription, the subscription is marked as "incomplete".
This is my current Javascript implementation:
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
already takes care of the validation, showing me this overlay, where I click "Complete Authentication".
Following this, the customer (and payment method) is successfully created and a subscription is attached to the customer. But the subscription status now says "incomplete" with "requires_action". Now this is what I don't understand. Isn't the previous overlay responsible for this? According to the docs (https://stripe.com/docs/billing/subscriptions/set-up-subscription#manage-sub-status) I should call confirmCardPayment
again, which I do not understand as I just did that, see JS code.
Why is my subscription still incomplete with a "requires_action" status even though I literally just completed this step?