如何基于SaaS订阅定价层级为应用集成功能限制并传递QR码配额?
基于Stripe订阅层级的SaaS功能限制集成问题
我开发了一款按功能定价的SaaS应用,已经集成Stripe,但不知道怎么根据用户的订阅层级嵌入对应的功能限制。
定价层级
- Basic:2个QR码、35位参会者
- Scaled:7个QR码、50位参会者
- Enterprise:10个QR码、500位参会者
需求
用户创建活动时需要验证订阅:
- 确保未超出对应层级的QR码数量上限
- 利用参会者数量限制创建对应数组
逻辑框架已经明确,仅需协助完成定价层级数据的集成。
现有代码
活动创建函数
module.exports.showActivations = async (req, res) => { const user = await User.findById(req.params.id); const qr = await Qr.find({ user: user._id }).populate('event'); const qrAgg = await Qr.aggregate([ { $match: { user: user._id } }, { $lookup: { from: 'events', localField: 'event', foreignField: '_id', as: 'event' } }, { $unwind: '$event' }, { $sort: { 'event.event_start': -1 } } ]); const activeEvents = await Event.find({ user: user.id, event_end: { $gte: Date.now() } }).populate('qr'); // 用户首次访问页面时生成QR码的循环 if (qr.length < 1 && <此处需传入对应层级的QR码数量>) { for (let i = qr.length; i < 6; i++) { const url = `https://${req.headers.host}/users/${user.id}/qr-` + (1 + i); const qrGenerator = await QRCode.toDataURL(url); const name = "qr-" + (1 + i); const qr = new Qr({ user: user._id, url: url, qrcode: qrGenerator, name: name, }); await qr.save(); } res.render('users/activations', { activeEvents, qr, qrAgg }); } else { res.render('users/activations', { activeEvents, qr, qrAgg }); } };
价格ID映射尝试
const priceToQrMappings = { price_id1: 2, price_id2: 7, price_id3: 10 };
核心疑问
如何根据用户的定价层级,将对应数量的QR码传入上述for循环函数?
内容的提问来源于stack exchange,提问作者econobro
相关产品推荐
相关产品推荐

