- 本项目技术栈:golang, vue
1.1 golang使用了gin框架作为本地站点服务器,otto插件运行js, req来模拟https请求接收真实数据 (go的各种好处,本人不会py);
1.2 app文件夹内前端采用Vue3+vite+antd (个人练习选用); - 重点文件:
2.1 utils/js/wxutil.js : 此文件为核心文件,解包小程序获取源码魔改而成,wx对象为手动模拟,部分js高阶语法otto并不支持已降级修改,部分引用已整合,此文件非原始源码;
2.2 utils/BusinessHelper.go : 外部模拟请求的所有必须接口;
2.3 utils/EncryDecryHelper.go : 加解密,otto配合wxutils.js使用; - 弃用文件(弃用文件均为第一版使用的,可自行删除,也可自行魔改):
3.1 conf文件夹及其下配置文件;
3.2 utils/INIHelper.go;
3.3 GetUserData.go;
- 启用抓包工具,可以抓小程序的微信授权登录,调用接口
https://bdkq.leanpay.cn/weixin-miniapp-bdkq@default/wechat/login.json
的登录参数
最重要的三个参数:Request请求的header:x-sign,接口返回加密串需要的解密key(动态的,每次请求都是随机加密的)
Response返回的header:x-version,接口请求url的拼接版本(动态的,一小段时间后就会改变)
Response返回的Body:{ encrypt": "XXXXXX" },这里的XXXXXX(这个就是加密串,用上边的x-sign来解密) - 启用“北京大学口腔医院医疗服务助手”(推荐直接在电脑端打开,使用抓包工具来抓登录的参数)
- 本地或者打包运行当前项目:
3.1 初始化项目配置,go项目的初始化和内部app文件夹内的初始化
3.2 app文件夹内项目打包(或者打包后运行),然后运行go项目
3.3 项目代码已限制挂号频次至少为1000ms,可自行修改,封号本人概不负责
- 配置可视化,可选择就诊人和科室 ✅
- 接入本地抓包,不使用抓包工具,但本地需在pc端微信中登录授权
- 看看其他医院的情况
- 2023-02-11补充:鉴于很多人不知道如何或者没有看清使用说明,关于app文件夹下dist文件夹的缺失不能运行go的项目代码,这里已补充dist目录,可以直接运行外层go项目了(当然会造成整体项目体积变大,最好还是手动执行app目录的build,本身提供build的代码就是错误示范😂),最近准备调整挂号加密问题,可能是小程序加密变更了;