易聯(lián)云小票打印機(jī)對接

官網(wǎng)地址

https://www.yilianyun.net/

SDK

https://gitee.com/diycp/openapi-sdk

相關(guān)代碼
<?php
namespace app\work\logic;

use App\Config\YlyConfig;
use App\Oauth\YlyOauthClient;
use App\Api\PrinterService;
use App\Api\PrintService;
use App\Api\PicturePrintService;

use think\Db;

//易聯(lián)云小票打印機(jī)
class PrinterApi extends \app\common\controller\Base
{

    //應(yīng)用ID
    private static $app_id;
    //應(yīng)用密鑰
    private static $app_secret;
    //打印機(jī)編號
    private static $terminal_no;
    //打印機(jī)密鑰
    private static $terminal_secret;
    //打印機(jī)配置
    private static $config;
    //打印機(jī)access_token
    private static $access_token;


    //調(diào)用打印機(jī)
    public static function callPrint()
    {
        $config = Db::table('shop_printer')->where('id',1)->find();
        self::$app_id = $config['app_id'];
        self::$app_secret = $config['app_secret'];
        self::$terminal_no = $config['terminal_no'];
        self::$terminal_secret = $config['terminal_secret'];

        $map['app_id'] = self::$app_id;
        $map['expires_time'] = array('lt',time());
        $printer_token = Db::table("printer_token")->where($map)->find();
        self::$config = new YlyConfig(self::$app_id, self::$app_secret);
        if($printer_token){
            self::$access_token = $printer_token['access_token'];
        }else{
            $client = new YlyOauthClient(self::$config);
            $token = $client->getToken();
            Db::table("printer_token")->where(['app_id'=>self::$app_id])->update(['access_token'=>$token->access_token,'refresh_token'=>$token->refresh_token,'expires_time'=>time+$token->expires_in]);
            self::$access_token = $token->access_token;
        }
        //授權(quán)打印機(jī)
        $printer = new PrinterService(self::$access_token, self::$config);
        $printer_status = $printer->addPrinter(self::$terminal_no, self::$terminal_secret, '', '');
        if($printer_status->error){
            self::printerLog('授權(quán)打印機(jī)失敹胶:'.$printer_status->error_description);
        }else{
                $res = self::text();
                return $res;
        }
    }

    //打印機(jī)日志
    private static function printerLog($content)
    {
        $data['terminal_no'] = self::$terminal_no;
        $data['content'] = $content;
        $data['created_time'] = date("Y-m-d H:i:s");
        Db::table("printer_log")->insertGetId($data);
    }

    //打印文本
    public static function text()
    {
        $print = new PrintService(self::$access_token, self::$config);
        //58mm排版 排版指令詳情請看 http://doc2.10ss.net/332006
        $content = "<FS2><center>**#1 美團(tuán)**</center></FS2>";
        $content .= str_repeat('.', 32);
        $content .= "<FS2><center>--在線支付--</center></FS2>";
        $content .= "<FS><center>張周兄弟燒烤</center></FS>";
        $content .= "訂單時(shí)間:". date("Y-m-d H:i") . "\n";
        $content .= "訂單編號:40807050607030\n";
        $content .= str_repeat('*', 14) . "商品" . str_repeat("*", 14);
        $content .= "<table>";
        $content .= "<tr><td>烤土豆(超級辣)</td><td>x3</td><td>5.96</td></tr>";
        $content .= "<tr><td>烤豆干(超級辣)</td><td>x2</td><td>3.88</td></tr>";
        $content .= "<tr><td>烤雞翅(超級辣)</td><td>x3</td><td>17.96</td></tr>";
        $content .= "<tr><td>烤排骨(香辣)</td><td>x3</td><td>12.44</td></tr>";
        $content .= "<tr><td>烤韭菜(超級辣)</td><td>x3</td><td>8.96</td></tr>";
        $content .= "</table>";
        $content .= str_repeat('.', 32);
        $content .= "<QR>這是二維碼內(nèi)容</QR>";
        $content .= "小計(jì):¥82\n";
        $content .= "折扣:¥4 \n";
        $content .= str_repeat('*', 32);
        $content .= "訂單總價(jià):¥78 \n";
        $content .= "<FS2><center>**#1 完**</center></FS2>";

        try{
             $result = $print->index(self::$terminal_no, $content, $serial_number);
             if($result->error){
                self::printerLog("批次:".$serial_number." 打印成失敗佛析。".$result->error_description);
              }else{
                self::printerLog("批次:".$serial_number." 打印成功");
              }
        }catch (Exception $e) {
               $result = $e->getMessage();
               self::printerLog("批次:".$serial_number." 打印成失敗。".$result);
        }
    }
}
最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末蒂萎,一起剝皮案震驚了整個濱河市,隨后出現(xiàn)的幾起案子肩狂,更是在濱河造成了極大的恐慌存捺,老刑警劉巖,帶你破解...
    沈念sama閱讀 219,427評論 6 508
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件阶冈,死亡現(xiàn)場離奇詭異,居然都是意外死亡塑径,警方通過查閱死者的電腦和手機(jī)女坑,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 93,551評論 3 395
  • 文/潘曉璐 我一進(jìn)店門,熙熙樓的掌柜王于貴愁眉苦臉地迎上來统舀,“玉大人匆骗,你說我怎么就攤上這事劳景。” “怎么了碉就?”我有些...
    開封第一講書人閱讀 165,747評論 0 356
  • 文/不壞的土叔 我叫張陵盟广,是天一觀的道長。 經(jīng)常有香客問我瓮钥,道長筋量,這世上最難降的妖魔是什么? 我笑而不...
    開封第一講書人閱讀 58,939評論 1 295
  • 正文 為了忘掉前任碉熄,我火速辦了婚禮桨武,結(jié)果婚禮上,老公的妹妹穿的比我還像新娘锈津。我一直安慰自己呀酸,他們只是感情好,可當(dāng)我...
    茶點(diǎn)故事閱讀 67,955評論 6 392
  • 文/花漫 我一把揭開白布琼梆。 她就那樣靜靜地躺著性誉,像睡著了一般。 火紅的嫁衣襯著肌膚如雪茎杂。 梳的紋絲不亂的頭發(fā)上艾栋,一...
    開封第一講書人閱讀 51,737評論 1 305
  • 那天,我揣著相機(jī)與錄音蛉顽,去河邊找鬼。 笑死先较,一個胖子當(dāng)著我的面吹牛携冤,可吹牛的內(nèi)容都是我干的。 我是一名探鬼主播闲勺,決...
    沈念sama閱讀 40,448評論 3 420
  • 文/蒼蘭香墨 我猛地睜開眼曾棕,長吁一口氣:“原來是場噩夢啊……” “哼!你這毒婦竟也來了菜循?” 一聲冷哼從身側(cè)響起翘地,我...
    開封第一講書人閱讀 39,352評論 0 276
  • 序言:老撾萬榮一對情侶失蹤,失蹤者是張志新(化名)和其女友劉穎癌幕,沒想到半個月后衙耕,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體,經(jīng)...
    沈念sama閱讀 45,834評論 1 317
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡勺远,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 37,992評論 3 338
  • 正文 我和宋清朗相戀三年橙喘,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片胶逢。...
    茶點(diǎn)故事閱讀 40,133評論 1 351
  • 序言:一個原本活蹦亂跳的男人離奇死亡厅瞎,死狀恐怖饰潜,靈堂內(nèi)的尸體忽然破棺而出,到底是詐尸還是另有隱情和簸,我是刑警寧澤彭雾,帶...
    沈念sama閱讀 35,815評論 5 346
  • 正文 年R本政府宣布,位于F島的核電站锁保,受9級特大地震影響薯酝,放射性物質(zhì)發(fā)生泄漏。R本人自食惡果不足惜身诺,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 41,477評論 3 331
  • 文/蒙蒙 一蜜托、第九天 我趴在偏房一處隱蔽的房頂上張望。 院中可真熱鬧霉赡,春花似錦橄务、人聲如沸。這莊子的主人今日做“春日...
    開封第一講書人閱讀 32,022評論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽。三九已至嗓化,卻和暖如春棠涮,著一層夾襖步出監(jiān)牢的瞬間,已是汗流浹背刺覆。 一陣腳步聲響...
    開封第一講書人閱讀 33,147評論 1 272
  • 我被黑心中介騙來泰國打工严肪, 沒想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留,地道東北人谦屑。 一個月前我還...
    沈念sama閱讀 48,398評論 3 373
  • 正文 我出身青樓驳糯,卻偏偏與公主長得像,于是被迫代替她去往敵國和親氢橙。 傳聞我的和親對象是個殘疾皇子酝枢,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 45,077評論 2 355

推薦閱讀更多精彩內(nèi)容

  • # Python 資源大全中文版 我想很多程序員應(yīng)該記得 GitHub 上有一個 Awesome - XXX 系列...
    小邁克閱讀 2,989評論 1 3
  • 今早4:00起床,打座練功悍手,學(xué)習(xí)了足少陰腎經(jīng)(太谿帘睦、陰谷),足太陽膀胱經(jīng)(束骨坦康、委中)和手少陰心經(jīng)(神門竣付、少海)手...
    1bf5c78057cf閱讀 359評論 0 0
  • 我本來想當(dāng)一個謙謙君子卑笨,但是在收款這方面,被拖賴的那些人或公司逼成了土匪仑撞。赤兴。妖滔。。 剛開始催款時(shí)桶良,我的步驟比較慢...
    木質(zhì)為堅(jiān)閱讀 249評論 2 0
  • 此生難看透座舍,紅塵未堪休,一語猶未盡陨帆,字未休曲秉。萬般獨(dú)困惑,難明畫中眸疲牵,紙紙零零承二,泠泠然, 景中游纲爸。 千痕萬道落亥鸠,...
    胥淏頔閱讀 95評論 0 1
  • 再次見到亓蓁,她人瘦了一些识啦,但笑容還是那么明媚负蚊。 咖啡室里的冷氣勁力十足,我努力忍著才沒有打出噴嚏颓哮。還沒有坐下來家妆,...
    林慕言閱讀 458評論 0 0