收藏
回答

微信硬件设备的绑定用device_id如何赋予产品?

问题模块
API和组件

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


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


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

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

最后一次编辑于  2017-08-21  (未经腾讯允许,不得转载)
邀请回答
复制链接收藏投诉关注问题回答

2 个回答

  • 王翊夫if
    王翊夫if
    2017-08-21

    http://iot.weixin.qq.com/wiki/new/index.html?page=3-4-5

    2017-08-21
    赞同
    回复
  • 楷
    楷
    2017-08-21

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

    2017-08-21
    赞同
    回复