易聯雲熱敏小票打印機提供了豐富的接口和方便的開放平台。這里對於 K4-WH 型號(WIFI 版)的接入流程進行了總結。
K4-WH(WA)接入 WIFI 方法
https://mp.weixin.qq.com/s/RIAUjw-uwtlTNif2VjclIQ
易聯雲雲打印開發文檔
https://www.kancloud.cn/elind-dev/openapi/331992
或
https://doc3.10ss.net/
概念和術語
名詞釋義
自有應用服務模式 :如果您是個人/個體商戶/企業,為自己管理的雲打印機做開發,創建的應用即為自有應用服務模式,只能授權給開發者本人賬號使用。
開放應用服務模式:指企業獨立完成應用的設計開發后,作為商品服務推廣給商戶使用,可以授權多個商戶使用,商戶需要通過Oauth2.0的授權碼模式授權。
client_id: 應用的身份標識,全局唯一的一個字符串,應用的唯一標識,在創建應用時分配
client_secret: 應用的私鑰,一般配合應用的client_id一起成對使用,用來驗證應用的合法性。
動詞釋義
授權: 開發者所開發的應用,想要訪問商戶的信息,則必須經過商戶的同意,由應用發起的商戶是否同意訪問的操作稱之為授權。
推送: 開放平台向應用發送“訂單確認”、“打印狀態變化”、“打印機狀態變化”等消息,稱之為向應用推送消息。
回調: 商戶同意或拒絕應用的授權請求后,開放平台打開應用設置的回調URL並附加上商戶同意或拒絕的操作信息,稱為開放平台回調應用。
接入API
一般管理自己的無線打印機,都是使用“自有應用服務模式”。利用 client_id, client_secret 獲取 access_token(訪問令牌)。
“自有應用服務模式”獲取 access_token(訪問令牌)和終端授權的方法(鏈接)。
每個Client Id 的 Access Token獲取或刷新頻次限制共: 20次/日
該模式下Access Token 無失效時間,做好存儲避免多次獲取導致頻次超過限制!!!
PHP SDK
GitHub:
https://github.com/Qzm6826/yilianyun-php-sdk
SDK 的使用方法參考 Github 倉庫主頁的 Usage。
SDK 里自帶了文本打印和圖形打印等接口的封裝,可以按照 Usage 里的直接調用。
如果要調用聲音調節、訂單確認等接口則需要自己傳入合適的參數:
$ylyRpcClient = new YlyRpcClient($access_token, $config);
// 這個接口會返回success,但是機器沒有反應
$ylyRpcRes = $ylyRpcClient->call('printer/shutdownrestart', array('machine_code' => $machine_code, 'response_type' => 'shutdown'));
$ylyRpcRes = $ylyRpcClient->call('printer/setsound', array('machine_code' => $machine_code, 'response_type' => 'buzzer', 'voice' => 3));
// horn 有女聲語音,提示“設置成功”
$ylyRpcRes = $ylyRpcClient->call('printer/setsound', array('machine_code' => $machine_code, 'response_type' => 'horn', 'voice' => 3));
// printer/printinfo 返回結果
// object(stdClass)#19 (3) {
// ["error"]=>
// string(1) "0"
// ["error_description"]=>
// string(7) "success"
// ["body"]=>
// object(stdClass)#20 (2) {
// ["version"]=>
// string(2) "k4"
// ["print_width"]=>
// string(4) "58mm"
// }
// }
$ylyRpcRes = $ylyRpcClient->call('printer/printinfo', array('machine_code' => $machine_code));
// printer/getversion 錯誤此接口已廢棄!
$ylyRpcRes = $ylyRpcClient->call('printer/getversion', array('machine_code' => $machine_code));
// $ylyRpcRes = $ylyRpcClient->call('printer/getorder', array('machine_code' => $machine_code, 'response_type' => 'close'));
$ylyRpcRes = $ylyRpcClient->call('print/index', array('machine_code' => $machine_code, 'content' => '<FS><center>奇跡出來了</center></FS>', 'origin_id' => mt_rand(100000, 999999)));
var_dump($ylyRpcRes);
die;