Files
cozsweet-frontend-nextjs/docs/backend/plans.md
T

34 lines
1.1 KiB
Markdown

有更新,主要是 /api/payment/plans。
前端判断方式:
调用:
GET /api/payment/plans
如果用户已登录,请带上:
Authorization: Bearer <token>
后端会返回:
{
"isFirstRecharge": true,
"firstRechargeOffer": {
"enabled": true,
"type": "first_recharge_half_price",
"discountPercent": 50
},
"plans": [
{
"planId": "vip_monthly",
"amountCents": 995,
"originalAmountCents": 1990,
"isFirstRechargeOffer": true,
"firstRechargeDiscountPercent": 50,
"promotionType": "first_recharge_half_price"
}
]
}
前端逻辑很简单:
data.isFirstRecharge === true 或 plan.isFirstRechargeOffer === true:展示首充价
amountCents:实际支付价,也就是首充半价
originalAmountCents:划线原价
firstRechargeDiscountPercent:折扣,比如 50
不需要前端自己算半价
创建订单还是原接口:
POST /api/payment/create-order
前端只传原来的 planId/payChannel/autoRenew,不用传首充字段。后端会重新判断首充资格,并按半价创建订单,防止前端伪造价格。