Я пытаюсь реализовать процедуру оформления заказа для неаутентифицированных клиентов, используя следующую логику:
Собирать электронную почту клиентов
Создайте клиента Stripe, используя следующую логику:
const customer = await stripe.customers .create({ email, name, }) .then((customer) => customer) .catch((error) => { console.log(error); return null; });
Создайте токен для передачи учетной записи в мою учетную запись бизнес-партнера Stripe Connect.
const tempCustomerToken = await stripe.tokens.create( { customer: customerAccId, }, { stripeAccount: vendorStripeAcc, } );
Создать клиента на основании соотв.
const tempCustomer = await stripe.customers.create( { source: tempCustomerToken.id, }, { stripeAccount: vendorStripeAcc, } );
Создайте кассовую сессию, используя идентификатор клиента из соотв.
const session = await stripe.checkout.sessions.create( { payment_method_types: ['card', 'alipay'], customer: tempCustomer.id, line_items: items, success_url: 'https://example.com/success', cancel_url: 'https://example.com/cancel', payment_intent_data: { application_fee_amount: 50 }, }, { stripeAccount: vendorStripeAcc, } );
Ошибка на шаге 2 с этой ошибкой - The customer must have an active payment source attached.
Однако я хочу, чтобы покупатель указывал свой способ оплаты во время Stripe Checkout
сеанса, поэтому, когда я создаю клиента, я не хочу запрашивать у него какую-либо информацию о платеже.
Есть ли способ добиться следующего:
- Создайте клиента Stripe с адресом электронной почты и без способа оплаты в моей Stripe acc.
- Расскажите об этом клиенте
Stripe Connect
деловому партнеру. - Разрешите клиенту использовать
Stripe Checkout
сеанс для совершенияdirect
покупок вStripe Connect
учетной записи бизнес-поставщика.