[*] Заказчик подчиняет форму платежа, а запрос на бэкэнд, чтобы создать намерение установки:
Код: Выделить всё
const setupIntent = await stripe.setupIntents.create({
usage: 'off_session',
customer: req.user.stripeCustomerId,
payment_method_types: ['card']
});
return {
statusCode: 200,
body: JSON.stringify({
clientSecret: setupIntent.client_secret,
setupIntentId: setupIntent.id
})
};
< /code>
< /li>
Метод оплаты создается через API Elements Stripe Frontend: < /p>
const cardElement = elements.getElement(CardNumberElement)!;
const { paymentMethod, error: pmError } =
await stripe.createPaymentMethod({
type: "card",
card: cardElement,
billing_details: {
address: {
postal_code: postalCode,
},
name: fullName,
},
});
< /code>
< /li>
Я затем обновил намерение настройки с помощью этого недавно созданного идентификатора метода оплаты на бэкэнд: < /p>
const { paymentMethodId, setupIntentId } = req.body;
const setupIntent = await stripe.setupIntents.update(setupIntentId, {
payment_method: paymentMethodId
});
return {
statusCode: 200,
body: JSON.stringify({
clientSecret: setupIntent.client_secret,
setupIntentId: setupIntent.id
})
};
const { setupIntent, error: confirmError } =
await stripe.confirmCardSetup(updatedSetupIntentData.clientSecret);
< /code>
< /li>
Я затем пытаюсь создать подписку: < /p>
const subscription = await stripe.subscriptions.create({
customer: req.user.stripeCustomerId,
items: [
{ price: PRICE_ID }
],
expand: ['latest_invoice.payment_intent'] // helps with frontend handling
});
< /code>
< /li>
< /ol>
Вот где возникает проблема, я получаю следующую ошибку на инструментальной панели полосы: < /p>
Владелец карты начал 3D Secure Authentication, но не завершен
whout. 3DS аутентификация снова. Я думал, что это уже сделано на шаге 4?
Подробнее здесь: https://stackoverflow.com/questions/797 ... ts-to-work
Мобильная версия