/ docs / api-reference

API 参考

HmwCard 何慕雯发卡系统后端 API 接口完整参考

本文档列出 HmwCard 后端所有 API 接口,包括公开接口和管理员接口。

基础信息

项目说明
基础路径/api
数据格式JSON
认证方式HttpOnly Cookie(登录后自动携带)
统一响应格式{ "success": boolean, "message"?: string, "data"?: any }

认证

管理员登录

POST /api/auth/login

请求体:

{
  "username": "admin",
  "password": "your_password"
}

成功响应:

{
  "success": true,
  "data": {
    "id": 1,
    "username": "admin",
    "mustChangePassword": false
  }
}

登录成功后,服务端会设置 HttpOnly Cookie,后续请求自动携带。

获取当前管理员信息

GET /api/auth/profile

成功响应:

{
  "success": true,
  "data": {
    "id": 1,
    "username": "admin",
    "createdAt": "2026-01-01T00:00:00.000Z"
  }
}

修改密码

POST /api/auth/change-password

请求体:

{
  "currentPassword": "old_password",
  "newPassword": "new_secure_password"
}

强制修改密码

首次登录时如果 mustChangePasswordtrue,需调用此接口设置新密码:

POST /api/auth/force-change-password

请求体:

{
  "newPassword": "your_new_password"
}

登出

POST /api/auth/logout

商品(公开)

获取商品列表

GET /api/products

获取商品分类

GET /api/products/categories

获取商品详情

GET /api/products/:id

查询商品库存

GET /api/products/:id/stocks

商品管理(管理员)

以下所有接口需要在 Cookie 中携带管理员认证信息。

获取商品列表(后台)

GET /api/admin/products

创建商品

POST /api/admin/products

请求体:

{
  "name": "Steam 充值卡 ¥100",
  "description": "自动发卡,即时到账",
  "price": 99.00,
  "categoryId": 1,
  "status": "active"
}

更新商品

PUT /api/admin/products/:id

删除商品(软删除)

DELETE /api/admin/products/:id

恢复已删除商品

POST /api/admin/products/:id/restore

永久删除商品

DELETE /api/admin/products/:id/hard

删除商品分类

DELETE /api/admin/products/categories/:name

批量添加卡密

POST /api/admin/products/:id/card-secrets/batch

请求体:

{
  "secrets": "CARD-XXXX-1\nCARD-XXXX-2\nCARD-XXXX-3"
}

查询卡密列表

GET /api/admin/products/:id/card-secrets

删除单个卡密

DELETE /api/admin/products/card-secrets/:secretId

订单(公开)

创建订单

POST /api/orders

请求体:

{
  "productId": 1,
  "quantity": 1,
  "paymentMethod": "alipay"
}

查询订单

GET /api/orders/:orderNo

订单管理(管理员)

获取订单列表

GET /api/admin/orders

查询订单详情

GET /api/admin/orders/:orderNo

更新支付状态

PATCH /api/admin/orders/:orderNo/payment-status

请求体:

{
  "status": "paid"
}

登记线下收款

POST /api/admin/orders/:orderNo/offline-payment

重发卡密

POST /api/admin/orders/:id/resend

订单退款

POST /api/admin/orders/:id/refund

查询未知退款(人工对账)

GET /api/admin/orders/refunds/:refundNo/reconcile

导出订单

POST /api/admin/orders/export

删除订单

DELETE /api/admin/orders/:id

恢复订单

POST /api/admin/orders/:id/restore

支付

创建支付宝订单

POST /api/payment/:orderNo/alipay

查询支付宝订单状态

GET /api/payment/:orderNo/alipay/status

支付宝同步回调

GET /api/payment/alipay/return

支付宝异步通知

POST /api/payment/alipay/notify

创建微信支付订单

POST /api/payment/:orderNo/wechatpay

查询微信支付订单状态

GET /api/payment/:orderNo/wechatpay/status

创建 PayPal 订单

POST /api/payment/:orderNo/paypal

PayPal 同步返回

GET /api/payment/paypal/return

PayPal 取消支付

GET /api/payment/paypal/cancel

PayPal Webhook

POST /api/payment/paypal/webhook

创建 Stripe Checkout

POST /api/payment/:orderNo/stripe/:method

:method 支持 stripe_alipay(支付宝)和 stripe_wechat_pay(微信支付)。

Stripe Webhook

POST /api/payment/stripe/webhook

Stripe Webhook 需要原始请求体验签,请勿对此路径进行 JSON 解析。

微信支付回调

POST /api/payment/wechatpay/notify

微信支付回调需要原始请求体验签。


文件上传(管理员)

单文件上传

POST /api/upload/single

请求格式: multipart/form-data,字段名 file

多文件上传

POST /api/upload/multiple

请求格式: multipart/form-data,字段名 files

删除文件

DELETE /api/upload/:filename

系统配置(管理员)

邮箱配置

方法路径说明
GET/api/admin/config/email获取邮箱配置
POST/api/admin/config/email更新邮箱配置
POST/api/admin/config/email/test发送测试邮件

支付配置

方法路径说明
GET/api/admin/config/payment获取支付配置
POST/api/admin/config/payment更新支付配置
POST/api/admin/config/payment/alipay/test测试支付宝配置
POST/api/admin/config/payment/wechatpay/test测试微信支付配置
POST/api/admin/config/payment/stripe/test测试 Stripe 配置
POST/api/admin/config/payment/paypal/test测试 PayPal 配置

短信配置

方法路径说明
GET/api/admin/config/sms获取短信配置
POST/api/admin/config/sms更新短信配置
POST/api/admin/config/sms/test发送测试短信

SEO 配置

方法路径说明
GET/api/admin/config/seo获取 SEO 配置
POST/api/admin/config/seo更新 SEO 配置

页脚配置

方法路径说明
GET/api/admin/config/footer获取页脚配置
POST/api/admin/config/footer更新页脚配置

Favicon 配置

方法路径说明
GET/api/admin/config/favicon获取 Favicon 配置
POST/api/admin/config/favicon更新 Favicon 配置

对象存储配置

方法路径说明
GET/api/admin/config/object-storage获取存储配置
POST/api/admin/config/object-storage更新存储配置
POST/api/admin/config/object-storage/test测试存储连接

内容管理(管理员)

公告管理

方法路径说明
GET/api/admin/announcements获取公告列表
POST/api/admin/announcements创建公告
PUT/api/admin/announcements/:id更新公告
DELETE/api/admin/announcements/:id删除公告

轮播图管理

方法路径说明
GET/api/admin/carousels获取轮播图列表
POST/api/admin/carousels创建轮播图
PUT/api/admin/carousels/:id更新轮播图
DELETE/api/admin/carousels/:id删除轮播图

统计(管理员)

方法路径说明
GET/api/admin/stats/dashboard仪表盘概览数据
GET/api/admin/stats/sales-trend销售趋势
GET/api/admin/stats/product-ranking商品销量排行
GET/api/admin/stats/payment-methods支付方式统计

审计日志(管理员)

方法路径说明
GET/api/admin/audit-logs查询管理员操作日志

公开内容接口

方法路径说明
GET/api/content/announcements获取活跃公告列表
GET/api/content/announcements/:id获取公告详情
GET/api/content/carousels获取活跃轮播图
GET/api/content/payment-methods获取启用的支付方式
GET/api/content/seo获取 SEO 配置
GET/api/content/favicon获取 Favicon 配置
GET/api/content/footer获取页脚配置
GET/api/content/site-settings获取站点设置
GET/api/content/pages/:slug获取自定义页面

健康检查

GET /health

响应:

{
  "success": true,
  "message": "OK",
  "timestamp": "2026-08-10T07:37:12.000Z",
  "uptime": 3600
}

安全限制

系统对 API 有以下安全防护:

防护类型说明
通用限流所有 /api 路径启用请求频率限制
登录限流登录接口有额外频次限制和账户锁定机制
支付限流支付创建接口有独立限流策略
CSRF 防护所有状态变更请求需通过 CSRF 验证(支付回调路径豁免)
请求体限制JSON 请求体默认限制 500KB
上传限制文件上传限制 5MB,仅允许图片格式

错误响应

successfalse 时,message 字段包含错误原因:

{
  "success": false,
  "message": "用户名或密码错误"
}

常见 HTTP 状态码:

状态码含义
200成功
400请求参数错误
401未认证或认证过期
403权限不足
404资源不存在
429请求过于频繁(限流)
500服务器内部错误