c# - 如何在客户发票中使用 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;
解决方案
付款旨在发生在关联账户的余额 -> 银行账户上,而不是从您的平台到关联账户的银行账户。
您在这里至少有两种资金流选择:
- 您可以在您的平台上运行发票(甚至是 0 美元订阅,计费周期为两周)。您可以在 时监听 webhook
invoice.payment_succeeded
,然后使用 将资金转移到目标连接帐户Transfer
,请参阅https://stripe.com/docs/connect/charges-transfers。从关联账户的余额中,它将支付到他们的银行账户,或者您可以发起支付(如果是手动支付,https://stripe.com/docs/connect/payouts#using-manual-payouts) - 您可以直接在关联帐户上创建发票项目/发票或订阅。这有点棘手,因为您需要为您的平台汇出费用,但您可以使用申请费来做到这一点,请参阅https://stripe.com/docs/connect/subscriptions#working-with-invoices
推荐阅读
- python - 在 Python 中使 for 循环更快
- android - Android 通知:如何显示粘滞/更新警报
- php - 如何将数组传递给 ::with() - Lumen/Laravel
- python-3.x - 给收件人一个加密的对称密钥的最佳方式?
- javascript - 未捕获的 ReferenceError:未定义 WebMidi
- amazon-web-services - 使用 Terraform 的 S3 跨区域复制
- python - Keras 在 LSTM 中的 LOOK BACK 函数
- anylogic - Anylogic中timeInState函数的使用
- python - 计算两个列表的位置具有相同元素的次数
- ruby - Ruby FFI gem 无法打开动态库