make_templet($content);//转换打印模板 if($dev['tpl'] ==0){ $voice = '10';//新订单 }else{ $voice = '11'; //退款订单 } $params = [ "sn" => $dev['dev_id'],//打印机终端号 "voice" => $voice, //语音内容 "content" => $content,//打印内容 "copies" => (int)$dev['prt_num'] //打印分数 ]; $result = json_decode($this->http_post_json('print','POST',$params,true),true); sleep(1);//延时1秒 if($result['code'] != 0){ $this->error = $result['message']; return false; } return $result; } /** * 授权绑定打印机 */ public function add($data) { $params = [ [ "sn" => $data['dev_id'],//打印机终端号 "key"=> $data['dev_key'],//打印机终端密钥 "name"=>$data['dev_name'],//自定义打印机名称(可填) ] ]; $result = json_decode($this->http_post_json('addPrinter','POST',$params,true),true); if($result['code'] != 0){ $this->error = $result['message']; return false; } if(isset($result['data']['fail'][0]['reason'])){ $this->error = $result['data']['fail'][0]['reason']; return false; } return $result; } /** * 删除授权绑定的打印机 */ public function delete($dev_id) { $params = [$dev_id]; $result = json_decode($this->http_post_json('delPrinter','POST',$params,true),true); if($result['code'] != 0){ $this->error = $result['message']; return false; } if(isset($result['data']['fail'][0]['reason'])){ $this->error = $result['data']['fail'][0]['reason']; return false; } return $result; } /** * 获取打印机状态接口 */ public function status($dev_id) { $params['sn'] = $dev_id; $result = json_decode($this->http_post_json('getDeviceStatus','POST',$params,true),true); sleep(1);//延时1秒 if($result['code'] != 0){ return '未知'; } if($result['data']['onlineStatus'] == 1){ if($result['data']['workStatus'] == 0){ return '正常'; } return $result['data']['workStatusDesc']; } return '离线'; } // 请求工具方法 public function http_post_json($url, $method = 'GET', $postfields = null, $debug = false) { $url = $this->config['api_url'] . '/openapi/' . $url; $headers = $this->getHeader($postfields); $body = hema_json($postfields); $ci = curl_init(); /* Curl settings */ curl_setopt($ci, CURLOPT_HTTP_VERSION, CURL_HTTP_VERSION_1_1); curl_setopt($ci, CURLOPT_CONNECTTIMEOUT, 30); curl_setopt($ci, CURLOPT_TIMEOUT, 30); curl_setopt($ci, CURLOPT_RETURNTRANSFER, true); curl_setopt($ci, CURLINFO_HEADER_OUT, true); curl_setopt($ci, CURLOPT_HTTPHEADER, $headers); // 设置通用传参 switch ($method) { case 'POST': curl_setopt($ci, CURLOPT_POST, true); if (!empty($postfields)) { curl_setopt($ci, CURLOPT_POSTFIELDS, $body); } break; } curl_setopt($ci, CURLOPT_SSL_VERIFYPEER, false); // 跳过证书检查 curl_setopt($ci, CURLOPT_SSL_VERIFYHOST, false);// 从证书中检查SSL加密算法是否存在 curl_setopt($ci, CURLOPT_URL, $url); $response = curl_exec($ci); $http_code = curl_getinfo($ci, CURLINFO_HTTP_CODE); $request_header = curl_getinfo($ci, CURLINFO_HEADER_OUT); curl_close($ci); return $response; } // Header通用参数 private function getHeader($data) { $body = hema_json($data); $timestamp = time(); $uid = md5($timestamp); $sign = md5($uid . $this->config['app_key'] . $timestamp . $this->config['app_secret'] . $body); $header = array(); $header[] = "Content-Type:application/json"; $header[] = "appid:" . $this->config['app_key']; $header[] = "uid:" . $uid; $header[] = "stime:" . $timestamp; $header[] = "sign:" . $sign; return $header; } /** * 制作订单模板 * $data 订单数据 * 58mm的机器,一行打印16个汉字,32个字母; */ private function make_templet($data) { /*
换行符 居中 左对齐 右对齐 二维码内容,字符个数范围:<=128个字节 条形码,编码方式:CODE 128B字体,字符个数范围: n < 15 字体大小设置,bolder是否加粗[0 普通 1 加粗] height倍高[取值1-8] width倍宽[取值1-8] 1最小,8最大 */ $content = ''; foreach ($data as $item){ $row_arr = explode(',',$item); $row = $row_arr[0]; for($m=1;$m': $row = "" . $row . ""; break; case '': $row = "" . $row . ""; break; case '': $row = "" . $row . ""; break; case '': $row = "" . $row . ""; break; case '': $row = "" . $row . ""; break; case '': $row = "" . $row . ""; break; case '': $row = "" . $row . ""; break; case '': $row = "" . $row . ""; break; case '': $row = "" . $row . ""; break; case '': $row = "" . $row . ""; break; case '': $row = "" . $row . ""; break; case '': $row = "" . $row . ""; break; case '': $row = "" . $row . ""; break; case '': $row = "" . $row . ""; break; case '': $row = "" . $row . ""; break; case '': $row = "" . $row . ""; break; case '': $row = "" . $row . ""; break; } //居中 if($row_arr[$m] == ''){ $row = "" . $row . ""; } } $content .= $row . "
"; } $content .= "

"; return $content; } }