У меня есть вопрос о том, как реализовать правильные выплаты для моей системы / платформы.
Позвольте мне объяснить немного подробнее.У меня есть платформа вроде 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;