Stripe API v3:何时使用 Invoice 与 PaymentIntent(Node SDK)

Sco*_*tt 5 node.js stripe-payments

我一直在阅读 Stripe 的 api 文档 (v3),我不清楚何时使用 Stripe 的 Invoice 与 PaymentIntent 对象。通过阅读文档,这是我的理解:

  • Stripe 认为支付意图是通过他们的 API 促进支付的主要方式,费用将在某个时候被弃用。

  • 处理发票会PaymentIntent在幕后创建一个并立即启动付款。我不明白的是为什么没有目标帐户字段Invoice?如果发票默认发送到平台的 Stripe 帐户(这是我所做的假设,因为没有目的地字段),为什么会有一个application_fee_amount字段,它本质上是平台对交易的“切割”?

  • APaymentIntent允许您在收取“申请”或“平台”费用的同时指定目标帐户,因此您不必自己生成转账。

    • A PaymentIntentandInvoice可以在创建时处理或推迟到付款生命周期的后期进行处理。

我的用例要求我在两方之间进行付款并为每笔交易收取“平台费”。我通过创建 PaymentIntent 并使用已连接的客户帐户的信用卡存档并使用transfer_data要发送给交易中涉及的第二方的金额填充该字段,成功地做到了这一点。

我开始研究 Stripe 的发票 api,因为我计划为我的平台构建发票解决方案,并认为最好利用 Stripe 提供的服务,但我没有看到利用它的好处,因为我还需要跟踪基于邮政编码的付款意图和税款的交易 ID(看起来 Stripe 不会自动执行此操作,所以我在这里可能不走运)。

我找不到transactionId处理发票的方法,但我看到chargeId当您确认PaymentIntent( https://stripe.com/docs/api/payment_intents/confirm )时,会作为响应的一部分返回。

所以我的问题是:

  1. 为什么没有目标帐户字段Invoice?它是否会自动发送到平台的 Stripe 帐户并要求您手动创建转账?
  2. 有没有一种简单的方法可以transactionId从 an 中获取 a Invoice
  3. 有没有办法transactionId在创建 aPaymentIntent并设置a时获得 aconfirm=true以便PaymentIntent立即处理?
  4. 对于将有发票流程并代表两方促进交易的平台,是否建议使用支付意图、发票或两者兼而有之?
  5. 收费和交易有什么区别?支付发票时,响应中会返回费用 ID,但支付付款意向时,会返回交易 ID。

提前致谢!

Ala*_*udy 3

您可以将发票视为付款意图的子集,就像订阅是发票的子集一样。

我不明白的是为什么发票没有目的地帐户字段?

其实是有的,只是领域是transfer_data[destination]。另请注意,每当发票最终确定时,它将包含可扩展的付款意向,并且您应该能够解决您在问题中提出的大部分问题。
总结:

  1. 是的,如上所述。
  2. 展开发票的付款意向对象。
  3. 我不习惯处理事务,但我想您可以利用它们的元数据来引用您的发票,反之亦然,以帮助您在需要的时间内检索所需的对象。
  4. 如上所述,它们之间不是二分法,如果您向客户开具发票,您应该使用 stripe 的发票系统。
  5. 从我在文档中看到的情况来看,交易仅涉及使用发行的卡购买“内部”条纹。费用是 stripe 将通过网络向您的银行帐户收取费用的尝试,当费用成功时,付款意图状态将设置为,succeeded否则付款意图可能会尝试更多费用或在某个时刻停止尝试,并且付款意图将被设置在此处canceled了解有关付款意向状态的更多信息。简而言之,支付意图是费用的一个子集。

我希望这对您有所帮助,并且来得不算太晚,如果其他人对其进行编辑,或者我将了解有关 stripe 发行产品的更多信息,答案将来可能仍会改进。