Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/node.js/39.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Node.js 为什么在正确执行入职流程后,我的目的地费用stripe connect出现“无此类账户”错误?_Node.js_Express_Stripe Payments - Fatal编程技术网

Node.js 为什么在正确执行入职流程后,我的目的地费用stripe connect出现“无此类账户”错误?

Node.js 为什么在正确执行入职流程后,我的目的地费用stripe connect出现“无此类账户”错误?,node.js,express,stripe-payments,Node.js,Express,Stripe Payments,我正在建立一个网站,利用我已经建立了入职过程。作为一个用户,我可以创建一个帐户,成功地通过Oauth流,然后返回 2019-07-17T07:39:21.184623+00:00 app[web.1]: { access_token: 'sk_live_XXXXXXXXXXXXXXXXXXXXXX', 2019-07-17T07:39:21.184639+00:00 app[web.1]: livemode: true, 2019-07-17T07:39:21.184641+00:00 app[

我正在建立一个网站,利用我已经建立了入职过程。作为一个用户,我可以创建一个帐户,成功地通过Oauth流,然后返回

2019-07-17T07:39:21.184623+00:00 app[web.1]: { access_token: 'sk_live_XXXXXXXXXXXXXXXXXXXXXX',
2019-07-17T07:39:21.184639+00:00 app[web.1]: livemode: true,
2019-07-17T07:39:21.184641+00:00 app[web.1]: token_type: 'bearer',
2019-07-17T07:39:21.184644+00:00 app[web.1]: stripe_publishable_key: 'pk_live_XXXXXXXXXXXXXXXXXXXX',
2019-07-17T07:39:21.184647+00:00 app[web.1]: stripe_user_id: 'acct_XXXXXXXXXXXX',
2019-07-17T07:39:21.184649+00:00 app[web.1]: scope: 'express' }
我用Xs替换了实数,但您可以看到Oauth流正在成功完成,然后我将条带用户ID存储在firebase中

然后另一个用户尝试进行目的地收费,并使用stripe中的内置stripe元素标记他们的信用卡,然后调用我的后端创建收费

const charge = stripe.charges.create({
      amount: req.body.amount,
      currency: "USD",
      source: req.body.source,
      application_fee_amount: app_fee,
      transfer_data: {
          destination: stripe_vendorID,
      },
    }, postStripeCharge(res));

但出于某种原因,每次我尝试支付从oauth流中获得的条带用户ID时,都会出现以下错误:

{ Error: No such account: acct_XXXXXXXXXXX
    at Constructor._Error 
    at emitNone (events.js:111:20)
    at IncomingMessage.emit (events.js:208:7)
    at endReadableNT (_stream_readable.js:1064:12)
    at _combinedTickCallback (internal/process/next_tick.js:138:11)
    at process._tickCallback (internal/process/next_tick.js:180:9)
  type: 'StripeInvalidRequestError',
  rawType: 'invalid_request_error',
  code: 'resource_missing',
  param: 'destination',
  message: 'No such account: acct_XXXXXXXXXXXXX',
  detail: undefined,

etc. etc.


该ID与firebase中的ID匹配,因为我刚刚从firebase中提取了该ID,但出于某种原因,它一直说该帐户不存在。我一直在做这件事,试图找出我错在哪里。有什么想法吗?

这个问题的答案正是karllkekko所说的:每次我执行oauth流时,我都会意外地发出多个请求,因此它会连接然后断开帐户。我在我的状态下创建了一个布尔值,并结合了一个回调函数来确保它只发送一次请求,现在它就像一个符咒一样工作

您确定在stripe.charges.create中使用的API密钥与调用时使用的相同吗?i、 e肯定是同一个平台连接了帐户并提出了收费请求?是的。用于创建费用以及创建用户帐户的ID是相同的。最奇怪的是在stripe dashboard上,它在图表上显示连接了6个帐户,这是我以前尝试的结果,但是在连接选项卡上显示0个已连接的帐户。我看到的一个常见问题是,如果使用相同的访问令牌发出OAuth请求,它实际上会断开帐户的连接,因为OAuth规范说重用访问令牌应该撤销访问以防重播攻击。也许就是这样?您连接了帐户,但不小心再次调用了/oauth/token端点,重用了ac_xxx,它断开了帐户的连接。这就是问题所在!
{ Error: No such account: acct_XXXXXXXXXXX
    at Constructor._Error 
    at emitNone (events.js:111:20)
    at IncomingMessage.emit (events.js:208:7)
    at endReadableNT (_stream_readable.js:1064:12)
    at _combinedTickCallback (internal/process/next_tick.js:138:11)
    at process._tickCallback (internal/process/next_tick.js:180:9)
  type: 'StripeInvalidRequestError',
  rawType: 'invalid_request_error',
  code: 'resource_missing',
  param: 'destination',
  message: 'No such account: acct_XXXXXXXXXXXXX',
  detail: undefined,

etc. etc.