如何将Stripe付款与客户发票一起使用

时间:2018-10-09 02:00:47

标签: c# stripe-payments stripe-invoices stripe-payout

我对如何为我的系统/平台实施适当的支出有疑问。

让我进一步解释一下。我有一个像Lyft这样的平台,但是没有在每次乘车后立即创建和发布费用。我正在创建发票项目,以便每个发票计费周期(例如,每2周)仅向骑手收取一次费用。现在,我知道使用Stripe的发票或发票项目没有目的地ID。因此,我需要以某种方式告诉Stripe,哪些资金需要转给驱动程序。我怎么做?看来该方法将是创建一个Stripe payout,并将目的地作为驾驶员银行帐户ID。但是在尝试使用驱动程序外部帐户ID和银行帐户ID进行此操作后,Stripe抛出了一个异常,说“不存在这样的外部帐户acct_123456ABCD”

我上面描述的方法是否是实现此目的的正确方法?还是有更好的方法或更规定的方法?

仅供参考-为了了解为什么我要创建发票项目,而不是乘车后立即产生即时费用,这是因为我的服务费用都非常小($ 1.00- $ 3.00),因此避免了Stripe固定费用$ .30 / charge我正在将它们汇总到一张发票​​中,在每个帐单周期中,只有一笔固定费用。

感谢您的帮助。

出于特殊目的,我将在下面提供一个示例。 首先,我创建一个发票项目,然后创建一个付款。

            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 :(得分:1)

付款应在关联帐户的余额->银行帐户上进行,而不是从平台到关联帐户的银行帐户。

您在这里至少有两种资金流动选择:

  1. 您可以在平台上运行发票(甚至可以在两个星期的结算周期内运行$ 0订阅)。您可以在invoice.payment_succeeded收听网络鸣叫,然后使用Transfer将资金转移到目标关联帐户,请参阅https://stripe.com/docs/connect/charges-transfers。从关联帐户的余额中,该笔款项将支付到其银行帐户,或者您可以发起支付(如果是人工支付,则https://stripe.com/docs/connect/payouts#using-manual-payouts
  2. 您可以直接在关联帐户上创建发票项目/发票或订阅。这有点棘手,因为您需要汇出平台费用,但是您可以使用“申请费”来做到这一点,请参阅https://stripe.com/docs/connect/subscriptions#working-with-invoices