Stripe Connect:React Native中客户和帐户之间的区别是什么?

12 javascript payment-gateway stripe-payments

目前,Connect似乎可以Accounts做到一切Customers,例如可以直接在Accounts账户中添加银行卡.所以只Accounts为用户创建一个似乎就足够了,但是有没有必要创建一个Customers对象?

例如,在教程(https://stripe.com/docs/connect/payments-fees)中,对于TOKEN,可以简单地提供Accounts可发布的密钥:

stripe.charges.create({
  amount: 1000,
  currency: 'usd',
  source: {TOKEN},
  destination: {CONNECTED_STRIPE_ACCOUNT_ID}
});
Run Code Online (Sandbox Code Playgroud)

需要澄清的source是,资金将从哪里撤出,destination资金将用于何处?资金将存入destination默认银行账户?

此外,当Accounts通过API创建时,新连接的帐户帐户是否可以通过平台的仪表板查看?并且还能够查看交易和余额?

最后,在转移资金时,如果没有定义来源,这是否意味着资金将从平台账户的余额中提取?

var stripe = require('stripe')(PLATFORM_SECRET_KEY);
stripe.transfers.create(
  {
    amount: 1000,
    currency: "usd",
    destination: "default_for_currency"
  },
  {stripe_account: CONNECTED_STRIPE_ACCOUNT_ID}
);
Run Code Online (Sandbox Code Playgroud)

接受/赞成答案.先感谢您.

duc*_*uck 34

在开发平台时,您通常会对两个功能感兴趣:付费并从用户处付款.Stripe将这些函数划分为两个单独的对象类型.

帐号

An Account是表示您支付给的用户的对象.帐户可以附加External Account(银行帐户,或在某些情况下,借记卡).出于合规性原因,帐户需要提供一些个人信息以验证用户的身份.

您可以连接到平台有三种类型的帐户:

  • Standard(以前称为Standalone),这是普通的Stripe帐户.您可以通过基于OAuth的流程将标准条带帐户连接到您的平台.
  • Custom(以前Managed),它可以让您更好地控制用户体验,但需要更多工作:您完全通过API控制自定义帐户,并负责构建仪表板,注册表单和其他帐户管理界面.
  • Express帐户,位于标准和自定义之间.Stripe为Express用户提供了一个简单的注册表单和一个精简的仪表板.

https://stripe.com/docs/connect/connecting-to-accounts

顾客

A Customer是一个对象,您可以保存信用信用卡,银行帐户,比特币接收器等,然后从中收取费用.https://stripe.com/docs/api#customers

Customer如果您想要存储卡并在将来充电,Stripe可以创建对象.如果您只对一次性交易感兴趣,您可以直接使用Checkout/Stripe.js/mobile sdk和您的可发布密钥获得的令牌.

您可以在此处找到使用代币进行一次性付款和客户的付款流程示例,https://stripe.com/docs/charges

需要说明的是,没有办法向客户支付对象或向账户附带的银行账户或借记卡收费.


在你的第一个例子中:

source是一个令牌,tok_xxxyyyyzzz通常通过Stripe.js/Checkout/mobile SDK获得,您将传递给后端.如果您保存源到Customer您的帐户,你可以传递customer: cus_xxxyyyzzz,而不是收费的默认sourceCustomer.

https://stripe.com/docs/connect/payments-fees#charging-through-the-platform

destinationAccount你想要的资金来源.充电destination最常用于自定义帐户.以这种方式收费时,资金将从您的平台转移到destination账户余额.如果该帐户设置为自动转帐,则当这些资金可用于转帐时,资金将自动转入其默认银行帐户.

流程如下:

Charge (token or customer on Platform) -> Platform Balance -> Custom Account Balance (destination) -> Custom Account Bank Account

如果您需要更多控制和粒度从自定义帐户余额到其银行帐户的资金流动,您可以将自定义帐户设置为手动转帐.点击此处了解更多信息,https://stripe.com/docs/connect/bank-transfers#payout-information


如果您正在创建Custom Accounts或用户Standard Accounts通过OAuth流程进行连接,则应该可以在信息中心中查看这些内容:https://dashboard.stripe.com/applications/users

如果您想要关联帐户余额的具体详细信息,您需要拨打电话以检索其余额或余额交易,同时使用条带帐户标题进行身份验证(例如,他们的帐户ID acct_xxxyyyyzzzz)

https://stripe.com/docs/connect/authentication#authentication-via-the-stripe-account-header https://stripe.com/docs/api#balance_history


最后,您提供的示例是传递Stripe-Account标题,{stripe_account: CONNECTED_STRIPE_ACCOUNT_ID}因此它发生在已连接的帐户上 - 它将资金从关联帐户的余额转移到其默认银行帐户.如果您的关联帐户是手动转移,则会使用此选项.

此处概述了从平台余额转移到关联帐户的方式.https://stripe.com/docs/connect/special-case-transfers#transferring-to-another-stripe-account

正如"特殊情况转移"这个名称所暗示的那样,这些Platform -> Connected Account转移只应在有限的情况下进行(目前没有办法从关联账户 - >平台转移资金).

ripe = require('stripe')(PLATFORM_SECRET_KEY);
stripe.transfers.create(
  {
    amount: 1000,
    currency: 'usd',
    destination: {CONNECTED_STRIPE_ACCOUNT_ID},
    source_transaction: {CHARGE_ID}
  }
);
Run Code Online (Sandbox Code Playgroud)

整体构建适合您需求的Connect流程可能是一项复杂但有益的工作 - 如果您遇到具体问题,我建议您与Stripe的支持人员聊天,https://support.stripe.com/email

  • 非常有用-与官方文档相比,我得到的更多。 (2认同)