我试图允许用户通过Express帐户加入平台后创建一次性发票。
我设置了一个节点路由来创建和发送发票。
我遇到了错误
StripeInvalidRequestError: No such customer: 'cus_I3Xra0juO9x2Iu'
但是该用户的关联帐户中确实存在该客户。
路线在下面
app.post('/api/new_invoice', async (req, res) => {
try {
const { customer, deliverables, amount, payableBy } = req.body
const product = await stripe.products.create({
name: deliverables,
})
const price = await stripe.prices.create({
unit_amount: amount,
currency: 'aud',
product: product.id,
})
const invoiceItem = await stripe.invoiceItems.create({
customer,
price: price.id,
})
const stripeInvoice = await stripe.invoices.create(
{
customer,
collection_method: 'send_invoice',
days_until_due: 30,
invoiceItem,
},
{
stripeAccount: req.user.stripeAcct,
}
)
const invoice = await new Invoice({
customer,
deliverables,
amount,
paid: false,
issueDate: Date.now(),
payableBy,
_user: req.user.id,
}).save()
res.send(invoice.data)
console.log(invoiceItem, stripeInvoice)
} catch (err) {
console.log(err)
res.status(400)
res.send({ error: err })
return
}
})
据我了解,使用连接帐户的ID向stripe.invoices.create添加第二个对象,然后它应该为客户查看其Stripe帐户?
预先感谢
答案 0 :(得分:1)
当代表已连接的帐户进行呼叫时,您需要将Stripe-Account
标头设置为here中记录的帐户ID。必须在您代表该关联帐户提出的每个API请求上设置此标头。
在您的代码中,您仅在“发票创建API”请求上设置标头,而不在诸如发票项目创建之类的其他请求上设置标头。确保将其传递到任何地方,您的代码将开始工作。