Элемент оплаты Stripe с подпиской и пробным периодом

#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).