提交预约流程

注意

  1. 抓包分析好像还涉及到wxlib/wx/login 不过从后面提交数据来看好像用不到,可能我技术问题吧

抓包分析

有人可能最新微信PC抓不了小程序包

解决办法
  1. 打开一个任意小程序,打开任务管理器,找到进程。右键打开文件位置。

  2. 退出电脑微信,右键结束小程序进程。

  3. 找到这个目录后删除这个目录

  4. 或者你有everything这个工具,直接搜索 WMPFRuntime 然后右键打开所在文件夹,把里面这个4376目录删除就可以

2.0新变化

  • 位置预约的一些信息加密了

预约信息加密解决

反编译

微信小程序反编译

这次小程序反编译出来的文件

反编译后查看源代码

  • 预约位置关键代码

1
RSA加密的,跟着他代码来就可以
  • 找啊找,发现找到了,在app.js当中是rsa.modules和exponent加密代码

  • 找啊找,找到了小程序图书馆调用的函数工具库

  • 接下来就简答了,模拟导入就可以了

计算生成预约js(nodejs下运行)代码

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
const ttt = require("./security.js");
var modulus = "";//拆包一下就知道
var exponent = "010001";
var iii = ttt.getKeyPair(exponent, "", modulus);
// time_end时间截止
//时间段,1代表8:00-12:00时间段
//时间段,2代表12:00-17:00时间段
//时间段,3代表17:30-23:00时间段
//day_time日期时间 2022-04-10
//num 为时间段
var id = 11;
var vd_id = 8235; //区域代码
var num = 1; //是预约时间段1 2 3
var day_time = "2022-04-23"; //预约日期
var time_end = "23:00"; //截止时间段
// var r = a.data.selectSeat.id + "," + a.data.selectSeat.vd_id + "," + a.data.urlOptions.num + "," + a.data.urlOptions.day_time + ", " + a.data.urlOptions.time_end
var rsa_data = id + "," + vd_id + "," + num + "," + day_time + ", " + time_end;

//预约位置的时候的加密算法
var rsa_result = ttt.encryptedString(iii, rsa_data);
console.log("预约加密代码",rsa_result);//也就是获取info部分
1
接下来就简答了如果有了这个预约加密代码

提交预约代码

1
2
3
4
5
6
7
8
9
10
11
12
13
var userSeatInfoOption={
method:"get",
url:"https://wxcourse.jxufe.cn/wxlib/wx/appoint",
params:{
'isPeriod': 1,
'userId': "",//依旧是抓包获取
'appointType': 0,
'officeCode': "jxcjdx",
'colleageId': 51,
//添加加密后的字段
'info':""
}
};

运行

  • 预约加密代码

  • 预约成功