/// <summary> /// 设备批量授权 /// </summary> /// <param name="devices"></param> private List <GetDeviceRetViewModel> AuthDeviceList(List <GetDeviceRetViewModel> devices) { //1.构建请求接口参数列表 var deviceList = new List <DeviceInfoViewModel>(); foreach (var device in devices) { deviceList.Add(new DeviceInfoViewModel() { id = device.deviceid, mac = device.devicemac.PadRight(12, '0'), connect_protocol = "4", auth_key = string.Empty,//ConfigUtil.AuthKey, close_strategy = "1", conn_strategy = "1", crypt_method = "0", auth_ver = "0", manu_mac_pos = "-1", ser_mac_pos = "-2", ble_simple_protocol = "0" }); } //2.请求调用设备授权接口 var configModel = new ConfigDeviceViewModel(); configModel.device_list = deviceList; configModel.device_num = configModel.device_list.Count; configModel.op_type = 1; var setModel = CallAuthDeviceAPI(configModel); if (setModel == null) { throw new MessageException("请求微信硬件授权接口失败"); } else { for (var i = 0; i < setModel.resp.Count; i++) { if (setModel.resp[i].errcode == 0) { devices[i].devicetype = setModel.resp[i].base_info.device_type; } else { throw new MessageException(setModel.resp[i].errmsg); } } } return(devices); }
/// <summary> /// 授权设备 /// </summary> /// <param name="configModel">设备授权信息</param> /// <returns></returns> public AuthDeviceRetViewModel CallAuthDeviceAPI(ConfigDeviceViewModel configModel) { var obj = new AuthDeviceRetViewModel(); string weiXinToken = WeChatService.GetWeiXinToken(EnumWeChatType.Client.GetHashCode()); var url = string.Format(WeChatConsts.IOT_AUTH_DEVICE, weiXinToken); if (configModel != null) { var parms = JsonConvert.SerializeObject(configModel); var result = NetUtil.WechatSendPostRequest(url, parms); obj = JsonConvert.DeserializeObject <AuthDeviceRetViewModel>(result.Trim()); } return(obj); }