数据库备份
This commit is contained in:
@@ -1,4 +1,4 @@
|
||||
# PlayX 接口文档(按调用方向拆分)
|
||||
# playX 接口文档(按调用方向拆分)
|
||||
|
||||
说明:本文档严格依据当前代码 `app/api/controller/v1/Playx.php`、`app/api/controller/v1/Auth.php`(临时登录)、`config/playx.php` 与定时任务 `app/process/PlayxJobs.php` 整理。
|
||||
|
||||
@@ -6,13 +6,13 @@
|
||||
|
||||
| 方向 | 含义 | 本文位置 |
|
||||
|------|------|----------|
|
||||
| **PlayX → 积分商城** | PlayX(或上游批处理)**主动 HTTP 调用商城**开放接口 | **§1**(如 Daily Push) |
|
||||
| **积分商城 → PlayX** | 商城 Worker / 后台 **主动 HTTP 调用 PlayX / Cash Market** 提供的接口 | **不展开于本文**;交付 PlayX 的说明见 **`docs/PlayX-接口待完善清单.md`** |
|
||||
| **playX → 积分商城** | playX(或上游批处理)**主动 HTTP 调用商城**开放接口 | **§1**(如 Daily Push) |
|
||||
| **积分商城 → playX** | 商城 Worker / 后台 **主动 HTTP 调用 playX / Cash Market** 提供的接口 | **不展开于本文**;交付 playX 的说明见 **`docs/playX-接口待完善清单.md`** |
|
||||
| **积分商城 → H5** | H5 / 内嵌页 **调用商城** 的会员与积分业务接口 | **§3** |
|
||||
|
||||
---
|
||||
|
||||
## 1. PlayX → 积分商城(外部系统调用商城开放接口)
|
||||
## 1. playX → 积分商城(外部系统调用商城开放接口)
|
||||
|
||||
### 1.1 Daily Push API
|
||||
* 方法:`POST`
|
||||
@@ -22,7 +22,7 @@
|
||||
- `lang`: `zh`/`zh-cn` 返回中文(默认);`en` 返回英文
|
||||
|
||||
#### Header(签名校验:HMAC 必填)
|
||||
当 `playx.daily_push_secret` 配置非空时,需要携带(HMAC):
|
||||
当 `playX.daily_push_secret` 配置非空时,需要携带(HMAC):
|
||||
- `X-Request-Id`:请求 ID
|
||||
- `X-Timestamp`:时间戳
|
||||
- `X-Signature`:签名(HMAC_SHA256)
|
||||
@@ -40,7 +40,7 @@
|
||||
|------|------|------|------|
|
||||
| `request_id` | string | 是 | 外部推送请求号(原样返回) |
|
||||
| `date` | string(YYYY-MM-DD) | 是 | 业务日期(入库到 `mall_daily_push.date`) |
|
||||
| `user_id` | string | 是 | PlayX 用户 ID(用于幂等;入库 `mall_daily_push.user_id` 等;服务端会按 `user_id`/`username` **确保存在** `mall_user_asset` 资产行) |
|
||||
| `user_id` | string | 是 | playX 用户 ID(用于幂等;入库 `mall_daily_push.user_id` 等;服务端会按 `user_id`/`username` **确保存在** `mall_user_asset` 资产行) |
|
||||
| `username` | string | 否 | 展示冗余(同步到商城用户侧逻辑时使用) |
|
||||
| `yesterday_win_loss_net` | number | 否 | 昨日净输赢(仅当 `< 0` 时计算新增保障金) |
|
||||
| `yesterday_total_deposit` | number | 否 | 昨日总充值(用于计算今日可领取上限) |
|
||||
@@ -181,12 +181,12 @@ curl -X POST 'http://localhost:1818/api/v1/mall/dailyPush' \
|
||||
|
||||
---
|
||||
|
||||
## 2. 积分商城 → PlayX(贵方需提供的 HTTP 接口)
|
||||
## 2. 积分商城 → playX(贵方需提供的 HTTP 接口)
|
||||
|
||||
商城在验 Token、红利发放、交易轮询、Angpow 导入等场景会 **主动请求 PlayX / Cash Market**。
|
||||
**完整 URL、请求/响应字段、成功判定、与 Angpush 双路径关系、联调待办** 已单独整理,便于 **直接转发给 PlayX 平台**:
|
||||
商城在验 Token、红利发放、交易轮询、Angpow 导入等场景会 **主动请求 playX / Cash Market**。
|
||||
**完整 URL、请求/响应字段、成功判定、与 Angpush 双路径关系、联调待办** 已单独整理,便于 **直接转发给 playX 平台**:
|
||||
|
||||
- **`docs/PlayX-接口待完善清单.md`**
|
||||
- **`docs/playX-接口待完善清单.md`**
|
||||
|
||||
本文 **§1** 仅描述「谁调用商城」;**§3** 描述「H5 调用商城」。
|
||||
|
||||
@@ -197,9 +197,9 @@ curl -X POST 'http://localhost:1818/api/v1/mall/dailyPush' \
|
||||
### 3.0 数据模型说明(与代码一致)
|
||||
|
||||
* **积分商城用户资产主表**:`mall_user_asset`(账号、积分、`playx_user_id` 等;H5 临时登录 `temLogin` 直接创建/复用该表行,**不依赖**独立会员 `user` 表)。
|
||||
* **会话缓存**:`mall_session`(字段含 `session_id`、`user_id`(此处存 **PlayX 侧用户标识字符串**,与 `mall_user_asset.playx_user_id` 一致)、`expire_time` 等)。
|
||||
* **会话缓存**:`mall_session`(字段含 `session_id`、`user_id`(此处存 **playX 侧用户标识字符串**,与 `mall_user_asset.playx_user_id` 一致)、`expire_time` 等)。
|
||||
* **统一订单**:`mall_order`(红利/实物/提现订单;`user_id` 字段为 **`playx_user_id` 字符串**)。
|
||||
* **对外业务 ID**:订单与推送中的 `user_id` 多为 **PlayX 用户 ID**(`playx_user_id`)。临时登录场景下,资产表会生成占位 ID,形如 **`mall_{mall_user_asset.id}`**(见 `MallUserAsset::ensureForUsername`)。
|
||||
* **对外业务 ID**:订单与推送中的 `user_id` 多为 **playX 用户 ID**(`playx_user_id`)。临时登录场景下,资产表会生成占位 ID,形如 **`mall_{mall_user_asset.id}`**(见 `MallUserAsset::ensureForUsername`)。
|
||||
|
||||
### 3.1 鉴权解析规则(`resolvePlayxAssetIdFromRequest`)
|
||||
|
||||
@@ -234,7 +234,7 @@ curl -X POST 'http://localhost:1818/api/v1/mall/dailyPush' \
|
||||
|
||||
#### 行为说明
|
||||
|
||||
* 若用户名不存在:`MallUserAsset::ensureForUsername` 创建资产行(随机密码等),并将 `playx_user_id` 更新为 **`mall_{id}`** 形式(与真实 PlayX ID 区分)。
|
||||
* 若用户名不存在:`MallUserAsset::ensureForUsername` 创建资产行(随机密码等),并将 `playx_user_id` 更新为 **`mall_{id}`** 形式(与真实 playX ID 区分)。
|
||||
* 签发 **商城 token**(类型 **`muser`**,`token` 表内 `user_id` = **`mall_user_asset.id`**),并签发 `muser-refresh` 刷新令牌。
|
||||
|
||||
#### 返回(成功 data.userInfo)
|
||||
@@ -264,16 +264,16 @@ curl -G 'http://localhost:1818/api/v1/temLogin' --data-urlencode 'username=demo_
|
||||
* 方法:`POST`(推荐 `GET` 传 `token` 亦可)
|
||||
* 路径:`/api/v1/mall/verifyToken`
|
||||
|
||||
#### 配置:本地验证 vs 远程 PlayX
|
||||
#### 配置:本地验证 vs 远程 playX
|
||||
|
||||
* 配置项:`config/playx.php` → **`verify_token_local_only`**(环境变量 **`PLAYX_VERIFY_TOKEN_LOCAL_ONLY`**,未设置时默认为 **`1` / 开启本地验证)。
|
||||
* **`verify_token_local_only = true`(默认)**
|
||||
* **不请求** PlayX HTTP。
|
||||
* **不请求** playX HTTP。
|
||||
* 仅接受商城临时登录 token(类型 **`muser`**),校验 `token` 表后写入 **`mall_session`**。
|
||||
* 返回的 `data.user_id` 为 **`playx_user_id`**(与资产表一致)。
|
||||
* **`verify_token_local_only = false`**(生产对接 PlayX)
|
||||
* 需配置 **`playx.api.base_url`**,由商城向 PlayX 发起 `POST` 校验(请求/响应约定见 **`docs/PlayX-接口待完善清单.md`** 第一部分 §1)。
|
||||
* 若未配置 `base_url`,返回 `PlayX API not configured`。
|
||||
* **`verify_token_local_only = false`**(生产对接 playX)
|
||||
* 需配置 **`playX.api.base_url`**,由商城向 playX 发起 `POST` 校验(请求/响应约定见 **`docs/playX-接口待完善清单.md`** 第一部分 §1)。
|
||||
* 若未配置 `base_url`,返回 `playX API not configured`。
|
||||
|
||||
#### 请求参数
|
||||
|
||||
@@ -286,14 +286,14 @@ curl -G 'http://localhost:1818/api/v1/temLogin' --data-urlencode 'username=demo_
|
||||
| 字段 | 类型 | 说明 |
|
||||
|------|------|------|
|
||||
| `session_id` | string | 写入 `mall_session` |
|
||||
| `user_id` | string | PlayX 用户 ID(即 `playx_user_id`,会话内与订单/推送一致) |
|
||||
| `user_id` | string | playX 用户 ID(即 `playx_user_id`,会话内与订单/推送一致) |
|
||||
| `username` | string | 用户名 |
|
||||
| `token_expire_at` | string | ISO 字符串(服务端 `date('c', expireAt)`) |
|
||||
|
||||
失败:
|
||||
|
||||
* token 为空:HTTP 401,msg=`INVALID_TOKEN`
|
||||
* 远程模式且 PlayX 未配置:`msg=PlayX API not configured`
|
||||
* 远程模式且 playX 未配置:`msg=playX API not configured`
|
||||
|
||||
#### 示例(本地验证)
|
||||
|
||||
@@ -609,7 +609,7 @@ curl -X POST 'http://localhost:1818/api/v1/mall/withdrawApply' \
|
||||
#### 返回(成功 data)
|
||||
|
||||
* `list`:订单列表(最多 100 条),并包含关联的 `mallItem`(关系对象)
|
||||
* 列表项中的 `user_id` 为 **PlayX 侧 `playx_user_id`**(字符串),与 `mall_order.user_id` 一致
|
||||
* 列表项中的 `user_id` 为 **playX 侧 `playx_user_id`**(字符串),与 `mall_order.user_id` 一致
|
||||
|
||||
#### 示例
|
||||
请求:
|
||||
|
||||
Reference in New Issue
Block a user