【问题标题】:Stripe + React Native - How can I create Transfers to a Managed Account (error: "Must provide source or customer.")?Stripe + React Native - 如何创建到托管帐户的转移(错误:“必须提供来源或客户。”)?
【发布时间】:2017-03-10 22:58:17
【问题描述】:

我正在尝试将资金转入托管账户,但我收到错误消息:“必须提供来源或客户。”。这是发送到 API 的请求正文和标头。

  var transferBody= {
    "amount": "1000",
    "currency": "usd",
    "destination": "default_for_currency",
  }

  let apiTransferRequest = {
    method: 'post',
    headers: {
      'Accept': 'application/json',
      'Content-Type': 'application/x-www-form-urlencoded',
      'Authorization': 'Bearer ' + secret_key,
      'stripe_account': 'acct_198vxeLmTNKjRg7x'
    },
    body: transferBody
  }

不应该在标题中提供'stripe_account' 让我自己代表托管帐户行事,那么反过来应该充当来源?

据我了解,在标题中提供'stripe_account' 并使用'destination' 参数设置为'default_for_currency',使托管账户将资金从其自己的Stripe 托管账户余额转移到其默认借记卡。

我正在关注这个示例,在标准传输 https://stripe.com/docs/connect/bank-transfers 下,并且我正在使用 React Native,所以据我所知,这将是使用 Stripe.js 的唯一方法。我在关注http://blog.bigbinary.com/2015/11/03/using-stripe-api-in-react-native-with-fetch.html

提前感谢您,我们会接受/支持答案。

【问题讨论】:

    标签: javascript react-native stripe-payments payment-gateway stripe-connect


    【解决方案1】:

    首先,请注意,您不应使用前端代码中的 API 密钥创建传输或发出任何其他 API 请求。检索您的密钥并将其用于恶意目的将是微不足道的。 (你提到的博文中的 cmets 也说了这么多。)

    必须使用后端服务器。支付流程中唯一需要在前端代码中处理的部分是支付信息的标记化,使用 CheckoutStripe.js

    也就是说,如果您想代表已连接的帐户发出请求,您需要使用的标头是Stripe-Account,而不是stripe_account。后者用于 Stripe 网站上的 Node.js 示例,因为这些示例使用 Stripe's Node library,其中 stripe_account 是使用 Stripe-Account 标头的特殊参数。

    【讨论】:

    • 感谢您的澄清。我在原始帖子中的理解方式是在标题中提供'stripe_account',对吗?另外我知道密钥不应该在前端代码中使用,所以我应该将它存储在我的后端服务器中吗?另外,在 blog.bigbinary.com/2015/11/03/… 中,它关注的是什么 Stripe 库?最后,使用 fetch 这样做是否符合 PCI 标准,因为它实际上使用的是 stripe.js?
    最近更新 更多