Транзакции через Stripe Connect

Я пытаюсь настроить с помощью Stripe следующее:

  • Мастер-счет
  • Несколько субсчетов (т.е. подключенных к основной учетной записи через приложение Stripe Connect)
  • Позволяет производить платежи на субсчет с процентной комиссией, взимаемой с основного счета за транзакцию.

Я создал основную учетную запись и дополнительную учетную запись. Я подключил дополнительную учетную запись к основной учетной записи через Stripe Connect. Я получил и сохранил access_token и refresh_token в конце процесса Stripe Connect.

Когда производятся платежи, один платеж может охватывать несколько позиций. У меня есть следующий код (PHP) для обработки платежа:

Stripe_Charge::create(array(
    "amount" => $amt,
    "currency" => "EUR",
    "source" => $stripeCardToken,
    "description" => $description),
    "application_fee_percent" => 0.5
),
    $stripeAccessToken
);

Это помещается в цикл для каждого оплаченного предмета. Он также находится в блоке try / catch с несколькими перехватами исключений Stripe. Однако этот метод не работает без каких-либо ошибок.

Это правильный метод класса для использования? Является ли поле «источник» для токена кредитной карты? Есть ли способ отслеживать суммы, уплаченные по нескольким позициям, без использования цикла? $stripeAccessToken токен access_token субаккаунта, возвращенный процессом Connect, или refresh_token? Или это публикуемый / секретный ключ основной учетной записи? Или что-то другое? Могу ли я использовать этот формат для $ stripeAccessToken или мне нужно вместо этого использовать Stripe::setApiKey($stripeAccessToken) перед циклом?

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


person Eamonn    schedule 12.03.2015    source источник


Ответы (1)


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

Если вы хотите взимать плату со своего покупателя и разделять платежи между несколькими продавцами, вам необходимо использовать общих клиентов < / а>. Это последовательность действий, которой вам нужно будет следовать в вашем случае:

В случае, если я неправильно понял и все товары будут поступать от одного продавца, вам не нужно будет все это делать, и вам нужно будет следовать следующему алгоритму:

  • Создайте токен карты для данных карты вашего клиента с помощью их публикуемого ключа API, который вы получили во время процесса подключения.
  • Создайте клиента в его полосовой учетной записи с помощью их access_token, полученного вами во время процесса подключения, переданного в качестве второго параметра в вызов API.
  • Создайте плату за общее количество товаров, купленных клиентом, передав идентификатор клиента, полученный на предыдущем шаге, и access_token в качестве второго параметра снова.
person koopajah    schedule 12.03.2015
comment
Спасибо за эту купажу. Последний пример - это то, что я искал. Последующий вопрос: есть ли способ провести одну транзакцию, которая охватывает несколько элементов и чтобы каждый элемент был отмечен в описании транзакции (кроме простого создания действительно длинной строки)? - person Eamonn; 19.03.2015
comment
Единственное решение, которое я могу придумать, - это создать элементы счета-фактуры для каждого элемента, а затем создать счет-фактуру, чтобы связать все вместе. - person koopajah; 19.03.2015
comment
Чтобы быть ясным, вы говорите, что если бы вы продали виджет за 10 долларов, при этом 9 долларов ушли двум вашим отдельным сотрудникам, вам нужно было бы, скажем, взимать с покупателя дважды, скажем, 5 долларов у партнера. Foo и отдельная плата в размере 4 долларов для ассоциированной компании. Бар. - person MCB; 29.02.2016
comment
@MCB: правильно: support.stripe.com/questions/ есть подробности об этом. - person koopajah; 01.03.2016