用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

数据模型

相关推荐
charlie11451419119 分钟前
勇闯前后端Week2:后端基础——Flask API速览
笔记·后端·python·学习·flask·教程
有风6326 分钟前
基于顺序表完成通讯录项目
后端
yuuki23323327 分钟前
【C++】初识C++基础
c语言·c++·后端
q***876034 分钟前
springboot下使用druid-spring-boot-starter
java·spring boot·后端
程序员西西35 分钟前
SpringBoot无感刷新Token实战指南
java·开发语言·前端·后端·计算机·程序员
南雨北斗39 分钟前
mysql视图的作用
后端
Pa2sw0rd丶43 分钟前
Fastjson 反序列化漏洞深度解析:从原理到实战防护
java·后端·安全
q***64971 小时前
SpringSecurity踢出指定用户
android·前端·后端
q***76661 小时前
SpringSecurity 实现token 认证
android·前端·后端