════ 发包测试包_开店/物品_2026-09-25 ════ 一、开店包结构(4 样本定案) [00000000][CB 00=功能号开店][包体长度 u16小端 = 3+店名字节数][01][店名长度 u16小端][店名 BIG5] 二、现成测试包(直接复制整串发送) 1. 店名 8888 (15字节): 00000000CB00070001040038383838 2. 店名 88888888 (19字节): 00000000CB000B000108003838383838383838 3. 店名 哈哈 (15字节): 00000000CB000700010400ABA2ABA2 4. 店名 一一 (15字节): 00000000CB000700010400A440A440 ← 与抓包原包逐字节一致 三、物品包测试(验证包长假设 6C=108) 用已抓 token(B313AD8B19EBDC/槽3/物品1000000106) 原样组包,数量改成 1: 完整版 116 字节(按包体长度字段 0x6C=108 推算的真实长度): 0000000099006C00010000000000000000000000B313AD8B19EBDC00030000006ACA9A3B0000000001000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 截断版 72 字节(若服务器拒收完整版再试这个): 0000000099006C00010000000000000000000000B313AD8B19EBDC00030000006ACA9A3B000000000100000000000000000000000000000000000000000000000000000000000000 四、易语言通用子程序(开店) .版本 2 .子程序 开店包_生成, 字节集, 公开, 返回可直接发送的开店封包 .参数 店名, 文本型 .局部变量 店名BIG5, 字节集 .局部变量 包体, 字节集 .局部变量 完整包, 字节集 店名BIG5 = 编码_简体到BIG5 (店名) ' 纯数字/英文不变;简体字缺字时先简转繁 包体 = 到字节集 ({ 1 }) + 到字节集 (到短整数 (取字节集长度 (店名BIG5))) + 店名BIG5 完整包 = 到字节集 ({ 0, 0, 0, 0, 203, 0 }) + 到字节集 (到短整数 (取字节集长度 (包体))) + 包体 返回 (完整包) 注意: - 到短整数→到字节集 出来就是小端 2 字节(x86 特性),不用手工换序。 - 203 = 0xCB 开店功能号;物品类是 0x99(153),别混。 - 店名长度上限未知,测试时从短到长逐步加(4/8/10/12/16/20 字节),被拒即知上限。 ════ 观察要点 ════ 1. 开店:4 个店名挨个发,看哪些成功开店 → 钉死 BIG5 编码与长度上限。 2. 物品包:先发 116 完整版,拒收再发 72 截断版 → 验证 6C00 是不是包体长度。 3. 数量字段在包偏移 40(完整版从 0 数第 41 个字节),改数量只动它。