Как использовать Stripe выплаты со счетами клиентов - PullRequest
0 голосов
/ 09 октября 2018

У меня есть вопрос о том, как реализовать правильные выплаты для моей системы / платформы.

Позвольте мне объяснить немного подробнее.У меня есть платформа вроде Lyft, но вместо того, чтобы создавать и выдавать сборы сразу после каждой поездки.Я создаю элементы счетов-фактур, так что гонщик взимает плату только один раз за каждый цикл выставления счетов-фактур (например, каждые 2 недели).Теперь я понимаю, что нет идентификатора назначения для счета-фактуры или элемента счета-фактуры, использующего Stripe.Так что мне нужно как-то сообщить Stripe, какие средства нужно потратить на водителя.Как я могу это сделать?Похоже, что метод заключается в создании Stripe payout с местом назначения в качестве идентификатора банковского счета водителя.Но после попытки сделать это как с внешним идентификатором счета водителя, так и с идентификатором банковского счета, Stripe сгенерировал исключение, говорящее «Нет такой внешней учетной записи acct_123456ABCD»

Будет ли метод, описанный выше, правильным способом для реализации этого?Или есть лучший способ или более предписанный способ?

К вашему сведению - чтобы понять, почему я создаю элементы счета-фактуры, а не мгновенную оплату сразу после поездки, это потому, что плата за мои услуги очень мала (1,00-3,00 долл. США), поэтому, чтобы избежать фиксированной комиссии Stripe в размере 30 долл. США / сбор, я объединяю их в счет-фактуру, в котором будет использоваться только одна фиксированная плата за цикл выставления счетов.

Спасибо за любую помощь.

Для бывших целей я приведу пример того, что я делаю ниже.Сначала я создаю элемент счета, а затем создаю выплату.

            var invoiceItemOptions = new StripeInvoiceItemCreateOptions()
            {
                Amount = tipPricing.GetTotalAmountCharged(),
                Currency = "USD", //defaultCard.CurrencyCode,
                CustomerId = '12334567',

                Metadata = new Dictionary<String, String>() { { "EventId", 123 } }
            };

            var invoiceItemService = new StripeInvoiceItemService();
            StripeInvoiceLineItem invoiceItem = invoiceItemService.Create(invoiceItemOptions);
            StripeResponse invoiceResponse = invoiceItem.StripeResponse;

            ////////////////////////////////////////////////////////////////////////

            var payoutOptions = new StripePayoutCreateOptions()
            {
                Amount = tipPricing.GetTotalDestinationAmount(hasBeenChargedThisMonth), 
                Currency = "USD",
                Destination = bankAccount.ExternalAccountId, //bankAccount.AccountId,
                Metadata = new Dictionary<String, String>() { { "EventId", 123 } }
            };
            var payoutService = new StripePayoutService();
            StripePayout payoutCharge = payoutService.Create(payoutOptions);
            StripeResponse payoutResponse = payoutCharge.StripeResponse;

1 Ответ

0 голосов
/ 09 октября 2018

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

У вас есть по крайней мере два варианта для потоков денежных средств здесь:

  1. Вы можете запустить Счета-фактуры (или даже подписку на $ 0 с двухнедельным платежным циклом) на своей Платформе.Вы можете прослушивать веб-хуки, когда invoice.payment_succeeded, а затем перевести средства на подключенный целевой счет с помощью Transfer, см. https://stripe.com/docs/connect/charges-transfers.. С баланса подключенной учетной записи она будет выплачена на их банковский счет, или вы можете инициироватьa Выплата (если при ручных выплатах https://stripe.com/docs/connect/payouts#using-manual-payouts)
  2. Вы можете создать элементы / счета-фактуры или подписку непосредственно на подключенной учетной записи. Это немного усложняется, так как вам потребуется перевести комиссию для вашей платформы,но вы можете сделать это с помощью сборов, см. https://stripe.com/docs/connect/subscriptions#working-with-invoices
...