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.

122 lines
3.3 KiB

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