server/laf-cloud/postman/daily-weekly-tasks.postman_collection.json
guanchao e2a5c3d2f6 Squash local into main while preserving battle pass compatibility
Integrate starter pack timing, reactivation, purchase analytics, payment routing and atomic user IDs. Resolve iOS conflicts by preserving both battle pass delivery and starter pack snapshots. Add coexistence regression checks and record remaining compatibility risks. Validation: 118/125 tests passed; 7 existing failures remain, plus a separately reproduced pre-existing V2 task login failure.
2026-09-10 16:31:14 +08:00

1252 lines
47 KiB
JSON
Raw Permalink Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

{
"info": {
"name": "每日任务与周任务|正式接口和测试接口",
"schema": "https://schema.getpostman.com/json/collection/v2.1.0/collection.json",
"description": "单文件导入:Postman Import 本JSON,然后在Collection的Variables中填写 baseUrl(不带末尾/)、uid、token,先发送「读取每日任务和周任务」。无需另导入Environment。\n\n所有请求与Cocos客户端保持一致:POST,application/x-www-form-urlencoded。token放表单,不使用Bearer认证。正式接口共2个路由;dailyTaskDebug包含8种action,按taskId/slot提供了独立示例。\n\n成功响应自动保存taskJson和dailyTaskId0~4。taskId为空或已不在当前任务列表时,自动选中slot对应任务;之后可手动修改taskId。更换uid或gameName后请先重新读取,勿直接保存其他账号的旧快照。\n\n正式调用:读取 → 修改progressValue并保存指定任务进度(或在客户端完成任务)→ 领取每日奖励 → 读取周进度 → 选择rewardId领取周奖励。\n\n调试调用:完成指定/全部每日任务 → 正式领取每日奖励;设置weeklyStars到35/70/105/140 → 正式领取对应周奖励。请求均是独立的手动工具,不要直接Runner运行整个Collection,重置请求会覆盖选定账号任务状态。\n\n任务完成不等于领取:每日奖励领取成功才增加周累计鱼罐头;周累计最多140。周领奖不会扣除罐头,没有weekly_15档。状态:0=未完成,1=可领取,2=已领取。所有每日任务直接开放,无需依次解锁。\n\n接口只落库任务/领取状态并返回rewards;现有客户端负责金币、道具等资产入账。Postman调用领奖不会自动执行客户端发奖逻辑。\n\n当前测试接口限制:只访问users,数据库账号isDebug必须为true或字符串true;请求isDebug不能开通权限。debugKey校验目前被注释,保留为默认禁用字段,gameName不适用于该接口。\n\n已知服务端问题:当前dailyTaskDebug.ts保存处调用db.collection(dbname),但dbname未定义,成功路径会报错。此Collection未修改服务端;调用测试操作前需修复并发布对应函数。仓库缺少dailyTaskDebug.yaml,目标环境需已发布该HTTP函数并支持POST。\n\n文件按本地当前实现核对生成;未对线上账号执行任何请求。旧dailyTaskDebug.API.md中的依次解锁、debugKey必填和gameName支持说明已过时。"
},
"auth": {
"type": "noauth"
},
"variable": [
{
"key": "baseUrl",
"value": "",
"type": "string",
"description": "Laf应用HTTP地址,不带末尾斜杠;请使用需要调试的环境。"
},
{
"key": "uid",
"value": "",
"type": "string",
"description": "账号ID;调用测试接口时必须是users中的调试账号。"
},
{
"key": "token",
"value": "",
"type": "string",
"description": "该账号当前登录token,不是Bearer前缀。"
},
{
"key": "gameName",
"value": "",
"type": "string",
"description": "仅正式接口适用:iaa选择usersAd,其他值/空字符串选择users。"
},
{
"key": "isDebug",
"value": "false",
"type": "string",
"description": "兼容客户端请求字段,不授予调试权限。"
},
{
"key": "taskId",
"value": "",
"type": "string",
"description": "每日任务ID。首次读取后按slot自动填入;可手动修改。"
},
{
"key": "slot",
"value": "0",
"type": "string",
"description": "每日任务槽位,0~4;影响按slot测试请求和taskId首次自动选择。"
},
{
"key": "progressValue",
"value": "1",
"type": "string",
"description": "保存正式任务进度或设置测试进度时使用,范围0~任务target。"
},
{
"key": "rewardId",
"value": "weekly_35",
"type": "string",
"description": "周奖励ID:weekly_35、weekly_70、weekly_105、weekly_140。"
},
{
"key": "weeklyStars",
"value": "35",
"type": "string",
"description": "测试接口设置的周累计鱼罐头数,范围0~140。"
},
{
"key": "starsDelta",
"value": "15",
"type": "string",
"description": "测试接口增减鱼罐头,允许负数;最终总数限制在0~140。"
},
{
"key": "debugKey",
"value": "",
"type": "string",
"description": "当前校验被注释,表单字段默认禁用;目标部署恢复校验时再填写并启用。"
},
{
"key": "taskJson",
"value": "",
"type": "string",
"description": "成功响应自动保存的完整任务快照;用于批量保存前可手工修改dailyTasks[].value。"
},
{
"key": "dailyTaskId0",
"value": "",
"type": "string",
"description": "自动保存的slot=0任务ID,可在Body使用{{dailyTaskId0}}。"
},
{
"key": "dailyTaskId1",
"value": "",
"type": "string",
"description": "自动保存的slot=1任务ID,可在Body使用{{dailyTaskId1}}。"
},
{
"key": "dailyTaskId2",
"value": "",
"type": "string",
"description": "自动保存的slot=2任务ID,可在Body使用{{dailyTaskId2}}。"
},
{
"key": "dailyTaskId3",
"value": "",
"type": "string",
"description": "自动保存的slot=3任务ID,可在Body使用{{dailyTaskId3}}。"
},
{
"key": "dailyTaskId4",
"value": "",
"type": "string",
"description": "自动保存的slot=4任务ID,可在Body使用{{dailyTaskId4}}。"
}
],
"event": [
{
"listen": "prerequest",
"script": {
"type": "text/javascript",
"exec": [
"const base = String(pm.variables.get(\"baseUrl\") || \"\").trim();",
"if (!/^https?:\\/\\//.test(base) || base.endsWith(\"/\")) throw new Error(\"请填写baseUrl(http(s)地址,不带末尾斜杠)。\");",
"if (!String(pm.variables.get(\"uid\") || \"\").trim()) throw new Error(\"请在Collection Variables填写uid。\");"
]
}
},
{
"listen": "test",
"script": {
"type": "text/javascript",
"exec": [
"pm.test(\"HTTP请求成功\", () => pm.expect(pm.response.code).to.be.within(200, 299));",
"let result;",
"try { result = pm.response.json(); } catch (error) {",
" pm.test(\"响应为JSON\", () => { throw error; });",
"}",
"if (result) {",
" pm.test(\"业务操作成功\", () => pm.expect(result.code, result.msg || \"检查响应详情\").to.eql(1));",
" const task = result.data && result.data.task;",
" if (result.code === 1 && task && Array.isArray(task.dailyTasks)) {",
" pm.collectionVariables.set(\"taskJson\", JSON.stringify(task));",
" task.dailyTasks.forEach(item => pm.collectionVariables.set(\"dailyTaskId\" + item.slot, item.taskId));",
" const selected = String(pm.variables.get(\"taskId\") || \"\");",
" if (!task.dailyTasks.some(item => item.taskId === selected)) {",
" const slot = Number(pm.variables.get(\"slot\") || 0);",
" const item = task.dailyTasks.find(item => item.slot === slot) || task.dailyTasks[0];",
" pm.collectionVariables.set(\"taskId\", item ? item.taskId : \"\");",
" }",
" }",
"}"
]
}
}
],
"item": [
{
"name": "01 正式接口",
"description": "正式接口同时支持users和usersAd。周进度与每日任务由同一个读取接口返回。",
"item": [
{
"name": "读取每日任务和周任务",
"request": {
"method": "POST",
"header": [
{
"key": "Content-Type",
"value": "application/x-www-form-urlencoded"
}
],
"body": {
"mode": "urlencoded",
"urlencoded": [
{
"key": "uid",
"value": "{{uid}}",
"type": "text",
"description": "必填,目标账号ID。"
},
{
"key": "token",
"value": "{{token}}",
"type": "text",
"description": "当前账号登录token,放在表单中;有token的账号会校验。"
},
{
"key": "isDebug",
"value": "{{isDebug}}",
"type": "text",
"description": "兼容客户端附加字段;这些接口不以此字段决定调试权限。"
},
{
"key": "gameName",
"value": "{{gameName}}",
"type": "text",
"description": "可选。iaa使用usersAd;留空或其他值使用users。"
},
{
"key": "action",
"value": "read",
"type": "text",
"description": "固定值read。"
}
]
},
"url": {
"raw": "{{baseUrl}}/dayTaskInfo",
"host": [
"{{baseUrl}}"
],
"path": [
"dayTaskInfo"
]
},
"description": "返回data.task,其中dailyTasks为每日任务列表,weeklyStars为周鱼罐头累计,weeklyRewards为周宝箱列表,dayEndsAt/weekEndsAt为毫秒时间戳。读取可能刷新跨日/跨周任务。状态:0=未完成,1=可领取,2=已领取。所有每日任务直接开放,无需依次解锁。"
}
},
{
"name": "保存指定每日任务进度",
"request": {
"method": "POST",
"header": [
{
"key": "Content-Type",
"value": "application/x-www-form-urlencoded"
}
],
"body": {
"mode": "urlencoded",
"urlencoded": [
{
"key": "uid",
"value": "{{uid}}",
"type": "text",
"description": "必填,目标账号ID。"
},
{
"key": "token",
"value": "{{token}}",
"type": "text",
"description": "当前账号登录token,放在表单中;有token的账号会校验。"
},
{
"key": "isDebug",
"value": "{{isDebug}}",
"type": "text",
"description": "兼容客户端附加字段;这些接口不以此字段决定调试权限。"
},
{
"key": "gameName",
"value": "{{gameName}}",
"type": "text",
"description": "可选。iaa使用usersAd;留空或其他值使用users。"
},
{
"key": "action",
"value": "save",
"type": "text",
"description": "固定值save。"
},
{
"key": "task",
"value": "{{taskProgressPayload}}",
"type": "text",
"description": "Pre-request Script按taskId和progressValue生成JSON字符串,结构为{dailyTasks:[{taskId,value}]}。"
}
]
},
"url": {
"raw": "{{baseUrl}}/dayTaskInfo",
"host": [
"{{baseUrl}}"
],
"path": [
"dayTaskInfo"
]
},
"description": "先读取任务,设置taskId和progressValue后发送。只覆盖指定任务的value,不是增量;服务端限制到0~target,已领取状态保持2。该接口不能修改周罐头或奖励配置。"
},
"event": [
{
"listen": "prerequest",
"script": {
"type": "text/javascript",
"exec": [
"const id = String(pm.variables.get(\"taskId\") || \"\").trim();",
"if (!id) throw new Error(\"请先读取任务信息,并填写 taskId 或使用自动保存的任务ID。\");",
"const value = Number(pm.variables.get(\"progressValue\"));",
"if (String(pm.variables.get(\"progressValue\") || \"\").trim() === \"\" || !Number.isFinite(value)) throw new Error(\"progressValue 必须填写数字。\");",
"pm.variables.set(\"taskProgressPayload\", JSON.stringify({dailyTasks: [{taskId: id, value}]}));"
]
}
}
]
},
{
"name": "保存每日任务完整快照",
"request": {
"method": "POST",
"header": [
{
"key": "Content-Type",
"value": "application/x-www-form-urlencoded"
}
],
"body": {
"mode": "urlencoded",
"urlencoded": [
{
"key": "uid",
"value": "{{uid}}",
"type": "text",
"description": "必填,目标账号ID。"
},
{
"key": "token",
"value": "{{token}}",
"type": "text",
"description": "当前账号登录token,放在表单中;有token的账号会校验。"
},
{
"key": "isDebug",
"value": "{{isDebug}}",
"type": "text",
"description": "兼容客户端附加字段;这些接口不以此字段决定调试权限。"
},
{
"key": "gameName",
"value": "{{gameName}}",
"type": "text",
"description": "可选。iaa使用usersAd;留空或其他值使用users。"
},
{
"key": "action",
"value": "save",
"type": "text",
"description": "固定值save。"
},
{
"key": "task",
"value": "{{taskJson}}",
"type": "text",
"description": "JSON字符串。先读取生成taskJson,再按需修改其中dailyTasks[].value。"
}
]
},
"url": {
"raw": "{{baseUrl}}/dayTaskInfo",
"host": [
"{{baseUrl}}"
],
"path": [
"dayTaskInfo"
]
},
"description": "可批量更新多个每日任务进度。服务端实际只取dailyTasks[].taskId/value;其余state、stars、rewards、weeklyStars等由服务端维护,不会按提交值发奖。"
},
"event": [
{
"listen": "prerequest",
"script": {
"type": "text/javascript",
"exec": [
"const raw = pm.variables.get(\"taskJson\");",
"if (!raw) throw new Error(\"请先读取任务,生成taskJson。\");",
"const task = JSON.parse(raw);",
"if (!Array.isArray(task.dailyTasks)) throw new Error(\"taskJson必须是含dailyTasks数组的JSON对象。\");"
]
}
}
]
},
{
"name": "领取每日任务奖励",
"request": {
"method": "POST",
"header": [
{
"key": "Content-Type",
"value": "application/x-www-form-urlencoded"
}
],
"body": {
"mode": "urlencoded",
"urlencoded": [
{
"key": "uid",
"value": "{{uid}}",
"type": "text",
"description": "必填,目标账号ID。"
},
{
"key": "token",
"value": "{{token}}",
"type": "text",
"description": "当前账号登录token,放在表单中;有token的账号会校验。"
},
{
"key": "isDebug",
"value": "{{isDebug}}",
"type": "text",
"description": "兼容客户端附加字段;这些接口不以此字段决定调试权限。"
},
{
"key": "gameName",
"value": "{{gameName}}",
"type": "text",
"description": "可选。iaa使用usersAd;留空或其他值使用users。"
},
{
"key": "scope",
"value": "daily",
"type": "text",
"description": "固定值daily。"
},
{
"key": "taskId",
"value": "{{taskId}}",
"type": "text",
"description": "必须为当前dailyTasks中的taskId。"
}
]
},
"url": {
"raw": "{{baseUrl}}/getTaskReward",
"host": [
"{{baseUrl}}"
],
"path": [
"getTaskReward"
]
},
"description": "仅state=1时可领取。成功后该任务state=2,周鱼罐头增加task.stars,上限140;data.rewards为该任务实际奖励。不得携带rewardId代替taskId。重复领取返回code=0。"
},
"event": [
{
"listen": "prerequest",
"script": {
"type": "text/javascript",
"exec": [
"const id = String(pm.variables.get(\"taskId\") || \"\").trim();",
"if (!id) throw new Error(\"请先读取任务信息,并填写 taskId 或使用自动保存的任务ID。\");"
]
}
}
]
},
{
"name": "领取周宝箱奖励",
"request": {
"method": "POST",
"header": [
{
"key": "Content-Type",
"value": "application/x-www-form-urlencoded"
}
],
"body": {
"mode": "urlencoded",
"urlencoded": [
{
"key": "uid",
"value": "{{uid}}",
"type": "text",
"description": "必填,目标账号ID。"
},
{
"key": "token",
"value": "{{token}}",
"type": "text",
"description": "当前账号登录token,放在表单中;有token的账号会校验。"
},
{
"key": "isDebug",
"value": "{{isDebug}}",
"type": "text",
"description": "兼容客户端附加字段;这些接口不以此字段决定调试权限。"
},
{
"key": "gameName",
"value": "{{gameName}}",
"type": "text",
"description": "可选。iaa使用usersAd;留空或其他值使用users。"
},
{
"key": "scope",
"value": "weekly",
"type": "text",
"description": "固定值weekly。"
},
{
"key": "rewardId",
"value": "{{rewardId}}",
"type": "text",
"description": "weekly_35、weekly_70、weekly_105、weekly_140。"
}
]
},
"url": {
"raw": "{{baseUrl}}/getTaskReward",
"host": [
"{{baseUrl}}"
],
"path": [
"getTaskReward"
]
},
"description": "仅达到对应周鱼罐头目标且未领取时成功。Body只发送rewardId,不发送taskId,避免taskId=undefined的历史问题。不存在weekly_15。成功后宝箱state=2,data.rewards为奖励清单。"
},
"event": [
{
"listen": "prerequest",
"script": {
"type": "text/javascript",
"exec": [
"if (![\"weekly_35\", \"weekly_70\", \"weekly_105\", \"weekly_140\"].includes(pm.variables.get(\"rewardId\"))) throw new Error(\"rewardId请选择weekly_35/70/105/140。\");"
]
}
}
]
}
]
},
{
"name": "02 每日任务测试接口",
"description": "均调用dailyTaskDebug,要求users调试账号。当前服务端存在dbname未定义错误,需先修复并发布。taskId非空时优先于slot,故两种定位示例分开提供。",
"item": [
{
"name": "设置每日任务进度(按taskId)",
"request": {
"method": "POST",
"header": [
{
"key": "Content-Type",
"value": "application/x-www-form-urlencoded"
}
],
"body": {
"mode": "urlencoded",
"urlencoded": [
{
"key": "uid",
"value": "{{uid}}",
"type": "text",
"description": "必填,目标账号ID。"
},
{
"key": "token",
"value": "{{token}}",
"type": "text",
"description": "当前账号登录token,放在表单中;有token的账号会校验。"
},
{
"key": "isDebug",
"value": "{{isDebug}}",
"type": "text",
"description": "兼容客户端附加字段;这些接口不以此字段决定调试权限。"
},
{
"key": "debugKey",
"value": "{{debugKey}}",
"type": "text",
"description": "当前代码的debugKey校验已注释;仅目标环境恢复该校验时填写并启用。",
"disabled": true
},
{
"key": "action",
"value": "set_daily_progress",
"type": "text",
"description": "设置进度。"
},
{
"key": "taskId",
"value": "{{taskId}}",
"type": "text",
"description": "任务ID。"
},
{
"key": "value",
"value": "{{progressValue}}",
"type": "text",
"description": "目标进度值,非增量。"
}
]
},
"url": {
"raw": "{{baseUrl}}/dailyTaskDebug",
"host": [
"{{baseUrl}}"
],
"path": [
"dailyTaskDebug"
]
},
"description": "value会限制在0~target;不会将已领取任务改回未领取。想重复领奖先reset_daily。"
},
"event": [
{
"listen": "prerequest",
"script": {
"type": "text/javascript",
"exec": [
"const id = String(pm.variables.get(\"taskId\") || \"\").trim();",
"if (!id) throw new Error(\"请先读取任务信息,并填写 taskId 或使用自动保存的任务ID。\");",
"const value = Number(pm.variables.get(\"progressValue\"));",
"if (String(pm.variables.get(\"progressValue\") || \"\").trim() === \"\" || !Number.isFinite(value)) throw new Error(\"progressValue 必须填写数字。\");"
]
}
}
]
},
{
"name": "设置每日任务进度(按slot)",
"request": {
"method": "POST",
"header": [
{
"key": "Content-Type",
"value": "application/x-www-form-urlencoded"
}
],
"body": {
"mode": "urlencoded",
"urlencoded": [
{
"key": "uid",
"value": "{{uid}}",
"type": "text",
"description": "必填,目标账号ID。"
},
{
"key": "token",
"value": "{{token}}",
"type": "text",
"description": "当前账号登录token,放在表单中;有token的账号会校验。"
},
{
"key": "isDebug",
"value": "{{isDebug}}",
"type": "text",
"description": "兼容客户端附加字段;这些接口不以此字段决定调试权限。"
},
{
"key": "debugKey",
"value": "{{debugKey}}",
"type": "text",
"description": "当前代码的debugKey校验已注释;仅目标环境恢复该校验时填写并启用。",
"disabled": true
},
{
"key": "action",
"value": "set_daily_progress",
"type": "text",
"description": "设置进度。"
},
{
"key": "slot",
"value": "{{slot}}",
"type": "text",
"description": "0~4,不同时发送taskId。"
},
{
"key": "value",
"value": "{{progressValue}}",
"type": "text",
"description": "目标进度值,非增量。"
}
]
},
"url": {
"raw": "{{baseUrl}}/dailyTaskDebug",
"host": [
"{{baseUrl}}"
],
"path": [
"dailyTaskDebug"
]
},
"description": "按当前任务列表的槽位定位;默认slot=0。"
},
"event": [
{
"listen": "prerequest",
"script": {
"type": "text/javascript",
"exec": [
"const slot = Number(pm.variables.get(\"slot\"));",
"if (!Number.isInteger(slot) || slot < 0 || slot > 4) throw new Error(\"slot 必须是0到4的整数。\");",
"const value = Number(pm.variables.get(\"progressValue\"));",
"if (String(pm.variables.get(\"progressValue\") || \"\").trim() === \"\" || !Number.isFinite(value)) throw new Error(\"progressValue 必须填写数字。\");"
]
}
}
]
},
{
"name": "完成每日任务(按taskId)",
"request": {
"method": "POST",
"header": [
{
"key": "Content-Type",
"value": "application/x-www-form-urlencoded"
}
],
"body": {
"mode": "urlencoded",
"urlencoded": [
{
"key": "uid",
"value": "{{uid}}",
"type": "text",
"description": "必填,目标账号ID。"
},
{
"key": "token",
"value": "{{token}}",
"type": "text",
"description": "当前账号登录token,放在表单中;有token的账号会校验。"
},
{
"key": "isDebug",
"value": "{{isDebug}}",
"type": "text",
"description": "兼容客户端附加字段;这些接口不以此字段决定调试权限。"
},
{
"key": "debugKey",
"value": "{{debugKey}}",
"type": "text",
"description": "当前代码的debugKey校验已注释;仅目标环境恢复该校验时填写并启用。",
"disabled": true
},
{
"key": "action",
"value": "complete_daily",
"type": "text",
"description": "把任务进度设为target。"
},
{
"key": "taskId",
"value": "{{taskId}}",
"type": "text",
"description": "任务ID。"
}
]
},
"url": {
"raw": "{{baseUrl}}/dailyTaskDebug",
"host": [
"{{baseUrl}}"
],
"path": [
"dailyTaskDebug"
]
},
"description": "仅将未领取任务设为可领取,不增加周鱼罐头,不直接发奖。随后调用正式每日领奖。"
},
"event": [
{
"listen": "prerequest",
"script": {
"type": "text/javascript",
"exec": [
"const id = String(pm.variables.get(\"taskId\") || \"\").trim();",
"if (!id) throw new Error(\"请先读取任务信息,并填写 taskId 或使用自动保存的任务ID。\");"
]
}
}
]
},
{
"name": "完成每日任务(按slot)",
"request": {
"method": "POST",
"header": [
{
"key": "Content-Type",
"value": "application/x-www-form-urlencoded"
}
],
"body": {
"mode": "urlencoded",
"urlencoded": [
{
"key": "uid",
"value": "{{uid}}",
"type": "text",
"description": "必填,目标账号ID。"
},
{
"key": "token",
"value": "{{token}}",
"type": "text",
"description": "当前账号登录token,放在表单中;有token的账号会校验。"
},
{
"key": "isDebug",
"value": "{{isDebug}}",
"type": "text",
"description": "兼容客户端附加字段;这些接口不以此字段决定调试权限。"
},
{
"key": "debugKey",
"value": "{{debugKey}}",
"type": "text",
"description": "当前代码的debugKey校验已注释;仅目标环境恢复该校验时填写并启用。",
"disabled": true
},
{
"key": "action",
"value": "complete_daily",
"type": "text",
"description": "把任务进度设为target。"
},
{
"key": "slot",
"value": "{{slot}}",
"type": "text",
"description": "0~4,不同时发送taskId。"
}
]
},
"url": {
"raw": "{{baseUrl}}/dailyTaskDebug",
"host": [
"{{baseUrl}}"
],
"path": [
"dailyTaskDebug"
]
},
"description": "适合每日任务ID变化后的快速测试。先记下响应中对应槽位taskId,再使用正式每日领奖请求。"
},
"event": [
{
"listen": "prerequest",
"script": {
"type": "text/javascript",
"exec": [
"const slot = Number(pm.variables.get(\"slot\"));",
"if (!Number.isInteger(slot) || slot < 0 || slot > 4) throw new Error(\"slot 必须是0到4的整数。\");"
]
}
}
]
},
{
"name": "完成全部每日任务",
"request": {
"method": "POST",
"header": [
{
"key": "Content-Type",
"value": "application/x-www-form-urlencoded"
}
],
"body": {
"mode": "urlencoded",
"urlencoded": [
{
"key": "uid",
"value": "{{uid}}",
"type": "text",
"description": "必填,目标账号ID。"
},
{
"key": "token",
"value": "{{token}}",
"type": "text",
"description": "当前账号登录token,放在表单中;有token的账号会校验。"
},
{
"key": "isDebug",
"value": "{{isDebug}}",
"type": "text",
"description": "兼容客户端附加字段;这些接口不以此字段决定调试权限。"
},
{
"key": "debugKey",
"value": "{{debugKey}}",
"type": "text",
"description": "当前代码的debugKey校验已注释;仅目标环境恢复该校验时填写并启用。",
"disabled": true
},
{
"key": "action",
"value": "complete_all_daily",
"type": "text",
"description": "所有未领取任务进度设为target。"
}
]
},
"url": {
"raw": "{{baseUrl}}/dailyTaskDebug",
"host": [
"{{baseUrl}}"
],
"path": [
"dailyTaskDebug"
]
},
"description": "所有任务均已开放,完成后可任选任务领取,不需要依次解锁;已领取任务不受影响。"
}
},
{
"name": "重置每日任务",
"request": {
"method": "POST",
"header": [
{
"key": "Content-Type",
"value": "application/x-www-form-urlencoded"
}
],
"body": {
"mode": "urlencoded",
"urlencoded": [
{
"key": "uid",
"value": "{{uid}}",
"type": "text",
"description": "必填,目标账号ID。"
},
{
"key": "token",
"value": "{{token}}",
"type": "text",
"description": "当前账号登录token,放在表单中;有token的账号会校验。"
},
{
"key": "isDebug",
"value": "{{isDebug}}",
"type": "text",
"description": "兼容客户端附加字段;这些接口不以此字段决定调试权限。"
},
{
"key": "debugKey",
"value": "{{debugKey}}",
"type": "text",
"description": "当前代码的debugKey校验已注释;仅目标环境恢复该校验时填写并启用。",
"disabled": true
},
{
"key": "action",
"value": "reset_daily",
"type": "text",
"description": "重新生成当天每日任务。"
}
]
},
"url": {
"raw": "{{baseUrl}}/dailyTaskDebug",
"host": [
"{{baseUrl}}"
],
"path": [
"dailyTaskDebug"
]
},
"description": "清除当前每日进度及领取状态,重新抽取任务。正常同周内保留周鱼罐头和周奖励状态;跨周时常规刷新规则仍生效。响应会更新taskJson及任务ID变量。"
}
}
]
},
{
"name": "03 周任务测试接口",
"description": "使用数据库isDebug已开启的users账号。接口只修改任务状态,实际奖励需要正式领奖;当前源码的dbname错误需先修复。",
"item": [
{
"name": "设置周鱼罐头总数",
"request": {
"method": "POST",
"header": [
{
"key": "Content-Type",
"value": "application/x-www-form-urlencoded"
}
],
"body": {
"mode": "urlencoded",
"urlencoded": [
{
"key": "uid",
"value": "{{uid}}",
"type": "text",
"description": "必填,目标账号ID。"
},
{
"key": "token",
"value": "{{token}}",
"type": "text",
"description": "当前账号登录token,放在表单中;有token的账号会校验。"
},
{
"key": "isDebug",
"value": "{{isDebug}}",
"type": "text",
"description": "兼容客户端附加字段;这些接口不以此字段决定调试权限。"
},
{
"key": "debugKey",
"value": "{{debugKey}}",
"type": "text",
"description": "当前代码的debugKey校验已注释;仅目标环境恢复该校验时填写并启用。",
"disabled": true
},
{
"key": "action",
"value": "set_weekly_stars",
"type": "text",
"description": "设置总数,非增量。"
},
{
"key": "value",
"value": "{{weeklyStars}}",
"type": "text",
"description": "会限制在0~140。"
}
]
},
"url": {
"raw": "{{baseUrl}}/dailyTaskDebug",
"host": [
"{{baseUrl}}"
],
"path": [
"dailyTaskDebug"
]
},
"description": "把weeklyStars设为35/70/105/140可测试对应档位。未领取宝箱会重新计算是否可领;已领取状态不撤销。"
},
"event": [
{
"listen": "prerequest",
"script": {
"type": "text/javascript",
"exec": [
"const value = Number(pm.variables.get(\"weeklyStars\"));",
"if (String(pm.variables.get(\"weeklyStars\") || \"\").trim() === \"\" || !Number.isFinite(value)) throw new Error(\"weeklyStars 必须填写数字。\");"
]
}
}
]
},
{
"name": "增加或减少周鱼罐头",
"request": {
"method": "POST",
"header": [
{
"key": "Content-Type",
"value": "application/x-www-form-urlencoded"
}
],
"body": {
"mode": "urlencoded",
"urlencoded": [
{
"key": "uid",
"value": "{{uid}}",
"type": "text",
"description": "必填,目标账号ID。"
},
{
"key": "token",
"value": "{{token}}",
"type": "text",
"description": "当前账号登录token,放在表单中;有token的账号会校验。"
},
{
"key": "isDebug",
"value": "{{isDebug}}",
"type": "text",
"description": "兼容客户端附加字段;这些接口不以此字段决定调试权限。"
},
{
"key": "debugKey",
"value": "{{debugKey}}",
"type": "text",
"description": "当前代码的debugKey校验已注释;仅目标环境恢复该校验时填写并启用。",
"disabled": true
},
{
"key": "action",
"value": "add_weekly_stars",
"type": "text",
"description": "按增量调整总数。"
},
{
"key": "value",
"value": "{{starsDelta}}",
"type": "text",
"description": "允许正数或负数;最终总数限制在0~140。"
}
]
},
"url": {
"raw": "{{baseUrl}}/dailyTaskDebug",
"host": [
"{{baseUrl}}"
],
"path": [
"dailyTaskDebug"
]
},
"description": "例如starsDelta=15增加15;-15减少15。不会将已领取宝箱重置为未领取。"
},
"event": [
{
"listen": "prerequest",
"script": {
"type": "text/javascript",
"exec": [
"const value = Number(pm.variables.get(\"starsDelta\"));",
"if (String(pm.variables.get(\"starsDelta\") || \"\").trim() === \"\" || !Number.isFinite(value)) throw new Error(\"starsDelta 必须填写数字。\");"
]
}
}
]
},
{
"name": "重置周进度和周宝箱",
"request": {
"method": "POST",
"header": [
{
"key": "Content-Type",
"value": "application/x-www-form-urlencoded"
}
],
"body": {
"mode": "urlencoded",
"urlencoded": [
{
"key": "uid",
"value": "{{uid}}",
"type": "text",
"description": "必填,目标账号ID。"
},
{
"key": "token",
"value": "{{token}}",
"type": "text",
"description": "当前账号登录token,放在表单中;有token的账号会校验。"
},
{
"key": "isDebug",
"value": "{{isDebug}}",
"type": "text",
"description": "兼容客户端附加字段;这些接口不以此字段决定调试权限。"
},
{
"key": "debugKey",
"value": "{{debugKey}}",
"type": "text",
"description": "当前代码的debugKey校验已注释;仅目标环境恢复该校验时填写并启用。",
"disabled": true
},
{
"key": "action",
"value": "reset_weekly",
"type": "text",
"description": "周鱼罐头清零,重置所有周宝箱状态。"
}
]
},
"url": {
"raw": "{{baseUrl}}/dailyTaskDebug",
"host": [
"{{baseUrl}}"
],
"path": [
"dailyTaskDebug"
]
},
"description": "保留当天每日任务进度及领取状态。可与设置周罐头请求配合重复测试周领奖。"
}
}
]
},
{
"name": "04 重置全部任务",
"description": "独立重置工具,按需发送。",
"item": [
{
"name": "重置每日和周任务",
"request": {
"method": "POST",
"header": [
{
"key": "Content-Type",
"value": "application/x-www-form-urlencoded"
}
],
"body": {
"mode": "urlencoded",
"urlencoded": [
{
"key": "uid",
"value": "{{uid}}",
"type": "text",
"description": "必填,目标账号ID。"
},
{
"key": "token",
"value": "{{token}}",
"type": "text",
"description": "当前账号登录token,放在表单中;有token的账号会校验。"
},
{
"key": "isDebug",
"value": "{{isDebug}}",
"type": "text",
"description": "兼容客户端附加字段;这些接口不以此字段决定调试权限。"
},
{
"key": "debugKey",
"value": "{{debugKey}}",
"type": "text",
"description": "当前代码的debugKey校验已注释;仅目标环境恢复该校验时填写并启用。",
"disabled": true
},
{
"key": "action",
"value": "reset_all",
"type": "text",
"description": "重新生成每日任务并清零周进度、周领奖状态。"
}
]
},
"url": {
"raw": "{{baseUrl}}/dailyTaskDebug",
"host": [
"{{baseUrl}}"
],
"path": [
"dailyTaskDebug"
]
},
"description": "会覆盖所选账号当前每日和周任务状态;不会撤销客户端已经发放的金币、道具。响应会更新快照及任务ID变量。"
}
}
]
}
]
}