/HospitalAutoRegister

北京大学口腔医院自动挂号

Primary LanguageJavaScriptApache License 2.0Apache-2.0

医院挂号使用教程

注意:本程序只供学习交流娱乐之用,由此产生任何纠纷由使用者自己承担!本人概不负责!侵删!另外,请求频次太高将会被封号,请注意设定好自己的请求频率,不要太高;

介绍:北京大学口腔医院,挂号

可自行拷贝本项目、配置或魔改,请勿用于盈利,本人概不负责

本项目开源,代码未整理,兴趣而写

最新:代码wxutil.js中的加解密方法已不能使用(微信小程序有最新加密方案),可以的话秉着开源精神能够参与一下改善?


关于代码:

  1. 本项目技术栈:golang, vue
    1.1 golang使用了gin框架作为本地站点服务器,otto插件运行js, req来模拟https请求接收真实数据 (go的各种好处,本人不会py);
    1.2 app文件夹内前端采用Vue3+vite+antd (个人练习选用);
  2. 重点文件:
    2.1 utils/js/wxutil.js : 此文件为核心文件,解包小程序获取源码魔改而成,wx对象为手动模拟,部分js高阶语法otto并不支持已降级修改,部分引用已整合,此文件非原始源码;
    2.2 utils/BusinessHelper.go : 外部模拟请求的所有必须接口;
    2.3 utils/EncryDecryHelper.go : 加解密,otto配合wxutils.js使用;
  3. 弃用文件(弃用文件均为第一版使用的,可自行删除,也可自行魔改):
    3.1 conf文件夹及其下配置文件;
    3.2 utils/INIHelper.go;
    3.3 GetUserData.go;

使用说明:

  1. 启用抓包工具,可以抓小程序的微信授权登录,调用接口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来解密

  2. 启用“北京大学口腔医院医疗服务助手”(推荐直接在电脑端打开,使用抓包工具来抓登录的参数)
  3. 本地或者打包运行当前项目:

    3.1 初始化项目配置,go项目的初始化和内部app文件夹内的初始化
    3.2 app文件夹内项目打包(或者打包后运行),然后运行go项目
    3.3 项目代码已限制挂号频次至少为1000ms,可自行修改,封号本人概不负责

后续计划(不分优先级)

  1. 配置可视化,可选择就诊人和科室 ✅
  2. 接入本地抓包,不使用抓包工具,但本地需在pc端微信中登录授权
  3. 看看其他医院的情况

ps:此项目为本人兴趣练习使用,看看有空就开始填坑了

  1. 2023-02-11补充:鉴于很多人不知道如何或者没有看清使用说明,关于app文件夹下dist文件夹的缺失不能运行go的项目代码,这里已补充dist目录,可以直接运行外层go项目了(当然会造成整体项目体积变大,最好还是手动执行app目录的build,本身提供build的代码就是错误示范😂),最近准备调整挂号加密问题,可能是小程序加密变更了;