接入说明
Base URL:http://127.0.0.1:8090/api/open;如果部署在域名或反向代理后,请替换为实际地址。所有接口返回 JSON,成功为 {"ok": true},失败为 {"ok": false, "error": "错误说明"}。
API Key 可在「管理后台 → API 对接」查看与重置。请勿把 Key 写入前端代码、公开仓库或可被用户下载的文件。
鉴权方式
每个请求都必须在 Header 中携带:
X-API-Key: zk_xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
建议门店系统通过固定出口 IP 调用;生产环境可在 Nginx 层增加 IP 白名单、HTTPS 与限流。
健康检查
GET
/api/open/healthcurl http://127.0.0.1:8090/api/open/health \
-H "X-API-Key: zk_xxx"
同步会员(创建 / 更新)
POST
/api/open/members/sync{
"phone": "13800138000",
"nickname": "门店会员",
"points": 5000,
"level": 2,
"store_member_id": "STORE-10086"
}
| 字段 | 类型 | 必填 | 说明 |
|---|---|---|---|
| phone | string | 是 | 11 位手机号,会员唯一标识 |
| nickname | string | 否 | 昵称,已有会员会更新 |
| points | integer | 否 | 绝对值同步;传 0 会清空积分 |
| level | integer | 否 | 1-9 会员等级 |
| store_member_id | string | 否 | 门店系统会员 ID,便于对账 |
接口按手机号幂等:存在则更新,不存在则创建。返回的 created 表示是否新建。
调整会员积分
POST
/api/open/members/points增量增加 / 扣减(最低为 0):
{
"phone": "13800138000",
"points_delta": 200,
"reason": "门店消费赠送"
}
设置为绝对值:
{
"phone": "13800138000",
"action": "set",
"points": 5000,
"reason": "月度积分结转"
}
查询会员
GET
/api/open/members/{phone}返回会员积分、余额、等级、邀请码、门店会员 ID 与账号状态。
门店单点登录
POST
/api/open/members/token{
"phone": "13800138000",
"next": "/me"
}
返回 7 天有效的 Token 与 login_url,可直接跳转商城自动登录:
http://127.0.0.1:8090/#/sso?token=...&next=%2Fme
商品列表
GET
/api/open/products?type=malltype 支持 mall(商城商品)与 exchange(积分兑换)。返回商品 ID、名称、价格、积分、库存、销量与图片地址。
会员订单
GET
/api/open/orders?phone=13800138000返回最近 50 笔订单,含订单号、状态、金额、商品明细与物流信息,可用于门店客服查询。
积分福利开奖算法
每期活动有 total_shares 个连续号码。份额售罄时服务端在同一事务内自动开奖:
seed = "{cloud_id}:{total_shares}:{last_order_no}:{sum_order_ms}:{last_order_ms}"
hash = SHA-256(seed)
lucky = int(hash[0:16], 16) % total_shares + 1
sum_order_ms:本期所有参与订单创建时间戳(毫秒)之和;last_order_ms、last_order_no:最后一笔参与订单的时间与订单号;- 开奖种子与哈希保存在数据库并在活动详情页公示。
错误码
| HTTP | 说明 | 建议 |
|---|---|---|
| 400 | 参数错误 | 检查手机号、积分格式 |
| 401 | API Key 无效 | 更新 Key 或检查 X-API-Key |
| 403 | 账号停用 | 联系商城管理员 |
| 404 | 会员或接口不存在 | 确认手机号与路径 |
| 500 | 服务端异常 | 记录请求并重试 |
对接建议
- 门店消费成功后调用积分增量接口,
reason记录业务来源。 - 会员注册/资料变更调用同步接口,存量积分使用绝对值。
- 失败请求做指数退避重试,并以手机号或门店订单号保证幂等。
- 上线前修改默认管理员密码,启用 HTTPS、备份数据库并限制 API 来源。
