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
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
|
|
];
|
|
}
|
|
}
|