#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. отобразите, было ли это успешным или неудачным на интерфейсе, Это будет работать, но учитывая, что клиент остается в ожидании завершения всех этих вызовов!