微信硬件设备的绑定用device_id如何赋予产品?
发布于 7 年前 作者 fmo 13784 次浏览 来自 问答

希望实现用户微信扫码,然后绑定设备的功能。

参考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后才能绑定。

这样搞是不是意味着必须生产设备的时候,要为每一个设备单独准备固件或二维码,每一个都不一样,不是很崩溃?

是我的理解不对吗?还是有别的办法??

3 回复

谢谢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、文档中存在“设备授权”和“设备授权新接口”两个章节, 以后会不会“设备授权”旧接口?感觉新接口并不方便使用,新接口有其他的优势吗?

楼主你好 ,请问下 调用getqrcode接口时报{“errcode”:48001,“errmsg”:“api unauthorized”}   是怎么处理的??说是api未认证没权限

回到顶部