Files
nepiedg 16844d4a42 Enhance AI and Redis integration for smoke logging features
- Added AI configuration options to .env.example and config.go for OpenAI integration.
- Implemented Redis caching for session management in main.go and auth middleware.
- Updated smoke logging service to support real smoking time (`smoke_at`) and AI advice retrieval.
- Enhanced API routes to include endpoints for AI advice and unlock functionality for non-members.
- Improved database schema with new tables for AI advice and unlock records.
- Expanded documentation to cover new AI features and Redis caching implementation.
2026-01-03 02:14:21 +00:00

72 lines
1.2 KiB
Markdown
Raw Permalink Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
# 会员兑换码 API
所有接口前缀:`/api/v1`
除登录外都需要:`Authorization: Bearer <session_key>`(见:`docs/common/auth.md`
## 1) 生成兑换码(后台口令)
`POST /api/v1/membership/redeem_codes`
Header
- `X-Admin-Token: <ADMIN_API_TOKEN>`
请求体:
```json
{
"count": 10,
"plan": "month",
"duration_days": 30,
"expires_at": "2026-12-31 23:59:59",
"max_uses": 1
}
```
说明:
- 需要在环境变量配置 `ADMIN_API_TOKEN`,否则接口会返回 503。
- 兑换码明文只在生成时返回;服务端只保存 `sha256(code)`
成功响应(示例):
```json
{
"code": 200,
"message": "success",
"data": {
"count": 10,
"codes": [
{ "code": "ABCD...1234", "plan": "month" }
]
}
}
```
## 2) 使用兑换码开通/延长会员
`POST /api/v1/membership/redeem`
请求体:
```json
{
"code": "ABCD...1234"
}
```
成功响应(示例):
```json
{
"code": 200,
"message": "success",
"data": {
"plan": "month",
"starts_at": "2026-01-03T10:00:00+08:00",
"ends_at": "2026-02-02T10:00:00+08:00",
"extended": false,
"code_suffix": "X7K9Q2"
}
}
```
常见错误:
- `400`:兑换码无效/过期/已被使用/不可用
- `401`:未登录或 token 失效