方案一:token有效期较长,可以考虑直接抓包获取token,用于之后的接口请求鉴权
方案二:调用微信开发者工具,获取微信code
此处通过JS的miniprogram-automator(python则通过minium)
const automator = require('miniprogram-automator'); automator.launch({ cliPath:'D:/xxxx/cli.bat', // 微信开发者工具cli位置,如果没有更改过默认安装位置,可以忽略此项 projectPath:'E:/code/xxxxx' // 小程序项目路径(微信开发者工具右上角“详情”--基本信息--本地目录) }).then(async miniProgram => { try { const page = await miniProgram.reLaunch('xxxxx'); //复制登录页面的页面路径,如果报错再行查看 await page.waitFor(500); const promise = await miniProgram.callWxMethod('login'); console.log(promise.code); } catch (error) { console.error('调用login方法获取code出错:', error); } finally { await miniProgram.close(); } }).catch(error => { console.error('启动微信开发者工具出错:', error); });
3、编写Java代码调用上述的JS代码获取code,之后就可以正常操作了
public class Login extends BaseTest { @Test public void login_test(){ MerChantApi merChantApi = new MerChantApi(); String foreLoginData = "{\"appId\":\"xxxxxxx\",\"code\":\"" + getWechatCode() + "\"}"; Response foreLogin = merChantApi.foreLogin(foreLoginData); saveToEnvironment("token",foreLogin.jsonPath().get("data.token")); String loginData = "{\"mobile\":\"xxxxxx\",\"smsCode\":\"xxxxx\"}"; Response login = merChantApi.login((String) getEnvironment("token"),loginData); } }
缺点:
ansible ping远程主机debian11报错
Pycharm 常用快捷键
Spyder 快捷键大全
【游记】CCPC 济南 2024 游记
python bytecode解析
ansible进阶与自动化
RK3568开发板Openwrt文件系统构建
动态网络架构
机器学习入门
沨鸾的Shell小技巧
为你的手机内核开启docker支持
在Linux下优雅的调试C语言
浅析Dockerhub API:如何优雅地从dockerhub偷rootfs镜像
C# 通过注册表、API两种方式获取显示器的分辨率尺寸
2024.10.31 文件管理方案
python练习题
Kinsta-博客中文翻译-八-
JAX---Flax-深度学习教程-一-
Java-中文官方教程-2022-版-二-
JavaTutorialNetwork-中文系列教程-一-
step7 V5.x上的SCL
yolo --- 核心思想
AJAX & AXIOS-2024/11/1
验证码处理在自动化测试中的应用
一些学科笑话
NOIP2024模拟赛20 & 11.1 小记
20241101 数据结构与算法期中机试收获
Java,启动!
什么是IT技术
即将到来!
2024/11/1日 日志 关于JavaScript简介&引入方式 以及基础语法的学习
舍得-时间-工作是人的一生最重要的事情-自己要有私房钱-人的一生最重要的事情是书写自己的人生
2.TiUP 部署 DM 集群
原型模式的C++实现
09-XSS键盘监听、cookie窃取&文件上传绕过
ubuntu 24.04 部署 mysql 8.4.3 LTS
国标GB28181公网平台LiteGBS国标GB28181视频平台建筑工地无线视频联网监控系统方案
imes完工下线
Ethernaut Level 11: Elevator Attack and Blockchain Interaction
快速部署开源spug运维平台的Docker安装指南
驱动调试之printk的原理与使用
计算机思维模型及其应用
华为云发布代码大模型PanGu-Coder2,实现高效代码生成
Linux多硬盘数据存储和分区操作
构建高可用架构: 分层冗余与自动故障转移
LoRA:高效调参的大语言模型适应方法
《分布式系统的基本原理及互联网分层架构的本质》
Hadoop写流程解析
Java架构师的系统架构设计方法论中的规范要点
使用observeDOM解决BetterScroll插件在移动端无法滑动的问题
互联网一致性架构设计实践
高并发系统架构与水平扩展
混合应用的崛起:跨平台开发取代原生应用