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

默认模块 wechatapi.net

Base URLs: wechatapi.net

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不单独展示在各个接口内)但是有可能会影响接口的实时响应速度

地区ID在前,地区在后

java 复制代码
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 请求参数

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

请求参数

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

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

返回示例
200 Response

json 复制代码
{
  "ret": 0,
  "msg": "string",
  "data": {
    "qrData": "string",
    "qrUrl": "string",
    "appId": "string",
    "qrImgBase64": "string",
    "uuid": "string"
  }
}

返回结果

状态码 状态码含义 说明 数据模型
200 OK none Inline

返回数据结构

状态码 200

名称 类型 必选 约束 中文名 说明
>> ret integer true none none
>> msg string true none none
>> data object true none 响应数据
>>>> qrData string true none 二维码内包含的信息
>>>> qrUrl string true none 二维码直接打开地址
>>>> appId string true none 设备ID
>>>> qrImgBase64 string true none 二维码图片base64
>>>> uuid string true none 二维码的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

ini 复制代码
<Frame caption="Mac登录流程图,不清楚流程必看">

Body 请求参数

json 复制代码
{
  "appId": "",
  "proxyIp": "",
  "uuid": "",
  "autoSliding": "true"
}

请求参数

名称 位置 类型 必选 说明
VideosApi-token header string none
body body object none
>> appId body string 设备ID
>> proxyIp body string 代理IP 格式:socks5://username:password@123.2.2.2
>> uuid body string 获取二维码返回的uuid
>> captchCode body string 扫码后手机提示输入的验证码,如未提示数字验证码可不传此字段。
>> autoSliding body boolean 是否自动验证true/false,仅限mac使用。true为自动验证,false需要用app扫码验证。如果类型为ipad登录时必须传false。

返回示例
200 Response

json 复制代码
{
  "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"
    }
  }
}

返回结果

状态码 状态码含义 说明 数据模型
200 OK none Inline

返回数据结构

状态码 200

名称 类型 必选 约束 中文名 说明
>> ret integer true none none
>> msg string true none none
>> data object true none 响应数据
>>>> uuid string true none 二维码的uuid
>>>> headImgUrl string true none 头像地址
>>>> nickName string true none 昵称
>>>> expiredTime integer true none 二维码超时时间
>>>> status integer true none 登录状态 0:未扫码 1:已扫码未登录 2:登录成功 4:已扫码取消登录
>>>> loginInfo object true none 登录成功信息
>>>>>> uin integer true none uin
>>>>>> wxid string true none 微信ID,返回此值则是登录成功
>>>>>> nickName string true none 昵称
>>>>>> mobile string true none 绑定的手机号
>>>>>> alias string true none 微信号

POST 弹框登录

POST /login/dialogLogin

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

地区ID在前,地区在后

java 复制代码
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 请求参数

json 复制代码
{
  "appId": "wx_wR_U4zPj2M_OTS3BCyoE4",
  "proxyIp": "",
  "regionId": "320000"
}

请求参数

名称 位置 类型 必选 说明
VideosApi-token header string none
body body object none
>> appId body string 设备ID
>> proxyIp body string 代理IP 格式:socks5://username:password@123.2.2.2
>> regionId body string 地区

返回示例
200 Response

json 复制代码
{
  "ret": 0,
  "msg": "string",
  "data": {
    "appId": "string",
    "uuid": "string"
  }
}

返回结果

状态码 状态码含义 说明 数据模型
200 OK none Inline

返回数据结构

状态码 200

名称 类型 必选 约束 中文名 说明
>> ret integer true none none
>> msg string true none none
>> data object true none 响应数据
>>>> appId string true none 设备ID
>>>> uuid string true none 二维码uuid,执行登录时会用到

POST 退出

POST /login/logout

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

Body 请求参数

json 复制代码
{
  "appId": "",
  "proxyIp": "",
  "regionId": "88"
}

请求参数

名称 位置 类型 必选 说明
VideosApi-token header string none
body body object none
>> appId body string 设备ID

返回示例
200 Response

json 复制代码
{
  "ret": 200,
  "msg": "操作成功"
}

返回结果

状态码 状态码含义 说明 数据模型
200 OK none Inline

返回数据结构

状态码 200

名称 类型 必选 约束 中文名 说明
>> ret integer true none none
>> msg string true none none

POST 检查是否在线

POST /login/checkOnline

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

Body 请求参数

json 复制代码
{
  "appId": "{{appid}}"
}

请求参数

名称 位置 类型 必选 说明
VideosApi-token header string none
body body object none
>> appId body string 设备ID

返回示例
200 Response

json 复制代码
{
  "ret": 200,
  "msg": "操作成功",
  "data": true
}

返回结果

状态码 状态码含义 说明 数据模型
200 OK none Inline

返回数据结构

状态码 200

名称 类型 必选 约束 中文名 说明
>> ret integer true none none
>> msg string true none none
>> data boolean true none none

POST 异常断线重连

POST /login/reconnection

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

Body 请求参数

json 复制代码
{
  "appId": ""
}

请求参数

名称 位置 类型 必选 说明
VideosApi-token header string none
body body object none
>> appId body string 设备ID

返回示例
200 Response

json 复制代码
{
  "ret": 200,
  "msg": "操作成功",
  "data": true
}

返回结果

状态码 状态码含义 说明 数据模型
200 OK none Inline

返回数据结构

状态码 200

名称 类型 必选 约束 中文名 说明
>> ret integer true none none
>> msg string true none none
>> data boolean true none none

POST 无感切换代理ip

POST /login/setProxy

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

Body 请求参数

json 复制代码
{
  "appId": "{{appid}}",
  "proxyIp": "socks5://x:x@111.153.185.21:11332"
}

请求参数

名称 位置 类型 必选 说明
VideosApi-token header string none
body body object none
>> appId body string 设备ID
>> proxyIp body string 代理ip

返回示例
200 Response

json 复制代码
{
  "ret": 0,
  "msg": "string"
}

返回结果

状态码 状态码含义 说明 数据模型
200 OK none Inline

返回数据结构

状态码 200

名称 类型 必选 约束 中文名 说明
>> ret integer true none none
>> msg string true none none

数据模型

相关推荐
Victor3565 小时前
MongoDB(2)MongoDB与传统关系型数据库的主要区别是什么?
后端
JaguarJack6 小时前
PHP 应用遭遇 DDoS 攻击时会发生什么 从入门到进阶的防护指南
后端·php·服务端
BingoGo6 小时前
PHP 应用遭遇 DDoS 攻击时会发生什么 从入门到进阶的防护指南
后端
Victor3566 小时前
MongoDB(3)什么是文档(Document)?
后端
牛奔8 小时前
Go 如何避免频繁抢占?
开发语言·后端·golang
想用offer打牌12 小时前
MCP (Model Context Protocol) 技术理解 - 第二篇
后端·aigc·mcp
KYGALYX14 小时前
服务异步通信
开发语言·后端·微服务·ruby
掘了14 小时前
「2025 年终总结」在所有失去的人中,我最怀念我自己
前端·后端·年终总结
爬山算法15 小时前
Hibernate(90)如何在故障注入测试中使用Hibernate?
java·后端·hibernate
Moment15 小时前
富文本编辑器在 AI 时代为什么这么受欢迎
前端·javascript·后端