一、准备工作

提升开发测试效率,建议使用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

  • 设备只需注册一次,不需要重复注册。

参数:

参数名必选类型说明
appidstring微门禁开放平台申请的appid
appsecretstring微门禁开放平台申请的appsecret
snstring设备序列号

 

返回示例:注册成功

{
  "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

参数:

参数名必选类型说明
appidstring
appsecretstring
snstring
linestring可选,适用于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

参数:

参数名必选类型说明
appidstring
appsecretstring
snstring

 

返回示例:设备在线

{
  "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

参数:

参数名必选类型说明
appidstring
appsecretstring
snstring

 

返回示例:设备在线

{
  "state": 1,
  "state_code": 1,
  "state_msg": "操作成功"
}

4.删除

请求URL:

  • https://www.wmj.com.cn/api/delreglock

    请求方式:

  • POST form-data

参数:

参数名必选类型说明
appidstring
appsecretstring
snstring

 

返回示例:删除成功

{
  "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

参数:

参数名必选类型说明
appidstring
appsecretstring
contentstring

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设备

参数:

参数名必选类型说明
appidstring
appsecretstring
snstring设备序列号
cardsnstringIC卡卡号
endtimestring有效期,时间戳秒的文本

 

返回示例

{
  "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设备

参数:

参数名必选类型说明
appidstring微门禁appid
appsecretstring微门禁appsecret
snstring序列号

 

返回示例

{
  "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设备
    参数:

参数名必选类型说明
appidstringappid
appsecretstringappsecret
snstring序列号
{
	"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

参数:

参数名必选类型说明
appidstringappid
appsecretstringappsecret
snstring序列号
starttimestring开始时间戳

 

返回示例

{
  "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设备

参数:

参数名必选类型说明
appidstring
appsecretstring
snstring设备序列号
cardsnstringIC卡卡号

 

返回示例

{
  "state": 1,
  "state_code": 200,
  "state_msg": "删除成功"
}

11.配置语音接口

请求URL:

  • https://www.wmj.com.cn/api/audioconfig

    请求方式:

  • POST form-data

适用于:

  • 序列号开始为WMJ62设备

参数:

参数名必选类型说明
appidstring微门禁appid
appsecretstring微门禁appsecret
snstring设备序列号
openttscontentstring开门提示语音内容,最大60字
volumeint音量大小,1-7

 

返回示例

{
  "state": 1,
  "state_code": 201,
  "state_msg": "更新成功"
}

12.推送二维码到显示屏(配置显示屏参数)

请求URL:

  • https://www.wmj.com.cn/api/lcdconfig

    请求方式:

  • POST form-data

适用于:

  • 序列号开始为WMJ62,带显示屏设备

 

参数:

参数名必选类型说明
appidstring微门禁appid
appsecretstring微门禁appsecret
snstring设备序列号
qrcodeurlstring如: 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

参数:

参数名必选类型说明
appidstring微门禁appid
appsecretstring微门禁appsecret
snstring设备序列号
addcardmodeint1设备进入发卡模式,2设备退出发卡模式

 

返回示例

{
  "state": 1,
  "state_code": 200,
  "state_msg": "设置成功"
}

14.云喇叭

请求URL:

  • https://www.wmj.com.cn/api/cloudspeaker

    请求方式:

  • POST form-data

适用于:

  • 序列号开始为WMJ62设备

参数:

参数名必选类型说明
appidstring微门禁appid
appsecretstring微门禁appsecret
snstring设备序列号
ttscontentstring播报文字内容,最大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及以上

参数:

参数名必选类型说明
appidstring微门禁appid
appsecretstring微门禁appsecret
snstring设备序列号
cburlstring触发回调后post地址,如www.wmj.com.cn/cbapi...
cbenstring回调使能,1为打开,0为关闭
rcmstring读卡功能选择,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参数

参数名示例值参数类型是否必填参数描述
appidwmj_6bc6gtYMZenText微门禁appid
appsecretVIGBwI5l2wwD0pST2dIMm8MZOeVX3KlTText微门禁appsecret
snWMJ62224209Text设备序列号
txt欢迎光临Text文本内容,不超过6个汉字

成功提示

{
	"state": 1,
	"state_code": 1,
	"state_msg": "成功"
}

17. 同步卡到设备

暂无描述

接口URL

  • https://www.wmj.com.cn/api/synccard

请求方式

POST

Content-Type

json

请求参数

参数名示例值参数类型是否必填参数描述
appidwmj_6bc6gtYMZenText微门禁appid
appsecretVIGBwI5l2wwD0pST2dIMm8MZOeVX3KlTText微门禁appsecret
snWMJ62224209Text设备序列号
cards[{"cardsn": "F6ED9092","endtime": "1828759478"},{"cardsn": "B0C18019","endtime": "1828759478"}]Textcardsn是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参数

参数名示例值参数类型是否必填参数描述
appidwmj_6bd1gtYMZBn-微门禁appid
appsecretVIGBwIvl2dwD0pST2dIMm8MZOeVX36lT-微门禁appsecret
snWMJ62075212-设备序列号
qrtype1Text0为不开启动态时间戳,1为开启
qrsecret1314520Text时间戳加上的数值

预执行脚本

暂无预执行脚本

后执行脚本

暂无后执行脚本

三、案例代码

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-20 11:44
最后编辑:极客师傅  更新时间:2025-04-27 12:41
上一篇:
下一篇: