APIv1文档
一、准备工作
提升开发测试效率,建议使用ApiPost客户端工具做接口测试www.apipost.cn/downl...
接口简要描述:
简要使用说明
接口地址:
https://www.wmj.com.cn/api/
请求方式:POST form-data
获取appid和appsecret地址:www.wmj.com.cn/open
用微信扫码或邮箱注册登录后取得appid和appsecret
AES加密秘钥一般不需要,请留空。
二、接口详情
1.注册
请求URL:
https://www.wmj.com.cn/api/reglock
请求方式:POST form-data
设备只需注册一次,不需要重复注册。
参数:
参数名 | 必选 | 类型 | 说明 |
---|---|---|---|
appid | 是 | string | 微门禁开放平台申请的appid |
appsecret | 是 | string | 微门禁开放平台申请的appsecret |
sn | 是 | string | 设备序列号 |
返回示例:注册成功
{
"state": 1,
"state_code": 1,
"lock_type": 1,
"lock_status": null,
"state_msg": "注册成功"
}
返回示例:设备已存在
{
"state": 0,
"state_code": 1004,
"state_msg": "设备已存在,请勿重复添加"
}
返回示例:设备未激活
{
"state": 0,
"state_code": 1001,
"state_msg": "未激活设备,请联系管理员"
}
2.开门
请求URL:
https://www.wmj.com.cn/api/oplock
请求方式:POST form-data
参数:
参数名 | 必选 | 类型 | 说明 |
---|---|---|---|
appid | 是 | string | 无 |
appsecret | 是 | string | 无 |
sn | 是 | string | 无 |
line | 否 | string | 可选,适用于WMJ11、WMJ13开头的设备,值为数字1-8,对应1序列号多路输出设备1-8路 |
返回示例:开门成功
{
"state": 1,
"state_code": 1,
"status_code": "1",
"lock_type": "1",
"lock_status": "1",
"state_msg": "成功"
}
返回示例:开门失败
{
"state": 0,
"state_code": 0,
"status_code": "1",
"lock_type": "1",
"lock_status": "1",
"state_msg": "失败,网络故障"
}
3.状态查询
请求URL:
https://www.wmj.com.cn/api/lockstatus
请求方式:POST form-data
参数:
参数名 | 必选 | 类型 | 说明 |
---|---|---|---|
appid | 是 | string | 无 |
appsecret | 是 | string | 无 |
sn | 是 | string | 无 |
返回示例:设备在线
{
"state": 1,
"state_code": 1,
"state_msg": "获取成功",
"online": 1,1表示设备在线,0表示设备离线
"ista": null,1表示检测到有人,0表示检测到无人,null为设备不支持该功能
"lockstatus": null,1表示门打开状态,0表示门关闭状态,null为设备不支持该功能
"opentime": null,门开打的时间
"closetime": null,门关闭的时间
}
返回示例:设备离线
{
"state": 1,
"state_code": 1,
"state_msg": "获取成功",
"online": 0,1表示设备在线,0表示设备离线
"ista": null,1表示检测到有人,0表示检测到无人,null为设备不支持该功能
"lockstatus": null,1表示门打开状态,0表示门关闭状态,null为设备不支持该功能
"opentime": null,门开打的时间
"closetime": null,门关闭的时间
}
3.重启设备
请求URL:
https://www.wmj.com.cn/api/restart
请求方式:POST form-data
参数:
参数名 | 必选 | 类型 | 说明 |
---|---|---|---|
appid | 是 | string | 无 |
appsecret | 是 | string | 无 |
sn | 是 | string | 无 |
返回示例:设备在线
{
"state": 1,
"state_code": 1,
"state_msg": "操作成功"
}
4.删除
请求URL:
https://www.wmj.com.cn/api/delreglock
请求方式:POST form-data
参数:
参数名 | 必选 | 类型 | 说明 |
---|---|---|---|
appid | 是 | string | 无 |
appsecret | 是 | string | 无 |
sn | 是 | string | 无 |
返回示例:删除成功
{
"state": 1,
"state_code": 1,
"state_msg": "删除成功"
}
返回示例:无权限操作
{
"state": 0,
"state_code": 4005,
"state_msg": "无权限操作"
}
5.开关(常通常断)设备控制接口
请求URL:
https://api.wmj.com.cn/api/handle
请求方式:POST form-data
参数:
参数名 | 必选 | 类型 | 说明 |
---|---|---|---|
appid | 是 | string | 无 |
appsecret | 是 | string | 无 |
content | 是 | string | 无 |
content {"sn":"WMJ17100011","status":2}
返回示例
{
"state": 1,
"state_code": 1,
"status_code": "3",
"lock_type": "2",// 2为接通,3为断开
"lock_status": "3",
"state_msg": "成功"
}
6.添加IC卡
请求URL:
https://www.wmj.com.cn/api/addcard
请求方式:POST form-data
适用于:
序列号开始为WMJ62设备
参数:
参数名 | 必选 | 类型 | 说明 |
---|---|---|---|
appid | 是 | string | 无 |
appsecret | 是 | string | 无 |
sn | 是 | string | 设备序列号 |
cardsn | 是 | string | IC卡卡号 |
endtime | 是 | string | 有效期,时间戳秒的文本 |
返回示例
{
"state": 1,
"state_code": 200,
"state_msg": "添加成功"
}
{
"state": 1,
"state_code": 201,
"state_msg": "更新成功"
}
7.读取IC卡
请求URL:
https://www.wmj.com.cn/api/readcard
请求方式:POST form-data
适用于:序列号开始为WMJ62设备
参数:
参数名 | 必选 | 类型 | 说明 |
---|---|---|---|
appid | 是 | string | 微门禁appid |
appsecret | 是 | string | 微门禁appsecret |
sn | 是 | string | 序列号 |
返回示例
{
"state": 1,
"state_code": 200,
"state_msg": "读卡成功",
"data": [
{
"carduid": "C0A825CC",
"endtime": "1628759478",
"dateline": "1597223479"
},
{
"carduid": "406B0CCC",
"endtime": "1628759480",
"dateline": "1597223480"
},
{
"carduid": "109810CC",
"endtime": "1628759482",
"dateline": "1597223482"
}
]
}
8.获取刷卡记录(按appid获取帐号下所有)
请求URL:
https://www.wmj.com.cn/api/getcardlog
请求方式:POST form-data
说明:避免数据重复和冗余,本接口数据只能获取1次
适用于:序列号开始为WMJ62设备
参数:
参数名 | 必选 | 类型 | 说明 |
---|---|---|---|
appid | 是 | string | appid |
appsecret | 是 | string | appsecret |
sn | 是 | string | 序列号 |
{
"state": 1,
"state_code": 200,
"state_msg": "获取成功",
"data": [
{
"id": "20467793",
"locksn": "WMJ62593198",
"cardsn": "8CEB180E",
"dateline": "1605887198"
},
{
"id": "20467806",
"locksn": "WMJ62593198",
"cardsn": "4CA3150F",
"dateline": "1605887248"
}
]
}
{
"state": 1,
"state_code": 201,
"state_msg": "无数据"
}
9.获取刷卡开门记录(按设备序列号)
请求URL:
https://www.wmj.com.cn/api/getcardopenlog
请求方式:POST form-data
参数:
参数名 | 必选 | 类型 | 说明 |
---|---|---|---|
appid | 是 | string | appid |
appsecret | 是 | string | appsecret |
sn | 是 | string | 序列号 |
starttime | 否 | string | 开始时间戳 |
返回示例
{
"state": 1,
"state_code": 200,
"state_msg": "获取成功",
"data": [
{
"id": "15578962",
"cardsn": "109810CC",
"dateline": "1597633752"
},
{
"id": "15578951",
"cardsn": "109810CC",
"dateline": "1597633741"
},
{
"id": "15578947",
"cardsn": "109810CC",
"dateline": "1597633733"
},
{
"id": "15578945",
"cardsn": "109810CC",
"dateline": "1597633730"
},
{
"id": "15638697",
"cardsn": "109810CC",
"dateline": "1597724171"
},
{
"id": "15638692",
"cardsn": "406B0CCC",
"dateline": "1597724168"
},
{
"id": "15638688",
"cardsn": "406B0CCC",
"dateline": "1597724165"
},
{
"id": "15638686",
"cardsn": "406B0CCC",
"dateline": "1597724164"
},
{
"id": "15635482",
"cardsn": "109810CC",
"dateline": "1597719855"
},
{
"id": "15635451",
"cardsn": "109810CC",
"dateline": "1597719792"
},
{
"id": "15635438",
"cardsn": "109810CC",
"dateline": "1597719775"
},
{
"id": "15690444",
"cardsn": "109810CC",
"dateline": "1597814632"
},
{
"id": "15593365",
"cardsn": "109810CC",
"dateline": "1597652803"
},
{
"id": "15596175",
"cardsn": "406B0CCC",
"dateline": "1597655964"
},
{
"id": "15596180",
"cardsn": "109810CC",
"dateline": "1597655965"
},
{
"id": "15596182",
"cardsn": "C0A825CC",
"dateline": "1597655968"
},
{
"id": "15693549",
"cardsn": "109810CC",
"dateline": "1597818810"
}
]
}
10.删除IC卡接口
请求URL:
https://www.wmj.com.cn/api/delcard
请求方式:POST form-data
适用于:
序列号开始为WMJ62设备
参数:
参数名 | 必选 | 类型 | 说明 |
---|---|---|---|
appid | 是 | string | 无 |
appsecret | 是 | string | 无 |
sn | 是 | string | 设备序列号 |
cardsn | 是 | string | IC卡卡号 |
返回示例
{
"state": 1,
"state_code": 200,
"state_msg": "删除成功"
}
11.配置语音接口
请求URL:
https://www.wmj.com.cn/api/audioconfig
请求方式:POST form-data
适用于:
序列号开始为WMJ62设备
参数:
参数名 | 必选 | 类型 | 说明 |
---|---|---|---|
appid | 是 | string | 微门禁appid |
appsecret | 是 | string | 微门禁appsecret |
sn | 是 | string | 设备序列号 |
openttscontent | 是 | string | 开门提示语音内容,最大60字 |
volume | 是 | int | 音量大小,1-7 |
返回示例
{
"state": 1,
"state_code": 201,
"state_msg": "更新成功"
}
12.推送二维码到显示屏(配置显示屏参数)
请求URL:
https://www.wmj.com.cn/api/lcdconfig
请求方式:POST form-data
适用于:
序列号开始为WMJ62,带显示屏设备
参数:
参数名 | 必选 | 类型 | 说明 |
---|---|---|---|
appid | 是 | string | 微门禁appid |
appsecret | 是 | string | 微门禁appsecret |
sn | 是 | string | 设备序列号 |
qrcodeurl | 是 | string | 如: wxapp.wmj.com.cn/min... |
####最后这个&st=必须加上
返回示例
{
"state": 1,
"state_code": 200,
"state_msg": "配置成功"
}
13.控制设备进出发卡模式
请求URL:
https://www.wmj.com.cn/api/devaddcard
请求方式:POST form-data
参数:
参数名 | 必选 | 类型 | 说明 |
---|---|---|---|
appid | 是 | string | 微门禁appid |
appsecret | 是 | string | 微门禁appsecret |
sn | 是 | string | 设备序列号 |
addcardmode | 是 | int | 1设备进入发卡模式,2设备退出发卡模式 |
返回示例
{
"state": 1,
"state_code": 200,
"state_msg": "设置成功"
}
14.云喇叭
请求URL:
https://www.wmj.com.cn/api/cloudspeaker
请求方式:POST form-data
适用于:
序列号开始为WMJ62设备
参数:
参数名 | 必选 | 类型 | 说明 |
---|---|---|---|
appid | 是 | string | 微门禁appid |
appsecret | 是 | string | 微门禁appsecret |
sn | 是 | string | 设备序列号 |
ttscontent | 是 | string | 播报文字内容,最大60字 |
返回示例
{
"state": 1,
"state_code": 201,
"state_msg": "推送成功"
}
15.回调地址配置及使能
请求URL:
https://www.wmj.com.cn/api/cbconfig
请求方式:POST form-data
适用于:
序列号开始为WMJ62设备,该功能用于实时推送门开关状态变化等需求。自定义地址接收状态变化,因使用的是Post协议,该功能会消耗大量流量。
设备固件程序版本为V3_1.0.5及以上
参数:
参数名 | 必选 | 类型 | 说明 |
---|---|---|---|
appid | 是 | string | 微门禁appid |
appsecret | 是 | string | 微门禁appsecret |
sn | 是 | string | 设备序列号 |
cburl | 是 | string | 触发回调后post地址,如www.wmj.com.cn/cbapi... |
cben | 是 | string | 回调使能,1为打开,0为关闭 |
rcm | 否 | string | 读卡功能选择,0为普通,2为读卡器模式 |
使用说明:
前提:cben参数配置为1时有效,配置为0时无效
1.门状态变化接收控制器:doorstate,自定义开发接收门状态变化url应为cburl+doorstate,案例地址(www.wmj.com.cn/cbapi...
doorstate接口post回参数如下:
Content-Type = "application/x-www-form-urlencoded"
sn,设备序列号
state,0或1,0时状态线导通,1时状态线断开。
返回示例
{
"state": 1,
"state_code": 201,
"state_msg": "配置成功"
}
2.刷卡日志直传,回传地址为cburl+readcardcb,即设备向类似地址post数据(例:www.wmj.com.cn/cbapi...
设备回传:post,参数:sn,cardsn,cardetime.(设备序列号,卡号,卡过期时间)
3.读卡器:回传地址为cburl+cardreader,即设备向类似地址post数据(例:www.wmj.com.cn/cbapi...
设备回传:post,参数:sn,cardsn.(设备序列号,卡号)
4.反扫码功能:回传地址为cburl+scancodecb,即设备向类似地址post数据(例:www.wmj.com.cn/cbapi...
设备传回:post,参数:sn,qrdata(设备序列号,扫到的二维码数据)
用户代码处理后向设备返回json格式数据应如下:
{"state":1,"state_code":200,"uid":123456,"state_msg":"开门成功"}
state:状态为1且state_code为200时,设备认为服务端判断成功,执行开门动作;uid为开门用户id,自行定义;state_msg为提示语音文本,设置什么文本开门时就播报什么语音。
设备开门成功后会向cburl+scanopenlog上传post日志数据sn(设备序列号)和uid(上面传回的uid,便于记录开门日志)(例:www.wmj.com.cn/cbapi...
16. 设置LCD显示文本
暂无描述
接口URL
https://www.wmj.com.cn/api/setlcdtxt
请求方式
POST
Content-Type
form-data
请求Body参数
参数名 | 示例值 | 参数类型 | 是否必填 | 参数描述 |
---|---|---|---|---|
appid | wmj_6bc6gtYMZen | Text | 是 | 微门禁appid |
appsecret | VIGBwI5l2wwD0pST2dIMm8MZOeVX3KlT | Text | 是 | 微门禁appsecret |
sn | WMJ62224209 | Text | 是 | 设备序列号 |
txt | 欢迎光临 | Text | 是 | 文本内容,不超过6个汉字 |
成功提示
{
"state": 1,
"state_code": 1,
"state_msg": "成功"
}
17. 同步卡到设备
暂无描述
接口URL
https://www.wmj.com.cn/api/synccard
请求方式
POST
Content-Type
json
请求参数
参数名 | 示例值 | 参数类型 | 是否必填 | 参数描述 |
---|---|---|---|---|
appid | wmj_6bc6gtYMZen | Text | 是 | 微门禁appid |
appsecret | VIGBwI5l2wwD0pST2dIMm8MZOeVX3KlT | Text | 是 | 微门禁appsecret |
sn | WMJ62224209 | Text | 是 | 设备序列号 |
cards | [{"cardsn": "F6ED9092","endtime": "1828759478"},{"cardsn": "B0C18019","endtime": "1828759478"}] | Text | 是 | cardsn是IC卡序列号,endtime是过期时间戳 |
json数据格式
{
"appid": "wmj_L1LNXKNRcsH",
"appsecret": "uEfAyP3x99PZzsgc7T0XiWInWH9S3J1F",
"sn": "WMJ62229679",
"cards": [{"cardsn": "F6ED9092","endtime": "1828759478"},{"cardsn": "B0C18019","endtime": "1828759478"}]
}
成功提示
{
"state": 1,
"state_code": 1,
"state_msg": "同步成功"
}
18. 设置二维码参数
将二维码设置为静态或者动态
接口URL
www.wmj.com.cn/api/s...
请求方式
POST
Content-Type
form-data
请求Body参数
参数名 | 示例值 | 参数类型 | 是否必填 | 参数描述 |
---|---|---|---|---|
appid | wmj_6bd1gtYMZBn | - | 是 | 微门禁appid |
appsecret | VIGBwIvl2dwD0pST2dIMm8MZOeVX36lT | - | 是 | 微门禁appsecret |
sn | WMJ62075212 | - | 是 | 设备序列号 |
qrtype | 1 | Text | 是 | 0为不开启动态时间戳,1为开启 |
qrsecret | 1314520 | Text | 是 | 时间戳加上的数值 |
预执行脚本
暂无预执行脚本
后执行脚本
暂无后执行脚本
三、案例代码
PHP案例代码及说明(使用接口方式一,推荐使用)
<?php
header("Content-type: text/html; charset=utf-8");
$para['sn'] = 'WMJ19900007'; //锁的序列号,这个序列号贴在每个模块的标签上。
/*
* DEMO -- 提交模块到系统注册,注意:所有关于设备的操作,都需要先注册设备到系统才可以操作,只需注册一次
*/
$opresult = wmjHandle('reglock',$para);
print_r($opresult);//输出注册信息
/*
提交模块到系统注册 返回码说明
state:
1:成功
0:失败
state_code:
1:添加成功
0:添加失败
1001:参数错误或账户被禁用
1002:没有上传设备序列号(加密和不加密不统一也有会导致这个错误)
1003:设备序列号错误
1004:设备已存在,请勿重复注册(严格权限控制,设备只能在系统中存在一次,如通过其他方式添加了设备,请先删除注册)
*/
/*
* DEMO -- 开门接口
*/
$opresult = wmjHandle('oplock',$para);
print_r($opresult);//输出开门结果
/*
开门接口 返回码说明
state:
1:成功
0:失败
state_code:
1:开门成功
0:开门失败
2001:参数错误或账户被禁用
2002:没有上传设备序列号(加密和不加密不统一也有会导致这个错误)
2003:设备序列号错误
2004:设备不存在
2005:无权限操作(出现这个错误是因为设备不是通过此appid添加的)
2006:连接服务器出错,请重试(此服务器是模块操作服务器)
*/
/*
* DEMO -- 删除注册接口
*/
//$opresult = wmjHandle('delreglock',$para);
//print_r($opresult);//输出删除结果
/*
删除模块接口 返回码说明
state:
1:成功
0:失败
state_code:
1:删除成功
0:删除失败
4001:参数错误或账户被禁用
4002:没有上传设备序列号(加密和不加密不统一也有会导致这个错误)
4003:设备序列号错误
4004:设备不存在
4005:无权限操作(出现这个错误是因为设备不是通过此appid添加的)
*/
/*
* DEMO -- 查询模块在线状态
*/
$opresult = wmjHandle('lockstatus',$para);
print_r($opresult);//输出删除结果
/*
查询模块在线状态 返回码说明
state:
1:成功
0:失败
state_code:
1:查询成功
0:查询失败
5001:参数错误或账户被禁用
5002:没有上传设备序列号(加密和不加密不统一也有会导致这个错误)
5003:设备序列号错误
5004:设备不存在
online
1:在线
0:不在线
*/
/*
*DEMO -- wmjHandle函数
*/
function wmjHandle($type, $para)
{
$data=$para;
$data['appid']='wmj_sP3ucguIBQU';
$data['appsecret']='aOzP1QddgBC04KkLr2eOlujrD9VUDJTP';
$url = 'https://www.wmj.com.cn/api/'.$type.'.html';
$result = wmjHttpPost($url, http_build_query($data));
return $result;
}
/*
*DEMO -- wmjHttpPost函数
*/
function wmjHttpPost($url, $data) {
$curl = curl_init();
curl_setopt($curl, CURLOPT_TIMEOUT, 30);
curl_setopt($curl, CURLOPT_URL, $url);
curl_setopt($curl, CURLOPT_SSL_VERIFYPEER,FALSE);
curl_setopt($curl, CURLOPT_SSL_VERIFYHOST,FALSE);
curl_setopt($curl, CURLOPT_CUSTOMREQUEST, 'POST');
curl_setopt($curl, CURLOPT_POSTFIELDS, $data);
curl_setopt($curl, CURLOPT_RETURNTRANSFER, TRUE);
curl_setopt($curl, CURLOPT_HTTPHEADER, array(
'Content-Type: application/x-www-form-urlencoded',
'Content-Length: ' . strlen($data))
);
$res = curl_exec ($curl);
curl_close($curl);
$res = trim($res, "\xEF\xBB\xBF");
$res = json_decode($res, true);
return $res;
}
?>
PHP案例代码及说明(使用接口方式二,兼容早期程序保留)
<?php
header("Content-type: text/html; charset=utf-8");
define('APPID', 'wmj_sP3ucguIBQU');
define('APPSECRET', 'aOzP1QddgBC04KkLr2eOlujrD9VUDJTP');
define('AESKEY', ''); //AES加密密钥,需要和开放平台保持一致,否则会报错,如未启用加密,请留空
$lock_sn = 'WMJ19900007'; //锁的序列号,这个序列号贴在每个模块的标签上。
//$lock_sn = aesEncrypt($lock_sn, AESKEY); //传递数据经过AES加密,如果需要的话就用。
/*
* DEMO -- 提交模块到系统注册,注意:所有关于设备的操作,都需要先添加设备到系统才可以操作
*/
//$postlock = httpPost('https://www.wmj.com.cn/api/postlock.html?appid='.APPID.'&appsecret='.APPSECRET, $lock_sn);
//$postlock = trim($postlock, "\xEF\xBB\xBF"); //去除BOM头
//print_r(json_decode($postlock, true));
/*
提交模块到系统注册 返回码说明
state:
1:成功
0:失败
state_code:
1:添加成功
0:添加失败
1001:参数错误或账户被禁用
1002:没有上传设备序列号(加密和不加密不统一也有会导致这个错误)
1003:设备序列号错误
1004:设备已存在,请勿重复添加(设备只能在系统中存在一次,如通过其他方式添加了设备,请先删除)
*/
/*
* DEMO -- 开门接口
*/
$openlock = httpPost('https://www.wmj.com.cn/api/openlock.html?appid='.APPID.'&appsecret='.APPSECRET, $lock_sn);
$openlock = trim($openlock, "\xEF\xBB\xBF"); //去除BOM头
print_r(json_decode($openlock, true));
/*
开门接口 返回码说明
state:
1:成功
0:失败
state_code:
1:开门成功
0:开门失败
2001:参数错误或账户被禁用
2002:没有上传设备序列号(加密和不加密不统一也有会导致这个错误)
2003:设备序列号错误
2004:设备不存在
2005:无权限操作(出现这个错误是因为设备不是通过此appid添加的)
2006:连接服务器出错,请重试(此服务器是模块操作服务器)
*/
/*
* DEMO -- 删除模块接口
*/
//$dellock = httpPost('https://www.wmj.com.cn/api/dellock.html?appid='.APPID.'&appsecret='.APPSECRET, $lock_sn);
//$dellock = trim($dellock, "\xEF\xBB\xBF"); //去除BOM头
//print_r(json_decode($dellock, true));
/*
删除模块接口 返回码说明
state:
1:成功
0:失败
state_code:
1:删除成功
0:删除失败
4001:参数错误或账户被禁用
4002:没有上传设备序列号(加密和不加密不统一也有会导致这个错误)
4003:设备序列号错误
4004:设备不存在
4005:无权限操作(出现这个错误是因为设备不是通过此appid添加的)
*/
/*
* DEMO -- 查询模块在线状态
*/
//$lockstate = httpPost('https://www.wmj.com.cn/api/lockstate.html?appid='.APPID.'&appsecret='.APPSECRET, $lock_sn);
//$lockstate = trim($lockstate, "\xEF\xBB\xBF"); //去除BOM头
//print_r(json_decode($lockstate, true));
/*
查询模块在线状态 返回码说明
state:
1:成功
0:失败
state_code:
1:查询成功
0:查询失败
5001:参数错误或账户被禁用
5002:没有上传设备序列号(加密和不加密不统一也有会导致这个错误)
5003:设备序列号错误
5004:设备不存在
online
1:在线
0:不在线
*/
/*
* DEMO -- SIM卡信息查询接口
*/
//$sim_no = '#########'; //锁的SIM号码,和设备序列号一样,贴在设备上的。
//$sim_no = aesEncrypt($sim_no, AESKEY); //传递数据经过AES加密,如果需要的话就用。
//$sim = httpPost('https://www.wmj.com.cn/api/sim.html?appid='.APPID.'&appsecret='.APPSECRET, $sim_no);
//$sim = trim($sim, "\xEF\xBB\xBF"); //去除BOM头
//print_r(json_decode($sim, true));
/*
SIM卡信息查询接口 返回码说明
state:
1:成功
0:失败
state_code:
1:获取成功
0:获取失败
6001:参数错误或账户被禁用
6002:没有上传SIM号码(加密和不加密不统一也有会导致这个错误)
sim信息说明
msisdn:SIM卡业务号码
status:SIM号码状态
operator:运营商
expiration:SIM号码资费过期时间
totaldata:总流量
outdata:已使用流量
*/
/*
* DEMO -- 替换模块接口
*/
//$replace_str = json_encode(array( 'old_sn' => OLD_SN, 'new_sn' => NEW_SN,));
//$replock = httpPost('https://www.wmj.com.cn/api/replace.html?appid='.APPID.'&appsecret='.APPSECRET, $replace_str);
//$replock = trim($replock, "\xEF\xBB\xBF"); //去除BOM头
//print_r(json_decode($replock, true));
/*
替换模块接口 返回码说明
state:
1:成功
0:失败
state_code:
1:替换成功
0:替换失败
8001:参数错误或账户被禁用
8002:未上传旧设备SN
8003:旧设备SN错误
8004:未上传新设备SN
8005:新设备序列号错误
8006:旧设备不存在或无管理权限
8007:新设备已存在,无法替换
8008:新旧设备类型不一致,替换失败
*/
/*
*DEMO -- httpPost函数
*/
function httpPost($url, $str) {
$curl = curl_init();
curl_setopt($curl, CURLOPT_TIMEOUT, 30);
curl_setopt($curl, CURLOPT_URL, $url);
curl_setopt($curl, CURLOPT_SSL_VERIFYPEER,FALSE);
curl_setopt($curl, CURLOPT_SSL_VERIFYHOST,FALSE);
curl_setopt($curl, CURLOPT_CUSTOMREQUEST, 'POST');
curl_setopt($curl, CURLOPT_POSTFIELDS, $str);
curl_setopt($curl, CURLOPT_RETURNTRANSFER, TRUE);
curl_setopt($curl, CURLOPT_HTTPHEADER, array(
'Content-Type: application/json',
'Content-Length: ' . strlen($str))
);
$res = curl_exec ($curl);
curl_close($curl);
return $res;
}
/*
* AES加密 -- 加密采用128位CBC模式加密
*/
function aesEncrypt ($value, $key) {
$padSize = 16 - (strlen($value) % 16);
$value = $value . str_repeat(chr($padSize), $padSize) ;
$output = mcrypt_encrypt(MCRYPT_RIJNDAEL_128, $key, $value, MCRYPT_MODE_CBC, str_repeat(chr(0), 16));
return base64_encode($output);
}
?>
四、在线调试工具
runapi.showdoc.cc/
使用界面如下:
最后编辑:极客师傅 更新时间:2025-04-27 12:41