Nano Hash - криптовалюты, майнинг, программирование

Stripe - создание сеанса оформления заказа с помощью Stripe Connect

Я пытаюсь реализовать процедуру оформления заказа для неаутентифицированных клиентов, используя следующую логику:

  1. Собирать электронную почту клиентов

  2. Создайте клиента Stripe, используя следующую логику:

    const customer = await stripe.customers
     .create({
         email,
         name,
     })
     .then((customer) => customer)
     .catch((error) => {
         console.log(error);
         return null;
     });
    
  3. Создайте токен для передачи учетной записи в мою учетную запись бизнес-партнера Stripe Connect.

    const tempCustomerToken = await stripe.tokens.create(
             {
                 customer: customerAccId,
             },
             {
                 stripeAccount: vendorStripeAcc,
             }
         );
    
  4. Создать клиента на основании соотв.

    const tempCustomer = await stripe.customers.create(
             {
                 source: tempCustomerToken.id,
             },
             {
                 stripeAccount: vendorStripeAcc,
             }
         );
    
  5. Создайте кассовую сессию, используя идентификатор клиента из соотв.

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

Есть ли способ добиться следующего:

  1. Создайте клиента Stripe с адресом электронной почты и без способа оплаты в моей Stripe acc.
  2. Расскажите об этом клиенте Stripe Connect деловому партнеру.
  3. Разрешите клиенту использовать Stripe Checkout сеанс для совершения direct покупок в Stripe Connect учетной записи бизнес-поставщика.

Ответы:


1

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

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

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

Вам следует полностью пропустить все шаги и вместо этого просто создать сеанс проверки в подключенной учетной записи. По мере того, как вы проходите через Checkout, он будет собирать данные карты, принимать платеж, а также создавать для вас клиента в подключенной учетной записи, чтобы сохранить данные карты для будущих платежей.

Вы не сможете использовать этого клиента на платформе или его карте, но эта часть ожидается с учетом того, как построен Stripe Connect.

28.03.2021
Новые материалы

Кластеризация: более глубокий взгляд
Кластеризация — это метод обучения без учителя, в котором мы пытаемся найти группы в наборе данных на основе некоторых известных или неизвестных свойств, которые могут существовать. Независимо от..

Как написать эффективное резюме
Предложения по дизайну и макету, чтобы представить себя профессионально Вам не позвонили на собеседование после того, как вы несколько раз подали заявку на работу своей мечты? У вас может..

Частный метод Python: улучшение инкапсуляции и безопасности
Введение Python — универсальный и мощный язык программирования, известный своей простотой и удобством использования. Одной из ключевых особенностей, отличающих Python от других языков, является..

Как я автоматизирую тестирование с помощью Jest
Шутка для победы, когда дело касается автоматизации тестирования Одной очень важной частью разработки программного обеспечения является автоматизация тестирования, поскольку она создает..

Работа с векторными символическими архитектурами, часть 4 (искусственный интеллект)
Hyperseed: неконтролируемое обучение с векторными символическими архитектурами (arXiv) Автор: Евгений Осипов , Сачин Кахавала , Диланта Хапутантри , Тимал Кемпития , Дасвин Де Сильва ,..

Понимание расстояния Вассерштейна: мощная метрика в машинном обучении
В обширной области машинного обучения часто возникает необходимость сравнивать и измерять различия между распределениями вероятностей. Традиционные метрики расстояния, такие как евклидово..

Обеспечение масштабируемости LLM: облачный анализ с помощью AWS Fargate и Copilot
В динамичной области искусственного интеллекта все большее распространение получают модели больших языков (LLM). Они жизненно важны для различных приложений, таких как интеллектуальные..