#stripe-payments
Вопрос:
Я переношу элемент Stripe card в элемент Stripe Payment с подписками, следуя этому руководству https://stripe.com/docs/billing/subscriptions/build-subscription?ui=elements , но когда я добавляю пробный период к подписке, api не возвращает назначение платежа «израсходованного» счета-фактуры, где можно получить client_secret для использования с методом js elements.create.
Итак, я следовал этому руководству https://stripe.com/docs/payments/payment-element/migration ?integration-path = future использовать намерение установки вместо намерения оплаты, но при вызове elements.create("payment")
после создания экземпляра элементов с помощью этого кода
const elements = stripe.elements({
clientSecret: client_secret
});
Я получаю следующую ошибку от stripe:
Uncaught IntegrationError: Missing value for elements.create('payment'): clientSecret should be a client_secret string.
client_secret
Переменная содержит строку, подобную этой seti_1Jr36EGwrHzEL7YxdKlo86JF_secret_KW5G5nr6Dv1i9fnFhlQk9iA7yhe5tgP
, взятую из намерения установки.
Где я ошибаюсь?
Как я могу использовать элемент оплаты Stripe с подписками с пробным периодом?
Спасибо ENx
Комментарии:
1. где вы можете найти решение? В настоящее время у меня такая же проблема
Ответ №1:
Чтобы настроить описание с пробным периодом, используйте client_secret в объекте pending_setup_intent, который необходимо расширить.
Вот пример, как я заставил его работать:
export const createStripeSubscription = async (customerId, priceId, trial_period) => {
try {
const subscription = await stripe.subscriptions.create({
customer: customerId,
items: [{
price: priceId,
}],
trial_period_days: trial_period,
expand: ['pending_setup_intent'],
});
return {
subscriptionId: subscription.id,
clientSecret: subscription.pending_setup_intent.client_secret,
}
} catch (error) {
return null
}
}
Комментарии:
1. Я попробовал ваше предложение, и оно создает секрет клиента. Но когда я передаю это своим элементам object> stripe.elements({ внешний вид, clientSecret }) Я получаю сообщение об ошибке «Нет такого payment_intent: ‘seti_1KNh2ZA5uxwqgSm». Можете ли вы указать мне направление, в котором вы решили эту конкретную проблему? Спасибо
2. Я надеюсь, что вы решили свою проблему, но я думаю, это потому, что вы передаете ее как намерение оплаты, а не как намерение настройки. У вас может быть свойство setupIntentSecret (именно так оно работает в библиотеке flutter).