物联网后台管理
You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
 
 
 
 
 

155 lines
3.8 KiB

<?php
namespace app\common\YingShiSdk;
class YingShiSdk
{
/**
* accessToken
* @var string
*/
protected static $accessToken = 'at.2ym6lk525ytwzdj5b401etyx910qjm87-6f0brt6m6g-0pxk61a-qiocb8src';
/**
* 设备ID
* @var string
*/
protected static $deviceSerial = 'BB6305392';
/**
* appKey
* @var string
*/
protected static $appKey = '62b00fd48ad3473690ca5f3865a01713';
/**
* appSecret
* @var string
*/
protected static $appSecret = '07a97d565dd19bd8081439119c2a3d95';
/**
* 获取AccessToken
* @return string|void
*/
public static function getAccessToken()
{
$url = 'https://open.ys7.com/api/lapp/token/get';
$result = self::curlYingshiApi($url,[
'appKey' => self::$appKey,
'appSecret' => self::$appSecret
]);
$err = $result['err'];
if ($err) return "cURL Error #:" . $err;
$response = $result['response'];
$jsonResponse = json_decode($response,true);
if ($jsonResponse['code'] != '200') return $jsonResponse['msg'];
self::$accessToken = $jsonResponse['data']['accessToken'];
}
/**
* 获取设备状态信息
* @param $accessToken
* @param $deviceSerial
* @return mixed|string
*/
public static function DeviceStatus($accessToken,$deviceSerial)
{
$url = 'https://open.ys7.com/api/lapp/device/status/get';
$curlData = self::curlYingshiApi($url,[
'accessToken' => $accessToken,
'deviceSerial' => $deviceSerial
]);
$err = $curlData['err'];
$response = $curlData['response'];
if ($err) return "cURL Error #:" . $err;
$jsonResponse = json_decode($response,true);
if ($jsonResponse['code'] != '200') return $jsonResponse['msg'];
return $jsonResponse['data'];
}
/**
* 获取单个设备信息
* @param $accessToken
* @param $deviceSerial
* @return mixed|string
*/
public static function DeviceInfo($accessToken,$deviceSerial)
{
$url = 'https://open.ys7.com/api/lapp/device/info';
$curlDataInfo = YingShiSdk::curlYingshiApi($url,[
'accessToken' => $accessToken,
'deviceSerial' => $deviceSerial
]);
$err = $curlDataInfo['err'];
if ($err) return "cURL Error #:" . $err;
$response = $curlDataInfo['response'];
$jsonResponse = json_decode($response,true);
if ($jsonResponse['code'] != '200') return $jsonResponse['msg'];
return $jsonResponse['data'];
}
/**
* 请求接口数据
* @param $url // 请求地址
* @param $data // 请求参数
* @return array
*/
public static function curlYingshiApi($url,$data,$query = 'POST')
{
$dataArr = [];
foreach ($data as $key => $value) $dataArr[] = $key . '=' . $value;
$dataStr = implode('&',$dataArr);
$curl = curl_init();
curl_setopt_array($curl, [
CURLOPT_URL => "{$url}?{$dataStr}",
CURLOPT_RETURNTRANSFER => true,
CURLOPT_ENCODING => "",
CURLOPT_MAXREDIRS => 10,
CURLOPT_TIMEOUT => 30,
CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
CURLOPT_CUSTOMREQUEST => $query,
CURLOPT_HTTPHEADER => [
"Content-Type: application/x-www-form-urlencoded"
],
]);
curl_setopt($curl,CURLOPT_SSL_VERIFYPEER,false);
curl_setopt($curl,CURLOPT_SSL_VERIFYHOST,false);
curl_setopt($curl,CURLOPT_SSLVERSION,0);
$response = curl_exec($curl);
$err = curl_error($curl);
curl_close($curl);
return [
'err' => $err,
'response' => $response
];
}
}