Add user space quota purchase flow
This commit is contained in:
+33
@@ -930,6 +930,39 @@ app.get('/auth/billing/recharge-orders/:orderId', async (req, res) => {
|
||||
return res.json({ order, balanceCents });
|
||||
});
|
||||
|
||||
app.post('/auth/billing/space-purchase', jsonBody, async (req, res) => {
|
||||
await userAuthReady;
|
||||
if (!userAuth || !mindSpace) {
|
||||
return res.status(503).json({ message: '空间服务未启用' });
|
||||
}
|
||||
const me = await userAuth.getMe(userToken(req));
|
||||
if (!me) return res.status(401).json({ message: '未登录' });
|
||||
const sizeMb = Math.floor(Number(req.body?.sizeMb));
|
||||
const result = await userAuth.purchaseSpaceQuota(me.id, sizeMb);
|
||||
if (!result?.ok) {
|
||||
if (result?.code === 'INSUFFICIENT_BALANCE') {
|
||||
return res.status(402).json({
|
||||
message: result.message,
|
||||
code: result.code,
|
||||
details: {
|
||||
code: 'INSUFFICIENT_BALANCE',
|
||||
balanceCents: result.balanceCents,
|
||||
minRechargeCents: result.minRechargeCents,
|
||||
suggestedTiers: result.suggestedTiers,
|
||||
},
|
||||
});
|
||||
}
|
||||
return res.status(400).json({ message: result?.message ?? '购买空间失败' });
|
||||
}
|
||||
const quota = await mindSpace.getQuota(me.id);
|
||||
return res.json({
|
||||
quota: quota ?? result.quota,
|
||||
balanceCents: result.balanceCents,
|
||||
purchasedMb: sizeMb,
|
||||
costCents: sizeMb * 200,
|
||||
});
|
||||
});
|
||||
|
||||
const wechatNotifyBody = express.raw({
|
||||
type: ['application/json', 'text/xml', 'application/xml'],
|
||||
limit: '64kb',
|
||||
|
||||
Reference in New Issue
Block a user