PC微信hook 抢购专用 获取小程序code 获取小程序订单支付二维码 SessionId 是获取抢购二维吗的关键 pc微信是不存在封号情况的 超级稳定 有需求的可以联系作者测试接口
.版本 2
.支持库 e2ee
.支持库 spec
.子程序 功能_获取支付二维码, 字节集, , 成功返回二维码图片字节集,失败返回空字节集
.参数 session_id, 文本型, , sessionid,可通过api获取
.参数 timeStamp, 文本型, , 时间戳,部分可能是字母开头
.参数 nonceStr, 文本型, , 随机文本
.参数 package, 文本型, , 订单id
.参数 paySign, 文本型, , 签名
.参数 appid, 文本型, , appid
.局部变量 url, 文本型, , , 请求链接
.局部变量 http, 网站客户端
.局部变量 临_json1, 存取键值表
.局部变量 临_json2, 存取键值表
.局部变量 json, 存取键值表, , , 提交json数据
.局部变量 cookie, 文本型
.局部变量 Return, 文本型, , , 请求返回值
.局部变量 uuid, 文本型, , , 返回请求值
.局部变量 QRcode, 文本型
.局部变量 QRImg, 字节集
.局部变量 Str, 文本型
url = “https:
' 下面就是请求头
http.置请求头 (“Host”, “open.weixin.qq.com”)
http.置请求头 (“Accept”, “*
1、启动微信/ post 或 get
/api/OpenWeChat
无参数
返回:
{ "pid": 40692, "accountId": 992 }
pid=微信进程id、accountId=客户句柄(用这个来区分微信和操作微信),pid或者accountId为0则为启动失败
2、获取登陆二维码/ post
/api/GetLoginQrCode
参数:{"accountId": 992 }
返回:
3、检查二维码登陆状态/ post
/api/CheckLoginQrCode
参数:{"accountId": 992 }
返回:
4、退出关闭微信/ post
/api/LogOut
参数:{"accountId": 992 }
返回:
5、获取窗口句柄/ post
/api/Gethwnd
参数:{"accountId": 992 }
返回:
{
"loginhwnd": 4008450,
"mainhwnd": 0
}
loginhwnd=登陆窗口句柄 或 mainhwnd=主窗口句柄 登陆句柄>0说明处于未登陆状态或者是首次登陆正在初始化, 主句柄>0说明登陆成功,初始化完毕,可以调用其他功能了
6、获取小程序code/ post
/api/JsLogin
参数:{"accountId": 992,"appid":"wxa9795213dd51a4b1" }
返回{"Code":"qwertyuiopasdfghjklmnbvcxz123456"}
7、获取SessionId(用来获取小程序支付二维码)/ post
/api/GetSessionId
参数:{"accountId": 992,"appid":"wxa9795213dd51a4b1" }
返回:
{"sessionid":"qwertyuiopasdfghjklmnbvcxz123456"}
8、小程序云函数(获取授权信息等一系列功能)/ post
/api/JsOperateWxData
参数(getuserinfo做示例):
{
"accountId":992,
"appid": "wxa9795213dd51a4b1",
"data": "{\"api_name\":\"webapi_getuserinfo\",\"data\":{\"lang\":\"en\",\"version\":\"2.16.1\"},\"show_confirm\":false,\"with_credentials\":true}"
}
data参数示例:
手机号授权(getuserwxphone):{"api_name":"webapi_getuserwxphone","with_credentials":true}
微信账号授权(getuserinfo):{"api_name":"webapi_getuserinfo","data":{"lang":"en","version":"2.16.1"},"show_confirm":false,"with_credentials":true}
其他:
{"api_name":"GetUploadSetting","data":{},"operate_directly":true,"plugin_appid":"[appid]"}
{"AppId":"wxe79e01ea988f83bc","Scene":1074,"WxData":"{\"api_name\":\"getGetPasskey\",\"data\":{},\"plugin_appid\":\"wx2b03c6e691cd7370\",\"operate_directly\":true}"}
返回:
9、获取a8key/ post
/api/GetA8Key
参数:{"accountId": 992,"wxid":"wxid_123456789","url":"https://mp.weixin.qq.com/s/UBouL9WsfPd16zIJY64iNw" }
返回:
10、获取支付二维码/ post
/api/GetPayQrCode
参数:
{"sessionid":"qwertyuiopasdfghjklzxcvbnm123456","timeStamp":"1649273458","nonceStr":"String","package":"String","paySign":"String","appid":"String"}
本接口不需要带客户句柄
返回:
11、获取登陆状态
/api/GetLoginState
参数:{"accountId": 992}
返回:
{
"ret": 0,
"msg": "未登陆状态!"
}
或
{
"ret": 1,
"msg": "登陆状态!"
}
大概的流程:
启动微信成功后,先轮询窗口句柄,间隔设置个200-1000毫秒,看到登陆句柄出现后再调用获取登陆二维码
拿到二维码后 3分钟内扫码,三分钟未登陆成功,请重新获取一个二维码
手机确认登陆后,轮询登陆状态
登陆成功后,轮询窗口句柄,同样设置间隔,主句柄出现后,就可以调用其他函数(code sessionid 之类的)了
注意事项:微信号调用完成后,不在使用的情况下请务必调用关闭微信接口来结束微信进程
|