JAVA单商户易联云小票打印替换模板

article/2025/7/29 9:22:08

image.png


1. 方法概述
ylyPrint(YlyPrintRequest ylyPrintRequest) 方法的主要功能是根据传入的 YlyPrintRequest 对象生成打印内容,并通过易联云(YLY)打印机进行打印。

2. 方法参数
YlyPrintRequest ylyPrintRequest: 这是一个封装了打印所需信息的对象,包括商家名称、订单编号、日期、客户信息、商品详情、金额等。

3. 方法内部逻辑
3.1 初始化易联云打印机 (instant())
instant();
调用 instant() 方法来初始化易联云打印机。该方法会检查并获取必要的配置信息(如 client_id, client_secret, machine_code, msign 等),并确保有有效的 access_token。
3.2 构建打印内容 (printSb)
String printSb = "<FH><FB><center>"+ylyPrintRequest.getBusinessName()+"</center></FB></FH>" +
"********************************<FH>" +
"订单编号:" + ylyPrintRequest.getOrderNo()+"\n"+
"日 期:" + ylyPrintRequest.getDate()+"\n"+
"姓 名:" + ylyPrintRequest.getName()+"\n"+
"电 话:" + ylyPrintRequest.getPhone()+"\n"+
"地 址:" + ylyPrintRequest.getAddress()+"\n"+
"订单备注:"+ ylyPrintRequest.getNote()+"</FH>\n" +
"********************************\n" +
"<FH>" +
"商品名称 单价 数量 金额\n" +
"" + ylyPrintFormatGoodsList(ylyPrintRequest.getGoods())+
"</FH>" +
"********************************\n" +
"<FH>" +
"<LR>合计:¥"+ ylyPrintRequest.getAmount()+"元,优惠:¥"+ylyPrintRequest.getDiscount()+"元</LR>" +
"<LR>邮费:¥"+ylyPrintRequest.getPostal()+"元,抵扣:¥"+ylyPrintRequest.getDeduction()+"元</LR>" +
"</FH>" +
"<FH><right>实际支付:¥"+ylyPrintRequest.getPayMoney()+"元</right></FH>" +
"<FB><FB><center>完</center></FB></FB>";
调用 ylyPrintFormatGoodsList 方法来格式化商品列表。
3.3 调用易联云打印接口
RequestMethod.getInstance().printIndex(
ylyAccessTokenResponse.getBody().getAccess_token(),
machine_code,
URLEncoder.encode(printSb, "utf-8"),
"order111"
);

参数说明:
access_token:用于验证身份的令牌。
machine_code:易联云打印机的终端号。
URLEncoder.encode(printSb, "utf-8"):对打印内容进行 URL 编码,确保传输的安全性和正确性。
"order111":商户系统内部订单号,用于唯一标识此次打印任务。

4. 总结
ylyPrint 方法通过以下步骤实现订单信息的打印:
初始化易联云打印机:确保有有效的 access_token 和其他必要配置。
构建打印内容:根据 YlyPrintRequest 对象中的信息,生成格式化的打印文本。
调用打印接口:将构建好的打印内容通过易联云的打印接口发送到指定的打印机进行打印。
这种方法保证了打印内容的规范性和易读性,同时利用易联云的服务实现了自动化打印。

若有收获,就点个赞吧


http://www.hkcw.cn/article/iEyKIkFQNi.shtml

相关文章

4.2.3 Spark SQL 手动指定数据源

在本节实战中&#xff0c;我们学习了如何在Spark SQL中手动指定数据源以及如何使用format()和option()方法。通过案例演示&#xff0c;我们读取了不同格式的数据文件&#xff0c;包括CSV、JSON&#xff0c;并从JDBC数据源读取数据&#xff0c;展示了如何将这些数据转换为DataFr…

Android12 Launcher3显示所有应用列表

Android12 Launcher3显示所有应用列表 1.前言&#xff1a; 最近在Android12Rom定制时需要显示所有桌面应用的图标&#xff0c;并且不能去掉抽屉&#xff0c;在手机上面抽屉和所有应该列表是两种不同模式&#xff0c;用户基可以自行选择&#xff0c;但是在自定义的launcher中这…

数据结构——图

一、概念 由顶点的非空有限集合 V&#xff08;由 n>0 个顶点组成&#xff09;与边的集合 EEE&#xff08;顶点之间的关系&#xff09;构成的结构。其形式化定义为 G(V,E)。 顶点&#xff08;Vertex&#xff09;&#xff1a;图中的数据元素通常称为顶点&#xff0c;在下面的…

【AI赋能,视界升级】智微智能S134 AI OPS,重构智慧大屏未来

智慧教室中&#xff0c;教师通过电子白板&#xff0c;4K高清课件、3D教学模型同步呈现&#xff0c;后排学生也能看清画面细节&#xff0c;课堂变得趣味十足&#xff1b;智能会议室里&#xff0c;会议内容、多人云会议多屏投放依旧畅通清晰&#xff0c;会议纪要自动生成Word/PPT…

ISCC-2025-web-wp

web 校赛 校赛靠着ENOCH师傅发力&#xff0c;也是一路躺进了区域赛&#xff0c;E师傅不好意思发这抽象比赛的wp(这比赛确实啥必到让人大开眼界&#xff0c;反正明年我是肯定不会打了)&#xff0c;我就顺手要过来连着区域赛的一起发了 web 150分 按照提示进入/includes/fla…

在CentOS7上使用tree查看目录树

文章目录 1. 利用yum安装tree2. 利用rpm安装tree2.1 下载tree的rpm包2.2 上传到云主机2.3 安装tree软件 3. 使用tree查看目录树4. 实战小结 1. 利用yum安装tree 执行命令&#xff1a;yum -y install tree CentOS7停止更新&#xff0c;即使更新镜像源&#xff0c;也无法正常安装…

【仿muduo库实现并发服务器】实现时间轮定时器

实现时间轮定时器 1.时间轮定时器原理2.项目中实现目的3.实现功能3.1构造定时任务类3.2构造时间轮定时器每秒钟往后移动添加定时任务刷新定时任务取消定时任务 4.完整代码 1.时间轮定时器原理 时间轮定时器的原理类似于时钟&#xff0c;比如现在12点&#xff0c;定一个3点的闹…

Webug4.0靶场通关笔记10- 第10关存储型XSS注入

目录 一、存储型XSS原理 二、代码审计 三、第10关 存储型XSS注入实战 1.打开靶场 2.渗透实战 本文通过《Webug4.0通关笔记系列》来进行Webug4.0靶场的渗透实战&#xff0c;本文讲解Webug4.0靶场第10关存储型XSS的渗透实战。 一、存储型XSS原理 存储型XSS&#xff08;Sto…

深入了解MCP基础与架构

一、引言 在人工智能技术以指数级速度渗透各行业领域的今天&#xff0c;我们正站在一个关键的技术拐点。当ChatGPT月活突破亿级、Gemini Pro实现多模态实时交互、Claude 3.5 Sonnet突破百万上下文长度&#xff0c;这些里程碑事件背后&#xff0c;一个崭新的大门逐步打开&#…

STM32F407VET6学习笔记9:编译输出固定大小.bin文件

今日学习如何输出固定大小的.bin编译文件 目录 Keil_V5 fromelf.exe 软件目录&#xff1a; 魔棒添加命令输出bin文件&#xff1a; 输出固定大小的bin文件&#xff1a; 计算bin文件大小&#xff1a; 安装 SRecord 工具集&#xff1a; 使用SRecord&#xff1a; 参考文章&#…

Spring Cloud 学习 —— 简单了解

Spring Cloud 简介 官方文档&#xff1a;https://docs.spring.io/spring-cloud-release/reference/index.html 在学习 Spring Cloud 之前&#xff0c;先了解一下什么是分布式系统&#xff1f; 分布式系统 分布式系统是由多个独立计算机&#xff08;节点&#xff09;通过网络…

FreeRTOS多任务系统①

多任务系统 回想一下我们以前在使用 51、STM32 单片机裸机(未使用实时操作系统)的时候一般都是在main 函数里面用 while(1)做一个大循环来完成所有的处理&#xff0c; 即应用程序是一个无限的循环&#xff0c; 循环中调用相应的函数完成所需的处理。 有时候我们也需要中断中完…

Celery简介

一、什么是异步任务队列 异步任务队列是指一种用于管理和调度异步执行任务的机制。具体来说&#xff0c;它允许将任务放入队列中&#xff0c;然后由后台进程异步处理这些任务&#xff0c;而不会阻塞主线程的执行。这种设计使得系统能够高效地处理耗时操作&#xff0c;同时保持…

【Livox雷达使用】

记录 目前livox雷达型号较多&#xff0c;适用范围广泛。后来出的雷达需要使用使用第二代SDK和驱动&#xff0c;如Mid360、HAP。之前在github上看有人问是否能一起安装&#xff0c;官方回答是可以的&#xff0c;我把livox SDK、livox_ros_driver和SDK2、driver2都下载了进行比较…

RS232转Profinet网关在检漏仪与西门子PLC里的应用

RS232转Profinet网关在检漏仪与西门子PLC里的应用 在工业自动化和控制领域&#xff0c;设备间的高效通信至关重要。RS232转Profinet网关作为一种关键的转换工具&#xff0c;能够将传统的RS232接口设备接入现代化的Profinet网络&#xff0c;从而实现数据的无缝传输和设备的远程…

公链地址生成曲线和算法

在区块链公链中&#xff0c;除了 ECDSA&#xff08;基于 secp256k1 曲线&#xff09; 和 EdDSA&#xff08;基于 Ed25519 曲线&#xff09; 之外&#xff0c;还有其他一些加密算法和椭圆曲线被用于生成公私钥对、签名验证或地址生成。这些算法和曲线的选择通常基于安全性、性能…

⭐ Unity AVProVideo插件自带播放器 脚本重构 实现视频激活重置功能

一、功能概述 本笔记记录直接修改插件自带的场景播放其中 原始的 MediaPlayerUI 脚本,实现激活时自动重置播放器的功能。 我用的插件版本是 AVPro Video - Ultra Edition 2.7.3 修改后的脚本将具备以下特性: 激活 GameObject 时自动重置播放位置到开头 可配置是否在重置后自…

C#命名类型前缀习惯改进

我这几天有一个疑惑&#xff0c;我之前用过一些变量命名&#xff0c;有些混乱&#xff0c;如string sql&#xff0c;string strSql&#xff0c;string sqlStr&#xff0c; string strName&#xff0c;string nameStr&#xff0c;bool boValid&#xff0c;stringbuilder sbFileN…

生成式AI如何重塑设计思维与品牌创新?从工具到认知革命的跃迁

当MidJourney生成的视觉方案出现在国际设计奖项的决赛名单&#xff0c;当Adobe Firefly成为设计师的标配工具&#xff0c;一个问题正从行业边缘走向中心&#xff1a;生成式人工智能&#xff08;GAI&#xff09;究竟在解构还是重构创意领域&#xff1f;作为深度参与AI与设计融合…

零知开源——STM32F407VET6驱动Flappy Bird游戏教程

简介 本教程使用STM32F407VET6零知增强板驱动3.5寸TFT触摸屏实现经典Flappy Bird游戏。通过触摸屏控制小鸟跳跃&#xff0c;躲避障碍物柱体&#xff0c;挑战最高分。项目涉及STM32底层驱动、图形库移植、触摸控制和游戏逻辑设计。 目录 简介 一、硬件准备 二、软件架构 三、…