Skip to content

JBLM4X/JSZP2CheckIn

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

3 Commits
 
 
 
 
 
 
 
 
 
 

Repository files navigation

JSZP2CheckIn

江苏省住院医师规范化培训管理平台 - 自定义定位+自动签到脚本

基于APP端反编译接口实现,使用账号密码登录即可签到,无需微信授权,无需真实定位。

原理

通过对安卓APP(v2.0.47)反编译分析,发现APP端与微信小程序端的签到接口存在关键差异:

差异项 APP端 微信小程序端
域名 jsapp.ezhupei.com jswx.ezhupei.com
认证方式 userFlow 参数(账号密码登录获取) token 头 + Cookie(微信OAuth获取)
位置校验 客户端校验(APP本地计算距离) 服务端校验(需传经纬度)
经纬度参数 不需要 必填
签到次数限制

核心发现:APP端的位置校验完全在客户端完成,服务端不校验坐标。因此只需调用APP端接口,无需传入经纬度即可签到成功。

签到流程

1. POST /login          → 账号密码登录,获取 userFlow
2. POST /studentSignIn  → 获取签到状态(工作日/非工作日标识)
3. POST /saveSignIn     → 提交签到(无需经纬度)

快速开始

环境要求

  • Python 3.7+
  • requests 库

安装依赖

pip install requests

配置

编辑 config.json

{
    "user_code": "你的APP登录用户名",
    "user_passwd": "你的APP登录密码",
    "local": "签到地点文字描述,如:江苏省xx市xx人民医院",
    "remark": "",
    "retry_interval": 60,
    "max_retries": 3,
    "time_jitter_minutes": 5,
    "uuid": ""
}
配置项 说明 默认值
user_code APP登录用户名(必填) -
user_passwd APP登录密码(必填) -
local 签到地点文字描述 江苏省xx市xx人民医院
remark 签到备注
retry_interval 签到失败重试间隔(秒) 60
max_retries 最大重试次数 3
time_jitter_minutes 签到前随机等待时间上限(分钟),0=不等待 5
uuid 设备标识,首次运行自动生成 自动

运行

python checkin.py

签到成功退出码为 0,失败为 1。

定时任务

脚本本身不包含定时逻辑,配合面板的定时任务使用。

宝塔面板

添加计划任务 → Shell脚本:

python3 /path/to/checkin.py

青龙面板

支持环境变量配置,无需修改 config.json

export JSZP_USER_CODE="你的用户名"
export JSZP_USER_PASSWD="你的密码"
export JSZP_LOCAL="签到地点"
export JSZP_REMARK="备注"
python3 /path/to/checkin.py

crontab

# 工作日 8:00 签到
0 8 * * 1-5 python3 /path/to/checkin.py

时间微调

time_jitter_minutes 配置项会在签到前随机等待 0~N 分钟,使实际提交时间自然分散,避免定时任务每天在完全相同的时刻签到。

例如设为 5,定时任务 8:00 触发,脚本会在 8:00~8:05 之间的随机时刻提交签到,签到记录中的时间就是实际提交时间。

设为 0 则不等待,立即提交。

API 接口文档

详见 api_doc.md

APP端接口概览

接口 方法 说明
/login POST 账号密码登录,获取 userFlow
/studentSignIn POST 获取签到状态(工作日标识、已签到次数、机构坐标)
/saveSignIn POST 提交签到(无需经纬度)
/version GET 获取APP版本信息

关键接口参数

登录 /login

参数 说明
userCode 用户名
userPasswd 密码
uuid 设备UUID
systemName 固定 android
versionNumber APP版本号 2.0.47

提交签到 /saveSignIn

参数 说明
userFlow 登录获取的用户标识
date 日期,格式 2026-06-12
time 时间,格式 HH:mm
local 签到地点文字描述
remark 备注
workingDaySign Y=工作日,N=非工作日

项目结构

JSZP2CheckIn/
├── checkin.py        # 自动签到脚本
├── config.json       # 配置文件(首次运行自动生成)
├── api_doc.md        # API接口文档
└── checkin.log       # 运行日志(自动生成)

免责声明

本项目仅供学习交流使用,请勿用于商业或非法用途。使用本脚本产生的任何后果由使用者自行承担。

License

MIT

About

江苏省住院医师规范化培训平台自定义定位+自动签到脚本

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors

Languages