Stripe connect — сохранение карты во время оплаты

#stripe-payments

#stripe-платежи

Вопрос:

Я пытаюсь сохранить кредитную карту во время оплаты с помощью stripe connect.

Я следую документам здесь

Однако документы не предназначены для stripe connect. Они предназначены для регулярных платежей Stripe.

Мой код такой же, как в документах, за исключением того, что мои paymentIntents создаются в подключенной учетной записи, потому что я хочу, чтобы плата была на подключенной учетной записи.

                                 stripe.paymentIntents.create({
                                    payment_method_types: ['card'],
                                    amount: Math.round(Number(req.body.stripeData.amount *100)),
                                    currency: userEvent.currency,
                                    description: userEvent.title,
                                    application_fee_amount: Math.round(Number((fees.applicationFee) *100)),
                                    customer: stripeCustomerID 
                                    },{
                                    stripe_account: sellerDetails.stripeAccountID,
                                    }
                                )
 

Это выдает мне ошибку No such customer: 'cus_ITBFODvD6dB1vP' , которая имеет смысл, потому что клиент настроен на учетную запись платформы.

Я хочу сохранить клиента и способ оплаты в своей учетной записи платформы, а затем списать средства с подключенной учетной записи.

Есть ли простой способ сделать это, аналогичный документам, или я должен выполнить обходной код, чтобы сохранить клиента и способ оплаты в учетной записи платформы, а затем автоматически списать его с подключенной учетной записи

Ответ №1:

Вы можете создать Клиента в подключенной учетной записи вместо своей платформы, указав также stripe_account в вызове создания клиента. Что-то вроде этого:

 stripe.customers.create({
    // Customer details here
},
{
    stripe_account: sellerDetails.stripeAccountID
});
 

Вы можете использовать этот метод для выполнения практически любого вызова API от имени подключенной учетной записи вместо учетной записи вашей платформы. Для получения более подробной информации ознакомьтесь с документацией по аутентификации с помощью Connect.

Похоже, вы используете более старую версию библиотеки узлов Stripe; в более новых версиях stripeAccount вместо объекта stripe_account «Последние параметры» используется объект, переданный в методы библиотеки. Просто кое-что, на что следует обратить внимание, если вы переходите на более новую версию библиотеки!

Комментарии:

1. Спасибо за это. Не будет ли это означать, что платежные данные клиентов сохраняются только в ЭТОЙ подключенной учетной записи? Я хотел бы сохранить их данные в своей учетной записи платформы, чтобы я мог использовать их сохраненные платежные данные в ЛЮБОЙ подключенной учетной записи.

2. Это правильно. Если вы хотите, чтобы данные о клиентах и платежах сохранялись как на вашей платформе, так и в подключенной учетной записи, вам следует рассмотреть возможность клонирования ваших клиентов и способов оплаты .

3. Таким образом, кодирование для надежной аутентификации клиентов означает, что для сохранения карты клиента для использования во всех подключенных учетных записях мне нужно выполнить следующие шаги: 1. на серверной части создайте customer и setupIntent 2. на интерфейсе confirmCardSetup 3. на серверной части снова клонируйте способ оплаты на подключенный создайте учетную запись и создайте внесессионное платежное намерение. 4. отобразите, было ли это успешным или неудачным на интерфейсе, Это будет работать, но учитывая, что клиент остается в ожидании завершения всех этих вызовов!