希望实现用户微信扫码,然后绑定设备的功能。
参考http://iot.weixin.qq.com/wiki/new/index.html?page=3-4-6,调用getqrcode接口,得到如下内容
{
“base_resp”: {
“errcode”: 0,
“errmsg”: “ok”
},
“deviceid”: “gh_928e703fd28c_349eca4456010150”,
“qrticket”: “http://we.qq.com/d/AQD78ym-E3O5mDOUiFg_Ee_UfL4fAmqk1TRIqMRi”
}
有两种方式进行设备绑定:
第一种:调用getqrcode接口获取的二维码字符串转成二维码图片,然后逐一打印出来再贴到设备上
第二种:调用getqrcode得到的deviceid,烧写到设备中,用户通过AirKiss获取deviceid进行绑定。
这两种方法都存在问题:不能自己定义deviceid,必须从微信getqrcode获取deviceid后才能绑定。
这样搞是不是意味着必须生产设备的时候,要为每一个设备单独准备固件或二维码,每一个都不一样,不是很崩溃?
是我的理解不对吗?还是有别的办法??
谢谢1楼的回复
按1楼说的接口试了下,可以自定义deviceid了。
实例如下:
https://api.weixin.qq.com/device/authorize_device?access_token=TOKEN { "device_num": "1", "device_list": [ { "id": "dev1", "mac": "XXXXXXXXXXXX", "connect_protocol": "4", "auth_key": "", "close_strategy": "2", "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": "38637" } 返回: { "resp": [ { "base_info": { "device_type": "gh_928e703fd28c", "device_id": "dev1" }, "errcode": 0, "errmsg": "ok" } ]} |
与http://iot.weixin.qq.com/wiki/new/index.html?page=3-4-6所描述的主要的差别在于op_type的不同。
这个文档的描述是这样的:
设备的产品编号(由微信硬件平台分配)。可在公众号设备功能管理页面查询。 当 op_type 为‘0’,product_id 为‘1’时,不要填写 product_id 字段(会引起不必要错误); 当 op_typy 为‘0’,product_id 不为‘1’时,必须填写 product_id 字段; 当 op_type 为 1 时,不要填写 product_id 字段。 |
容易产生误解,product_id就是公众平台上面申请到的硬件的“产品编号”,我的是产品编号38637,一般不会是1吧?这样的描述以为还有别的地方的id。
另外试过op_type为1的情况下调用,返回的结果如下:
{ "resp": [ { "base_info": { "device_type": "gh_928e703fd28c", "device_id": "dev1" }, "errcode": 1, "errmsg": "not exist" } ]}
还有疑问再麻烦1楼兄弟解答一下:
1、文档中存在“设备授权”和“设备授权新接口”两个章节, 以后会不会“设备授权”旧接口?感觉新接口并不方便使用,新接口有其他的优势吗?