【问题标题】:Stripe Connect Charge - Must authenticate as a connected account to be able to use customer parameterStripe Connect Charge - 必须作为连接帐户进行身份验证才能使用客户参数
【发布时间】:2016-07-30 22:20:44
【问题描述】:

我正在尝试设置 Stripe Connect 并且需要

  1. 首先创建客户,向买家收费,
  2. 然后生成一个令牌,最后
  3. 使用此令牌向客户收费。

只要买方和卖方不是 Stripe Connect 平台的所有者,此方法就可以正常工作。

即假设以下电子邮件对应于帐户持有人:

admin@admin.com

现在,我们有两个卖家:

seller_1@sellers.com
admin@admin.com

我们有一个买家:

buyer_1@buyers.com

buyer_1seller_1 购买时,我的代码有效。一切顺利,并收取申请费。

buyer_1 想从admin@admin.com 购买时,问题就出现了。 尽管admin@admin.com 已连接到帐户平台(我经历了与seller_1 相同的过程),但我一直收到错误:

message: "Must authenticate as a connected account to be able to use customer parameter. See https://stripe.com/docs/api#create_card_token for more details."
param: "customer"
raw: Object
rawType: "invalid_request_error"
requestId: "req_8EtIue0F4JWFmQ"
stack: 400
type: "StripeInvalidRequestError"

我用下面的教程来save a customer and charge customers

// store
// Set your secret key: remember to change this to your live secret key in production
// See your keys here https://dashboard.stripe.com/account/apikeys
var stripe = require("stripe")("SECRETKEY");

// (Assuming you're using express - expressjs.com)
// Get the credit card details submitted by the form
var tokenID = request.body.stripeToken;

// Create a Customer
stripe.customers.create({
  source: tokenID,
  description: "Example customer"
}, function(err, customer) {

});

// Create token
// Create a Token from the existing customer on the platform's account
stripe.tokens.create(
  { customer: CUSTOMER_ID, card: CARD_ID },
  { stripe_account: CONNECTED_STRIPE_ACCOUNT_ID }, // id of the connected account
  function(err, token) {
    // callback
  }
);

【问题讨论】:

  • 这是您正在运行的代码吗?如果是这样,则对 javascript 和 node.js 的工作方式存在一些误解,尤其是在引用异步方法调用方面。
  • 我在 nodejs 工作区的服务器上运行它是的。只要卖家的目标账户 ID 不是平台的所有者,它就可以正常工作
  • 这是预期的,目标帐户 id 不应该是平台的所有者,如果是这种情况,您不需要制作新令牌
  • 您将客户 ID 作为客户,将卡 ID 作为来源

标签: javascript node.js stripe-payments payment stripe-connect


【解决方案1】:

同样的事情发生在我身上。这有点欺骗性,因为 Stripe 让您将您的帐户直接连接到设置中的同一帐户(其中显示“测试 OAuth 流程”),就像一个帐户同时充当平台和连接的帐户一样。但是,当您尝试在关联帐户上实际创建费用或客户时,您会收到上述错误。

【讨论】:

  • 是的,这让我非常沮丧。我遵循了 Stripe connect 共享客户流程,但无法让它发挥作用,尽管我觉得我已经理解了这些说明,但这些说明并不是特别有用。谢谢。
  • 这不应该是一个答案,因为它是一个评论。
  • @lasec0203 你的评论不应该是评论,因为它没有帮助
【解决方案2】:

答案是简单地将客户 ID 更改为客户,并将卡作为来源。

您可以在此处找到使用 Ionic 的 Stripe Connect 工作示例的 complete source code

https://www.noodl.io/market/product/P201601151251248/stripe-connect-guide-with-complete-source-code-all-you-need-to-start-accepting-money-on-behalf-of-others

【讨论】:

  • 请分享有效的网址,noodl.io 已被谷歌屏蔽
  • @sumitsharma 这是 2 年前共享的。我也遇到过同样的问题。
【解决方案3】:

我知道这个问题不是最近的问题,但我在开发测试中多次遇到同样的问题。 当我执行 db:reset 或删除用户(客户帐户)并重新授权时,问题已得到解决。

原来我有重复的连接帐户为同一用户,旧计划和 api_key 是旧的。

由于我在开发和测试中,我还发现从 Stripe 中清除测试数据很有用,在仪表板上 >业务设置 >数据 >删除所有测试数据

希望对您有所帮助。

【讨论】:

    【解决方案4】:

    我在使用 Stripe Connect 测试费用时遇到了这个问题。事实证明,当我完成将测试业务连接到我的应用程序的过程时(通过他们提供的 Connect To Stripe 测试页面),我也已经在另一个浏览器窗口中登录了我的应用程序的 Stripe 帐户。这最终将我的应用程序的帐户数据保存在新的“测试业务”的位置,这一直导致收费失败并出现该错误。

    当我完成从 Stripe 注销的相同流程时,它运行良好,收费也正常处理。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2021-02-08
      • 2019-12-28
      • 2012-01-10
      • 1970-01-01
      • 2014-11-26
      相关资源
      最近更新 更多