在正确执行了入职流程之后,为什么为什么我收到“没有这样的帐户”的错误,并收取目标费用,条带连接?

时间:2019-07-17 07:54:39

标签: node.js express stripe-payments

我正在建立一个利用Express Stripe Connect accounts的网站,并且已经设置了入职流程。作为用户,我可以创建一个帐户,成功通过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' }

我将实数替换为“ X”,但是您可以看到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));

const postStripeCharge = res => (stripeErr, stripeRes) => {
  console.log(stripeErr)
  console.log(stripeRes)
  if (stripeErr) {
    res.status(500).send({ error: stripeErr });
  } else {
    res.status(200).send({ success: stripeRes });
  }
}

但是由于某种原因,每次我尝试支付我刚从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相匹配,就像我刚从那里将其取出一样,但是由于某种原因,它一直说该帐户不存在。我现在一直在这里,试图找出我要去哪里。有什么想法吗?

1 个答案:

答案 0 :(得分:0)

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