微信(十一) 使用调试助手申请设备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 >!",
    }

}

  

原文地址:https://www.cnblogs.com/kekeoutlook/p/11479308.html

时间: 2024-10-10 05:43:08

微信(十一) 使用调试助手申请设备ID和报备流程的相关文章

如何添加真机调试的iOS设备

如何添加真机调试的iOS设备 注意点: 有时需要同意协议什么的,很多时候刷新出来都是白屏,解决办法: 对于不能确认新协议的问题,我发现了一个解决方法:登陆后,直接在浏览器的地址框访问:https://developer.apple.com/membercenter/mcUpdateAgreement.action,等内容出现后,勾选,再点击"I agree"即可,有点小问题:“I agree”不是一个按钮或者链接,,但能够点击.这个页面就是访问“https://developer.ap

Ember.js 入门指南——调试助手

Ember不仅提供了专门用于调试Ember程序的谷歌.火狐浏览器插件"Ember Inspector"( 安装插件可能需要fa,如果你也是一个程序员我想fq对于你来说应该不是什么难事!!!),还提供了用于调试的helper. 按照惯例,先做好准备工作,分别执行Ember CLI命令创建controller.route和模板: ember generate controller dev-helper ember generate route dev-helper 1,日志助手{{log}

微信公众平台开发(一) 申请微信公众账号

一.微信公众平台介绍 微信公众平台是腾讯公司在微信的基础上新增的功能模块,通过这一平台,个人和企业都可以打造一个微信的公众号,可以群发文字.图片.语音.视频.图文消息五个类别的内容. 二.注册微信公众号 1.注册地址: https://mp.weixin.qq.com/ 点击右上角的"立即注册"申请微信公众账号. 2.填写基本信息 3.激活邮箱账号 到邮箱中收取邮件,激活公众平台账号. 4.信息登记 通过邮箱激活后,填写基本信息.选择为"个人"后,后面只能选择&qu

linux基础学习(十一) 时间的同步 设备的挂载

###时间的同步### 服务端 yum install chrony -y            ##安装服务 vim /etc/chrony.conf            ##主配置文件 21    #Allow NTP client access from local network. 22    allow 172.25.0.0/24     ##允许谁去同步我的时间 27    #Serve time even if not synchronized to any NET server

linux虚拟机的设备id与盘符不一致问题的解决

当用户挂载多个scsi磁盘时,重启虚拟机后虚拟机内部磁盘映射和用户配置的不一致.如图所示,用户配置的虚拟机scsi设备id与盘符对应关系. 当虚拟机重启以后,虚拟机的scsi设备id与盘符的对应关系与用户配置的不一致.如下图所示虚拟机的scsi设备id与盘符不一致: 在这种情况下,Oracle RAC中所使用的盘符对应的设备发生变化时,会对业务造成一定影响. 解决办法: 使用虚拟机scsi设备时需要指定scsi设备id,此解决方法主要适用于使用整个scsi磁盘,不在虚拟机内部对scsi磁盘进行分

Ubuntu 12.04 下,adb命令不显示设备ID

1. 将adb命令添加到/usr/local/bin下.命令: sudo cp ~/working/ics/out/host/linux-x86/bin/adb /usr/local/bin/ 2. 创建文件50-android.rules.命令: sudo vim /etc/udev/rules.d/99-android.rules  (99代表权限,如果有两个这样到文件,执行权限高的.) 输入: SUBSYSTEM=="usb", ATTRS{idVendor}=="17

TCP调试助手

网络开发经常要用到一些TCP&UDP的调试工具,搜集一些备用. 目前总结工具有(不分先后): chrome等自带调试器调试HTTP Fiddler(.NET)和Charles debugger(JAVA) wireshark sokit(使用C++语言,QT基础库开发,开源,https://code.google.com/p/sokit/) TCP/IP Builder TCP/UDP Socket调试工具 2.3 TCPView --------------------------------

如何让Syncthing始终使用同一个设备ID?

设备ID(device id)是Syncthing最重要的参数之一,所有节点的发现.连接等操作,全部是基于这个设备ID!对于已经建立起来的P2P网络,保持重要节点的设备ID唯一性是非常重要的!!!!那么是否Syncthing也能始终保持设备ID的唯一性?可以,不过需要我们自己配置一下!!下面就是能够让Syncthing始终保持设备ID唯一性的方法: 一,拷贝第一次运行的Syncthing的配置文件. 注意:最好是第一次运行Syncthing后,立即拷贝它的配置文件,备份一份!!!配置文件目录:"

使用QT调试助手的设置方法

Qt Creator版本为2.7.0. Qt库版本为4.8.4. MinGW版本为4.40. 此版本的QtCreator的Qt调试助手改用了python,而mingw自带的gdb不支持python,所以需要支持python的gdb,才能使用Qt调试助手. 1.下载支持python的gbd. 支持python的gbd的下载路径如下: http://qt-project.org/wiki/QtCreatorBuildGdb http://download.qt-project.org/develop