外卖小程序实战-接单后小票机自动打印订单

news2024/11/27 6:12:00

1、导入小票机的sdk

https://www.feieyun.com/api/API-JAVA.zip

public static String addprinter(String snlist){
   
   //通过POST请求,发送打印信息到服务器
   RequestConfig requestConfig = RequestConfig.custom()  
            .setSocketTimeout(30000)//读取超时  
            .setConnectTimeout(30000)//连接超时
            .build();
   
   CloseableHttpClient httpClient = HttpClients.custom()
          .setDefaultRequestConfig(requestConfig)
          .build(); 
   
    HttpPost post = new HttpPost(URL);
       List<NameValuePair> nvps = new ArrayList<NameValuePair>();
   nvps.add(new BasicNameValuePair("user",USER));
   String STIME = String.valueOf(System.currentTimeMillis()/1000);
   nvps.add(new BasicNameValuePair("stime",STIME));
   nvps.add(new BasicNameValuePair("sig",signature(USER,UKEY,STIME)));
   nvps.add(new BasicNameValuePair("apiname","Open_printerAddlist"));//固定值,不需要修改
   nvps.add(new BasicNameValuePair("printerContent",snlist));
   
   CloseableHttpResponse response = null;
   String result = null;
       try
       {
          post.setEntity(new UrlEncodedFormEntity(nvps,"utf-8"));
          response = httpClient.execute(post);
          int statecode = response.getStatusLine().getStatusCode();
          if(statecode == 200){
           HttpEntity httpentity = response.getEntity(); 
            if (httpentity != null){
               result = EntityUtils.toString(httpentity);
            }
          }
      }
      catch (Exception e)
      {
          e.printStackTrace();
      }
      finally{
          try {
             if(response!=null){
                response.close();
             }
          } catch (IOException e) {
             e.printStackTrace();
          }
          try {
             post.abort();
          } catch (Exception e) {
             e.printStackTrace();
          }
          try {
             httpClient.close();
          } catch (IOException e) {
             e.printStackTrace();
          }
      }
      return result;
  
}

 

查看这个添加打印机的方法。

他这个方法不是我想要的,目前这个方法是将user和ukey写死,只能传入打印机列表参数。

而我们需要设置user和ukey,所以得把它这个方法魔改一下。

 

2、制作需要的请求类 

@Data
@Schema(description = "添加小票机")
public class FeieyunRequestDto {

    private static final String API_NAME = "Open_printerAddlist";

    @Schema(description = "飞鹅云后台注册用户名")
    private  String user;
    private  String ukey;
    @Schema(description = "当前UNIX时间戳,10位,精确到秒。")
    private  String stime;
    /**
     * 对参数user+UKEY+stime 拼接后(+号表示连接符)
     * 进行SHA1加密得到签名,加密后签名值为40位小写字符串。
     */
    private  String sig;
    @Schema(description = "请求的接口名称")
    private  String apiname;
    /**
     * debug=1返回非json格式的数据。仅测试时候使用。
     */
    private  String debug;
    /**
     * 打印机编号(必填) # 打印机识别码(必填)
     * # 备注名称(选填) # 流量卡号码(选填),
     * 多台打印机请换行(\n)添加新打印机信息,每次最多100台。
     */
    private  String printerContent;
}

 

3、更改请求参数

 

4、单元测试

本来我的帐号是没有添加小票机的

执行程序 

 

程序执行完毕,可以看到我的设备列表里新增了一台打印机,而打印机的名字也跟我程序里的“测试打印机”刚好相符,说明我们的程序是没问题的。 

 

5、集成接口 

 

 

6、测试接口 

 

 

成功了。 

 

7、打印的测试结果

打印方法的改造和接口的写法跟上面差不多,不再赘述。

用户支付成功后调用小票机打印接口,实现自动打印。

看实验效果,成功了

 

 

 

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/1599745.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

文件读写异常处理(day25)

题目一&#xff1a;文件读写异常处理 要求&#xff1a; 编写一个Java程序&#xff0c;该程序尝试读取一个名为example.txt的文件&#xff0c;并逐行打印其内容到控制台。 如果文件example.txt不存在&#xff0c;程序应捕获FileNotFoundException异常&#xff0c;并输出相应的…

ActiveMQ 任意文件上传漏洞复现

一、使用弱口令登陆 ​ 访问 http://ip:8161/admin/ 进入admin登陆页面&#xff0c;使用弱口令登陆&#xff0c;账号密码皆为 admin&#xff0c;登陆成功后&#xff0c;headers中会出现验证信息 ​ 如&#xff1a; Authorization: Basic YWRtaW46YWRtaW4 # 二、利用PUT协议上…

Docker 入门介绍及简单使用

Docker 的简单介绍 中文官网&#xff1a;Docker中文网 官网 英文官网&#xff1a;Docker: Accelerated Container Application Development Docker 是一个开源的应用容器引擎&#xff0c;它允许开发者打包应用及其依赖包到一个可移植的容器中&#xff0c;然后发布到任何流行的 …

【Java开发指南 | 第八篇】Java变量、构造方法、创建对象

读者可订阅专栏&#xff1a;Java开发指南 |【CSDN秋说】 文章目录 Java变量构造方法创建对象 Java变量 在Java中&#xff0c;变量用于存储数据值。它们是程序中用于保存信息的一种基本方式。变量在程序执行过程中可以被赋予不同的值&#xff0c;并且这些值可以在程序的不同部分…

使用Python模仿文件行为

在Python中&#xff0c;你可以通过文件操作函数&#xff08;如open()函数&#xff09;以及模拟输入输出流的库&#xff08;如io模块&#xff09;来模拟文件行为。下面是一些示例&#xff0c;展示了如何使用这些工具在Python中模拟文件行为。 1、问题背景 在编写一个脚本时&…

轮胎行业EDI:Tigar 轮胎EDI项目案例

Tigar 轮胎是一家塞尔维亚轮胎制造公司&#xff0c;自2007年开始&#xff0c;被轮胎制造商米其林持有。 Tigar通过EDI来传输与供应商之间的业务单据&#xff0c;优化业务流程。本文将从EDI需求概览、如何基于知行之桥EDI系统实现与Tigar的EDI对接以及项目回顾这三个部分为大家展…

Docker部署MongoDB数据库

文章目录 官网地址docker 网络部署 MongoDB部署 mongo-expressdocker-compose.ymlMongoDB shell 官网地址 https://www.mongodb.com/zh-cn docker 网络 # 创建 mongo_network 网络 docker network create mongo_network # 查看网络 docker network list # 容器连接到 mongo_…

AI智能分析网关V4平台告警数据清理方法:自动清理与手动清理

TSINGSEE青犀智能分析网关V4属于高性能、低功耗的软硬一体AI边缘计算硬件设备&#xff0c;目前拥有3种型号&#xff08;8路/16路/32路&#xff09;&#xff0c;支持Caffe/DarkNet/TensorFlow/PyTorch/MXNet/ONNX/PaddlePaddle等主流深度学习框架。硬件内部署了近40种AI算法模型…

C语言中的结构体:从定义到传递

前言 结构体是C语言中一种重要的数据类型&#xff0c;它允许我们将不同类型的数据组合成一个整体&#xff0c;并以自定义的方式进行操作。通过结构体&#xff0c;我们可以更加灵活地管理和处理复杂的数据结构&#xff0c;从而提高程序的可读性和可维护性。本篇博客将从结构体的…

allure2教程-1-环境搭建

领取资料&#xff0c;咨询答疑&#xff0c;请➕wei: June__Go 自动化测试执行完成后我们需要展示给其他人看&#xff0c;这就要有自动化测试报告了。复杂的测试报告当然可以自己代码实现&#xff0c;但用pytest-html或allure基本也能满足我们生成测试报告的要求了。本小节介绍…

Rustdesk如何编译代码实现安装后,不会在右下角出现托盘图标

环境&#xff1a; Rustdesk1.1.9 问题描述&#xff1a; Rustdesk如何编译代码实现安装后&#xff0c;不会在右下角出现托盘图标 解决方案&#xff1a; 安装后只有自定义进程图标 详细方案&#xff0c;有需要私聊

Python及软件测试方面的总结的技巧

目录 一.Python &#xff08;一&#xff09;输入pip安装包时出现Fatal error in launcher错误 &#xff08;二&#xff09;如何使用清华镜像安装库 二.软件测试 一.Python &#xff08;一&#xff09;输入pip安装包时出现Fatal error in launcher错误 解决方法&#xff1a…

Linux之bpfjit(2)使用分析和mini-tcpdump实现

Linux之bpfjit(2)使用分析和mini-tcpdump实现 Author: Once Day Date: 2024年4月13日 一位热衷于Linux学习和开发的菜鸟&#xff0c;试图谱写一场冒险之旅&#xff0c;也许终点只是一场白日梦… 漫漫长路&#xff0c;有人对你微笑过嘛… 全系列文章可以参考专栏&#xff1a;…

简约风好看的个人主页源码

效果图 PC端 移动端 源代码 index.html &#xfeff;<html lang"en"><head><meta charset"utf-8"><meta http-equiv"X-UA-Compatible" content"IEedge"><meta name"viewport" content&quo…

全网短剧搜索源码+短剧API接口 短剧下载 热门短剧 全开源可二开

内容目录 一、详细介绍二、效果展示1.部分代码2.效果图展示 三、学习资料下载 一、详细介绍 pc端h5手机端全网短剧搜索前端源码分享 内含7000短剧资源(不支持在线播放&#xff09; 搜索API接口&#xff1a;文件内查看 全部短剧API接口&#xff1a;文件内查看 每日更新API接…

48.HarmonyOS鸿蒙系统 App(ArkUI)常用组件的使用

48.HarmonyOS鸿蒙系统 App(ArkUI)常用组件的使用 按钮触发事件 toast信息提示 单选按钮 复选框 切换按钮&#xff0c;开关按钮 进度条 textbox,textinput,TextArea文本输入框 气泡提示 import prompt from ohos.prompt; import promptAction from ohos.promptAction; …

DC-7渗透测试复现

DC-7渗透测试复现 目的&#xff1a; 获取最高权限以及flag 过程&#xff1a; 信息打点--SSH- 命令执行反弹shell-计时任务提权 环境&#xff1a; 攻击机&#xff1a;kali(192.168.85.137) 靶机&#xff1a;DC_3(192.168.85.139) 复现&#xff1a; 一.信息收集 nmap -s…

阿里云安全证书到期了,有证书的情况下如何重新续期

文章目录 前言零、阿里云使用证书说明一、如何看安全证书是否到期&#xff08;以百度为例&#xff09;1.点击链接旁边的按钮2.点击【连接是安全的】3.点击【证书有效】 4. 查看证书二、更换操作1.Digicert 和Digicert pro的区别2.在你购买证书后创建证书3. 填下面的域名 4. 验证…

李沐-动手学深度学习-Pytorch神经网络基础总结

注&#xff1a;1. 沐神对应章节视频出处 2.代码使用Jupyter Notebook运行更方便 3.文章笔记出处 一、层和块 层&#xff1a;层&#xff08;1&#xff09;接受一组输入&#xff0c; &#xff08;2&#xff09;生成相应的输出&#xff0c; &#xff08;3&#xff09;由一组可调整…

js+网络摄像头实现人体肢体关键点动作捕获

最近有一个项目&#xff0c;客户需要用户人体姿势识别&#xff0c;进行表演考核用途&#xff0c;或者康复中心用户恢复护理考核&#xff0c;需要用摄像头进行人体四肢进行肢体关键点对比考核&#xff0c;资料还是太少了。只有个别大佬发了部分技术指导。感觉写的不错。 阿里云…