news 2026/9/16 16:30:39

使用wechatapi进行微信二次开发,微信api

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
使用wechatapi进行微信二次开发,微信api

默认模块 wechatapi.net

Base URLs:

Authentication

开发API/登录模块

POST (步骤1)获取登录二维码

POST /login/getLoginQrCode

  • appId参数为设备ID,首次登录传空,会自动触发创建设备,掉线后重新登录则必须传接口返回的appId,注意同一个号避免重复创建设备,以免触发官方风控
    - 登录时必须选择本省地区ID,如无本省地区ID请自行购买本省或本市代理IP
  • 如果IPAD类型扫码登录提示“在新设备完成验证以继续登录” 需要更换type为mac进行登录,切换顺序为ipad–>mac。mac类型可以进行验证,当mac出现新设备验证时,参考执行登录接口。也可以直接使用mac登录
  • 取码时传的appId需要与上次登录扫码的微信一致,否则会导致登录失败

如果需要全局代理(即所有接口都走代理,可直接在调用的接口内增加" useProxy:true "字段。useproxy字段默认为false不单独展示在各个接口内)但是有可能会影响接口的实时响应速度

  • 代理TTUID点击下载

地区ID在前,地区在后

110000*北京市|120000*天津市|130000*河北省|140000*山西省|150000*内蒙古210000*辽宁省|220000*吉林省|230000*黑龙江310000*上海市|320000*江苏省|330000*浙江省|340000*安徽省|350000*福建省|360000*江西省|370000*山东省410000*河南省|420000*湖北省|430000*湖南省|440000*广东省|450000*广西省|460000*海南省500000*重庆市|510000*四川省|520000*贵州省|530000*云南省|540000*西藏自治区610000*陕西省|620000*甘肃省|630000*青海省|640000*宁夏自治区|650000*新疆自治区
  • 若目前支持的regionId中没有您所在的地区,可以自行采购socks5协议代理IP,填写到proxyIp参数中
  • 响应结果中的qrImgBase64为二维码图片的base64,前端可使用此值展示给用户扫码。(或使用响应结果中的qrData生成二维码)
  • 地区ID仅供测试,如需正常使用业务建议自行购买干净代理ip。

Body 请求参数

{"appId":"","proxyIp":"","regionId":"320000","type":"ipad","ttuid":"配合regionId/proxyIp使用,传ttuid程序生成的id"}

请求参数

名称位置类型必选说明
VideosApi-tokenheaderstringPS:API后台-点击访问控制-生成Token
bodybodyobjectnone
» appIdbodystring设备ID,首次登录传空,之后传接口返回的appId
» proxyIpbodystring代理IP 格式:socks5://username:password@123.2.2.2
» regionIdbodystring地区
» typebodystring设备类型:ipad、mac(默认为ipad。
» ttuidbodystring代理本机ID,需配合 regionId/proxyIp 使用,不单独使用。可临时借用用户的本地网络取码有50%概率跳过ipad验证。
详细说明

» type: 设备类型:ipad、mac(默认为ipad。
独立appid)

返回示例

200 Response

{"ret":0,"msg":"string","data":{"qrData":"string","qrUrl":"string","appId":"string","qrImgBase64":"string","uuid":"string"}}

返回结果

状态码状态码含义说明数据模型
200OKnoneInline

返回数据结构

状态码200

名称类型必选约束中文名说明
» retintegertruenonenone
» msgstringtruenonenone
» dataobjecttruenone响应数据
»» qrDatastringtruenone二维码内包含的信息
»» qrUrlstringtruenone二维码直接打开地址
»» appIdstringtruenone设备ID
»» qrImgBase64stringtruenone二维码图片base64
»» uuidstringtruenone二维码的uuid

POST (步骤2)执行登录

POST /login/checkLogin

  • 增加ipad人脸识别验证和mac滑块验证,ipad仅支持IOS平台app扫码验证,mac滑块验证支持app扫码验证和系统自动验证,开发者集成平台也可自行集成APP滑块验证,具体请点击ipad登录或者mac登录查看详情
  • 获取登录二维码扫码之后每间隔5s调用本接口来判断是否登录成功,二维码超时时间为120秒
    - 登录成功后logininfo有数据,如果没有数据则需要一直执行,直至出现登录数据或者失败为止。
  • 新设备登录平台,次日凌晨会掉线一次,重新登录时需调用获取二维码且传appId取码,登录成功后则可以长期在线
  • 登录成功后请保存appId与wxid的对应关系,后续接口中会用到
☝️ 首次登录iPad出现**新设备验证**并且**无数字验证码**此时本接口会返回一个二维码网址,开发者需使用IOS设备下载[安盾APP](https://www.pgyer.com/renzhengapp)扫描二维码网址,扫描人脸通过后,再次调用本接口,手机点击确认,则本接口返回登录结果。如果不进行人脸认证则需要切换Mac登录,请查看Mac登录流程 ☝️ 首次登录iPad出现**新设备验证**并且**有数字验证码**直接在captchCode字段输入数字验证码,继续执行登录即可登录。

☝️ 首次登录Mac如果出现新设备验证,可以**选择自动验证**,不需要下载APP。 ☝️ 如果**不选择自动验证**会返回URL。生成二维码之后,需要使用[安卓设备下载APP](https://pan.baidu.com/s/19EEi3Au-IzGT7pN7dQQfFQ?pwd=81rg),扫码进行图形验证。操作完成后继续调用此接口即可通过新设备验证。 ☝️用户若有自己平台App,则可代码接入,无需下载App
<Frame caption="Mac登录流程图,不清楚流程必看">

Body 请求参数

{"appId":"","proxyIp":"","uuid":"","autoSliding":"true"}

请求参数

名称位置类型必选说明
VideosApi-tokenheaderstringnone
bodybodyobjectnone
» appIdbodystring设备ID
» proxyIpbodystring代理IP 格式:socks5://username:password@123.2.2.2
» uuidbodystring获取二维码返回的uuid
» captchCodebodystring扫码后手机提示输入的验证码,如未提示数字验证码可不传此字段。
» autoSlidingbodyboolean是否自动验证true/false,仅限mac使用。true为自动验证,false需要用app扫码验证。如果类型为ipad登录时必须传false。

返回示例

200 Response

{"ret":0,"msg":"string","data":{"uuid":"string","headImgUrl":"string","nickName":"string","expiredTime":0,"status":0,"loginInfo":{"uin":0,"wxid":"string","nickName":"string","mobile":"string","alias":"string"}}}

返回结果

状态码状态码含义说明数据模型
200OKnoneInline

返回数据结构

状态码200

名称类型必选约束中文名说明
» retintegertruenonenone
» msgstringtruenonenone
» dataobjecttruenone响应数据
»» uuidstringtruenone二维码的uuid
»» headImgUrlstringtruenone头像地址
»» nickNamestringtruenone昵称
»» expiredTimeintegertruenone二维码超时时间
»» statusintegertruenone登录状态 0:未扫码 1:已扫码未登录 2:登录成功 4:已扫码取消登录
»» loginInfoobjecttruenone登录成功信息
»»» uinintegertruenoneuin
»»» wxidstringtruenone微信ID,返回此值则是登录成功
»»» nickNamestringtruenone昵称
»»» mobilestringtruenone绑定的手机号
»»» aliasstringtruenone微信号

POST 弹框登录

POST /login/dialogLogin

  • 调用本接口后手机会弹框确认登录页面,点确认后调用执行登录接口检测是否登录成功

地区ID在前,地区在后

110000*北京市|120000*天津市|130000*河北省|140000*山西省|150000*内蒙古210000*辽宁省|220000*吉林省|230000*黑龙江310000*上海市|320000*江苏省|330000*浙江省|340000*安徽省|350000*福建省|360000*江西省|370000*山东省410000*河南省|420000*湖北省|430000*湖南省|440000*广东省|450000*广西省|460000*海南省500000*重庆市|510000*四川省|520000*贵州省|530000*云南省|540000*西藏自治区610000*陕西省|620000*甘肃省|630000*青海省|640000*宁夏自治区|650000*新疆自治区
  • 若目前支持的regionId中没有您所在的地区,可以自行采购socks5协议代理IP,填写到proxyIp参数中
  • 使用本接口登录并非100%成功,本接口返回失败后,可通过扫码登录的方式登录
    • 以下几种情况无法使用本接口登录:
      • 手机点击退出登录
      • 新设备登录次日
      • 官方风控下线

Body 请求参数

{"appId":"wx_wR_U4zPj2M_OTS3BCyoE4","proxyIp":"","regionId":"320000"}

请求参数

名称位置类型必选说明
VideosApi-tokenheaderstringnone
bodybodyobjectnone
» appIdbodystring设备ID
» proxyIpbodystring代理IP 格式:socks5://username:password@123.2.2.2
» regionIdbodystring地区

返回示例

200 Response

{"ret":0,"msg":"string","data":{"appId":"string","uuid":"string"}}

返回结果

状态码状态码含义说明数据模型
200OKnoneInline

返回数据结构

状态码200

名称类型必选约束中文名说明
» retintegertruenonenone
» msgstringtruenonenone
» dataobjecttruenone响应数据
»» appIdstringtruenone设备ID
»» uuidstringtruenone二维码uuid,执行登录时会用到

POST 退出

POST /login/logout

可以只填写appid或者按照示例直接传即可

Body 请求参数

{"appId":"","proxyIp":"","regionId":"88"}

请求参数

名称位置类型必选说明
VideosApi-tokenheaderstringnone
bodybodyobjectnone
» appIdbodystring设备ID

返回示例

200 Response

{"ret":200,"msg":"操作成功"}

返回结果

状态码状态码含义说明数据模型
200OKnoneInline

返回数据结构

状态码200

名称类型必选约束中文名说明
» retintegertruenonenone
» msgstringtruenonenone

POST 检查是否在线

POST /login/checkOnline

响应结果的data=true则是在线,反之为离线

Body 请求参数

{"appId":"{{appid}}"}

请求参数

名称位置类型必选说明
VideosApi-tokenheaderstringnone
bodybodyobjectnone
» appIdbodystring设备ID

返回示例

200 Response

{"ret":200,"msg":"操作成功","data":true}

返回结果

状态码状态码含义说明数据模型
200OKnoneInline

返回数据结构

状态码200

名称类型必选约束中文名说明
» retintegertruenonenone
» msgstringtruenonenone
» databooleantruenonenone

POST 异常断线重连

POST /login/reconnection

账号在线,但是收不到回调 调用此接口

Body 请求参数

{"appId":""}

请求参数

名称位置类型必选说明
VideosApi-tokenheaderstringnone
bodybodyobjectnone
» appIdbodystring设备ID

返回示例

200 Response

{"ret":200,"msg":"操作成功","data":true}

返回结果

状态码状态码含义说明数据模型
200OKnoneInline

返回数据结构

状态码200

名称类型必选约束中文名说明
» retintegertruenonenone
» msgstringtruenonenone
» databooleantruenonenone

POST 无感切换代理ip

POST /login/setProxy

账号更换代理ip,可实现在线切换。
也可退出后重新登录传新的代理ip。

Body 请求参数

{"appId":"{{appid}}","proxyIp":"socks5://x:x@111.153.185.21:11332"}

请求参数

名称位置类型必选说明
VideosApi-tokenheaderstringnone
bodybodyobjectnone
» appIdbodystring设备ID
» proxyIpbodystring代理ip

返回示例

200 Response

{"ret":0,"msg":"string"}

返回结果

状态码状态码含义说明数据模型
200OKnoneInline

返回数据结构

状态码200

名称类型必选约束中文名说明
» retintegertruenonenone
» msgstringtruenonenone

数据模型

版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
网站建设 2026/9/16 16:30:33

JavaWeb金融借贷系统源码解析:Servlet+JDBC全流程实战

简介&#xff1a;这套基于JavaWeb实现的金融借贷系统&#xff08;即P2P金融管理系统/小额贷款平台&#xff09;主要面向计算机相关专业毕业设计学生与Java项目实战开发者&#xff0c;前台提供融资产品浏览、贷款申请、每日新闻查询&#xff0c;后台涵盖贷款申请审核、融资产品与…

作者头像 李华
网站建设 2026/9/16 16:29:08

DEAP脑电情绪识别二分类实战:从MNE数据处理到XGBoost建模

简介&#xff1a;面向脑电情绪识别入门者与机器学习初学者的二分类算法实现&#xff0c;基于公开 DEAP 脑电数据集&#xff0c;完整覆盖快速傅里叶变换&#xff08;FFT&#xff09;特征提取、数据预处理与模型训练评估流程。代码共5个文件&#xff0c;包含4个 Python 脚本和1个…

作者头像 李华
网站建设 2026/9/16 16:28:20

STM32L496嵌入式TLS实战:内存裁剪、证书预加载与LWIP适配

简介&#xff1a;本资源是一套基于RT-Thread操作系统的STM32L496嵌入式TLS安全通信完整工程&#xff0c;面向嵌入式开发工程师、物联网安全实践者及RTOS进阶学习者&#xff0c;解决低功耗Cortex-M4平台下mbedtls集成与TLS端到端实现难题。压缩包共7134个文件&#xff0c;主体为…

作者头像 李华
网站建设 2026/9/16 16:25:54

Wasp 子目录部署指南:baseDir 与 WASP_WEB_CLIENT_URL 的正确配置

Wasp 子目录部署指南&#xff1a;baseDir 与 WASP_WEB_CLIENT_URL 的正确配置 【免费下载链接】wasp The batteries-included full-stack framework for the AI era. Develop JS/TS web apps (React, Node.js, and Prisma) using declarative code that abstracts away complex…

作者头像 李华