前言
最近因公司需求,微信公众号需要连接蓝牙打印机,找了很多资料,但步骤不清淅,所以写下本篇博客,既是笔记,也是分享。
一、准备
- "测试微信公众号" 或 "认证的微信公众号"
测试号申请:https://mp.weixin.qq.com/debug/cgi-bin/sandbox?t=sandbox/login - 微信硬件平台地址
https://iot.weixin.qq.com/wiki/new/index.html?page=3-4-6
二、步骤
I.简明
1). 设备功能-添加产品(获取产品id)
2). 获取access_token
3). 设备授权新接口(通过产品id,获取deviceid)
4). 设备授权更新(通过deviceid设置mac等信息)
5). 获取设备二维码(扫码绑定设备)
II.详细
1). 设备功能-添加产品**(获取产品id)
2). 获取access_token
http请求方式: GET
https://api.weixin.qq.com/cgi-bin/token?grant_type=client_credential&appid=APPID&secret=APPSECRET
3). 设备授权新接口(通过产品id,获取deviceid)
http请求方式: GET
https://api.weixin.qq.com/device/getqrcode?access_token=ACCESS_TOKEN&product_id=PRODUCT_ID
返回参数:
{
"base_resp": {
"errcode": 0,
"errmsg": "ok"
},
"deviceid": "gh_7b043573e10f_cb1a3409c35a9488",
"qrticket": "http:\/\/we.qq.com\/d\/AQBGBmTCXZE68U8Ixc9AD8S6t6aTjbrPz9IEUtCT"
}
4). 设备授权更新(通过deviceid设置mac等信息)
利用deviceid更新设备属性,第三方公众账号将device id及其属性信息提交公众平台进行授权。
http请求方式: POST
https://api.weixin.qq.com/device/authorize_device?access_token=ACCESS_TOKEN
POST数据:
{
"device_num":"1",
"device_list":[
{
"id":"gh_7b043573e10f_cb1a3409c35a9488",
"mac":"001583CD3830",
"connect_protocol":"3",
"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":"1"
}
详细请查看微信硬件平台 https://iot.weixin.qq.com/wiki/new/index.html?page=3-4-5
字段 | 描述 | |
---|---|---|
access_token | 调用接口凭证 | |
device_num | 设备id的个数 | |
device_list | 设备id的列表 | |
id | 设备的deviceid | |
mac | 设备的mac地址 | |
connect_protocol | 连接协议 | |
crypt_method | auth加密方法 0:不加密 1:AES加密 | |
auth_ver | ||
manu_mac_pos | 表示mac地址在厂商广播manufature data里含有mac地址的偏移 | |
ser_mac_pos | 表示mac地址在厂商serial number里含有mac地址的偏移 | |
ble_simple_protocol | 精简协议类型 | |
op_type | 1:设备更新 |
返回参数
{
"resp": [
{
"base_info": {
"device_type": "gh_7b043573e10f",
"device_id": "gh_7b043573e10f_cb1a3409c35a9488"
},
"errcode": 0,
"errmsg": "ok"
}
]
}
5). 获取设备二维码(扫码绑定设备)
用获取到的ticket,生成二维码
二维码生成
http请求方式: POST
https://api.weixin.qq.com/device/create_qrcode?access_token=ACCESS_TOKEN
POST数据:
{
"device_num":"1",
"device_id_list":["gh_7b043573e10f_cb1a3409c35a9488"]
}
返回参数:
{
"errcode": 0,
"errmsg": "ok",
"device_num": 1,
"code_list": [
{
"device_id": "gh_7b043573e10f_136e9f5f750f9e7f",
"ticket": "http://we.qq.com/d/AQBGBmTC_fjJBFsfHmEhW5N95ckO0vm9vhmIh9U4"
}
]
}