xjr-middle/mqtt-sdk

1.0.2 2022-07-19 06:57 UTC

This package is auto-updated.

Last update: 2024-11-19 15:28:22 UTC


README

#设备通信接口 [TOC]

sdk使用演示

php接入sdk

composer require xjr-middle/mqtt-sdk

使用demo

<?php
use XjrMiddle\MqttSdk\MqttManager;
//消息推送
public function publish($payload,$clientid){
    $app = MqttManager::init("你的APPID","你的APP_SECRET");
	$sendData = ['id'=>$clientid,'payload'=>json_encode($payload)];
	return $app::publish($sendData);
}
//添加设备
public  function addDev($device_id)
{
  $app = MqttManager::init("你的APPID","你的APP_SECRET");
  return $app::addDev(['DeviceId'=>$device_id]);
}

自定义对接

####接口域名

http://api.newgearing.com/drop/

公共参数

签名算法

①设所有发送或者接收到的数据为集合M,将集合M内非空参数值的参数按照参数名ASCII码从小到大排序(字典序),使用URL键值对的格式(即key1=value1&key2=value2…)拼接成字符串stringA。

注意如下规则:

◆参数名ASCII码从小到大排序(字典序);

◆如果参数的值为空不参与签名;

◆参数名区分大小写;

◆验证调用返回或主动通知签名时,传送的sign参数不参与签名,将生成的签名与该sign值作校验。

②在stringA最后拼接上appSecret(密钥)得到stringSignTemp字符串,并对stringSignTemp进行MD5运算,再将得到的字符串所有字符转换为大写,得到sign值signValue。
  • 例如
param = appId=你的appId&key1=value1&key2=value2
stringSignTemp = param&appSecret=你的密钥
sign = md5(stringSignTemp)

##接口文档

查询设备类型

请求URL

  • http://xx.com/drop/mqtt/v1/getTypeList

请求方式

  • POST
  • Content-Type : application/x-www-form-urlencoded

参数

返回示例

{
	"requestId": "d6e15d8f-2a4f-46f1-8b5b-03877e9ba6c7", 
	"code": 200, 
	"msg": "查询成功", 
	"data": [
		{
		"key": "XJRCR",  /类型标识
		"name": "快递柜"  //类型名称
		},
		{
		"key": "XJRKR", 
		"name": "快递柜4" 
		}
	] 
}

返回错误

{
	"requestId": "d6e15d8f-2a4f-46f1-8b5b-03877e9ba6c7", 
	"code": 500, 
	"msg": "签名错误"
}

查询设备列表

请求URL

  • http://xx.com/drop/mqtt/v1/getDevList

请求方式

  • POST
  • Content-Type : application/x-www-form-urlencoded

参数

返回示例

{
	"requestId": "d6e15d8f-2a4f-46f1-8b5b-03877e9ba6c7", 
	"code": 200, 
	"msg": "查询成功", 
	"data": [
	    	{
				"deviceId": "DEV0007",  //设备编号
				"typeKey": "XJRNR",  //类型标识
				"typeName": "智能快递柜", //类型名称
				"devName": "快递柜",  //设备名称
				"status": 0,  //状态 0离线1在线
				"dustbinStatus": "",  //垃圾回收箱不同箱体状态,没有对接垃圾回收箱可忽略
				"offline_time": "" //最后离线时间
			},
			{
				"deviceId": "XJRZT0105", 
				"typeKey": "XJRZR", 
				"typeName": "存储柜2", 
				"devName": "设备名称6", 
				"status": 0, 
				"dustbinStatus": "", 
				"offline_time": "2022-07-08T11:35:08+08:00" 
			}
	]
}

返回错误

{
	"requestId": "d6e15d8f-2a4f-46f1-8b5b-03877e9ba6c7", 
	"code": 500, 
	"msg": "签名错误"
}

添加设备

请求URL

  • http://xx.com/drop/mqtt/v1/addDev

请求方式

  • POST
  • Content-Type : application/x-www-form-urlencoded

参数

返回示例

{
	"requestId": "3eacea65-de7e-4ac0-a6b0-ceab46abc22a", 
	"code": 200, 
	"msg": "创建成功", 
	"data": "XJRZT0105" 
}

返回错误

{
	"requestId": "d6e15d8f-2a4f-46f1-8b5b-03877e9ba6c7", 
	"code": 500, 
	"msg": "签名错误"
}

删除设备

请求URL

  • http://xx.com/drop/mqtt/v1/delDevs

请求方式

  • POST
  • Content-Type : application/x-www-form-urlencoded

参数

返回示例

{
	"requestId": "3eacea65-de7e-4ac0-a6b0-ceab46abc22a", 
	"code": 200, 
	"msg": "删除成功", 
	"data": "XJRZT0105" 
}

返回错误

{
	"requestId": "d6e15d8f-2a4f-46f1-8b5b-03877e9ba6c7", 
	"code": 500, 
	"msg": "签名错误/删除失败"
}

推送数据到设备

请求URL

  • http://xx.com/drop/mqtt/v1/publish

请求方式

  • POST
  • Content-Type : application/x-www-form-urlencoded

参数

返回示例

{
	"requestId": "50ae7575-b652-4ca2-9bd9-791071c1712a", 
	"code": 200, 
	"msg": "命令已发送", 
	"data": null 
}

返回错误

{
	"requestId": "d6e15d8f-2a4f-46f1-8b5b-03877e9ba6c7", 
	"code": 500, 
	"msg": "签名错误/设备不在线"
}

#回调地址配置

服务器地址说明 用于接收设备请求,如果需要自行实现后台业务逻辑,请配置自己的业务接口,具体对接文档,请根据设备类型,向软件方索要。

通用回调事件 onDeviceStatus 用于实时监听设备在线状态,当设备离线或者上线时,设备会向回调地址推送该事件,可以实现该事件更新设备状态