Node.js 为什么在正确执行入职流程后,我的目的地费用stripe connect出现“无此类账户”错误?
我正在建立一个网站,利用我已经建立了入职过程。作为一个用户,我可以创建一个帐户,成功地通过Oauth流,然后返回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[
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.