我正在使用Stripe设置一个支付系统,我想向客户对象添加一些元数据。我想向客户的元数据属性添加我的工作区ID。我尝试了下面的代码,但它返回了以下错误:
⛔️ Error:
Error: Invalid val: {:_bsontype=>"ObjectID", :id=>"\\HÉ\u001E��\u000F�=��"} must be a string under 500 characters
我已经记录了我添加到这个元数据属性中的工作区ID,但它看起来只是一个普通的mongodb ObjectId。有人能看出我做错了什么吗?
用于将元数据添加到我创建的客户的代码
// find the current User and use his workspace ID
const user = await User.findOne({ _id: req.userId });
const workspaceId = user._workspace;
// get the payment plan
const plan = await stripe.plans.retrieve('plan_EK1uRUJLJcDS6e');
// // then we create a new customer
const customer = await stripe.customers.create({
email,
source,
metadata: {
workspace_id: workspaceId
}
});
res.status(200).json({
message: 'payment complete',
subscription: adjustedSubscription
});
2条答案
按热度按时间flvlnr441#
您储存在
metadata
中的值只能是be strings of up to 500 characters。在这种情况下,您会想要将workspaceId
剖析为字串。看起来您会想要在ObjectId
上执行toString()
或toHexString()
。64jmpszr2#
我遇到了同样的问题,并找到了保罗的回应。终于工作!
});