我正在建立一个利用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相匹配,就像我刚从那里将其取出一样,但是由于某种原因,它一直说该帐户不存在。我现在一直在这里,试图找出我要去哪里。有什么想法吗?
答案 0 :(得分:0)
这个问题的答案正是karllkekko所说的:每次执行oauth流时,我不小心发出了多个请求,因此它是在连接然后断开帐户。我在自己的状态下创建了一个布尔值,并结合了一个回调函数以确保它只发送一次请求,现在它就像一个符咒一样!