微信(十一) 使用调试助手申请设备ID和报备流程
以下流程模拟了一个设备,从微信硬件申请一个产品IP,对此ID进行报备生效,查询自己的绑定主人,给绑定主人发送消息的一系列http请求流程。
1 获取微信密钥
下面需要在公众号设备电脑IP白名单的电脑才能访问成功。 (公众号-开发者选择项)
正常应该是自己的服务器(IP加入白名单)写个脚本每两个小时向微信服务器请求一次,保存在自己的服务器txt里面,然后我们统一去txt(数据库也行)拿,避免多个设备重复申请密钥造成失效和使用次数用尽。

https://api.weixin.qq.com/cgi-bin/token?grant_type=client_credential&appid=wx4ccfdb6e5d7775fa&secret=010745d29f2179d9dafe2d7798c483c7
2 获取分配一个新的设备ID

https://api.weixin.qq.com/device/getqrcode?access_token=25_vLLTmbfSZjMoZAS94915GYrUddEUbRjVJzBGXZDPqE-HVGL5VU9XjX0V03gHabA5hyutrlj2UInLL2Kyg52HxWwggjPEeLbC81hq_KDIkckO7nh1w0e_Wpb04jwQRWiAFABCH&product_id=52715
步骤2里面生成了一个设备ID和设备的二维码网址,ID用来当每个设备的产品ID,二维码链接用来生成二维码使得用户公众号扫描绑定设备。
但是设备还没有注册和报备,暂时不能用,需要经过3步骤才可以在使用。
3 设备注册和授权

https://api.weixin.qq.com/device/authorize_device?access_token=25_vLLTmbfSZjMoZAS94915GYrUddEUbRjVJzBGXZDPqE-HVGL5VU9XjX0V03gHabA5hyutrlj2UInLL2Kyg52HxWwggjPEeLbC81hq_KDIkckO7nh1w0e_Wpb04jwQRWiAFABCH
{
"device_num": "1",
"device_list": [
{
"id": "gh_e93c1b3098b9_cc9b2685cee91b87",
"mac": "28-D2-44-5B-AB-35",
"connect_protocol": "4",
"auth_key": "",
"close_strategy": "1",
"conn_strategy": "1",
"crypt_method": "0",
"auth_ver": "0",
"manu_mac_pos": "-1",
"ser_mac_pos": "-2",
"ble_simple_protocol": "0"
}
],
"op_type": "0",
"product_id": "52715"
}
接收到

{
"resp": [
{
"base_info": {
"device_type": "gh_e93c1b3098b9",
"device_id": "gh_e93c1b3098b9_cc9b2685cee91b87"
},
"errcode": 100008,
"errmsg": "mac invalid"
}
]
}
回到步骤2里面,微信返回了一个设备ID和设备的二维码网址,ID用来当每个设备的产品ID,二维码链接用来生成二维码使得用户公众号扫描绑定设备。
"deviceid": "gh_e93c1b3098b9_cc9b2685cee91b87",
"qrticket":"http://we.qq.com/d/AQCCdUjol1e2RkGSXWepv_1QFWq9HJabtaerktSK"
3-1硬件设备。将这个设备ID和设备类型贴在ESP8266(或者别的芯片)的代码里,每个设备都有唯一一个。
"device_type": "gh_e93c1b3098b9"
"device_id": "gh_e93c1b3098b9_cc9b2685cee91b87"
3-2用户微信绑定设备。
"qrticket":"http://we.qq.com/d/AQCCdUjol1e2RkGSXWepv_1QFWq9HJabtaerktSK"
在草料二维码里面生成二维码,这个二维码贴在设备身上,供用户微信扫描。

之后看到微信公众号-我的设备-多出一个设备

4 微信查询设备绑定的主人(可以有多个人)

https://api.weixin.qq.com/device/get_openid?access_token=19_qLywZOTSRQsE3NhNthVSL-MCFtpgC26QZZlard0yjaXAxW3G3TtNCnoTneMQrQtK-CcpjsruX084iVuLFBsuVRmJJgYKCSlJhcASOH5To_dHPe7jPj30HpGBIif22Pn3be77Hu8Z56KVs8LTOREbAIAYB1&device_type=gh_e93c1b3098b9&device_id=gh_e93c1b3098b9_dae1c2072212185c
5 给用户发消息

https://api.weixin.qq.com/cgi-bin/message/custom/send?access_token=19_uIzAk_rDxS4CLZoAk5016hvXmrjGw-jnH3zPQnZwnZhcw_H7PpfQvWl2KX4vZtl5ykxCJKiRk5ED-rSZs88g-cvq2qkHFKEwSh8ga_phKkg8VNfJbf_u8oB2R7cGhksmBUXpukZ6UhyM729BWXYhAIAPQR
{
"touser":"ognVI6GpDeseo6Qe_S7hGPgwlt8E",
"msgtype":"text",
"text":
{
"content":"文本内容<a href=http://www.qq.com >!",
}
}
微信(十一) 使用调试助手申请设备ID和报备流程的更多相关文章
- java,H5微信蓝牙设备开发教程申请设备和添加设备(2)
转载地址 http://www.vxzsk.com/76.html 申请设备功能 a. 登录公众平台,点击左边功能栏的"添加功能插件",选择"设备功能". b ...
- 微信蓝牙设备开发教程之获取设备deviceid和二维码(3)
文章转载地址 http://www.vxzsk.com/87.html 设备授权 调用 设备授权新接口 ,获取deviceid和二维码,然后利用获取到的deviceid更新设备属性(如mac地址, ...
- Android的WebView调试工具(无需Fan墙,可同时调试多个设备,永不过期)
缘起 前端开发离不开Chrome的开发者工具,尤其是调试Android WebView时.然而,如果使用chrome://Inspect的方法,国内的开发者会惊奇地发现“空白啊”!为此,我发布过这个离 ...
- 利用ZYNQ SOC快速打开算法验证通路(2)——数据传输最简方案:网络调试助手+W5500协议栈芯片
在上一篇该系列博文中讲解了MATLAB待处理数据写入.bin二进制数据文件的过程,接下来需要将数据通过以太网发送到ZYNQ验证平台.之前了解过Xilinx公司面向DSP开发的System Genera ...
- Qt编写网络调试助手(TCP客户端+TCP服务端+UDP服务端)终极版开源
时隔半年,对网络调试助手工具进行所有代码重写,这次目录结果整齐的一逼,代码整齐的一逼,非常完善了,打死也不再改版了.这次真的打死也不再改版了.旧版本1:http://www.qtcn.org/bbs/ ...
- 托管调试助手 "DisconnectedContext":“上下文 0xf20540 已断开连接... 请确保在应用程序全部完成 RuntimeCallableWrapper (表示其内部的 COM 组件)之前,所有 COM 上下文/单元/线程都保持活动状态并可用于上下文转换
最近做一个winForm的小工具,用到了 ManagementObjectSearcher/ManagementClass 和 WndProc ,涉及到对 移动设备的检测. 窗体加载时会执行一个 Re ...
- 串口调试助手vc源程序及其详细编写过程
串口调试助手vc源程序及其详细编写过程 目次: 1.建立项目 2.在项目中插入MSComm控件 3.利用ClassWizard定义CMSComm类控制变量 4.在对话框中添加控件 5.添加串口事件 ...
- 用pyqt5简单实现Mqtt调试助手-初学python
最近在学习pyqt5,因为我们是做远程物联网设备的,所以就做个mqtt调试助手来练手.第一次做这种程序,没有加异常处理,会有很多不足,欢迎留言拍砖,直接上代码了 这个是程序入口, # 使用前先安装py ...
- 基于.Net C# 通信开发-网络调试助手
基于.Net C# 通信开发-网络调试助手1.概述 网络调试助手是集TCP/UDP服务端客户端一体的网络调试工具,可以帮助网络应用设计.开发.测试人员检查所开发的网络应用软硬件的数据收发状况,提高开发 ...
随机推荐
- python运维开发常用模块(二)IPy
1.安装 IP地址规划是网络设计中非常重要的一个环节,规划的好坏会直 接影响路由协议算法的效率,包括网络性能.可扩展性等方面,在这个 过程当中,免不了要计算大量的IP地址,包括网段.网络掩码.广播地 ...
- vulnhub之SP:Harrison靶机
下载地址:‘https://www.vulnhub.com/entry/sp-harrison,302/’ 环境:靶机放在virtualbox上运行,网卡模式 攻击机:kali Linux运行在VMw ...
- Using MS Soap toolkit to generate web services .md
Different SOAP encoding styles - RPC, RPC-literal, and document-literal SOAP Remote Procedure Call(R ...
- laravel框架的中间件middleware的详解
本篇文章给大家带来的内容是关于laravel框架的中间件middleware的详解,有一定的参考价值,有需要的朋友可以参考一下,希望对你有所帮助. laravel中间件是个非常方便的东西,能将一些逻辑 ...
- 笔记本CPU性能排行
截图如下: 1. 图1 2. 图2 3. 4. 5. 6. 7. 8. 谢谢浏览!
- ASP.NET Core 3.0 WebApi 系列【2】.Net Core 3.0+ CodeFirst + MySql 实现数据的迁移
写在前面 在前一小节中,我们创建了基于RESFULL风格的服务.这个小节,尝试使用CodeFirst+MySql 的方式实现数据迁移. 一.开发环境 [1]运行环境:win10 家庭版 [2]开发工具 ...
- 香草js侦测元素是否离开视窗viewport
很多时候,我们需要检查一个元素是否已经部分不在或者全部不在视窗区域,当这种现象发生时做相应的处理. 比如在CMS编辑内容时,其工具菜单很有可能因为内容区域过长导致滑出视窗区域,而工具栏又是经常要使用的 ...
- MYSQL中IN,INSTR,FIND_IN_SET函数效率比较(转)
今天写代码时前台传过来类似‘1,2,3,4,5,6’的字符串,这种情况直接用IN是无效的,需要把字符串分割成数组或者组装成列表,然后再利用mabatis的foreach函数 <select id ...
- javascript DOM中的节点层次和节点类型概述
针对JS高级程序设计这本书,主要是理解概念,大部分要点源自书内.写这个主要是当个笔记加总结 存在的问题请大家多多指正! 因为DOM这方面的对象方法操作性都特别强,但是逻辑很简单,所以就没有涉及到实际的 ...
- c#打开颜色对话框
用button时间 调出颜色对话框来: private void btnForeColor_Click(object sender, EventArgs e) { ...