条纹连接:客户和帐户之间有什么区别?

时间:2016-10-24 22:26:13

标签: javascript stripe-payments payment-gateway

目前,似乎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}
});

如需澄清,资金将从source取出,destination是资金流向何处?资金将存入destination的默认银行帐户?

此外,当通过API创建Accounts时,是否可以通过平台的信息中心查看新连接的帐户?并且还能够查看交易和平衡吗?

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

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

接受/提出答案。提前谢谢。

1 个答案:

答案 0 :(得分:25)

开发平台时,您通常会对以下两项功能感兴趣:支付从用户那里获取付款。 Stripe将这些函数划分为两个单独的对象类型。

帐户

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

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

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

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

客户

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

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

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

为清楚起见,无法向客户对象付款或向帐户附带的银行帐户或借记卡收费。

在你的第一个例子中:

source是一个令牌tok_xxxyyyyzzz,通常通过Stripe.js / Checkout / mobile SDK获取,您将传递给后端。如果您将来源保存到自己帐户的Customer,则可以通过customer: cus_xxxyyyzzz来收取source上的默认Customer费用。

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

destination是您希望资金流过的Account。使用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或用户正在通过OAuth流程关联他们的Standard Accounts,则应该可以在信息中心中查看这些内容:https://dashboard.stripe.com/applications/users

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

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

最后,您提供的示例是传递条带帐户标题acct_xxxyyyyzzzz,因此它发生在关联帐户上 - 它正在将关联帐户余额中的资金转移到其默认银行帐户。如果您的关联帐户是手动转帐,则会使用此功能。

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

正如“特殊情况转移”这个名称所暗示的那样,这些{stripe_account: CONNECTED_STRIPE_ACCOUNT_ID}转移只应在有限的情况下进行(目前没有办法从关联账户转移资金 - >平台)。

Platform -> Connected Account

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