From 36f1242e794c4dba9bdd305b7d4636e8f8d4d3c4 Mon Sep 17 00:00:00 2001 From: Jerry Yan <792602257@qq.com> Date: Thu, 3 Apr 2025 15:56:01 +0800 Subject: [PATCH] =?UTF-8?q?=E6=89=93=E5=8D=B0=E6=9C=BA?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../printer/ticket/FeiETicketPrinter.java | 69 +++++++++++++++++++ 1 file changed, 69 insertions(+) create mode 100644 src/main/java/com/ycwl/basic/printer/ticket/FeiETicketPrinter.java diff --git a/src/main/java/com/ycwl/basic/printer/ticket/FeiETicketPrinter.java b/src/main/java/com/ycwl/basic/printer/ticket/FeiETicketPrinter.java new file mode 100644 index 0000000..ac2ce3a --- /dev/null +++ b/src/main/java/com/ycwl/basic/printer/ticket/FeiETicketPrinter.java @@ -0,0 +1,69 @@ +package com.ycwl.basic.printer.ticket; + +import cn.hutool.Hutool; +import cn.hutool.http.HttpRequest; +import cn.hutool.http.HttpResponse; +import cn.hutool.http.HttpUtil; +import org.apache.commons.codec.digest.DigestUtils; + +import java.util.HashMap; +import java.util.Map; + +public class FeiETicketPrinter { + public static final String URL = "https://api.feieyun.cn/Api/Open/"; + + public static final String USER = "792602257@qq.com"; + public static final String UKEY = "GdMvD6WwCGTAgM8x"; + + public static String doPrint(String sn, String content, int times) { + + HttpRequest post = HttpUtil.createPost(URL); + post.header("Content-Type", "application/x-www-form-urlencoded"); + Map body = new HashMap(); + body.put("user",USER); + String STIME = String.valueOf(System.currentTimeMillis()/1000); + body.put("stime",STIME); + body.put("sig",signature(USER,UKEY,STIME)); + body.put("apiname","Open_printMsg"); + body.put("sn",sn); + body.put("content",content); + body.put("times",String.valueOf(times)); + try (HttpResponse response = post.form(body).execute()) { + if (response.getStatus() != 200) { + return null; + } + return response.body(); + } + } + //方法1 + private static String testPrint(String sn){ + //标签说明: + //单标签: + //"
"为换行,""为切刀指令(主动切纸,仅限切刀打印机使用才有效果) + //""为打印LOGO指令(前提是预先在机器内置LOGO图片),""为钱箱或者外置音响指令 + //成对标签: + //""为居中放大一倍,""为放大一倍,""为居中,字体变高一倍 + //字体变宽一倍,""为二维码,""为字体加粗,""为右对齐 + //拼凑订单内容时可参考如下格式 + //根据打印纸张的宽度,自行调整内容的格式,可参考下面的样例格式 + + String content; + content = "帧途AI旅拍
"; + content += "┏━━━━━━━━━━━━━━┓
"; + content += "┃┉3制67表01符45制89表23符6┉┃
"; + content += "┣━━★━━♢━━◈━━◉━━┫
"; + content += "┃123制67表01符45制89表23符678┃
"; + content += "┗━━━━━━━━━━━━━━┛
"; + return doPrint(sn,content,1); + } + + + //生成签名字符串 + private static String signature(String user,String ukey,String stime){ + return DigestUtils.sha1Hex(user+ukey+stime); + } + + public static void main(String[] args) { + System.out.println(testPrint("550519002")); + } +}