当前位置: 首页 > article >正文

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

http://www.lryc.cn/news/2401996.html

相关文章:

  • rust或tauri项目执行命令的时候,cmd窗口也会弹出显示解决方法
  • [软件工程] 文档 | 技术文档撰写全流程指南
  • 使用Python进行函数作画
  • Python应用continue关键字初解
  • 微型导轨在手术机器人领域中有哪些关键操作?
  • FPGA 的硬件结构
  • EasyRTC音视频实时通话助力新一代WebP2P视频物联网应用解决方案
  • QT开发技术【ffmpeg + QAudioOutput】音乐播放器 完善
  • vscode 离线安装第三方库跳转库
  • DevExpress WinForms v24.2 - 新增日程组件、电子表格组件功能扩展
  • 基于机器学习的心脏病预测模型构建与可解释性分析
  • VisDrone无人机视觉挑战赛观察解析2025.6.5
  • Monorepo架构: Lerna、NX、Turbo等对比与应用分析
  • redis进入后台操作、查看key、删除key
  • 谷粒商城-分布式微服务项目-高级篇[三]
  • 实现购物车微信小程序
  • 26考研 | 王道 | 计算机组成原理 | 四、指令系统
  • 互联网大厂Java求职面试:AI与大模型技术在企业知识库中的深度应用
  • 在 Windows 系统安装 Git
  • JavaSec-SSTI - 模板引擎注入
  • 基于InternLM的情感调节大师FunGPT
  • 【性能调优系列】深入解析火焰图:从基础阅读到性能优化实战
  • Docker 与容器技术的未来:从 OCI 标准到 eBPF 的演进
  • PLC远程控制网关支持多塘口水环境数据边缘计算与远程安全传输的配置指南
  • 3.3 HarmonyOS NEXT原子化服务开发:卡片设计、轻量部署与场景化编排实战
  • C++11 中 final 和 override 从入门到精通
  • 跨多个微服务使用 Redis 共享数据时,如何管理数据一致性?
  • Linux网络——socket网络通信udp
  • 大数据-275 Spark MLib - 基础介绍 机器学习算法 集成学习 随机森林 Bagging Boosting
  • 大模型微调技术全景图:从全量更新到参数高效适配