Транзакции через Stripe Connect
Я пытаюсь настроить следующее с помощью Stripe:
- Основная учетная запись
- Несколько субсчетов (т.е. подключенных к основной учетной записи через приложение Stripe Connect)
- Позволяет осуществлять платежи на субсчет с процентной комиссией, взимаемой с Основного счета за транзакцию.
Я создал Основную учетную запись и дополнительную учетную запись. Я подключил дополнительную учетную запись к основной учетной записи через Stripe Connect. Я получил и сохранил access_token и refresh_token в конце процесса подключения Stripe.
Когда производятся платежи, один платеж может охватывать несколько позиций. У меня есть следующий код (PHP) для обработки платежа:
Stripe_Charge::create(array(
"amount" => $amt,
"currency" => "EUR",
"source" => $stripeCardToken,
"description" => $description),
"application_fee_percent" => 0.5
),
$stripeAccessToken
);
Это помещается в цикл для каждого оплаченного товара. Он также находится в блоке try/catch с несколькими перехватами исключений полосы. Однако этот метод завершается неудачей без какой-либо ошибки.
Правильно ли использовать этот метод класса?
Является ли поле "источник" для кредитной карты жетон?
Есть ли способ отслеживать суммы, уплаченные по нескольким позициям, без использования цикла?
Возвращается ли $stripeAccessToken
access_token субсчета из процесса подключения или refresh_token? Или это Публикуемый/Секретный ключ Главной учетной записи? Или что-то еще?
Могу ли я использовать этот формат для $stripeaccesstoken, или мне нужно вместо этого использовать Stripe::setApiKey($stripeAccessToken)
перед циклом?
Как основной, так и вспомогательный аккаунт в настоящее время используют тестовую среду и поддельную карту, но я хотел бы протестировать вживую транзакции также.
1 answers
Первая проблема здесь заключается в том, что вы пытаетесь повторно использовать токен карты, но это одноразовое использование, поэтому, как только вы создадите плату с помощью токена карты, вы не сможете создать новый.
Если вы хотите взимать плату со своего клиента и распределять платежи между несколькими продавцами, вам нужно будет использовать общих клиентов . Это поток, которому вам нужно следовать в вашем случае:
- Создайте карточный токен для реквизитов карты вашего клиента с помощью вашего публикуемого API ключ
- Создайте клиента в своей учетной записи stripe с помощью вашего секретного ключа.
- Для каждого из ваших продавцов вам необходимо создать токен для клиента, который вы затем используете для создания платы в своих учетных записях продавцов. Вам придется создавать отдельные сборы здесь для каждого продавца, но вам не нужно несколько раз запрашивать у клиента данные его карты.
В случае, если я неправильно понял и все товары поступят от одного и того же продавца, вам не нужно будет этого делать все это, и вам нужно будет следовать этому потоку:
- Создайте маркер карты для данных карты вашего клиента с помощью их публикуемого ключа API, который вы получили во время подключения.
- Создайте клиента в своей учетной записи stripe с помощью их
access_token
который вы получили во время потока подключения, переданный в качестве второго параметра вызову API. - Создайте плату за общую сумму товаров, купленных клиентом, передав идентификатор клиента, который вы получили на предыдущем шаг и
access_token
снова в качестве второго параметра.