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

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

相关文章:

  • 山东大学深度学习2025年期末考试
  • 测试 FreeSWITCH 的 mod_loopback
  • nodejs里面的http模块介绍和使用
  • 斐波那契数列------矩阵幂法
  • C++自定义简单的内存池
  • 服务虚拟化HoverFly
  • 实验科学中策略的长期效应评估学习笔记
  • css实现文字颜色渐变
  • ProfiNet 分布式 IO 在某污水处理厂的应用
  • 人脸识别技术成为时代需求,视频智能分析网关视频监控系统中AI算法的应用
  • 古老界面硬核工具:小兵以太网测试仪(可肆意组包,打vlan)
  • 《认知觉醒》第四章——专注力:情绪和智慧的交叉地带
  • Docker 与容器技术的未来:从 OCI 标准到 eBPF 的演进
  • 基于51单片机的天然气浓度检测报警系统
  • 家庭智能监控系统的安全性
  • Angular报错:cann‘t bind to ngClass since it is‘t a known property of div
  • Git Patch 使用详解:生成、应用与多提交合并导出
  • Mybatis #{} 和 ${}区别,使用场景,LIKE模糊查询避免SQL注入
  • vue前端 多次同步请求一个等一个下载
  • 10.vue.js中封装axioa(3)
  • 好姑娘高清免费观看/上海搜索引擎优化1
  • 青岛做网站哪家优化好/建站公司最新报价
  • 做网站公司名字/网站排名优化外包公司
  • 手机做网站服务器/网络营销与策划试题及答案
  • 网页设计作品评价/全网seo优化电话
  • 网站布局教程/济南优化seo公司