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.
123 lines
3.3 KiB
123 lines
3.3 KiB
3 years ago
|
<?php
|
||
|
class memobird{
|
||
|
private $ak = ''; //access key
|
||
|
private $url=array(
|
||
|
'getUserId' => 'http://open.memobird.cn/home/setuserbind/',
|
||
|
'printPaper' => 'http://open.memobird.cn/home/printpaper/',
|
||
|
'getPrintStatus' => 'http://open.memobird.cn/home/getprintstatus/'
|
||
|
);
|
||
|
|
||
|
|
||
|
function __construct($ak){
|
||
|
$this->ak = $ak;
|
||
|
date_default_timezone_set('PRC');
|
||
|
}
|
||
|
|
||
|
public function getUserId($memobirdID,$useridentifying){
|
||
|
$params=array(
|
||
|
'ak'=> $this->ak,
|
||
|
'timestamp'=>date('Y-m-d h:m:s',time()),
|
||
|
'memobirdID'=>$memobirdID,
|
||
|
'useridentifying'=>$useridentifying
|
||
|
);
|
||
|
$paramsString = http_build_query($params);
|
||
|
return $this->curl($this->url['getUserId'],$paramsString);
|
||
|
}
|
||
|
|
||
|
public function printPaper($printcontent,$memobirdID,$userID){
|
||
|
$params=array(
|
||
|
'ak'=> $this->ak,
|
||
|
'timestamp'=>date('Y-m-d h:m:s',time()),
|
||
|
'printcontent'=>$printcontent,
|
||
|
'memobirdID'=>$memobirdID,
|
||
|
'userID'=>$userID
|
||
|
);
|
||
|
$paramsString = http_build_query($params);
|
||
|
return $this->curl($this->url['printPaper'],$paramsString);
|
||
|
}
|
||
|
|
||
|
|
||
|
//构造printPaper方法中$printcontent格式,多个可以循环并用|拼接
|
||
|
public function contentSet($type,$content){
|
||
|
switch($type){
|
||
|
case 'T':
|
||
|
$ret = $type.':'.base64_encode($this->charsetToGBK($content)."\n");break;
|
||
|
case 'P':
|
||
|
$ret = 'P:'.base64_encode($content);
|
||
|
default:
|
||
|
}
|
||
|
return $ret;
|
||
|
}
|
||
|
|
||
|
public function getPaperStatus($printcontentID){
|
||
|
$params=array(
|
||
|
'ak'=> $this->ak,
|
||
|
'timestamp'=>date('Y-m-d h:m:s',time()),
|
||
|
'printcontentID'=>$printcontentID
|
||
|
);
|
||
|
$paramsString = http_build_query($params);
|
||
|
return $this->curl($this->url['getPrintStatus'],$paramsString);
|
||
|
}
|
||
|
|
||
|
|
||
|
/**
|
||
|
* 创建http header参数
|
||
|
* @param array $data
|
||
|
* @return bool
|
||
|
*/
|
||
|
private function createHttpHeader() {
|
||
|
//
|
||
|
}
|
||
|
/**
|
||
|
* 发起 server 请求
|
||
|
* @param $action
|
||
|
* @param $params
|
||
|
* @param $httpHeader
|
||
|
* @return mixed
|
||
|
*/
|
||
|
public function curl($action,$params) {
|
||
|
//$action = self::SERVERAPIURL.$action.'.'.$this->format;
|
||
|
//$httpHeader = $this->createHttpHeader();
|
||
|
$ch = curl_init();
|
||
|
curl_setopt($ch, CURLOPT_URL, $action);
|
||
|
curl_setopt($ch, CURLOPT_POST, 1);
|
||
|
curl_setopt($ch, CURLOPT_POSTFIELDS, $params);
|
||
|
//curl_setopt($ch, CURLOPT_HTTPHEADER, $httpHeader);
|
||
|
curl_setopt($ch, CURLOPT_SSL_VERIFYPEER,false); //处理http证书问题
|
||
|
curl_setopt($ch, CURLOPT_HEADER, false);
|
||
|
curl_setopt($ch, CURLOPT_TIMEOUT, 5);
|
||
|
curl_setopt($ch, CURLOPT_DNS_USE_GLOBAL_CACHE, false);
|
||
|
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
|
||
|
$ret = curl_exec($ch);
|
||
|
if (false === $ret) {
|
||
|
$ret = curl_errno($ch);
|
||
|
}
|
||
|
curl_close($ch);
|
||
|
return $ret;
|
||
|
}
|
||
|
|
||
|
public function charsetToGBK($mixed){
|
||
|
if (is_array($mixed)) {
|
||
|
foreach ($mixed as $k => $v) {
|
||
|
if (is_array($v)) {
|
||
|
$mixed[$k] = charsetToGBK($v);
|
||
|
} else {
|
||
|
$encode = mb_detect_encoding($v, array('ASCII', 'UTF-8', 'GB2312', 'GBK', 'BIG5'));
|
||
|
if ($encode == 'UTF-8') {
|
||
|
$mixed[$k] = iconv('UTF-8', 'GBK', $v);
|
||
|
}
|
||
|
}
|
||
|
}
|
||
|
} else {
|
||
|
$encode = mb_detect_encoding($mixed, array('ASCII', 'UTF-8', 'GB2312', 'GBK', 'BIG5'));
|
||
|
//var_dump($encode);
|
||
|
if ($encode == 'UTF-8') {
|
||
|
$mixed = iconv('UTF-8', 'GBK', $mixed);
|
||
|
}
|
||
|
}
|
||
|
return $mixed;
|
||
|
}
|
||
|
|
||
|
|
||
|
}
|