import express, { urlencoded } from "express"; import { GetXToken, defaultConfig, Remark, CipherTable } from "./CipherStash-xToken.js"; import { defaultConfigh5st, handleH5stRequest } from './h5st.js'; import { readFile } from 'fs'; const app = express(); app.use(urlencoded({ extended: true })); // 读取配置文件 readFile(`${defaultConfig.ConfigName}.txt`, 'utf8', (err, data) => { if (err) { console.warn(`查无配置文件,将使用默认配置;配置文件名:${defaultConfig.ConfigName}.txt`); } else { const lines = data.split('\n'); if (lines.length >= 2) { defaultConfig.route = lines[0].trim(); defaultConfig.port = parseInt(lines[1].trim(), 10) || 6689; } } app.get(defaultConfig.route, function (req, res) { /** * 接口文档 */ const apiDoc = `
| 请求方法 | POST |
|---|---|
| 表单格式 | x-www-form-urlencoded |
用于生成API请求的Eid Token
| Key | Value | 说明 |
|---|---|---|
| type | 11 | 固定值 |
| str | Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/136.0.0.0 Safari/537.36 | UserAgent参数 |
| 请求方法 | 表单格式 | 备注 |
|---|---|---|
| GET | ||
| POST | x-www-form-urlencoded | 适用于数据量较大的请求 |
参数计算所涉及的字段名(区分大小写)及其描述:
| 字段名 | 描述 | 备注 |
|---|---|---|
khd |
客户端代号(jx、pc、jm、m(不填写默认m)) | 选填接口请求不通可选择对应的平台代号 |
ai |
需求的官方接口抓包中的h5st数据进行拆分 - 第3个位置 | 必填原始抓包数据中的h5st参数值中提取 |
pin |
cookie中pin或者pt_pin字段的属性值 | 可选无需登录则不填 |
sua |
user-agent第一个括号内的参数 | 必填注意跟实际的一致(空格允许存在) |
提示 官方接口有出现对应字段时才需拼接到请求参数
示例 appid=xx&functionId=xx 以此类推;未出现字段无需拼接Key、Value
注意 区分大小写
| 字段名 | 备注 |
|---|---|
appid |
选填 |
functionId |
选填 |
body |
选填数据过长可使用post模式请求、或者手动进行SHA256进行加密后再次填写 |
clientVersion |
选填 |
client |
选填 |
t |
选填 |
jsonp |
选填 |
api |
选填 |
appId |
选填 |
v |
选填 |
metrics |
选填 |
outputDimensions |
选填 |
filters |
选填 |
orderBy |
选填 |
pageNum |
选填 |
pageSize |
选填 |
注意 自行替换正确的IP地址,pin替换实际的参数,sua注意空格
| 字段名 | 示例值 |
|---|---|
khd |
jx |
ai |
25f73 |
pin |
根据实际填写cookie中pin或者pt_pin字段的属性值 |
sua |
Windows NT 10.0; Win64; x64 |
functionId |
lite_newUserAllOrderList |
appid |
jx_h5 |
t |
1748489096059 |
clientVersion |
1.2.5 |
client |
jxh5 |
body |
{"page":1,"pagesize":10,"buid":325,"appCode":"ms0ca95114","time":1748489096059,"signStr":"db3c8b3733006239b535be3975c072ab"} |
http://127.0.0.1:${defaultConfigh5st.port}${defaultConfigh5st.route}?khd=jx&ai=25f73&pin=&sua=Windows NT 10.0; Win64; x64&functionId=lite_newUserAllOrderList&appid=jx_h5&t=1748489096059&clientVersion=1.2.5&client=jxh5&body=
http://127.0.0.1:${defaultConfigh5st.port}${defaultConfigh5st.route}
Content-Type: application/x-www-form-urlencoded
khd=jx&ai=25f73&pin=&sua=Windows NT 10.0; Win64; x64&functionId=lite_newUserAllOrderList&appid=jx_h5&t=1748489096059&clientVersion=1.2.5&client=jxh5&body=
提示 body参数带中文时需要将body属性值进行URL编码
注意 自行替换正确的IP地址,body,pin替换实际的参数,sua注意空格
| 字段名 | 示例值 |
|---|---|
khd |
jm |
ai |
0248a |
pin |
根据实际填写cookie中pin或者pt_pin字段的属性值 |
sua |
Windows NT 10.0; Win64; x64 |
api |
dsm.wareshopv2.ware.wareListService.queryWareList |
v |
1.0 |
appId |
3MC69M4R3HFKCQ4S01DN |
body |
{"a": "1"} |
http://127.0.0.1:${defaultConfigh5st.port}${defaultConfigh5st.route}?khd=jm&ai=0248a&pin=&sua=Windows NT 10.0; Win64&api=dsm.wareshopv2.ware.wareListService.queryWareList&v=1.0&appId=3MC69M4R3HFKCQ4S01DN&body={"a":"1"}
http://127.0.0.1:${defaultConfigh5st.port}${defaultConfigh5st.route}
Content-Type: application/x-www-form-urlencoded
khd=jm&ai=0248a&pin=&sua=Windows NT 10.0; Win64&api=dsm.wareshopv2.ware.wareListService.queryWareList&v=1.0&appId=3MC69M4R3HFKCQ4S01DN&body={"a":"1"}
提示 body参数带中文时需要将body属性值进行URL编码