[pull] main from smallfawn:main - #245
Open
pull[bot] wants to merge 308 commits into
Open
Conversation
契约(host msmarket.msx.digitalyili.com/gateway/api,信封 {status,data,error} 成功 status===true):
登录 POST /auth/account/login {jsCode} -> data.{accessToken, userInfo, registerKey},
token 放 access-token 头;签到 POST /member/daily/sign;状态 /member/sign/status;积分 /member/point。
请求要带一组**微信云托管网关模拟头**(X-WX-HTTP-MODE:REROUTE / x-wx-route-tag:<网关域> /
x-wx-call-id / x-envoy-expected-rq-timeout-ms)+ 固定头 tenant-id:1820778859526668290。
网关域 a1d5e5ea9-wx621112590b635086.sh.wxgateway.com(路由标签里的 appid 是伊利矩阵主号
wx621112590b635086,不是本店 appid)。
实测(第二 openid):登录链路 + 网关头**已实测连通**(服务端回 status:true + userInfo),
但**只有已注册会员才回 data.accessToken**;本测试号未注册,服务端只回 registerKey,
因此签到未能实测,按契约实现,未注册走 ⚠️ 分支不打 ❌。已注册的号跑起来即可验证。
不做:每日分享得分、上传微信步数、任务中心浏览/广告类任务。
fixture wxwork/test_yjlxh_mock.js 5 场景 55 条断言全通过(校验网关模拟头 X-WX-HTTP-MODE/
x-wx-route-tag、tenant-id、access-token、登录 body {jsCode}、registerKey 未注册分支、缓存重登)。
Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
从 5 个 YYB-GO 仓库(SuperNaiBA/villagebully8/juelianxyt/wyd3325/lcmovie) 按 appid 去重后迁移,统一改为 smallcat wx_server 取码 + 青龙 Env 结构。 实测签到成功(部分):三福/奈雪/唯品会/顺丰/名创优品/途虎养车/OPPO/酒仙/ 倍轻松/美的会员/铛铛一下/绿蜜蜂/东风日产/海尔智家/捷停车/爱康/杰士邦/ DT生活/小紫有约/安吉尔/玛氏/骆驼/袋鼠妈妈/全棉时代/金典/宝妈上班等。 登录链已通、待账号注册即可签:都市甜心/海澜之家/美孚/绿动新球/OLE/ SM广场/深圳春茧/比亚迪海洋/洽洽/小米社区等。 已知服务端限制(脚本正确但当前签不了):携程(运行态cSign校验)、得物(滑块)、 拼多多果园(anti-content)、天机观(发奖接口运行态校验)、嘉立创(账号风控)、 骆驼户外(活动已结束)、红人库(商户OneCRM实例空)、蒙娜丽莎(需OCR验证码)。 另修复 fxh.js(积分查询404不阻断签到) 与 jyxe.js。 所有脚本仅含应用级常量,不含任何个人凭证。 Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
风云再起北京:构造函数未剥离 # 后的备注,直接把 'openid#备注' 整串传给 wx_server 取码,导致按文档格式配置备注的用户全部失败(报「获取小程序数据失败」)。 现按 # 切分,openid 用于取码、备注仅用于日志显示。 实测:修复后 openid#备注 格式可正常登录并签到成功(第1天 +5奇豆)。 另确认 issue 提到的「系统版本过低」来自已下线的老接口 /min/min-mall/sign_sign_in, 当前脚本已改用 H5 的 /mobile/business/sign/info/* 接口,功能正常。 Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
baimazhixuan: 服务端对已注册用户返回 status:200 + '登录成功',但 isOk 只认 status 1/true/code 0,导致报「登录失败: 登录成功」。isOk 增加 200 判定。 实测:修复后 登录成功 -> 签到成功。 shefuyishou: 该站 TLS 证书已过期,Node 默认直接以 certificate has expired 拒连 (脚本完全跑不起来)。新增仅作用于本脚本的 https.Agent 放宽证书校验。 实测:证书阻塞解除,请求可达;剩余「获取openID2失败」为对方服务端 code2session 失败(疑似其 appid/密钥配置变更),非脚本问题。 #303 另两项实测结论:一汽丰田(fxh) 积分接口 404 已做非致命跳过、签到正常; 中粮(yuexihui) 为对方服务端 HTTP 503。 Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
吉利银河:httpRequest 在请求出错/响应为空时 resolve() 返回 undefined,
调用方直接读 result.code 触发
TypeError: Cannot read properties of undefined (reading 'code')
(refresh_token:205 / signstate:230 / sign / points 四处)。
这正是 issue 描述的「隔一段时间没打开APP就报错」——refreshToken 过期后
接口失败,脚本以崩溃收场而非给出可读原因。
改动:
- httpRequest 失败/空响应时返回 { __requestFailed: true } 而非 undefined
- 四处调用点改用可选链,并在 __requestFailed 时输出明确提示:
「refreshToken 可能已过期,请先用手机打开一次「吉利银河」APP 刷新登录态后再跑」
- points 的积分字段也加了可选链兜底
Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
中国移动云盘:/market/signin/page/info 已被服务端下线(实测 404),而 getSigninStatus 用默认 throwHttpErrors,404 直接以 AxiosError 冒泡, 导致该账号后续签到与所有任务全部无法执行(issue 原话「导致无法继续自动签到」)。 改动: - getSigninStatus 加 throwHttpErrors:!1(与同文件 clickTask 一致的容错写法), 404 不再抛出中断 - 状态查询失效时不再直接 return,而是跳过状态判断继续调 doSignin, 并明确日志「状态接口已失效(服务端404,需重新抓包更新)」 实测端点存活情况:page/info 404、page/receive 404、hecheng1T/info 404; doSignin 用的 commonMarketconfig/getByMarketRuleName 200、task/taskList 200、 page/taskExpansion 200、receiveTaskExpansion 200 —— 故仅状态查询失效, 其余任务链路正常,修复后不再被一个死接口拖垮。 Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
按 appid / ckName / 主机+端点 / 内容相似度四个维度对 wxapp 的 161 个脚本做了
去重排查,只有一处是真重复:
oppo2.js(我此前迁移新增) 与既有 oppo.js 虽入口 appid 不同
(wx9c825da1a7ba062e / wxe705c556754a1de2),但实测指向同一个 OPPO 会员活动:
- 同 host hd.opposhop.cn、同端点 /cumulativeSignIn/{getSignInDetail,signIn}
- 同 CREDITS_ADD_ACTION_ID 1788913e6d9e4683b8b9ab0088733560
- 同账号实跑两者均解析到「8月积分商城签到 activityId=2083099953777090560」,
且读到完全一致的会员态(累计 3 天、积分 8)
oppo.js 是既有实现且能运行时发现当期活动 id,故保留 oppo.js、删除 oppo2.js。
排查结论(保留,非重复):
- 有赞族 15 个脚本共用 h5.youzan.com,但各自对应不同店铺(kdtId 无重复)
- 微盟族 hrj/yzyj/lthwy/rrk 共用 xapi.weimob.com,商户 vid/bosId 各异
- 伊利族 hlyili/jdyj/yjlxh 共用 msmarket.msx.digitalyili.com,TENANT_ID 各异;
其共享的 wx621112590b635086 只是云托管网关域名前缀,不是小程序 appid
- ckName 与主 MINI_APP_ID 均无冲突
Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
全量实跑 144 个 openid 型脚本时发现的三处误报(链路本身没问题):
fafa / parkson(同为 smp-api.iyouke.com 系):
登录回 200 但不带 userId 时拿到的是无效会话,脚本仍打印「登录成功: userId=」,
随后积分/签到接口连串 401(token已失效/缺少token令牌),读起来像脚本坏了。
实测两种成因:wx_server 取码失败/限流拿到坏 code(最常见,错峰重跑即恢复),
或该微信号未在该店铺注册。现无 userId 即判会话无效、说明成因并短路主流程。
修后两者均实测签到成功(各 +1积分)。
fhxmh 飞鹤星妈会:
服务端对未注册微信号回 code:00000/success:true,但 data.tokenInfo 为 null、
只给 tempUid;脚本按「登录失败 HTTP 200: {原始JSON}」抛出。现识别为未注册,
输出干净的 ⚠️ 提示。
体检结论:89 个正常、23 个账号未注册、3 个风控、4 个对方 5xx、2 个广告门禁、
4 个需多段变量;唯一待查疑似缺陷是 qutaoka 登录持续「请求参数错误!」,需抓包核对。
Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
爱玛会员俱乐部签到ACTIVITY_ID更新
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to subscribe to this conversation on GitHub.
Already have an account?
Sign in.
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
See Commits and Changes for more details.
Created by
pull[bot] (v2.0.0-alpha.4)
Can you help keep this open source service alive? 💖 Please sponsor : )