3052 lines
59 KiB
Markdown
3052 lines
59 KiB
Markdown
# 抽奖盲盒系统API接口文档
|
||
|
||
## 1. 接口概览
|
||
|
||
### 基础信息
|
||
- **基础URL**: `https://api.zfunbox.cn/api/`
|
||
- **API版本**: `v1`
|
||
- **数据格式**: `JSON`
|
||
- **字符编码**: `UTF-8`
|
||
- **认证方式**: `Token认证`
|
||
- **签名方式**: `MD5签名 + 时间戳防重放`
|
||
|
||
### 通用响应格式
|
||
```json
|
||
{
|
||
"status": 1,
|
||
"msg": "success",
|
||
"data": {},
|
||
"timestamp": 1640995200
|
||
}
|
||
```
|
||
|
||
### 状态码说明
|
||
| 状态码 | 说明 |
|
||
|--------|------|
|
||
| 1 | 请求成功 |
|
||
| 0 | 请求失败 |
|
||
| -1 | 未登录 |
|
||
| -9 | 需要绑定手机号 |
|
||
| 2222 | 特殊状态(如已领取等) |
|
||
|
||
### 请求签名机制
|
||
所有POST请求都需要包含以下参数:
|
||
- `timestamp`: 当前时间戳
|
||
- `nonce`: 随机字符串
|
||
- `sign`: MD5签名
|
||
|
||
签名算法:
|
||
1. 将所有参数按键名排序
|
||
2. 拼接为 `key1=value1&key2=value2` 格式
|
||
3. 添加密钥:`host + timestamp`
|
||
4. 对整个字符串进行MD5加密
|
||
|
||
## 2. 用户认证接口
|
||
|
||
### 2.1 发送短信验证码
|
||
```http
|
||
POST /v2/account/sendSms
|
||
```
|
||
|
||
**请求参数:**
|
||
```json
|
||
{
|
||
"phone": "13800138000"
|
||
}
|
||
```
|
||
|
||
**参数说明:**
|
||
| 参数 | 类型 | 必填 | 说明 |
|
||
|------|------|------|------|
|
||
| phone | string | 是 | 手机号 |
|
||
|
||
**响应示例:**
|
||
```json
|
||
{
|
||
"status": 1,
|
||
"msg": "验证码发送成功",
|
||
"data": 60
|
||
}
|
||
```
|
||
|
||
### 2.2 手机号登录
|
||
```http
|
||
POST /mobileLogin
|
||
```
|
||
|
||
**迁移状态**: ✅ 已迁移到 .NET 8
|
||
**新接口地址**: `POST /api/mobileLogin`
|
||
|
||
**请求参数:**
|
||
```json
|
||
{
|
||
"mobile": "13800138000",
|
||
"code": "123456",
|
||
"pid": 0,
|
||
"clickId": ""
|
||
}
|
||
```
|
||
|
||
**参数说明:**
|
||
| 参数 | 类型 | 必填 | 说明 |
|
||
|------|------|------|------|
|
||
| mobile | string | 是 | 手机号 |
|
||
| code | string | 是 | 验证码 |
|
||
| pid | int | 否 | 推荐人ID |
|
||
| clickId | string | 否 | 点击ID |
|
||
|
||
**响应示例:**
|
||
```json
|
||
{
|
||
"status": 1,
|
||
"msg": "登录成功",
|
||
"data": "eyJ0eXAiOiJKV1QiLCJhbGciOiJIUzI1NiJ9..."
|
||
}
|
||
```
|
||
|
||
### 2.3 微信授权登录
|
||
```http
|
||
POST /login
|
||
```
|
||
|
||
**迁移状态**: ✅ 已迁移到 .NET 8
|
||
**新接口地址**: `POST /api/login`
|
||
|
||
**请求参数:**
|
||
```json
|
||
{
|
||
"code": "wx_auth_code",
|
||
"pid": 0,
|
||
"clickId": ""
|
||
}
|
||
```
|
||
|
||
**参数说明:**
|
||
| 参数 | 类型 | 必填 | 说明 |
|
||
|------|------|------|------|
|
||
| code | string | 是 | 微信授权code |
|
||
| pid | int | 否 | 推荐人ID |
|
||
| clickId | string | 否 | 点击ID |
|
||
|
||
**响应示例:**
|
||
```json
|
||
{
|
||
"status": 1,
|
||
"msg": "登录成功",
|
||
"data": "token_string"
|
||
}
|
||
```
|
||
|
||
### 2.4 获取用户信息
|
||
```http
|
||
POST /user
|
||
```
|
||
|
||
**迁移状态**: ✅ 已迁移到 .NET 8
|
||
**新接口地址**: `POST /api/user`
|
||
|
||
**请求头:**
|
||
```
|
||
Authorization: Bearer {token}
|
||
```
|
||
|
||
**响应示例:**
|
||
```json
|
||
{
|
||
"status": 1,
|
||
"msg": "success",
|
||
"data": {
|
||
"userinfo": {
|
||
"id": 1001,
|
||
"phone": "138****8000",
|
||
"nickname": "用户昵称",
|
||
"avatar": "头像URL",
|
||
"money": "100.00",
|
||
"integral": "50.00",
|
||
"money2": "20.00",
|
||
"level": 1,
|
||
"mobile_is": 1
|
||
}
|
||
}
|
||
}
|
||
```
|
||
|
||
### 2.5 更新用户信息
|
||
```http
|
||
POST /update_userinfo
|
||
```
|
||
|
||
**迁移状态**: ✅ 已迁移到 .NET 8
|
||
**新接口地址**: `POST /api/update_userinfo`
|
||
|
||
**请求头:**
|
||
```
|
||
Authorization: Bearer {token}
|
||
```
|
||
|
||
**请求参数:**
|
||
```json
|
||
{
|
||
"nickname": "新昵称",
|
||
"headimg": "头像URL",
|
||
"imagebase": "Base64编码的图片数据"
|
||
}
|
||
```
|
||
|
||
**参数说明:**
|
||
| 参数 | 类型 | 必填 | 说明 |
|
||
|------|------|------|------|
|
||
| nickname | string | 否 | 新昵称 |
|
||
| headimg | string | 否 | 头像URL(直接使用URL) |
|
||
| imagebase | string | 否 | Base64编码的图片数据(优先使用) |
|
||
|
||
**响应示例:**
|
||
```json
|
||
{
|
||
"status": 1,
|
||
"msg": "更新成功"
|
||
}
|
||
```
|
||
|
||
### 2.6 注销账号
|
||
```http
|
||
POST /user_log_off
|
||
```
|
||
|
||
**迁移状态**: ✅ 已迁移到 .NET 8
|
||
**新接口地址**: `POST /api/user_log_off`
|
||
|
||
**请求头:**
|
||
```
|
||
Authorization: Bearer {token}
|
||
```
|
||
|
||
**请求参数:**
|
||
```json
|
||
{
|
||
"type": 0
|
||
}
|
||
```
|
||
|
||
**参数说明:**
|
||
| 参数 | 类型 | 必填 | 说明 |
|
||
|------|------|------|------|
|
||
| type | int | 否 | 类型:0-注销账号,1-取消注销 |
|
||
|
||
**响应示例:**
|
||
```json
|
||
{
|
||
"status": 1,
|
||
"msg": "注销成功"
|
||
}
|
||
```
|
||
|
||
### 2.6 微信授权绑定手机号
|
||
```http
|
||
POST /login_bind_mobile
|
||
```
|
||
|
||
**迁移状态**: ✅ 已迁移到 .NET 8
|
||
**新接口地址**: `POST /api/login_bind_mobile`
|
||
|
||
**请求头:**
|
||
```
|
||
Authorization: Bearer {token}
|
||
```
|
||
|
||
**请求参数:**
|
||
```json
|
||
{
|
||
"code": "wx_phone_auth_code"
|
||
}
|
||
```
|
||
|
||
**参数说明:**
|
||
| 参数 | 类型 | 必填 | 说明 |
|
||
|------|------|------|------|
|
||
| code | string | 是 | 微信获取手机号授权code |
|
||
|
||
**响应示例:**
|
||
```json
|
||
{
|
||
"status": 1,
|
||
"msg": "绑定成功",
|
||
"data": {
|
||
"token": "new_token_if_account_merged"
|
||
}
|
||
}
|
||
```
|
||
|
||
**说明:**
|
||
- 如果手机号已被其他用户绑定,会进行账户合并,返回新的token
|
||
- 如果手机号未被绑定,直接绑定到当前用户,token为null
|
||
|
||
### 2.7 验证码绑定手机号
|
||
```http
|
||
POST /bindMobile
|
||
```
|
||
|
||
**迁移状态**: ✅ 已迁移到 .NET 8
|
||
**新接口地址**: `POST /api/bindMobile`
|
||
|
||
**请求头:**
|
||
```
|
||
Authorization: Bearer {token}
|
||
```
|
||
|
||
**请求参数:**
|
||
```json
|
||
{
|
||
"mobile": "13800138000",
|
||
"code": "123456"
|
||
}
|
||
```
|
||
|
||
**参数说明:**
|
||
| 参数 | 类型 | 必填 | 说明 |
|
||
|------|------|------|------|
|
||
| mobile | string | 是 | 手机号 |
|
||
| code | string | 是 | 短信验证码 |
|
||
|
||
**响应示例:**
|
||
```json
|
||
{
|
||
"status": 1,
|
||
"msg": "绑定成功",
|
||
"data": {
|
||
"token": "new_token_if_account_merged"
|
||
}
|
||
}
|
||
```
|
||
|
||
**说明:**
|
||
- 如果手机号已被其他用户绑定,会进行账户合并,返回新的token
|
||
- 如果手机号未被绑定,直接绑定到当前用户,token为null
|
||
|
||
### 2.8 记录用户登录
|
||
```http
|
||
GET|POST /login_record
|
||
```
|
||
|
||
**迁移状态**: ✅ 已迁移到 .NET 8
|
||
**新接口地址**: `GET|POST /api/login_record`
|
||
|
||
**请求头:**
|
||
```
|
||
Authorization: Bearer {token}
|
||
```
|
||
|
||
**请求参数:**
|
||
```json
|
||
{
|
||
"device": "android",
|
||
"deviceInfo": "设备信息"
|
||
}
|
||
```
|
||
|
||
**参数说明:**
|
||
| 参数 | 类型 | 必填 | 说明 |
|
||
|------|------|------|------|
|
||
| device | string | 否 | 设备类型 |
|
||
| deviceInfo | string | 否 | 设备信息 |
|
||
|
||
**响应示例:**
|
||
```json
|
||
{
|
||
"status": 1,
|
||
"msg": "success",
|
||
"data": {
|
||
"uid": "100001",
|
||
"nickname": "用户昵称",
|
||
"headimg": "头像URL"
|
||
}
|
||
}
|
||
}
|
||
```
|
||
|
||
## 3. 商品相关接口
|
||
|
||
### 3.1 获取首页商品列表
|
||
```http
|
||
POST /goods
|
||
```
|
||
|
||
**迁移状态**: ✅ 已迁移到 .NET 8
|
||
**新接口地址**: `POST /api/goods_list`
|
||
|
||
**请求参数:**
|
||
```json
|
||
{
|
||
"page": 1,
|
||
"type": 0,
|
||
"keyword": ""
|
||
}
|
||
```
|
||
|
||
**参数说明:**
|
||
| 参数 | 类型 | 必填 | 说明 |
|
||
|------|------|------|------|
|
||
| page | int | 是 | 页码,从1开始 |
|
||
| type | int | 否 | 商品类型:0-全部,1-一番赏,2-无限赏等 |
|
||
| keyword | string | 否 | 搜索关键词 |
|
||
|
||
**响应示例:**
|
||
```json
|
||
{
|
||
"status": 1,
|
||
"msg": "success",
|
||
"data": {
|
||
"data": [
|
||
{
|
||
"id": 1001,
|
||
"title": "精美手办盲盒",
|
||
"imgurl": "商品图片URL",
|
||
"price": "29.90",
|
||
"type": 1,
|
||
"stock": 100,
|
||
"sale_stock": 50,
|
||
"status": 1,
|
||
"prize_num": 1,
|
||
"show_price": "29.9元/抽"
|
||
}
|
||
],
|
||
"total": 100,
|
||
"current_page": 1,
|
||
"last_page": 10
|
||
}
|
||
}
|
||
```
|
||
|
||
### 3.2 获取商品详情(一番赏)
|
||
```http
|
||
POST /goodsdetail
|
||
```
|
||
|
||
**迁移状态**: ✅ 已迁移到 .NET 8
|
||
**新接口地址**: `POST /api/goods_detail`
|
||
|
||
**请求参数:**
|
||
```json
|
||
{
|
||
"goods_id": 1001,
|
||
"num": 0
|
||
}
|
||
```
|
||
|
||
**响应示例:**
|
||
```json
|
||
{
|
||
"status": 1,
|
||
"msg": "success",
|
||
"data": {
|
||
"goods": {
|
||
"id": 1001,
|
||
"title": "精美手办盲盒",
|
||
"imgurl": "商品封面图",
|
||
"imgurl_detail": "商品详情图",
|
||
"price": "29.90",
|
||
"type": 1,
|
||
"stock": 100,
|
||
"prize_num": 1,
|
||
"goods_describe": "商品描述"
|
||
},
|
||
"goods_list": [
|
||
{
|
||
"id": 2001,
|
||
"title": "限定手办A",
|
||
"imgurl": "奖品图片",
|
||
"price": "299.00",
|
||
"money": "150.00",
|
||
"real_pro": "0.05000",
|
||
"goods_type": 1,
|
||
"prize_code": "A001"
|
||
}
|
||
]
|
||
}
|
||
}
|
||
```
|
||
|
||
### 3.3 获取商品子奖品
|
||
```http
|
||
POST /goods_children
|
||
```
|
||
|
||
**迁移状态**: ✅ 已迁移到 .NET 8
|
||
**新接口地址**: `POST /api/goods_children`
|
||
|
||
**请求参数:**
|
||
```json
|
||
{
|
||
"goods_id": 1001,
|
||
"goods_num": 0,
|
||
"goods_list_id": 2001
|
||
}
|
||
```
|
||
|
||
**参数说明:**
|
||
| 参数 | 类型 | 必填 | 说明 |
|
||
|------|------|------|------|
|
||
| goods_id | int | 是 | 商品ID |
|
||
| goods_num | int | 否 | 箱号,默认0 |
|
||
| goods_list_id | int | 是 | 奖品ID |
|
||
|
||
**响应示例:**
|
||
```json
|
||
{
|
||
"status": 1,
|
||
"msg": "success",
|
||
"data": [
|
||
{
|
||
"id": 3001,
|
||
"title": "子奖品名称",
|
||
"imgurl": "子奖品图片",
|
||
"price": "99.00",
|
||
"real_pro": "0.05000",
|
||
"shang_info": {
|
||
"id": 1,
|
||
"title": "A赏",
|
||
"color": "#FF0000"
|
||
}
|
||
}
|
||
]
|
||
}
|
||
```
|
||
|
||
### 3.4 获取商品扩展配置
|
||
```http
|
||
POST /goods_extend
|
||
```
|
||
|
||
**迁移状态**: ✅ 已迁移到 .NET 8
|
||
**新接口地址**: `POST /api/goods_extend`
|
||
|
||
**请求参数:**
|
||
```json
|
||
{
|
||
"goods_id": 1001,
|
||
"goods_type": 1
|
||
}
|
||
```
|
||
|
||
**参数说明:**
|
||
| 参数 | 类型 | 必填 | 说明 |
|
||
|------|------|------|------|
|
||
| goods_id | int | 是 | 商品ID |
|
||
| goods_type | int | 否 | 商品类型 |
|
||
|
||
**响应示例:**
|
||
```json
|
||
{
|
||
"status": 1,
|
||
"msg": "success",
|
||
"data": {
|
||
"pay_wechat": 1,
|
||
"pay_balance": 1,
|
||
"pay_currency": 1,
|
||
"pay_currency2": 1,
|
||
"dk_money": 1,
|
||
"dk_integral": 1,
|
||
"dk_money2": 1
|
||
}
|
||
}
|
||
```
|
||
|
||
### 3.5 获取箱号列表
|
||
```http
|
||
POST /goods_num_list
|
||
```
|
||
|
||
**迁移状态**: ✅ 已迁移到 .NET 8
|
||
**新接口地址**: `POST /api/goods_num_list`
|
||
|
||
**请求参数:**
|
||
```json
|
||
{
|
||
"goods_id": 1001
|
||
}
|
||
```
|
||
|
||
**参数说明:**
|
||
| 参数 | 类型 | 必填 | 说明 |
|
||
|------|------|------|------|
|
||
| goods_id | int | 是 | 商品ID |
|
||
|
||
**响应示例:**
|
||
```json
|
||
{
|
||
"status": 1,
|
||
"msg": "success",
|
||
"data": [
|
||
{
|
||
"start": 1,
|
||
"end": 10,
|
||
"text": "1-10"
|
||
},
|
||
{
|
||
"start": 11,
|
||
"end": 20,
|
||
"text": "11-20"
|
||
}
|
||
]
|
||
}
|
||
```
|
||
|
||
### 3.6 获取箱号详情
|
||
```http
|
||
POST /goods_num_detail
|
||
```
|
||
|
||
**迁移状态**: ✅ 已迁移到 .NET 8
|
||
**新接口地址**: `POST /api/goods_num_detail`
|
||
|
||
**请求参数:**
|
||
```json
|
||
{
|
||
"goods_id": 1001,
|
||
"page_no": 0,
|
||
"sort": 0
|
||
}
|
||
```
|
||
|
||
**参数说明:**
|
||
| 参数 | 类型 | 必填 | 说明 |
|
||
|------|------|------|------|
|
||
| goods_id | int | 是 | 商品ID |
|
||
| page_no | int | 否 | 页码,默认0(第一组) |
|
||
| sort | int | 否 | 排序:0-箱号升序,1-箱号降序,2-余量降序 |
|
||
|
||
**响应示例:**
|
||
```json
|
||
{
|
||
"status": 1,
|
||
"msg": "success",
|
||
"data": [
|
||
{
|
||
"num": 1,
|
||
"surplus_all_stock": 50,
|
||
"goods_list": [
|
||
{
|
||
"id": 2001,
|
||
"title": "奖品名称",
|
||
"imgurl": "奖品图片",
|
||
"surplus_stock": 5
|
||
}
|
||
]
|
||
}
|
||
]
|
||
}
|
||
```
|
||
|
||
### 3.7 获取无限赏商品详情
|
||
```http
|
||
POST /infinite_goodsdetail
|
||
```
|
||
|
||
**请求参数:**
|
||
```json
|
||
{
|
||
"goods_id": 1001
|
||
}
|
||
```
|
||
|
||
**响应示例:**
|
||
```json
|
||
{
|
||
"status": 1,
|
||
"msg": "success",
|
||
"data": {
|
||
"goods": {
|
||
"id": 1001,
|
||
"title": "无限赏盲盒",
|
||
"imgurl": "商品图片",
|
||
"price": "19.90",
|
||
"type": 2,
|
||
"lingzhu_is": 1,
|
||
"king_user_id": 1234
|
||
},
|
||
"goods_list": [
|
||
{
|
||
"id": 2001,
|
||
"title": "稀有奖品",
|
||
"imgurl": "奖品图片",
|
||
"price": "199.00",
|
||
"real_pro": "0.01000"
|
||
}
|
||
]
|
||
}
|
||
}
|
||
```
|
||
|
||
### 3.4 获取商品奖品数量统计
|
||
```http
|
||
POST /goodslist_count
|
||
```
|
||
|
||
**迁移状态**: ✅ 已迁移到 .NET 8
|
||
**新接口地址**: `POST /api/goods_prize_count`
|
||
|
||
**请求参数:**
|
||
```json
|
||
{
|
||
"goods_id": 1001
|
||
}
|
||
```
|
||
|
||
### 3.5 获取商品奖品内容
|
||
```http
|
||
POST /goodslist_content
|
||
```
|
||
|
||
**迁移状态**: ✅ 已迁移到 .NET 8
|
||
**新接口地址**: `POST /api/goods_prize_content`
|
||
|
||
**请求参数:**
|
||
```json
|
||
{
|
||
"goods_id": 1001,
|
||
"num": 0
|
||
}
|
||
```
|
||
|
||
### 3.6 获取预售日历
|
||
```http
|
||
POST /yushourili
|
||
```
|
||
|
||
**请求参数:**
|
||
```json
|
||
{
|
||
"page": 1
|
||
}
|
||
```
|
||
|
||
## 4. 订单相关接口
|
||
|
||
### 4.1 计算订单金额(一番赏)
|
||
```http
|
||
POST /ordermoney
|
||
```
|
||
|
||
**迁移状态**: ✅ 已迁移到 .NET 8
|
||
**新接口地址**: `POST /api/ordermoney`
|
||
|
||
**请求参数:**
|
||
```json
|
||
{
|
||
"goods_id": 1001,
|
||
"num": 0,
|
||
"prize_num": 1,
|
||
"coupon_id": "",
|
||
"use_money_is": 2,
|
||
"use_integral_is": 2,
|
||
"use_money2_is": 2
|
||
}
|
||
```
|
||
|
||
**参数说明:**
|
||
| 参数 | 类型 | 必填 | 说明 |
|
||
|------|------|------|------|
|
||
| goods_id | int | 是 | 商品ID |
|
||
| num | int | 是 | 第几套 |
|
||
| prize_num | int | 是 | 抽奖数量 |
|
||
| coupon_id | string | 否 | 优惠券ID |
|
||
| use_money_is | int | 否 | 是否使用余额:1-是,2-否 |
|
||
| use_integral_is | int | 否 | 是否使用积分:1-是,2-否 |
|
||
| use_money2_is | int | 否 | 是否使用哈尼券:1-是,2-否 |
|
||
|
||
**响应示例:**
|
||
```json
|
||
{
|
||
"status": 1,
|
||
"msg": "success",
|
||
"data": {
|
||
"order_total": "29.90",
|
||
"price": "29.90",
|
||
"goods_info": {
|
||
"id": 1001,
|
||
"title": "精美手办盲盒",
|
||
"imgurl": "商品图片"
|
||
},
|
||
"goodsExtend": {
|
||
"pay_wechat": 1,
|
||
"pay_balance": 1,
|
||
"pay_currency": 1,
|
||
"pay_currency2": 1
|
||
}
|
||
}
|
||
}
|
||
```
|
||
|
||
### 4.2 创建订单并支付(一番赏)
|
||
```http
|
||
POST /orderbuy
|
||
```
|
||
|
||
**迁移状态**: ✅ 已迁移到 .NET 8
|
||
**新接口地址**: `POST /api/orderbuy`
|
||
|
||
**请求参数:**
|
||
```json
|
||
{
|
||
"goods_id": 1001,
|
||
"num": 0,
|
||
"prize_num": 1,
|
||
"coupon_id": "",
|
||
"use_money_is": 2,
|
||
"use_integral_is": 2,
|
||
"use_money2_is": 2
|
||
}
|
||
```
|
||
|
||
**响应示例:**
|
||
```json
|
||
{
|
||
"status": 1,
|
||
"msg": "success",
|
||
"data": {
|
||
"status": 1,
|
||
"order_num": "202401010001",
|
||
"res": {
|
||
"appId": "wx123456789",
|
||
"timeStamp": "1640995200",
|
||
"nonceStr": "abc123",
|
||
"package": "prepay_id=wx123456789",
|
||
"signType": "RSA",
|
||
"paySign": "signature"
|
||
}
|
||
}
|
||
}
|
||
```
|
||
|
||
### 4.3 无限赏订单金额计算
|
||
```http
|
||
POST /infinite_ordermoney
|
||
```
|
||
|
||
**迁移状态**: ✅ 已迁移到 .NET 8
|
||
**新接口地址**: `POST /api/infinite_ordermoney`
|
||
|
||
**请求参数:**
|
||
```json
|
||
{
|
||
"goods_id": 1001,
|
||
"prize_num": 1,
|
||
"use_money_is": 2,
|
||
"use_integral_is": 2,
|
||
"use_money2_is": 2,
|
||
"coupon_id": ""
|
||
}
|
||
```
|
||
|
||
### 4.4 无限赏创建订单
|
||
```http
|
||
POST /infinite_orderbuy
|
||
```
|
||
|
||
**迁移状态**: ✅ 已迁移到 .NET 8
|
||
**新接口地址**: `POST /api/infinite_orderbuy`
|
||
|
||
**请求参数:**
|
||
```json
|
||
{
|
||
"goods_id": 1001,
|
||
"prize_num": 1,
|
||
"use_money_is": 2,
|
||
"use_integral_is": 2,
|
||
"use_money2_is": 2,
|
||
"coupon_id": ""
|
||
}
|
||
```
|
||
|
||
### 4.5 商城订单金额计算
|
||
```http
|
||
POST /mall_ordermoney
|
||
```
|
||
|
||
**迁移状态**: ✅ 已迁移到 .NET 8
|
||
**新接口地址**: `POST /api/mall_ordermoney`
|
||
|
||
**请求参数:**
|
||
```json
|
||
{
|
||
"goods_id": 1001,
|
||
"prize_num": 1,
|
||
"goods_num": 1,
|
||
"use_money_is": 2,
|
||
"use_integral_is": 2,
|
||
"use_money2_is": 2
|
||
}
|
||
```
|
||
|
||
### 4.6 获取订单列表
|
||
```http
|
||
POST /order_list
|
||
```
|
||
|
||
**迁移状态**: ✅ 已迁移到 .NET 8
|
||
**新接口地址**: `POST /api/order_list`
|
||
|
||
**请求参数:**
|
||
```json
|
||
{
|
||
"page": 1,
|
||
"page_size": 20
|
||
}
|
||
```
|
||
|
||
**响应示例:**
|
||
```json
|
||
{
|
||
"status": 1,
|
||
"msg": "success",
|
||
"data": {
|
||
"data": [
|
||
{
|
||
"id": 10001,
|
||
"order_num": "202401010001",
|
||
"goods_title": "精美手办盲盒",
|
||
"goods_imgurl": "商品图片",
|
||
"order_total": "29.90",
|
||
"price": "29.90",
|
||
"prize_num": 1,
|
||
"status": 1,
|
||
"addtime": 1640995200,
|
||
"pay_time": 1640995300
|
||
}
|
||
],
|
||
"total": 50,
|
||
"current_page": 1,
|
||
"last_page": 3
|
||
}
|
||
}
|
||
```
|
||
|
||
### 4.7 获取订单详情
|
||
```http
|
||
POST /order_detail
|
||
```
|
||
|
||
**迁移状态**: ✅ 已迁移到 .NET 8
|
||
**新接口地址**: `POST /api/order_detail`
|
||
|
||
**请求参数:**
|
||
```json
|
||
{
|
||
"order_num": "202401010001"
|
||
}
|
||
```
|
||
|
||
## 5. 抽奖相关接口
|
||
|
||
### 5.1 获取抽奖结果(一番赏)
|
||
```http
|
||
POST /prizeorderlog
|
||
```
|
||
|
||
**迁移状态**: ✅ 已迁移到 .NET 8
|
||
**新接口地址**: `POST /api/prizeorderlog`
|
||
|
||
**请求参数:**
|
||
```json
|
||
{
|
||
"order_num": "202401010001"
|
||
}
|
||
```
|
||
|
||
**响应示例:**
|
||
```json
|
||
{
|
||
"status": 1,
|
||
"msg": "success",
|
||
"data": [
|
||
{
|
||
"id": 20001,
|
||
"order_id": 10001,
|
||
"goodslist_title": "限定手办A",
|
||
"goodslist_imgurl": "奖品图片",
|
||
"goodslist_price": "299.00",
|
||
"goodslist_money": "150.00",
|
||
"goodslist_type": 1,
|
||
"status": 0,
|
||
"addtime": 1640995300,
|
||
"prize_code": "A001",
|
||
"luck_no": 1
|
||
}
|
||
]
|
||
}
|
||
```
|
||
|
||
### 5.2 获取无限赏抽奖结果
|
||
```http
|
||
POST /infinite_prizeorderlog
|
||
```
|
||
|
||
**迁移状态**: ✅ 已迁移到 .NET 8
|
||
**新接口地址**: `POST /api/infinite_prizeorderlog`
|
||
|
||
**请求参数:**
|
||
```json
|
||
{
|
||
"order_num": "202401010001"
|
||
}
|
||
```
|
||
|
||
### 5.3 获取中奖记录
|
||
```http
|
||
POST /shang_log
|
||
```
|
||
|
||
**迁移状态**: ✅ 已迁移到 .NET 8
|
||
**新接口地址**: `POST /api/goods_prize_logs`
|
||
|
||
**请求参数:**
|
||
```json
|
||
{
|
||
"goods_id": 1001,
|
||
"goods_num": 0,
|
||
"shang_id": 0,
|
||
"page": 1,
|
||
"page_size": 15
|
||
}
|
||
```
|
||
|
||
**参数说明:**
|
||
| 参数 | 类型 | 必填 | 说明 |
|
||
|------|------|------|------|
|
||
| goods_id | int | 是 | 商品ID |
|
||
| goods_num | int | 否 | 箱号,默认0 |
|
||
| shang_id | int | 否 | 赏品分类ID,0=全部 |
|
||
| page | int | 否 | 页码,默认1 |
|
||
| page_size | int | 否 | 每页数量,默认15 |
|
||
|
||
**响应示例:**
|
||
```json
|
||
{
|
||
"status": 1,
|
||
"msg": "success",
|
||
"data": {
|
||
"category": [
|
||
{
|
||
"id": 1,
|
||
"title": "A赏",
|
||
"color": "#FF0000"
|
||
}
|
||
],
|
||
"data": [
|
||
{
|
||
"user_nickname": "用户***",
|
||
"user_headimg": "头像URL",
|
||
"goodslist_title": "限定手办A",
|
||
"goodslist_imgurl": "奖品图片",
|
||
"shang_info": {
|
||
"id": 1,
|
||
"title": "A赏",
|
||
"color": "#FF0000"
|
||
},
|
||
"addtime": "2024-01-01 10:30:00",
|
||
"luck_no": 1
|
||
}
|
||
],
|
||
"last_page": 10
|
||
}
|
||
}
|
||
```
|
||
|
||
### 5.4 获取无限赏中奖记录
|
||
```http
|
||
POST /infinite_shang_log
|
||
```
|
||
|
||
**迁移状态**: ✅ 已迁移到 .NET 8
|
||
**新接口地址**: `POST /api/infinite_shang_log`
|
||
|
||
**请求参数:**
|
||
```json
|
||
{
|
||
"goods_id": 1001,
|
||
"shang_id": 0,
|
||
"is_mibao": 0,
|
||
"page": 1,
|
||
"page_size": 100
|
||
}
|
||
```
|
||
|
||
**参数说明:**
|
||
| 参数 | 类型 | 必填 | 说明 |
|
||
|------|------|------|------|
|
||
| goods_id | int | 是 | 商品ID |
|
||
| shang_id | int | 否 | 赏品等级ID,0表示全部 |
|
||
| is_mibao | int | 否 | 是否秘宝池,0=否,1=是 |
|
||
| page | int | 否 | 页码,默认1 |
|
||
| page_size | int | 否 | 每页数量,默认100 |
|
||
|
||
**响应示例:**
|
||
```json
|
||
{
|
||
"status": 1,
|
||
"msg": "success",
|
||
"data": {
|
||
"category": [
|
||
{"shang_id": 0, "shang_title": "全部"},
|
||
{"shang_id": 34, "shang_title": "A赏"}
|
||
],
|
||
"data": [
|
||
{
|
||
"id": 1,
|
||
"user_id": 100,
|
||
"goodslist_title": "奖品名称",
|
||
"goodslist_imgurl": "https://example.com/image.jpg",
|
||
"shang_id": 34,
|
||
"shang_title": "A赏",
|
||
"shang_color": "#FF0000",
|
||
"addtime": "2025-01-03 10:30:00",
|
||
"luck_no": 1,
|
||
"doubling": 1,
|
||
"is_lingzhu": 0,
|
||
"user_info": {
|
||
"nickname": "用***户",
|
||
"headimg": "https://example.com/avatar.jpg"
|
||
}
|
||
}
|
||
],
|
||
"last_page": 10,
|
||
"total": 100
|
||
}
|
||
}
|
||
```
|
||
|
||
### 5.5 获取用户抽奖记录(盒子抽奖记录)
|
||
```http
|
||
POST /infinite_prizerecords
|
||
```
|
||
|
||
**迁移状态**: ✅ 已迁移到 .NET 8
|
||
**新接口地址**: `POST /api/infinite_prizerecords`
|
||
|
||
**请求参数:**
|
||
```json
|
||
{
|
||
"goods_id": 1001,
|
||
"page": 1,
|
||
"page_size": 100
|
||
}
|
||
```
|
||
|
||
**参数说明:**
|
||
| 参数 | 类型 | 必填 | 说明 |
|
||
|------|------|------|------|
|
||
| goods_id | int | 是 | 商品ID |
|
||
| page | int | 否 | 页码,默认1 |
|
||
| page_size | int | 否 | 每页数量,默认100 |
|
||
|
||
**响应示例:**
|
||
```json
|
||
{
|
||
"status": 1,
|
||
"msg": "success",
|
||
"data": {
|
||
"data": [
|
||
{
|
||
"user_id": 10001,
|
||
"goodslist_title": "限定手办A",
|
||
"goodslist_imgurl": "https://example.com/prize.jpg",
|
||
"addtime": "2025-01-03 10:30:00"
|
||
}
|
||
],
|
||
"current_page": 1,
|
||
"last_page": 1,
|
||
"per_page": 100,
|
||
"total": 1
|
||
}
|
||
}
|
||
```
|
||
|
||
### 5.6 使用道具卡抽奖
|
||
```http
|
||
POST /item_card_chou
|
||
```
|
||
|
||
**迁移状态**: ✅ 已迁移到 .NET 8
|
||
**新接口地址**: `POST /api/item_card_chou`
|
||
|
||
**请求参数:**
|
||
```json
|
||
{
|
||
"goods_id": 1001,
|
||
"order_list_ids": "1,2,3"
|
||
}
|
||
```
|
||
|
||
**参数说明:**
|
||
| 参数 | 类型 | 必填 | 说明 |
|
||
|------|------|------|------|
|
||
| goods_id | int | 是 | 商品ID |
|
||
| order_list_ids | string | 是 | 要重抽的订单项ID列表(逗号分隔) |
|
||
|
||
**响应示例:**
|
||
```json
|
||
{
|
||
"status": 1,
|
||
"msg": "重抽成功",
|
||
"data": {
|
||
"status": 0,
|
||
"order_num": "MH_20260103120000001234",
|
||
"prizes": [
|
||
{
|
||
"id": 10001,
|
||
"title": "限定手办A",
|
||
"img_url": "奖品图片",
|
||
"shang_id": 34,
|
||
"shang_title": "A赏",
|
||
"shang_color": "#FF0000",
|
||
"price": "299.00",
|
||
"sc_money": "150.00",
|
||
"prize_code": "P202601031200001234",
|
||
"luck_no": 1
|
||
}
|
||
],
|
||
"remaining_cards": 2
|
||
}
|
||
}
|
||
```
|
||
|
||
## 6. 盒柜(仓库)相关接口
|
||
|
||
### 6.1 获取仓库首页
|
||
```http
|
||
POST /warehouse_index
|
||
```
|
||
|
||
**迁移状态**: ✅ 已迁移到 .NET 8
|
||
**新接口地址**: `POST /api/warehouse_index`
|
||
|
||
**请求参数:**
|
||
```json
|
||
{
|
||
"page": 1,
|
||
"status": 0
|
||
}
|
||
```
|
||
|
||
**参数说明:**
|
||
| 参数 | 类型 | 必填 | 说明 |
|
||
|------|------|------|------|
|
||
| page | int | 是 | 页码 |
|
||
| status | int | 否 | 状态:0-待选择,1-回收,2-发货,3-集市 |
|
||
|
||
**响应示例:**
|
||
```json
|
||
{
|
||
"status": 1,
|
||
"msg": "success",
|
||
"data": {
|
||
"data": [
|
||
{
|
||
"id": 20001,
|
||
"goodslist_title": "限定手办A",
|
||
"goodslist_imgurl": "奖品图片",
|
||
"goodslist_price": "299.00",
|
||
"goodslist_money": "150.00",
|
||
"status": 0,
|
||
"addtime": 1640995300
|
||
}
|
||
]
|
||
}
|
||
}
|
||
```
|
||
|
||
### 6.2 回收奖品
|
||
```http
|
||
POST /warehouse_recovery
|
||
```
|
||
|
||
**迁移状态**: ✅ 已迁移到 .NET 8
|
||
**新接口地址**: `POST /api/warehouse_recovery`
|
||
|
||
**请求参数:**
|
||
```json
|
||
{
|
||
"order_list_ids": "20001,20002"
|
||
}
|
||
```
|
||
|
||
### 6.3 发货奖品
|
||
```http
|
||
POST /warehouse_send
|
||
```
|
||
|
||
**迁移状态**: ✅ 已迁移到 .NET 8
|
||
**新接口地址**: `POST /api/warehouse_send`
|
||
|
||
**请求参数:**
|
||
```json
|
||
{
|
||
"order_list_ids": "20001,20002",
|
||
"name": "张三",
|
||
"mobile": "13800138000",
|
||
"address": "北京市朝阳区xxx街道xxx号",
|
||
"message": "请小心轻放"
|
||
}
|
||
```
|
||
|
||
### 6.4 确认发货
|
||
```http
|
||
POST /warehouse_send_confirm
|
||
```
|
||
|
||
**迁移状态**: ✅ 已迁移到 .NET 8
|
||
**新接口地址**: `POST /api/warehouse_send_confirm`
|
||
|
||
**请求参数:**
|
||
```json
|
||
{
|
||
"id": 70001
|
||
}
|
||
```
|
||
|
||
### 6.5 获取发货记录
|
||
```http
|
||
POST /warehouse_send_record
|
||
```
|
||
|
||
**迁移状态**: ✅ 已迁移到 .NET 8
|
||
**新接口地址**: `POST /api/warehouse_send_record`
|
||
|
||
**请求参数:**
|
||
```json
|
||
{
|
||
"page": 1
|
||
}
|
||
```
|
||
|
||
### 6.6 获取发货记录详情
|
||
```http
|
||
POST /warehouse_send_record_detail
|
||
```
|
||
|
||
**迁移状态**: ✅ 已迁移到 .NET 8
|
||
**新接口地址**: `POST /api/warehouse_send_record_detail`
|
||
|
||
**请求参数:**
|
||
```json
|
||
{
|
||
"id": 70001
|
||
}
|
||
```
|
||
|
||
### 6.7 获取回收记录
|
||
```http
|
||
POST /warehouse_recovery_record
|
||
```
|
||
|
||
**迁移状态**: ✅ 已迁移到 .NET 8
|
||
**新接口地址**: `POST /api/warehouse_recovery_record`
|
||
|
||
**请求参数:**
|
||
```json
|
||
{
|
||
"page": 1
|
||
}
|
||
```
|
||
|
||
### 6.8 获取物流信息
|
||
```http
|
||
POST /warehouse_order_logistics
|
||
```
|
||
|
||
**迁移状态**: ✅ 已迁移到 .NET 8
|
||
**新接口地址**: `POST /api/warehouse_order_logistics`
|
||
|
||
**请求参数:**
|
||
```json
|
||
{
|
||
"id": 70001
|
||
}
|
||
```
|
||
|
||
## 7. 财务相关接口
|
||
|
||
### 7.1 获取资金明细
|
||
```http
|
||
POST /profitMoney
|
||
```
|
||
|
||
**迁移状态**: ✅ 已迁移到 .NET 8
|
||
**新接口地址**: `POST /api/profitMoney`
|
||
|
||
**请求参数:**
|
||
```json
|
||
{
|
||
"page": 1,
|
||
"type": 0
|
||
}
|
||
```
|
||
|
||
**参数说明:**
|
||
| 参数 | 类型 | 必填 | 说明 |
|
||
|------|------|------|------|
|
||
| page | int | 是 | 页码 |
|
||
| type | int | 否 | 类型:0-全部,1-收入,2-支出,3-提现 |
|
||
|
||
**响应示例:**
|
||
```json
|
||
{
|
||
"status": 1,
|
||
"msg": "success",
|
||
"data": {
|
||
"list": [
|
||
{
|
||
"changeMoney": "+150.00",
|
||
"content": "背包回收",
|
||
"addTime": "2024-01-01 10:30:00"
|
||
}
|
||
],
|
||
"lastPage": 10,
|
||
"currentPage": 1,
|
||
"total": 100
|
||
}
|
||
}
|
||
```
|
||
|
||
### 7.2 获取吧唧币明细
|
||
```http
|
||
POST /profitIntegral
|
||
```
|
||
|
||
**迁移状态**: ✅ 已迁移到 .NET 8
|
||
**新接口地址**: `POST /api/profitIntegral`
|
||
|
||
**请求参数:**
|
||
```json
|
||
{
|
||
"page": 1,
|
||
"type": 0
|
||
}
|
||
```
|
||
|
||
**参数说明:**
|
||
| 参数 | 类型 | 必填 | 说明 |
|
||
|------|------|------|------|
|
||
| page | int | 是 | 页码 |
|
||
| type | int | 否 | 类型:0-全部,1-收入,2-支出 |
|
||
|
||
**响应示例:**
|
||
```json
|
||
{
|
||
"status": 1,
|
||
"msg": "success",
|
||
"data": {
|
||
"list": [
|
||
{
|
||
"changeMoney": "+50.00",
|
||
"content": "任务奖励",
|
||
"addTime": "2024-01-01 10:30:00"
|
||
}
|
||
],
|
||
"lastPage": 5,
|
||
"currentPage": 1,
|
||
"total": 50
|
||
}
|
||
}
|
||
```
|
||
|
||
### 7.3 获取积分明细
|
||
```http
|
||
POST /profitScore
|
||
```
|
||
|
||
**迁移状态**: ✅ 已迁移到 .NET 8
|
||
**新接口地址**: `POST /api/profitScore`
|
||
|
||
**请求参数:**
|
||
```json
|
||
{
|
||
"page": 1,
|
||
"type": 0
|
||
}
|
||
```
|
||
|
||
**参数说明:**
|
||
| 参数 | 类型 | 必填 | 说明 |
|
||
|------|------|------|------|
|
||
| page | int | 是 | 页码 |
|
||
| type | int | 否 | 类型:0-全部,1-收入,2-支出 |
|
||
|
||
**响应示例:**
|
||
```json
|
||
{
|
||
"status": 1,
|
||
"msg": "success",
|
||
"data": {
|
||
"list": [
|
||
{
|
||
"changeMoney": "+20.00",
|
||
"content": "签到奖励",
|
||
"addTime": "2024-01-01 10:30:00"
|
||
}
|
||
],
|
||
"lastPage": 3,
|
||
"currentPage": 1,
|
||
"total": 30
|
||
}
|
||
}
|
||
```
|
||
|
||
### 7.4 获取支付明细
|
||
```http
|
||
POST /profitPay
|
||
```
|
||
|
||
**迁移状态**: ✅ 已迁移到 .NET 8
|
||
**新接口地址**: `POST /api/profitPay`
|
||
|
||
**请求参数:**
|
||
```json
|
||
{
|
||
"page": 1
|
||
}
|
||
```
|
||
|
||
**参数说明:**
|
||
| 参数 | 类型 | 必填 | 说明 |
|
||
|------|------|------|------|
|
||
| page | int | 是 | 页码 |
|
||
|
||
**响应示例:**
|
||
```json
|
||
{
|
||
"status": 1,
|
||
"msg": "success",
|
||
"data": {
|
||
"list": [
|
||
{
|
||
"changeMoney": "-29.90",
|
||
"content": "购买商品",
|
||
"addTime": "2024-01-01 10:30:00"
|
||
}
|
||
],
|
||
"lastPage": 5,
|
||
"currentPage": 1,
|
||
"total": 50
|
||
}
|
||
}
|
||
```
|
||
|
||
### 7.4 获取优惠券列表
|
||
```http
|
||
POST /coupon_list
|
||
```
|
||
|
||
**迁移状态**: ✅ 已迁移到 .NET 8
|
||
**新接口地址**: `POST /api/coupon_list`
|
||
|
||
**请求参数:**
|
||
```json
|
||
{
|
||
"page": 1,
|
||
"status": 1,
|
||
"limit": 15
|
||
}
|
||
```
|
||
|
||
**参数说明:**
|
||
| 参数 | 类型 | 必填 | 说明 |
|
||
|------|------|------|------|
|
||
| page | int | 是 | 页码 |
|
||
| status | int | 否 | 状态:1-未使用,2-已分享 |
|
||
| limit | int | 否 | 每页数量,默认15 |
|
||
|
||
**响应示例:**
|
||
```json
|
||
{
|
||
"status": 1,
|
||
"msg": "success",
|
||
"data": {
|
||
"list": [
|
||
{
|
||
"id": 60001,
|
||
"status": 1,
|
||
"level": 3,
|
||
"levelText": "高级赏券",
|
||
"levelImg": "/storage/coupon/coupon_c.png",
|
||
"title": "高级赏券",
|
||
"num": "500",
|
||
"klNum": 6,
|
||
"klNum2": 6,
|
||
"yiLing": 0
|
||
}
|
||
],
|
||
"lastPage": 10,
|
||
"yCount": 5,
|
||
"zCount": 50,
|
||
"userIntegral": 1000.00,
|
||
"keHcCount": 20,
|
||
"sunHao": "10%"
|
||
}
|
||
}
|
||
```
|
||
|
||
### 7.4.1 获取优惠券详情
|
||
```http
|
||
POST /coupon_detail
|
||
```
|
||
|
||
**迁移状态**: ✅ 已迁移到 .NET 8
|
||
**新接口地址**: `POST /api/coupon_detail`
|
||
|
||
**请求参数:**
|
||
```json
|
||
{
|
||
"id": 60001
|
||
}
|
||
```
|
||
|
||
**参数说明:**
|
||
| 参数 | 类型 | 必填 | 说明 |
|
||
|------|------|------|------|
|
||
| id | int | 是 | 优惠券ID |
|
||
|
||
**响应示例:**
|
||
```json
|
||
{
|
||
"status": 1,
|
||
"msg": "success",
|
||
"data": {
|
||
"id": 60001,
|
||
"level": 3,
|
||
"levelText": "高级赏券",
|
||
"levelImg": "/storage/coupon/coupon_c.png",
|
||
"shareTime": "2024-01-01 10:30:00",
|
||
"userId": 1001,
|
||
"num": "500",
|
||
"klNum2": 6,
|
||
"own2": 100.00,
|
||
"ylCount": 3,
|
||
"ylIntegralCount": 150.00,
|
||
"shareUserNickname": "用户昵称",
|
||
"shareUserHeadimg": "头像URL",
|
||
"ylList": [
|
||
{
|
||
"userId": 1002,
|
||
"nickname": "领取者昵称",
|
||
"headimg": "头像URL",
|
||
"lNum": 50.00,
|
||
"addTime": "2024-01-01 11:00:00",
|
||
"luckyKing": 1
|
||
}
|
||
]
|
||
}
|
||
}
|
||
```
|
||
|
||
### 7.5 领取优惠券
|
||
```http
|
||
POST /coupon_ling
|
||
```
|
||
|
||
**迁移状态**: ✅ 已迁移到 .NET 8
|
||
**新接口地址**: `POST /api/coupon_ling`
|
||
|
||
**请求参数:**
|
||
```json
|
||
{
|
||
"id": 60001
|
||
}
|
||
```
|
||
|
||
**参数说明:**
|
||
| 参数 | 类型 | 必填 | 说明 |
|
||
|------|------|------|------|
|
||
| id | int | 是 | 优惠券ID |
|
||
|
||
**响应示例:**
|
||
```json
|
||
{
|
||
"status": 1,
|
||
"msg": "success",
|
||
"data": {
|
||
"amount": 50.00,
|
||
"luckyKing": false
|
||
}
|
||
}
|
||
```
|
||
|
||
**错误码说明:**
|
||
| 错误码 | 说明 |
|
||
|--------|------|
|
||
| 2222 | 请勿开启自己的劵 / 你已经领取过了 / 来晚了, 已经被人领完了 |
|
||
| 0 | 每天最多领取N次 |
|
||
|
||
### 7.6 分享优惠券
|
||
```http
|
||
POST /coupon_share
|
||
```
|
||
|
||
**迁移状态**: ✅ 已迁移到 .NET 8
|
||
**新接口地址**: `POST /api/coupon_share`
|
||
|
||
**请求参数:**
|
||
```json
|
||
{
|
||
"id": 60001
|
||
}
|
||
```
|
||
|
||
**参数说明:**
|
||
| 参数 | 类型 | 必填 | 说明 |
|
||
|------|------|------|------|
|
||
| id | int | 是 | 优惠券ID |
|
||
|
||
**响应示例:**
|
||
```json
|
||
{
|
||
"status": 1,
|
||
"msg": "分享成功"
|
||
}
|
||
```
|
||
|
||
### 7.7 合成优惠券
|
||
```http
|
||
POST /coupon_synthesis
|
||
```
|
||
|
||
**迁移状态**: ✅ 已迁移到 .NET 8
|
||
**新接口地址**: `POST /api/coupon_synthesis`
|
||
|
||
**请求参数:**
|
||
```json
|
||
{
|
||
"couponIds": "60001,60002,60003"
|
||
}
|
||
```
|
||
|
||
**参数说明:**
|
||
| 参数 | 类型 | 必填 | 说明 |
|
||
|------|------|------|------|
|
||
| couponIds | string | 是 | 优惠券ID列表,逗号分隔,最多20个 |
|
||
|
||
**响应示例:**
|
||
```json
|
||
{
|
||
"status": 1,
|
||
"msg": "合成成功"
|
||
}
|
||
```
|
||
|
||
**错误说明:**
|
||
- 特级、终极赏券不能合成
|
||
- 最多只能20个合成
|
||
|
||
### 7.8 计算优惠券合成
|
||
```http
|
||
POST /coupon_ji_suan
|
||
```
|
||
|
||
**迁移状态**: ✅ 已迁移到 .NET 8
|
||
**新接口地址**: `POST /api/coupon_ji_suan`
|
||
|
||
**请求参数:**
|
||
```json
|
||
{
|
||
"couponIds": "60001,60002,60003"
|
||
}
|
||
```
|
||
|
||
**参数说明:**
|
||
| 参数 | 类型 | 必填 | 说明 |
|
||
|------|------|------|------|
|
||
| couponIds | string | 是 | 优惠券ID列表,逗号分隔,最多20个 |
|
||
|
||
**响应示例:**
|
||
```json
|
||
{
|
||
"status": 1,
|
||
"msg": "success",
|
||
"data": {
|
||
"coupon": {
|
||
"title": "高级赏券",
|
||
"level": 3
|
||
},
|
||
"sumNum": 1000.00,
|
||
"shNum": 900.00
|
||
}
|
||
}
|
||
```
|
||
|
||
**说明:**
|
||
- sumNum: 原始总价值
|
||
- shNum: 合成后价值(扣除10%损耗)
|
||
|
||
## 8. 福利相关接口
|
||
|
||
### 8.1 获取福利屋列表
|
||
```http
|
||
POST /welfare_house_list
|
||
```
|
||
|
||
**迁移状态**: ✅ 已迁移到 .NET 8
|
||
**新接口地址**: `POST /api/welfare_house_list`
|
||
|
||
**请求头:**
|
||
```
|
||
Authorization: Bearer {token}
|
||
```
|
||
|
||
**请求参数:**
|
||
```json
|
||
{
|
||
"type": 1,
|
||
"page": 1,
|
||
"limit": 15
|
||
}
|
||
```
|
||
|
||
**参数说明:**
|
||
| 参数 | 类型 | 必填 | 说明 |
|
||
|------|------|------|------|
|
||
| type | int | 否 | 类型:1-进行中,3-已结束,默认1 |
|
||
| page | int | 否 | 页码,默认1 |
|
||
| limit | int | 否 | 每页数量,默认15 |
|
||
|
||
**响应示例:**
|
||
```json
|
||
{
|
||
"status": 1,
|
||
"msg": "success",
|
||
"data": {
|
||
"list": [
|
||
{
|
||
"id": 1001,
|
||
"title": "每日福利",
|
||
"imgurl": "福利图片",
|
||
"price": 0.00,
|
||
"type": 15,
|
||
"newIs": 0,
|
||
"quanjuXiangou": 0,
|
||
"choujiangXianzhi": 0,
|
||
"goodsDescribe": "福利描述",
|
||
"isOpen": 0,
|
||
"unlockAmount": 0.00,
|
||
"joinCount": 100,
|
||
"flwStartTime": "2024-01-01 00:00:00",
|
||
"flwEndTime": "2024-01-31 23:59:59",
|
||
"openTime": "2024-02-01 10:00:00",
|
||
"goodslist": [
|
||
{
|
||
"title": "奖品名称",
|
||
"imgurl": "奖品图片",
|
||
"stock": 10,
|
||
"price": 99.00,
|
||
"scMoney": 50.00
|
||
}
|
||
]
|
||
}
|
||
],
|
||
"lastPage": 10,
|
||
"total": 100
|
||
}
|
||
}
|
||
```
|
||
|
||
### 8.2 获取福利屋详情
|
||
```http
|
||
POST /fuliwu_detail
|
||
```
|
||
|
||
**迁移状态**: ✅ 已迁移到 .NET 8
|
||
**新接口地址**: `POST /api/fuliwu_detail`
|
||
|
||
**请求头:**
|
||
```
|
||
Authorization: Bearer {token}
|
||
```
|
||
|
||
**请求参数:**
|
||
```json
|
||
{
|
||
"goodsId": 1001
|
||
}
|
||
```
|
||
|
||
**参数说明:**
|
||
| 参数 | 类型 | 必填 | 说明 |
|
||
|------|------|------|------|
|
||
| goodsId | int | 是 | 商品ID |
|
||
|
||
**响应示例:**
|
||
```json
|
||
{
|
||
"status": 1,
|
||
"msg": "success",
|
||
"data": {
|
||
"goods": {
|
||
"id": 1001,
|
||
"title": "福利屋活动",
|
||
"imgurl": "商品图片",
|
||
"imgurlDetail": "详情图片",
|
||
"price": 0.00,
|
||
"type": 15,
|
||
"newIs": 0,
|
||
"quanjuXiangou": 0,
|
||
"choujiangXianzhi": 0,
|
||
"goodsDescribe": "活动描述",
|
||
"isOpen": 0,
|
||
"unlockAmount": 100.00,
|
||
"sort": 0,
|
||
"flwStartTime": "2024-01-01 00:00",
|
||
"flwEndTime": "2024-01-31 23:59",
|
||
"openTime": "2024-02-01 10:00"
|
||
},
|
||
"goodslist": [
|
||
{
|
||
"id": 2001,
|
||
"title": "奖品名称",
|
||
"imgurl": "奖品图片",
|
||
"imgurlDetail": "奖品详情图",
|
||
"stock": 10,
|
||
"price": 99.00,
|
||
"scMoney": 50.00,
|
||
"shangId": 1,
|
||
"surplusStock": 5,
|
||
"sort": 0,
|
||
"shangTitle": "特等奖",
|
||
"shangColor": "#FF0000"
|
||
}
|
||
],
|
||
"joinCount": 100,
|
||
"currentTime": "2024-01-15 10:30:00",
|
||
"userCount": 5,
|
||
"userConsumption": {
|
||
"totalAmount": 500.00,
|
||
"orderCount": 10
|
||
},
|
||
"status": "ongoing",
|
||
"statusText": "进行中"
|
||
}
|
||
}
|
||
```
|
||
|
||
**状态说明:**
|
||
| status | statusText | 说明 |
|
||
|--------|------------|------|
|
||
| waiting | 即将开始 | 当前时间 < 开始时间 |
|
||
| ongoing | 进行中 | 开始时间 <= 当前时间 < 结束时间 |
|
||
| ended | 已结束,等待开奖 | 结束时间 <= 当前时间 < 开奖时间 |
|
||
| to_open | 待开奖 | 当前时间 >= 开奖时间 且 未开奖 |
|
||
| opened | 已开奖 | 当前时间 >= 开奖时间 且 已开奖 |
|
||
|
||
### 8.3 获取福利屋参与者
|
||
```http
|
||
POST /fuliwu_participants
|
||
```
|
||
|
||
**迁移状态**: ✅ 已迁移到 .NET 8
|
||
**新接口地址**: `POST /api/fuliwu_participants`
|
||
|
||
**请求头:**
|
||
```
|
||
Authorization: Bearer {token}
|
||
```
|
||
|
||
**请求参数:**
|
||
```json
|
||
{
|
||
"goodsId": 1001,
|
||
"page": 1,
|
||
"limit": 15
|
||
}
|
||
```
|
||
|
||
**参数说明:**
|
||
| 参数 | 类型 | 必填 | 说明 |
|
||
|------|------|------|------|
|
||
| goodsId | int | 是 | 商品ID |
|
||
| page | int | 否 | 页码,默认1 |
|
||
| limit | int | 否 | 每页数量,默认15 |
|
||
|
||
**响应示例:**
|
||
```json
|
||
{
|
||
"status": 1,
|
||
"msg": "success",
|
||
"data": [
|
||
{
|
||
"nickname": "用户昵称",
|
||
"avatar": "头像URL",
|
||
"createTime": "2024-01-15 10:30"
|
||
}
|
||
]
|
||
}
|
||
```
|
||
|
||
### 8.4 获取福利屋开奖记录
|
||
```http
|
||
POST /fuliwu_records
|
||
```
|
||
|
||
**迁移状态**: ✅ 已迁移到 .NET 8
|
||
**新接口地址**: `POST /api/fuliwu_records`
|
||
|
||
**请求头:**
|
||
```
|
||
Authorization: Bearer {token}
|
||
```
|
||
|
||
**请求参数:**
|
||
```json
|
||
{
|
||
"goodsId": 1001,
|
||
"page": 1,
|
||
"limit": 15
|
||
}
|
||
```
|
||
|
||
**参数说明:**
|
||
| 参数 | 类型 | 必填 | 说明 |
|
||
|------|------|------|------|
|
||
| goodsId | int | 是 | 商品ID |
|
||
| page | int | 否 | 页码,默认1 |
|
||
| limit | int | 否 | 每页数量,默认15 |
|
||
|
||
**响应示例:**
|
||
```json
|
||
{
|
||
"status": 1,
|
||
"msg": "success",
|
||
"data": [
|
||
{
|
||
"nickname": "用户昵称",
|
||
"avatar": "头像URL",
|
||
"goodslistTitle": "奖品名称",
|
||
"shangId": 1,
|
||
"createTime": "2024-01-15 10:30"
|
||
}
|
||
]
|
||
}
|
||
```
|
||
|
||
### 8.5 获取用户福利屋参与记录
|
||
```http
|
||
GET /fuliwu_user_records
|
||
```
|
||
|
||
**迁移状态**: ✅ 已迁移到 .NET 8
|
||
**新接口地址**: `GET /api/fuliwu_user_records`
|
||
|
||
**请求头:**
|
||
```
|
||
Authorization: Bearer {token}
|
||
```
|
||
|
||
**请求参数:**
|
||
| 参数 | 类型 | 必填 | 说明 |
|
||
|------|------|------|------|
|
||
| page | int | 否 | 页码,默认1 |
|
||
| limit | int | 否 | 每页数量,默认15 |
|
||
|
||
**响应示例:**
|
||
```json
|
||
{
|
||
"status": 1,
|
||
"msg": "success",
|
||
"data": [
|
||
{
|
||
"goodsId": 1001,
|
||
"goodsTitle": "福利屋活动",
|
||
"goodslistTitle": "奖品名称",
|
||
"shangId": 1,
|
||
"createTime": "2024-01-15 10:30"
|
||
}
|
||
]
|
||
}
|
||
```
|
||
|
||
### 8.6 获取用户福利屋中奖记录
|
||
```http
|
||
GET /fuliwu_user_winning_records
|
||
```
|
||
|
||
**迁移状态**: ✅ 已迁移到 .NET 8
|
||
**新接口地址**: `GET /api/fuliwu_user_winning_records`
|
||
|
||
**请求头:**
|
||
```
|
||
Authorization: Bearer {token}
|
||
```
|
||
|
||
**请求参数:**
|
||
| 参数 | 类型 | 必填 | 说明 |
|
||
|------|------|------|------|
|
||
| page | int | 否 | 页码,默认1 |
|
||
| limit | int | 否 | 每页数量,默认15 |
|
||
|
||
**响应示例:**
|
||
```json
|
||
{
|
||
"status": 1,
|
||
"msg": "success",
|
||
"data": [
|
||
{
|
||
"goodsId": 1001,
|
||
"goodsTitle": "福利屋活动",
|
||
"goodslistTitle": "奖品名称",
|
||
"shangId": 1,
|
||
"createTime": "2024-02-01 10:00"
|
||
}
|
||
]
|
||
}
|
||
```
|
||
|
||
### 8.7 获取任务列表
|
||
```http
|
||
POST /task_list
|
||
```
|
||
|
||
**迁移状态**: ✅ 已迁移到 .NET 8
|
||
**新接口地址**: `POST /api/task_list`
|
||
|
||
**请求头:**
|
||
```
|
||
Authorization: Bearer {token}
|
||
```
|
||
|
||
**请求参数:**
|
||
```json
|
||
{
|
||
"type": 1
|
||
}
|
||
```
|
||
|
||
**参数说明:**
|
||
| 参数 | 类型 | 必填 | 说明 |
|
||
|------|------|------|------|
|
||
| type | int | 否 | 任务类型:1-每日任务,2-每周任务,默认1 |
|
||
|
||
**响应示例:**
|
||
```json
|
||
{
|
||
"status": 1,
|
||
"msg": "success",
|
||
"data": {
|
||
"taskList": [
|
||
{
|
||
"id": 1,
|
||
"type": 1,
|
||
"cate": 1,
|
||
"title": "邀请1位好友注册",
|
||
"number": 1,
|
||
"zNumber": 10,
|
||
"isComplete": 0,
|
||
"percentage": 0,
|
||
"ywcCount": 0
|
||
},
|
||
{
|
||
"id": 2,
|
||
"type": 1,
|
||
"cate": 2,
|
||
"title": "完成1次抽赏",
|
||
"number": 1,
|
||
"zNumber": 5,
|
||
"isComplete": 1,
|
||
"percentage": 100,
|
||
"ywcCount": 1
|
||
}
|
||
]
|
||
}
|
||
}
|
||
```
|
||
|
||
**字段说明:**
|
||
| 字段 | 说明 |
|
||
|------|------|
|
||
| id | 任务ID |
|
||
| type | 任务类型:1-每日,2-每周 |
|
||
| cate | 任务分类:1-邀请,2-抽赏 |
|
||
| title | 任务标题 |
|
||
| number | 目标完成数量 |
|
||
| zNumber | 奖励欧气值 |
|
||
| isComplete | 完成状态:0-未完成,1-已完成,2-已领取 |
|
||
| percentage | 完成百分比(0-100) |
|
||
| ywcCount | 已完成次数 |
|
||
|
||
### 8.8 领取任务奖励
|
||
```http
|
||
POST /ling_task
|
||
```
|
||
|
||
**迁移状态**: ✅ 已迁移到 .NET 8
|
||
**新接口地址**: `POST /api/ling_task`
|
||
|
||
**请求头:**
|
||
```
|
||
Authorization: Bearer {token}
|
||
```
|
||
|
||
**请求参数:**
|
||
```json
|
||
{
|
||
"taskListId": 1001
|
||
}
|
||
```
|
||
|
||
**参数说明:**
|
||
| 参数 | 类型 | 必填 | 说明 |
|
||
|------|------|------|------|
|
||
| taskListId | int | 是 | 任务ID |
|
||
|
||
**响应示例:**
|
||
```json
|
||
{
|
||
"status": 1,
|
||
"msg": "success",
|
||
"data": {
|
||
"reward": 10,
|
||
"currentOuQi": 150
|
||
}
|
||
}
|
||
```
|
||
|
||
**字段说明:**
|
||
| 字段 | 说明 |
|
||
|------|------|
|
||
| reward | 本次获得的欧气值奖励 |
|
||
| currentOuQi | 当前欧气值总数 |
|
||
|
||
**错误说明:**
|
||
- 任务不存在:返回 "任务不存在"
|
||
- 任务未完成:返回 "任务未完成"
|
||
- 已领取过:返回 "你已经领取过了"
|
||
|
||
## 9. 系统配置接口
|
||
|
||
### 9.1 获取全局配置
|
||
```http
|
||
GET /config
|
||
```
|
||
|
||
**响应示例:**
|
||
```json
|
||
{
|
||
"status": 1,
|
||
"msg": "success",
|
||
"data": {
|
||
"good_type": [
|
||
{
|
||
"value": 1,
|
||
"name": "一番赏",
|
||
"is_show": 1,
|
||
"pay_wechat": 1,
|
||
"pay_balance": 1
|
||
}
|
||
],
|
||
"app_setting": {
|
||
"app_name": "友达赏",
|
||
"balance_name": "钻石",
|
||
"currency1_name": "UU币",
|
||
"currency2_name": "哈尼券",
|
||
"applet_version": "v1.0.3"
|
||
}
|
||
}
|
||
}
|
||
```
|
||
|
||
### 9.2 获取轮播图
|
||
```http
|
||
GET /getAdvert
|
||
```
|
||
|
||
**请求参数:**
|
||
| 参数 | 类型 | 必填 | 说明 |
|
||
|------|------|------|------|
|
||
| type_id | int | 否 | 类型:1-首页轮播,2-抽卡机轮播 |
|
||
|
||
**响应示例:**
|
||
```json
|
||
{
|
||
"status": 1,
|
||
"msg": "success",
|
||
"data": [
|
||
{
|
||
"id": 1,
|
||
"imgurl": "轮播图URL",
|
||
"url": "跳转链接",
|
||
"ttype": 2,
|
||
"goods_id": 1001
|
||
}
|
||
]
|
||
}
|
||
```
|
||
|
||
### 9.3 获取单页内容
|
||
```http
|
||
GET /getDanye
|
||
```
|
||
|
||
**请求参数:**
|
||
| 参数 | 类型 | 必填 | 说明 |
|
||
|------|------|------|------|
|
||
| type | int | 是 | 页面类型:1-服务协议,2-隐私政策,3-公告 |
|
||
|
||
**响应示例:**
|
||
```json
|
||
{
|
||
"status": 1,
|
||
"msg": "success",
|
||
"data": {
|
||
"title": "用户协议",
|
||
"content": "协议内容..."
|
||
}
|
||
}
|
||
```
|
||
|
||
### 9.4 获取优惠券中心
|
||
```http
|
||
POST /coupon
|
||
```
|
||
|
||
**响应示例:**
|
||
```json
|
||
{
|
||
"status": 1,
|
||
"msg": "success",
|
||
"data": {
|
||
"status": 1,
|
||
"goods": {
|
||
"list": [
|
||
{
|
||
"id": 60001,
|
||
"title": "新人券",
|
||
"price": "5.00"
|
||
}
|
||
]
|
||
}
|
||
}
|
||
}
|
||
```
|
||
|
||
### 9.5 领取优惠券
|
||
```http
|
||
POST /receive
|
||
```
|
||
|
||
**请求参数:**
|
||
```json
|
||
{
|
||
"coupon_id": "60001,60002"
|
||
}
|
||
```
|
||
|
||
### 9.6 添加收藏
|
||
```http
|
||
POST /addCollect
|
||
```
|
||
|
||
**迁移状态**: ✅ 已迁移到 .NET 8
|
||
**新接口地址**: `POST /api/addCollect`
|
||
|
||
**请求参数:**
|
||
```json
|
||
{
|
||
"goods_id": 1001,
|
||
"goods_num": 0
|
||
}
|
||
```
|
||
|
||
**参数说明:**
|
||
| 参数 | 类型 | 必填 | 说明 |
|
||
|------|------|------|------|
|
||
| goods_id | int | 是 | 商品ID |
|
||
| goods_num | int | 否 | 箱号,默认0 |
|
||
|
||
**响应示例:**
|
||
```json
|
||
{
|
||
"status": 1,
|
||
"msg": "操作成功"
|
||
}
|
||
```
|
||
|
||
### 9.7 收藏列表
|
||
```http
|
||
POST /listCollect
|
||
```
|
||
|
||
**迁移状态**: ✅ 已迁移到 .NET 8
|
||
**新接口地址**: `POST /api/listCollect`
|
||
|
||
**请求参数:**
|
||
```json
|
||
{
|
||
"type": 0,
|
||
"page": 1,
|
||
"page_size": 100
|
||
}
|
||
```
|
||
|
||
**参数说明:**
|
||
| 参数 | 类型 | 必填 | 说明 |
|
||
|------|------|------|------|
|
||
| type | int | 否 | 商品类型,0=全部 |
|
||
| page | int | 否 | 页码,默认1 |
|
||
| page_size | int | 否 | 每页数量,默认100 |
|
||
|
||
**响应示例:**
|
||
```json
|
||
{
|
||
"status": 1,
|
||
"msg": "success",
|
||
"data": {
|
||
"data": [
|
||
{
|
||
"id": 1,
|
||
"goods_id": 1001,
|
||
"type": 1,
|
||
"num": 0,
|
||
"goods_title": "商品标题",
|
||
"goods_price": "99.00",
|
||
"imgurl": "图片URL",
|
||
"stock": 100,
|
||
"surplus_stock": 50
|
||
}
|
||
],
|
||
"last_page": 1
|
||
}
|
||
}
|
||
```
|
||
|
||
### 9.8 删除收藏
|
||
```http
|
||
POST /delCollect
|
||
```
|
||
|
||
**迁移状态**: ✅ 已迁移到 .NET 8
|
||
**新接口地址**: `POST /api/delCollect`
|
||
|
||
**请求参数:**
|
||
```json
|
||
{
|
||
"id": 1
|
||
}
|
||
```
|
||
|
||
**参数说明:**
|
||
| 参数 | 类型 | 必填 | 说明 |
|
||
|------|------|------|------|
|
||
| id | int | 是 | 收藏记录ID |
|
||
|
||
**响应示例:**
|
||
```json
|
||
{
|
||
"status": 1,
|
||
"msg": "删除成功"
|
||
}
|
||
```
|
||
|
||
## 10. 其他功能接口
|
||
|
||
### 10.1 获取排行榜
|
||
```http
|
||
GET /getRankList
|
||
```
|
||
|
||
**请求参数:**
|
||
| 参数 | 类型 | 必填 | 说明 |
|
||
|------|------|------|------|
|
||
| type | string | 是 | 排行榜类型:invite-邀请榜,consume-消费榜 |
|
||
|
||
### 10.1.1 获取周榜
|
||
```http
|
||
GET /rank_week
|
||
```
|
||
|
||
**迁移状态**: ✅ 已迁移到 .NET 8
|
||
**新接口地址**: `GET /api/rank_week`
|
||
|
||
**请求头:**
|
||
```
|
||
Authorization: Bearer {token}
|
||
```
|
||
|
||
**响应示例:**
|
||
```json
|
||
{
|
||
"status": 1,
|
||
"msg": "success",
|
||
"data": {
|
||
"date": "01月01日-01月07日",
|
||
"end_date": 1704643199,
|
||
"my_rank": {
|
||
"my_rank": 5,
|
||
"my_prize_title": "限定手办",
|
||
"my_prize_imgurl": "奖品图片URL",
|
||
"my_order_total": 1500.00,
|
||
"my_nickname": "用户昵称",
|
||
"my_headimg": "头像URL"
|
||
},
|
||
"data": [
|
||
{
|
||
"rank": 1,
|
||
"user_id": 1001,
|
||
"nickname": "用户昵称",
|
||
"headimg": "头像URL",
|
||
"order_total": 5000.00,
|
||
"prize_title": "特等奖",
|
||
"prize_imgurl": "奖品图片URL"
|
||
}
|
||
]
|
||
}
|
||
}
|
||
```
|
||
|
||
**字段说明:**
|
||
| 字段 | 说明 |
|
||
|------|------|
|
||
| date | 周榜日期范围 |
|
||
| end_date | 周榜结束时间戳 |
|
||
| my_rank | 当前用户排名信息(未上榜时为"暂未上榜") |
|
||
| my_prize_title | 当前用户对应奖品标题(未上榜时为0) |
|
||
| my_prize_imgurl | 当前用户对应奖品图片(未上榜时为0) |
|
||
| my_order_total | 当前用户本周消费金额 |
|
||
| data | 排行榜前30名列表 |
|
||
|
||
### 10.1.2 获取月榜
|
||
```http
|
||
GET /rank_month
|
||
```
|
||
|
||
**迁移状态**: ✅ 已迁移到 .NET 8
|
||
**新接口地址**: `GET /api/rank_month`
|
||
|
||
**请求头:**
|
||
```
|
||
Authorization: Bearer {token}
|
||
```
|
||
|
||
**响应示例:**
|
||
```json
|
||
{
|
||
"status": 1,
|
||
"msg": "success",
|
||
"data": {
|
||
"date": "01月01日-01月31日",
|
||
"end_date": 1706716799,
|
||
"my_rank": {
|
||
"my_rank": "暂未上榜",
|
||
"my_prize_title": 0,
|
||
"my_prize_imgurl": 0,
|
||
"my_order_total": 500.00,
|
||
"my_nickname": "用户昵称",
|
||
"my_headimg": "头像URL"
|
||
},
|
||
"data": [
|
||
{
|
||
"rank": 1,
|
||
"user_id": 1001,
|
||
"nickname": "用户昵称",
|
||
"headimg": "头像URL",
|
||
"order_total": 15000.00,
|
||
"prize_title": "月度特等奖",
|
||
"prize_imgurl": "奖品图片URL"
|
||
}
|
||
]
|
||
}
|
||
}
|
||
```
|
||
|
||
**字段说明:**
|
||
| 字段 | 说明 |
|
||
|------|------|
|
||
| date | 月榜日期范围 |
|
||
| end_date | 月榜结束时间戳 |
|
||
| my_rank | 当前用户排名信息(未上榜时为"暂未上榜") |
|
||
| my_prize_title | 当前用户对应奖品标题(未上榜时为0) |
|
||
| my_prize_imgurl | 当前用户对应奖品图片(未上榜时为0) |
|
||
| my_order_total | 当前用户本月消费金额 |
|
||
| data | 排行榜前30名列表 |
|
||
|
||
### 10.2 获取邀请信息
|
||
```http
|
||
POST /invitation
|
||
```
|
||
|
||
**迁移状态**: ✅ 已迁移到 .NET 8
|
||
**新接口地址**: `POST /api/invitation`
|
||
|
||
**请求头:**
|
||
```
|
||
Authorization: Bearer {token}
|
||
```
|
||
|
||
**请求参数:**
|
||
```json
|
||
{
|
||
"page": 1
|
||
}
|
||
```
|
||
|
||
**参数说明:**
|
||
| 参数 | 类型 | 必填 | 说明 |
|
||
|------|------|------|------|
|
||
| page | int | 否 | 页码,默认1 |
|
||
|
||
**响应示例:**
|
||
```json
|
||
{
|
||
"status": 1,
|
||
"msg": "success",
|
||
"data": {
|
||
"share_title": "分享标题",
|
||
"share_image": "",
|
||
"count": 10,
|
||
"money": 150.00,
|
||
"data": [
|
||
{
|
||
"id": 1002,
|
||
"nickname": "被邀请用户",
|
||
"headimg": "头像URL",
|
||
"pid": 1001,
|
||
"addtime": "2024-01-01 10:30:00",
|
||
"commission_money": 15.00
|
||
}
|
||
],
|
||
"last_page": 1
|
||
}
|
||
}
|
||
```
|
||
|
||
**字段说明:**
|
||
| 字段 | 说明 |
|
||
|------|------|
|
||
| share_title | 分享标题 |
|
||
| share_image | 分享图片URL |
|
||
| count | 总邀请人数 |
|
||
| money | 总奖励金额 |
|
||
| data | 邀请记录列表 |
|
||
| last_page | 最后一页页码 |
|
||
|
||
### 10.3 绑定邀请码
|
||
```http
|
||
POST /bind_invite_code
|
||
```
|
||
|
||
**迁移状态**: ✅ 已迁移到 .NET 8
|
||
**新接口地址**: `POST /api/bind_invite_code`
|
||
|
||
**请求头:**
|
||
```
|
||
Authorization: Bearer {token}
|
||
```
|
||
|
||
**请求参数:**
|
||
```json
|
||
{
|
||
"invite_code": "ABC123"
|
||
}
|
||
```
|
||
|
||
**参数说明:**
|
||
| 参数 | 类型 | 必填 | 说明 |
|
||
|------|------|------|------|
|
||
| invite_code | string | 是 | 邀请码(邀请人的UID) |
|
||
|
||
**响应示例:**
|
||
```json
|
||
{
|
||
"status": 1,
|
||
"msg": "绑定成功"
|
||
}
|
||
```
|
||
|
||
**错误说明:**
|
||
- 用户不存在:返回 "用户不存在"
|
||
- 已绑定过:返回 "您已绑定过邀请码"
|
||
- 超过24小时:返回 "新用户注册24小时内才可以绑定邀请码"
|
||
- 绑定自己:返回 "不能绑定自己"
|
||
- 邀请码不存在:返回 "邀请码不存在"
|
||
|
||
### 10.4 获取VIP列表
|
||
```http
|
||
POST /vip_list
|
||
```
|
||
|
||
**迁移状态**: ✅ 已迁移到 .NET 8
|
||
**新接口地址**: `POST /api/vip_list`
|
||
|
||
**请求头:**
|
||
```
|
||
Authorization: Bearer {token}
|
||
```
|
||
|
||
**响应示例:**
|
||
```json
|
||
{
|
||
"status": 1,
|
||
"msg": "success",
|
||
"data": {
|
||
"userinfo": {
|
||
"nickname": "用户昵称",
|
||
"headimg": "头像URL",
|
||
"vip": 2,
|
||
"upgrade_money": "500.00",
|
||
"last_vip": 3,
|
||
"jin_du": 60.5,
|
||
"notice": "VIP2会员"
|
||
},
|
||
"data": [
|
||
{
|
||
"id": 1,
|
||
"level": 1,
|
||
"title": "VIP1",
|
||
"imgurl": "",
|
||
"condition": 100,
|
||
"discount": 0,
|
||
"notice": "VIP1会员"
|
||
},
|
||
{
|
||
"id": 2,
|
||
"level": 2,
|
||
"title": "VIP2",
|
||
"imgurl": "",
|
||
"condition": 500,
|
||
"discount": 0,
|
||
"notice": "VIP2会员"
|
||
}
|
||
]
|
||
}
|
||
}
|
||
```
|
||
|
||
### 10.5 使用兑换码
|
||
```http
|
||
POST /used
|
||
```
|
||
|
||
**迁移状态**: ✅ 已迁移到 .NET 8
|
||
**新接口地址**: `POST /api/used`
|
||
|
||
**请求头:**
|
||
```
|
||
Authorization: Bearer {token}
|
||
```
|
||
|
||
**请求参数:**
|
||
```json
|
||
{
|
||
"code": "EXCHANGE123"
|
||
}
|
||
```
|
||
|
||
**参数说明:**
|
||
| 参数 | 类型 | 必填 | 说明 |
|
||
|------|------|------|------|
|
||
| code | string | 是 | 兑换码 |
|
||
|
||
**响应示例:**
|
||
```json
|
||
{
|
||
"status": 1,
|
||
"msg": "兑换成功,获得100吧唧币",
|
||
"data": {
|
||
"success": true,
|
||
"message": "兑换成功,获得100吧唧币",
|
||
"rewardType": "integral",
|
||
"rewardAmount": 100.00
|
||
}
|
||
}
|
||
```
|
||
|
||
**字段说明:**
|
||
| 字段 | 说明 |
|
||
|------|------|
|
||
| success | 是否成功 |
|
||
| message | 提示消息 |
|
||
| rewardType | 奖励类型:money=余额, integral=吧唧币, score=积分 |
|
||
| rewardAmount | 奖励数量 |
|
||
|
||
**错误说明:**
|
||
- 兑换码无效:返回 "兑换码无效"
|
||
- 兑换码已被使用:返回 "兑换码已被使用"
|
||
- 兑换码已过期:返回 "兑换码已过期"
|
||
|
||
## 11. 错误码说明
|
||
|
||
| 错误码 | 说明 |
|
||
|--------|------|
|
||
| 1 | 请求成功 |
|
||
| 0 | 请求失败 |
|
||
| -1 | 用户未登录 |
|
||
| -9 | 需要绑定手机号 |
|
||
| 2222 | 特殊状态(如已领取、已完成等) |
|
||
|
||
## 12. UniApp小程序接口调用示例
|
||
|
||
### 12.1 请求封装使用
|
||
```javascript
|
||
// 在小程序页面中调用API
|
||
export default {
|
||
methods: {
|
||
// 获取商品列表
|
||
async getGoodsList() {
|
||
try {
|
||
const res = await this.$request.post('goods', {
|
||
page: 1,
|
||
type: 0
|
||
});
|
||
|
||
if (res.status === 1) {
|
||
this.goodsList = res.data.data;
|
||
} else {
|
||
this.$c.toast(res.msg);
|
||
}
|
||
} catch (error) {
|
||
console.error('获取商品列表失败:', error);
|
||
}
|
||
},
|
||
|
||
// 创建订单并支付
|
||
async createOrder() {
|
||
const res = await this.req({
|
||
url: 'orderbuy',
|
||
data: {
|
||
goods_id: this.goodsId,
|
||
num: 0,
|
||
prize_num: 1,
|
||
use_money_is: 2,
|
||
use_integral_is: 2
|
||
}
|
||
});
|
||
|
||
if (res.status === 1 && res.data.status === 1) {
|
||
// 调起微信支付
|
||
const payResult = await this.$platform.pay({
|
||
data: res.data.res
|
||
}, this);
|
||
|
||
if (payResult === 'success') {
|
||
// 支付成功,获取抽奖结果
|
||
this.getPrizeResult(res.data.order_num);
|
||
}
|
||
}
|
||
},
|
||
|
||
// 获取抽奖结果
|
||
async getPrizeResult(orderNum) {
|
||
const res = await this.$request.post('prizeorderlog', {
|
||
order_num: orderNum
|
||
});
|
||
|
||
if (res.status === 1) {
|
||
// 显示中奖结果
|
||
this.showPrizeResult(res.data);
|
||
}
|
||
}
|
||
}
|
||
}
|
||
```
|
||
|
||
### 12.2 配置管理使用
|
||
```javascript
|
||
// 获取全局配置
|
||
const appName = this.$config.getAppSetting('app_name');
|
||
const balanceName = this.$config.getAppSetting('balance_name');
|
||
|
||
// 获取商品类型配置
|
||
const goodTypes = this.$config.getGoodType();
|
||
|
||
// 检查支付方式
|
||
const goodTypeConfig = this.$config.getGoodTypeFind(1); // 一番赏
|
||
if (goodTypeConfig.pay_wechat === 1) {
|
||
// 支持微信支付
|
||
}
|
||
```
|
||
|
||
### 12.3 路由跳转使用
|
||
```javascript
|
||
// 跳转到商品详情页
|
||
this.$c.to({
|
||
url: '/pages/shouye/detail',
|
||
query: {
|
||
goods_id: 1001,
|
||
num: 0
|
||
}
|
||
});
|
||
|
||
// 跳转到用户中心
|
||
this.$customRouter.navigateTo('/pages/user/index');
|
||
```
|
||
|
||
### 12.4 平台适配使用
|
||
```javascript
|
||
// 调起支付(自动适配不同平台)
|
||
const payResult = await this.$platform.pay({
|
||
data: payParams
|
||
}, this);
|
||
|
||
// 平台特定功能
|
||
if (this.$platform.code === 'mp-weixin') {
|
||
// 微信小程序特有功能
|
||
wx.requestPayment(payParams);
|
||
}
|
||
```
|
||
|
||
这份更新后的API文档基于小程序中实际使用的接口,包含了完整的请求参数、响应格式和使用示例,更贴近实际开发需求。
|
||
|
||
## 13. 支付回调接口
|
||
|
||
### 13.1 微信支付回调
|
||
```http
|
||
POST /api/notify/order_notify
|
||
```
|
||
|
||
**迁移状态**: ✅ 已迁移到 .NET 8
|
||
**新接口地址**: `POST /api/notify/order_notify`
|
||
|
||
**说明:**
|
||
此接口由微信支付服务器调用,用于通知支付结果。不需要前端调用。
|
||
|
||
**请求格式:** XML
|
||
|
||
**请求示例:**
|
||
```xml
|
||
<xml>
|
||
<return_code><![CDATA[SUCCESS]]></return_code>
|
||
<return_msg><![CDATA[OK]]></return_msg>
|
||
<appid><![CDATA[wx1234567890]]></appid>
|
||
<mch_id><![CDATA[1234567890]]></mch_id>
|
||
<nonce_str><![CDATA[abc123]]></nonce_str>
|
||
<sign><![CDATA[SIGN_STRING]]></sign>
|
||
<result_code><![CDATA[SUCCESS]]></result_code>
|
||
<openid><![CDATA[user_openid]]></openid>
|
||
<trade_type><![CDATA[JSAPI]]></trade_type>
|
||
<total_fee>100</total_fee>
|
||
<out_trade_no><![CDATA[ORDER_NO]]></out_trade_no>
|
||
<attach><![CDATA[order_yfs]]></attach>
|
||
<time_end><![CDATA[20240101120000]]></time_end>
|
||
</xml>
|
||
```
|
||
|
||
**attach参数说明:**
|
||
| attach值 | 订单类型 | 说明 |
|
||
|----------|---------|------|
|
||
| user_recharge | 余额充值 | 用户充值订单 |
|
||
| order_yfs | 一番赏订单 | 一番赏抽奖订单 |
|
||
| order_lts | 擂台赏订单 | 擂台赏抽奖订单 |
|
||
| order_zzs | 转转赏订单 | 转转赏抽奖订单 |
|
||
| order_flw | 福利屋订单 | 福利屋抽奖订单 |
|
||
| order_scs | 商城赏订单 | 商城赏抽奖订单 |
|
||
| order_wxs | 无限赏订单 | 无限赏抽奖订单 |
|
||
| order_fbs | 翻倍赏订单 | 翻倍赏抽奖订单 |
|
||
| order_ckj | 抽卡机订单 | 抽卡机抽奖订单 |
|
||
| order_list_send | 发货运费 | 背包发货运费订单 |
|
||
|
||
**响应格式:** XML
|
||
|
||
**响应示例:**
|
||
```xml
|
||
<xml>
|
||
<return_code><![CDATA[SUCCESS]]></return_code>
|
||
<return_msg><![CDATA[OK]]></return_msg>
|
||
</xml>
|
||
```
|
||
|
||
**处理流程:**
|
||
1. 验证签名确保数据安全
|
||
2. 检查订单是否已处理(幂等性)
|
||
3. 根据attach类型路由到对应处理方法
|
||
4. 更新订单状态、扣减用户资产
|
||
5. 触发抽奖逻辑(如适用)
|
||
6. 返回XML响应给微信
|
||
|
||
### 13.2 微信支付统一下单
|
||
```http
|
||
POST /api/pay
|
||
```
|
||
|
||
**迁移状态**: ✅ 已迁移到 .NET 8
|
||
**新接口地址**: `POST /api/pay`
|
||
|
||
**说明:**
|
||
创建微信支付订单,返回支付参数供前端调起微信支付。
|
||
|
||
**请求头:**
|
||
```
|
||
Authorization: Bearer {token}
|
||
```
|
||
|
||
**请求参数:**
|
||
```json
|
||
{
|
||
"order_no": "YFS_20240101120000_1001",
|
||
"amount": 9.90,
|
||
"body": "一番赏抽奖",
|
||
"attach": "order_yfs",
|
||
"open_id": ""
|
||
}
|
||
```
|
||
|
||
**参数说明:**
|
||
| 参数 | 类型 | 必填 | 说明 |
|
||
|------|------|------|------|
|
||
| order_no | string | 是 | 订单号 |
|
||
| amount | decimal | 是 | 支付金额(单位:元) |
|
||
| body | string | 否 | 商品描述,默认"商品购买" |
|
||
| attach | string | 是 | 订单类型(见attach参数说明) |
|
||
| open_id | string | 否 | 用户OpenId,不传则从用户信息获取 |
|
||
|
||
**响应示例(成功):**
|
||
```json
|
||
{
|
||
"status": 1,
|
||
"msg": "success",
|
||
"data": {
|
||
"appId": "wx1234567890",
|
||
"timeStamp": "1640995200",
|
||
"nonceStr": "abc123def456",
|
||
"package": "prepay_id=wx123456789",
|
||
"signType": "MD5",
|
||
"paySign": "SIGN_STRING",
|
||
"is_weixin": 1
|
||
}
|
||
}
|
||
```
|
||
|
||
**响应示例(失败):**
|
||
```json
|
||
{
|
||
"status": 0,
|
||
"msg": "订单号不能为空",
|
||
"data": null
|
||
}
|
||
```
|
||
|
||
**前端调起支付示例:**
|
||
```javascript
|
||
// 获取支付参数
|
||
const payResult = await request({
|
||
url: '/api/pay',
|
||
method: 'POST',
|
||
data: {
|
||
order_no: orderNo,
|
||
amount: totalPrice,
|
||
body: '一番赏抽奖',
|
||
attach: 'order_yfs'
|
||
}
|
||
});
|
||
|
||
if (payResult.status === 1 && payResult.data) {
|
||
// 调起微信支付
|
||
wx.requestPayment({
|
||
timeStamp: payResult.data.timeStamp,
|
||
nonceStr: payResult.data.nonceStr,
|
||
package: payResult.data.package,
|
||
signType: payResult.data.signType,
|
||
paySign: payResult.data.paySign,
|
||
success: function(res) {
|
||
// 支付成功
|
||
},
|
||
fail: function(res) {
|
||
// 支付失败
|
||
}
|
||
});
|
||
}
|
||
``` |