PHP 打印扩展开发:从易联云到小鹅通的多驱动集成实践

目前已有易联云WIFI打印机扩展

<>扩展入口文件

文件目录 crmeb\services\printer\Printer.php

复制代码
namespace crmeb\services\printer;

use crmeb\basic\BaseManager;
use think\facade\Config;
use think\Container;

/**
 * Class Printer
 * @package crmeb\services\auth
 * @mixin \crmeb\services\printer\storage\YiLianYun
 */
class Printer extends BaseManager
{
    //...
}

<>使用打印扩展

复制代码
use crmeb\services\printer\Printer;

$printer = new Printer([
    'clientId'=>'',
    'apiKey'=>'',
    'partner'=>' ',
    'terminal'=>'',
]);

$res = $printer->setPrinterContent([
    'name'=> '标题',
    'orderInfo'=> [],//订单信息
    'product'=> [],//商品信息
])->startPrinter();

var_dump($res);

<>举例增加:小鹅通打印扩展

创建文件:crmeb\services\printer\storage\XiaoETong.php

复制代码
namespace crmeb\services\printer\storage;

class XiaoETong extends BasePrinter
{
    //初始化
    protected function initialize(array $config)
    {

    }

    //开始打印
    public function startPrinter()
    {

    }

    //设置打印内容
    public function setPrinterContent(array $config): self
    {

        return $this;
    }

}

增加小鹅通获取AccessToken

复制代码
namespace crmeb\services\printer;

class AccessToken extends HttpService
{
    /**
     * 获取token
     * @return mixed|null|string
     * @throws \Exception
     */
    public function getAccessToken()
    {
        if (isset($this->accessToken[$this->name])) {
            return $this->accessToken[$this->name];
        }

        $action = 'get' . Str::studly($this->name) . 'AccessToken';
        if (method_exists($this, $action)) {
            return $this->{$action}();
        } else {
            throw new \RuntimeException(__CLASS__ . '->' . $action . '(),Method not worn in');
        }
    }

    //增加小鹅通获取access_token类
    protected function getXiaoETongAccessToken()
    {
          /** @var CacheServices $cacheServices */
        $cacheServices = app()->make(CacheServices::class);
        $this->accessToken[$this->name] = $cacheServices->getDbCache('XET_access_token', function () {
            //写获取$access_token的逻辑
            //...
            $access_token = '';
            return $access_token;
        }, 86400);

        if (!$this->accessToken[$this->name])
            throw new AdminException(400718);

        return $this->accessToken[$this->name];
    }

}

使用小鹅通打印机

复制代码
use crmeb\services\printer\Printer;

$printer = new Printer('xiao_e_tong',[
    'clientId'=>'',//小鹅通打印配置
    'apiKey'=>'',//小鹅通打印配置
    'partner'=>' ',//小鹅通打印配置
    'terminal'=>'',//小鹅通打印配置
]);

$res = $printer->setPrinterContent([
    'name'=> '标题',
    'orderInfo'=> [],//订单信息
    'product'=> [],//商品信息
])->startPrinter();

var_dump($res);

附件:https://gitee.com/ZhongBangKeJi/CRMEB

相关推荐
星辰烈龙3 小时前
黑马程序员JavaSE基础加强d5
服务器·网络·php
No0d1es3 小时前
2025年12月 GESP CCF编程能力等级认证Python三级真题
开发语言·php
哥只是传说中的小白4 小时前
Nano Banana Pro高并发接入Grsai Api实战!0.09/张无限批量生成(附接入实战+开源工具)
开发语言·数据库·ai作画·开源·aigc·php·api
亚历山大海5 小时前
PHP HTML 实体(HTML Entities)没有被正确解码导致< 和 δ 等字符被转换
开发语言·html·php
二等饼干~za8986689 小时前
碰一碰发视频系统源码搭建部署技术分享
服务器·开发语言·php·音视频·ai-native
. . . . .9 小时前
WordPress开发到部署
php
成为你的宁宁9 小时前
【Zabbix 自定义监控全流程实战指南(附图文教程):从语法基础到内存传参、PHP-FPM 服务、Web 场景监控配置】
php·zabbix
catchadmin10 小时前
PHP 异步与多线程 从 TrueAsync 展望未来
php
幽络源小助理10 小时前
知宇发卡系统二开API代销系统开源版 – 支持代理审核与多商家对接
php·源码
代码游侠10 小时前
学习笔记——MQTT协议
开发语言·笔记·php