快速上手
API说明
请求模式
POST请求
接口地址
请求接口地址为:http://{{设备的IP地址}}:38251/command/execute
如设备的IP地址是192.168.1.100,则接口地址为http://192.168.1.100:38251/command/execute
注意:因为是局域网,所以接口地址是http请求。
跨域
支持跨域
入参格式
- 参数说明
名称 | 字段 | 类型 | 可选 | 说明 |
---|---|---|---|---|
密钥 | secretKey | string | N | 设备登录密码。商户平台中创建设备时,生成的那个设备登录密码 |
方法编码 | methodCode | string | N | 具体查看 设备API版本V1 |
是否需要返回值 | needNotify | boolean | N | 默认为false,出参为无。当需要出参数据返回时,该值为true |
业务数据 | data | jsonObject | Y | 设备API版本V1中详细解释业务数据 |
- 入参示例
{
methodCode:'device.volume.set', // 必须
secretKey:'6668886668', // 必须
needNotify:false, // 必须
data:{ // 可选,根据业务需要是否使用
volume:50
}
}
出参格式
- 参数说明
名称 | 字段 | 类型 | 可选 | 说明 |
---|---|---|---|---|
编码 | code | number | N | 查看code枚举 |
业务数据 | data | jsonObject | Y | 需要业务数据时,入参needNotify的值为true |
异常信息 | msg | string | Y | 当code不为0时,有异常信息返回 |
- code枚举
code | msg |
---|---|
0 | 成功 |
-1 | 繁忙 |
410 | 参数错误 |
500 | 未授权,请传入正确的 secretKey ! |
- 出参示例
// 业务处理成功时返回
{
code:0, // code为0,表示业务处理成功
data:{ // 有返回数据的都在data里
}
}
// 业务处理失败时返回
{
code:-1,
msg:'失败信息'
}
使用示例
jquery的ajax请求示例
let IP = '192.168.1.100:38251'; // 设备的IP,此处为demo值
let secretKey = '6668886668'; // 商户后台中,登陆设备使用的设备密码,此处为demo值
// 自定义封装请求方法
function ajax(data={},successFn,errorFn,failFn){
let apiURL = 'http://'+IP+'/command/execute'; // 接口地址
data.secretKey = secretKey;
data.needNotify = !!data.needNotify; // 参数中未传递needNotify时,设置默认值
// jquery请求主体
$.ajax({
type: 'POST',
url: apiURL,
data:JSON.stringify(data),
dataType: 'json',
contentType: 'application/json',
success: function (result) {
if (result.code == 0) {
if(successFn)successFn(result)
} else {
if(failFn)failFn(result)
}
},
error: function () {
if(errorFn)errorFn(result)
}
})
}
ajax({methodCode:'device.volume.set',
needNotify:false, // 当值为false时,可以不传该参数
data:{
volume:50
}},function(){
// 业务处理
// todo ...
},function(){
// 网络异常处理
},function(){
// 异常处理
// todo ...
})
axios的请求示例
import axios from 'axios'
let IP = '192.168.1.100:38251'; // 设备的IP,此处为demo
let secretKey = '6668886668'; // 商户后台中,登陆设备使用的设备密码,此处为demo值
// 自定义封装请求方法
function ajax(data={},successFn,errorFn,failFn){
let apiURL = 'http://'+IP+'/command/execute'; // 接口地址
data.secretKey = secretKey;
data.needNotify = !!data.needNotify; // 参数中未传递needNotify时,设置默认值
let axiosPost = axios.post(apiURL, data).then((result) => {
return result.data;
}).catch(ex => {
if(errorFn)errorFn(result)
});
axiosPost.then((result)=>{
if (result.code == 0) {
if(successFn)successFn(result)
} else {
if(failFn)failFn(result)
}
})
}
ajax({methodCode:'device.volume.set',
needNotify:false,
data:{
volume:50
}},function(){
// 业务处理
// todo ...
},function(){
// 网络异常处理
},function(){
// 异常处理
// todo ...
})