首页 > 解决方案 > 如何在客户发票中使用 Stripe 付款

问题描述

我有一个关于如何为我的系统/平台实施适当支付的问题。

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

我上面描述的方法是实现这个的正确方法吗?还是有更好的方法或更规范的方法?

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

谢谢你的帮助。

出于前的目的,我将在下面包含一个我正在做的事情的例子。首先我创建一个发票项目,然后我创建一个付款。

            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;

标签: c#stripe-payments

解决方案


付款旨在发生在关联账户的余额 -> 银行账户上,而不是从您的平台到关联账户的银行账户。

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

  1. 您可以在您的平台上运行发票(甚至是 0 美元订阅,计费周期为两周)。您可以在 时监听 webhook 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

推荐阅读