兑换码状态同步规则
数据流
远程API(根据产品配置的接口地址)
│
▼ 请求参数:start_time, end_time, app_id(产品code)
▼ Header:Authorization = md5(start_time + end_time)
│
▼ 返回数据(status=2 已使用的兑换码列表)
│
▼ 逐条匹配本地 claim_records
│
▼ 匹配成功 → 更新状态
▼ 匹配失败 → 记录未匹配
匹配规则
| 步骤 |
说明 |
| 1. 取数据 |
调用产品配置的 API 接口,按使用时间范围查询已使用的兑换码 |
| 2. 过滤 |
只处理 status=2(已使用)的记录 |
| 3. 匹配 |
用 coupon_code + product_id 匹配本地 claim_records 表 |
| 4. 更新 |
匹配到的记录如果本地 status != 2,则更新状态、使用时间、会员ID |
未匹配的常见原因
| 原因 |
说明 |
| 该兑换码不是通过本系统领取的 |
API 返回的是该产品下所有已使用的码,包含其他渠道发放的 |
| 产品归属不对 |
claim_records.product_id 与当前产品的 ID 不一致 |
| 领取记录已被删除 |
数据已被清理 |
同步方式
1. 手动同步
- 位置:后台设置 → 兑换码状态同步
- 选择时间范围,点击"立即同步"
- 结果显示:API 总条数、匹配条数、更新条数、已匹配 code 列表、未匹配 code 列表
2. 定时任务
- 每天凌晨 2 点执行,同步前一天的数据
- crontab:
0 2 * * * php /path/to/cron_sync.php