365小票打印機打印接口開發文檔


 

API開發文檔

 
 
接口1:打印內容
參數 說明
deviceNo 打印機編號
key 密鑰
printContent 打印內容
times 固定傳1
調用方式:HTTP POST
URL:http://open.printcenter.cn:8080/addOrder
返回結果:JSON字符串
----------S1小票機返回的結果有如下幾種:---------- {"responseCode":0,"msg":"訂單添加成功,打印完成","orderindex":"xxxxxxxxxxxxxxxxxx"} {"responseCode":1,"msg":"訂單添加成功,正在打印中","orderindex":"xxxxxxxxxxxxxxxxxx"} {"responseCode":2,"msg":"訂單添加成功,但是打印機缺紙,無法打印","orderindex":"xxxxxxxxxxxxxxxxxx"} {"responseCode":3,"msg":"訂單添加成功,但是打印機不在線","orderindex":"xxxxxxxxxxxxxxxxxx"} ----------以上情況無須再次發送訂單;下面的情況需要進行錯誤處理---------- {"responseCode":10,"msg":"內部服務器錯誤;"} {"responseCode":11,"msg":"參數不正確;"} {"responseCode":12,"msg":"打印機未添加到服務器;"} {"responseCode":13,"msg":"未添加為訂單服務器;"} {"responseCode":14,"msg":"訂單服務器和打印機不在同一個組;"} {"responseCode":15,"msg":"訂單已經存在,不能再次打印;"}


----------USB小票機返回的結果有如下幾種:---------- {"responseCode":0,"msg":"已加入打印隊列"} {"responseCode":2,"msg":"服務器處理訂單失敗"}




接口2:查詢訂單是否打印成功
參數 說明
deviceNo 打印機編號
key 密鑰
orderindex 訂單索引(orderindex,該值由接口一返回)
調用方式:HTTP POST
URL:http://open.printcenter.cn:8080/queryOrder
返回結果:JSON字符串
----------S1小票機返回的結果有如下幾種:---------- {"responseCode":0,"msg":"打印成功"} {"responseCode":1,"msg":"正在打印中"} {"responseCode":2,"msg":"打印機缺紙"} {"responseCode":3,"msg":"打印機下線"} {"responseCode":16,"msg":"訂單不存在"}




接口3:查詢打印機的狀態
參數 說明
deviceNo 打印機編號
key 打印密鑰
調用方式:HTTP POST
URL:http://open.printcenter.cn:8080/queryPrinterStatus
返回結果:JSON字符串
----------S1小票機返回的結果有如下幾種:---------- {"responseCode":1,"msg":"打印機正常在線"} {"responseCode":2,"msg":"打印機缺紙"} {"responseCode":3,"msg":"打印機下線"}



代碼示例

 

<?php
header("Content-Type: text/html;charset=utf-8");
$DEVICE_NO = '123458615';
$key = '72264';
$content = "^N1^F1\n";
$content .= "^B2 測試打印\n";
$content .= "名稱      單價  數量 金額\n";
$content .= "--------------------------------\n";
$content .= "飯       1.0    1   1.0\n";
$content .= "炒飯      10.0   10  10.0\n";
$content .= "蛋炒飯     10.0   10  100.0\n";
$content .= "雞蛋炒飯    100.0  1   100.0\n";
$content .= "番茄蛋炒飯   1000.0 1   100.0\n";
$content .= "西紅柿蛋炒飯  1000.0 1   100.0\n";
$content .= "西紅柿雞蛋炒飯 100.0  10  100.0\n";
$content .= "備注:加辣\n";
$content .= "--------------------------------\n";
$content .= "^H2合計:xx.0元\n";
$content .= "^H2送貨地點:廣州市南沙區xx路xx號\n";
$content .= "^H2聯系電話:13888888888888\n";
$content .= "^H2訂餐時間:2014-08-08 08:08:08\n";
$qrlength=chr(strlen('http://www.dzist.com'));
$content .= "^Q".$qrlength."http://www.dzist.com\n";
$result = sendSelfFormatOrderInfo($DEVICE_NO, $key, 1,$content);
var_dump($result);
function sendSelfFormatOrderInfo($device_no,$key,$times,$orderInfo){ // $times打印次數
    $selfMessage = array(
        'deviceNo'=>$device_no,  
        'printContent'=>$orderInfo,
        'key'=>$key,
        'times'=>$times
    );                
    $url = "http://open.printcenter.cn:8080/addOrder";
    $options = array(
        'http' => array(
            'header' => "Content-type: application/x-www-form-urlencoded ",
            'method'  => 'POST',
            'content' => http_build_query($selfMessage),
        ),
    );
    $context  = stream_context_create($options);
    $result = file_get_contents($url, false, $context);
    
    return $result;
}

?>

 

打印機基本指令

S1小票機2.0以上版本適用

一、字體放大

命令^Nn:

該命令位於所有數據前面,用於控制打印張數,可以不加,不加默認打一張。

例如:

^N5

打印機打印測試

Print order data

****************

表示打印 5 張相同訂單。

 

 

命令^Hn

該命令位於每行數據首位,用於控制此行字體縱向放大 n 倍,可以不加,不加默認不放大。

例如:

^H2 放大 2 倍

此時“放大 2 倍”這幾個字會縱向放大 2 倍,效果見下圖。

注意:正常大小的字體,每行最多可以打 16 個漢字或 32 個英文或數字,如果每行超過最大字數限制,會出現多出的字覆蓋這行最開始的字,導致看起來亂碼,所以使用該命令請確保字數在每行最大字數內,如果超過,請手動回車換行。

 

 

命令^Wn

該命令位於每行數據首位,用於控制此行字體橫向放大 n 倍,可以不加,不加默認不放大。

例如:

^W2 放大 2 倍

此時“放大 2 倍”這幾個字會橫向放大 2 倍,效果見下圖。

注意:正常大小的字體,每行最多可以打 16 個漢字或 32 個英文或數字,由於^Wn 命令會橫向放大 n 倍,如果每行超過(最大字數/n)限制,會出現多出的字覆蓋這行最開始的字,導致看起來亂碼,所以使用該命令請確保字數在每行字數在(最大字數/n)內,如果超過,請手動回車換行。如^W4 測試打印機放大,共 7 個漢字,放大后會占用 28 個漢字的位置,已經超過每行最多 16 個漢字。

 

 

命令^Bn

該命令位於每行數據首位,用於控制此行字體橫向縱向同時放大 n 倍,可以不加,不加默認不放大。

例如:

^B2 放大 2 倍

此時“放大 2 倍”這幾個字會橫向縱向同時放大 2 倍,效果見下圖。

注意:正常大小的字體,每行最多可以打 16 個漢字或 32 個英文或數字,由於^Bn 命令會橫向縱向同時放大 n 倍,如果每行超過(最大字數/n)限制,會出現多出的字覆蓋這行最開始的字,導致看起來亂碼,所以使用該命令請確保字數在每行字數在(最大字數/n)內,如果超過,請手動回車換行。如 ^B3 測試打印機放大,共 7 個漢字,放大后會占用 21 個漢字的位置,已經超過每行最多 16 個漢字。

 

 

效果圖:

 

 

命令^Qn

該命令位於需要打印的宣傳關注二維碼鏈接首位,用於將鏈接自動轉換成二維碼,達到宣傳關注的目的。n 的值為二維碼鏈接的字符長度,用 ASCII 編碼表示。此命令,可以不加,不加默認不打。

例如:

^Q +http://weixin.qq.com/r/2Eg2LkzEKRFWrQhN9123

此時 http://weixin.qq.com/r/2Eg2LkzEKRFWrQhN9123 的長度為 43,對應 ASCII 值是’+’,計算機可以自動計算長度,這里為了描述清晰,查出 43 對應的 ASCII 字符。此鏈接經過轉換后的二維碼效果見下圖。

注意:此二維碼最多支持 49 個字符,請不要加入中文。打印機會自動更具字符多少轉換成大小不一樣的二維碼,智能打印在打印紙中間。使用最為廣泛的就是微信公眾號的關注二維碼。

 

 

命令^Pn

該命令位於需要打印的動態支付二維碼鏈接首位,用於將鏈接自動轉換成二維碼,達到支付寶等支付的目的(支付成功后,此二維碼失效,即:掃描第二次不起作用)。n 的值為二維碼鏈接的長度,用 ASCII 編碼表示。此命令,可以不加,不加默認不打。

例如:

^P(https://qr.alipay.com/pmr1bs2a1i1udbumf7

此時“https://qr.alipay.com/pmr1bs2a1i1udbumf7”的長度為 40,對應 ASCII 值是’(’,計算機可以自動計算長度,這里為了描述清晰,查出 40 對應的 ASCII 字符。此鏈接經過轉換后的支付二維碼效果見下圖。

注意:此動態支付二維碼最多支持 49 個字符,請不要加入中文。打印機會自動更具字符多少轉換成大小不一樣的二維碼,智能打印在打印紙中間。使用最為廣泛的就是外賣或用餐結束后,結賬時無需再使用現金或者刷卡浪費時間,直接使用支付寶掃描,輸入密碼支付完成即可,效率將非常高。

 

 

命令^On

該命令位於需要打印的動態條碼(一維碼)鏈接首位,用於將鏈接自動轉換成掃描槍掃描的一維碼,達到迅速錄入的目的。n 的值為一維碼的長度,用

ASCII 編碼表示。此命令,可以不加,不加默認不打。

例如:

^P test12345

此時“test12345”的長度為 9,對應 ASCII 值是’ ’(水平制表符),計算機可以自動計算長度,這里為了描述清晰,查出 9 對應的 ASCII 字符。此條碼轉換后的效果見下圖。

注意:此動態條碼最多支持 13 個字符,請不要加入中文。打印機會自動更具字符多少轉換成大小不一樣的條碼,智能打印在打印紙中間。使用最為廣泛的就是物流、倉庫和超市等地方,達到迅速錄入或查找等應用。

 

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM