Я создал клиента и намерение платежа в Stripe с намерением взимать с клиента плату после того, как намерение платежа будет первоначально выполнено. Согласно этой статье, все, что мне нужно сделать, это добавить идентификатор клиента к намерению платежа и добавить setup_future_usage : 'off_session',
к объекту намерения платежа. Тогда я смогу позже вызвать в пункт назначения платежа и произвести оплату.
При выполнении тестового платежа я могу увидеть намерение использовать платеж в будущем на панели инструментов Stripe. намерение платежа для будущего использования
Но когда я вызываю способы оплаты клиента, я получаю пустой массив.
Попытка №1
const paymentMethods = await stripe.paymentMethods.list({
customer: customerId,
type: "card",
});
Попытка №2
const paymentMethods = await stripe.customers.listPaymentMethods(
customerId,
{
type: "card"
},
);
Пустой список в ответ: пустой ответ
Журналы Stripe также показывают эти попытки с правильным идентификатором клиента.
Я обновил намерение платежа, указав идентификатор клиента прямо перед звонком stripe.confirmPayment
. Мой процесс заключался в следующем: 1 – создать намерение платежа с указанием суммы, 2 – обновить намерение с помощью setup_future_usage
, 3 – создать клиента и добавить идентификатор клиента в намерение, 4 – подтвердить платеж.
Было бы полезно, если бы вы включили фрагменты кода, показывающие, как вы создаете и обновляете намерение платежа. Есть ли особая причина, по которой у вас нет идентификатора клиента на момент создания платежного намерения?
Я нашел решение. Я мог бы заставить метод оплаты автоматически привязываться к клиенту только в том случае, если бы я создал платежное намерение с идентификатором клиента Stripe. Ранее мой идентификатор клиента был добавлен в Платежное намерение с обновлением.
PaymentMethod будет прикреплен к клиенту только в том случае, если PaymentIntent имел значение
customer
на момент подтверждения. Добавляли ли выcustomer
к PaymentIntent при создании PaymentIntent или обновляли PaymentIntent идентификатором клиента перед подтверждением PaymentIntent?