典型场景
已在物联网平台注册的设备,若设备的唯一标识码发生变更(如更换设备等场景),第三方应用需要调用此接口在物联网平台更新设备的唯一标识,并重新绑定设备。说明:
仅当设备处于离线状态时,才能进行刷新设备密钥操作。
接口功能
支持第三方应用在物联网平台更新已注册设备的nodeId,在设备deviceId不变的情况下,重新绑新设备。
接口描述
Device::refreshDeviceKey($refreshDeviceKeyarray);
接口所属类
iotyun\huaweiiot\Device;
参数说明
$refreshDeviceKeyarray = array('platformIp' => '平台IP或者域名','platformPort' => '平台端口','appId' => '应用appId','accessToken' => '你系统存储的accessToken','deviceId' => '您的设备ID','rddInArray' => array('verifyCode' => '','nodeId' => '','timeout' => 0));
| 参数 | 必选/可选 | 类型 | 描述 |
|---|---|---|---|
| platformIp | 必选 | String(256) | 物联网平台的IP或者域名。 |
| platformPort | 必选 | String(256) | 物联网平台的端口。 |
| deviceId | 必选 | String(256) | 设备ID,用于唯一标识一个设备,在注册设备时由物联网平台分配获得。 |
| appId | 必选 | String | 如果是本应用的设备,此参数值可以填写null,否则填写授权应用的appId。 |
| accessToken | 必选 | String | 您当前有效的accessToken。 |
| rddInArray | 必选 | array | 具体参见rddInArray的描述。 |
rddInArray:
| 参数 | 必选/可选 | 类型 | 描述 |
|---|---|---|---|
| verifyCode | 可选 | String(256) | 备验证码,若在请求中指定verifyCode,则响应中返回请求中指定的verifyCode;若请求中不指定verifyCode,则由物联网平台自动生成。建议和nodeId设置成一样。 |
| nodeId | 可选 | String(256) | 设备的唯一标识,通常使用MAC,MAC地址,Serial No或IMEI作为nodeId。 - 值空时,nodeId不变。 - 值不为空时,更新nodeId。 |
说明:
若使用IMEI作为nodeId,根据不同厂家的芯片有不同填写要求。
- 高通芯片设备的唯一标识为urn:imei:xxxx,xxxx为IMEI号
- 海思芯片设备的唯一标识为IMEI号
- 其他厂家芯片的设备唯一标识请联系模组厂家确认。
|
| timeout | 可选 | int | 验证码超时时间,单位秒,取值大于等于0的整数。
- 值为空时,使用默认值(180s)。
- 值为0时,永不过期。
- 值为非0,指定时间。
|
返回值
RefreshDeviceKeyOutDTO
| 参数 | 类型 | 描述 |
|---|---|---|
| verifyCode | String(256) | 设备验证码,设备可以通过验证码完成物联网平台的接入认证。若在请求中指定verifyCode,则响应中返回请求中指定的verifyCode;若请求中不指定verifyCode,则由物联网平台自动生成。 |
| timeout | int | 验证码有效时间,单位秒,设备需要在有效时间内接入物联网平台。 |
错误码
| Http状态码 | 错误码 | 错误描述 | 说明 |
|---|---|---|---|
| 200 | 100217 | The application hasn’t been authorized. | 应用未被授权。 处理建议:若非应用授权场景,请确认请求参数中的appId为空。 |
| 400 | 100003 | Invalid verify code. | 验证码无效。 处理建议:请检查接口请求中的verifyCode是否有误。若请求参数中未带verifyCode,请联系物联网平台维护人员处理。 |
| 400 | 100007 | Bad request message. | 参数不合法。 处理建议:deviceId未赋值,请参考请求参数说明填写请求。 |
| 400 | 100426 | The nodeId is duplicated. | nodeId重复。 处理建议:请检查接口请求中nodeId是否有误。 |
| 400 | 100610 | Device is not active. | 设备未激活。 处理建议:请检查该设备是否已接入物联网平台并激活。 |
| 400 | 100611 | Device is online. | 设备在线。 处理建议:请下线该设备或者断开设备与物联网平台的连接。 |
| 400 | 50400 | The input is invalid. | 输入参数无效。 处理建议:请检查接口调用请求中携带参数的合法性。 |
| 401 | 100025 | AppId for auth not exist. | 获取不到appId鉴权信息。 处理建议: - 请检查请求结构体的Header头域中是否给字段app_key赋值。 - 若通过HTTP调用,请联系物联网平台维护人员确认Header头域中放置appId的字段名是app_key还是x-app-key。 |
| 403 | 100203 | The application is not existed. | 授权应用不存在。 处理建议: - 请检查HTTP请求头域中携带的appId是否有误。 - 请检查请求路径(url)中传入的appId是否有误。 |
| 403 | 100217 | The application hasn’t been authorized. | 应用未被授权。 处理建议:若非应用授权场景,请确认请求参数中的appId为空。 |
| 403 | 1010009 | app throttle exceed. | 应用调用接口过于频繁,超过流控值(默认值是100次/60s)。 处理建议:联系物联网平台维护人员调大流控阈值或者控制接口的调用频率。 |
| 403 | 1010005 | Invalid access token or appId. | 错误的token信息。 处理建议:请检查接口请求中所携带的accessToken是否有误。 |
| 404 | 100403 | The device is not existed. | 设备不存在。 处理建议:物联网平台未找到deviceId对应的设备,请检查deviceId是否有误。 |
| 404 | 100418 | The deviceData is not existed. | 设备信息不存在。 处理建议: - 请求参数中携带的deviceId错误。请确认该deviceId是否属于该appId或者deviceId是否写错。 - Header中携带的appId有误,请确认该appId下是否有该deviceId。 - 如果URL中携带了可选参数appId,请检查该appId是否有误。 |
| 500 | 100203 | The application is not existed. | 应用不存在。 处理建议: - 请检查HTTP请求头域中携带的appId是否有误。 - 请检查请求路径(url)中传入的appId是否有误。 |
| 500 | 50252 | Internal server error. | 服务器运行内部错误。 处理建议:物联网平台内部错误,请联系物联网平台维护人员处理。 |
