2016-09-16 8 views
0

Мы используем шлюз оплаты Stripe в одном из приложений.Stripe - невозможно осуществить переход на подключенный автономный счет

В нашей модели у нас будут клиенты и связанные аккаунты. Мы будем взимать плату с клиентов за определенные услуги, а затем периодически (еженедельно/ежемесячно и т. Д.) Переносить долю доходов клиентов в подключенных учетных записей. Подключенные владельцы учетных записей - это своего рода деловые партнеры.

Я могу успешно создавать клиентов с карточкой и заряжать их позже, используя API-интерфейс Stripe java. Но у меня возникают проблемы с передачей суммы автономным подключенным учетным записям.

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

com.stripe.exception.InvalidRequestException: No such token: pk_test_kXinGPY8H2cyc5vWOQagwkbE; 

Я действительно не уверен, что должно быть значением параметра «источник» при передаче на подключенную учетную запись. Должен ли он ссылаться на платеж, ранее взимаемый с клиента? Поскольку для клиентов будет взиматься более одного платежа и только один периодический перевод на подключенный аккаунт, я не уверен, какой должен быть источник.

Мой пример кода, как,

Stripe.apiKey = "platform account's secret key" 
Charge charge = null; 
Map<String, Object> chargeParams = new HashMap<String, Object>(); 
chargeParams.put("amount", 200); 
chargeParams.put("currency", "usd"); 
chargeParams.put("source", "pk_test_kXinGPY8H2cyc5vWOQagwkbE"); //{platform accounts public key} 
chargeParams.put("destination", ""acct_18gKXJHZfNFseiFv""); //Connected account's id   
charge = Charge.create(chargeParams); 

Я просто хотел бы знать, если бизнес-сценарий описанный выше, может быть достигнуто путем нашивки шлюза. И если да, то пожалуйста, укажите мне какие-либо ошибки, которые я, возможно, делаю в приведенном выше примере кода. Спасибо.

EDIT:

Так что, похоже, при нормальных обстоятельствах, нашивки не позволяют перевод средств с одного счета на полоску другие без передачи будучи непосредственно связанно с зарядом клиента. Он разрешает передачу особых случаев с одной учетной записи Stripe другим, но требует, чтобы объем таких платежей не превышал 10% от ваших общих транзакций .

В нашем случае нам просто нужно периодически выплачивать нашим суб-торговцам их долю дохода, и это необязательно должно быть передачей полосой в полосу. мы всегда можем зарегистрировать нашего клиента как одного из клиентов на своей учетной записи платформы Stripe. Мы добавим данные кредитной/дебетовой карты клиента к этому клиенту . Затем мы можем использовать клиентскую учетную запись клиента для перевода средств на автономные учетные записи.
Он должен работать, не так ли?

ответ

1

Типичная оплата потока с полоской можно разделить на два этапа:

  1. стороне клиента, в вашем внешнем интерфейсе кода (HTML + JavaScript), вы используете Checkout или Stripe.js (сконфигурированный с публикуемой ключа API) для сбора платежной информации клиента и превращения его в токен. После того, как маркер был создан, вы затем отправляете его на свой сервер.

  2. На стороне сервера, в вашем базовом коде (в вашем случае, на Java), вы используете токен на самом деле create a charge.

Проблема в коде является то, что вы используете ваш ключ как можно опубликовать параметр source. Этот параметр должен содержать идентификатор маркера, созданного в интерфейсе. Идентификаторы токенов - это строки, начинающиеся с "tok_", за которыми следуют случайные буквенно-цифровые символы.

Остальная часть кода выглядит правильно, хотя вы можете добавить параметр application_fee, если ваша платформа должна вырезать транзакцию. Как бы то ни было, ваша платформа оплачивала бы взносы Stripe, но не получала денег из транзакции, поскольку все средства отправляются на подключенный аккаунт.

+0

благодарит за ответ. В моем случае мы будем собирать данные о карте клиента только на одном лице. используя Stripe.js, мы извлекаем токен карты и создаем клиента в приложении, используя этот токен. Впоследствии мы будем взимать плату с сохраненным клиентом по мере необходимости, используя сохраненную карту. А затем передайте часть платежа, взимаемую с клиента, на подключенную учетную запись. И здесь я испытываю проблемы; при переходе на подключенный аккаунт. – ivish

+0

@ivish: Если у вас уже есть объект-клиент, вам просто нужно _not_ передать параметр 'source' в запрос на создание заряда и вместо этого передать параметр' customer' с идентификатором клиента. – Ywain

+0

Мы с успехом можем заряжать клиента, используя сохраненную карту. Это не проблема. Наша проблема заключается в том, что мы не можем сделать перевод на подключенный аккаунт. В нашем сценарии мы будем взимать плату с клиента несколько раз в месяц. В конце месяца нам необходимо передать часть платежей, полученных от клиентов, на подключенную учетную запись. – ivish

0

Почему вы не создаете специального клиента, связанного с целевым банковским счетом Компании и не взимаете плату за его передачу? Если вы не используете полосу для некоторого аудита, вы можете просто использовать его в качестве канала.