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

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

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、打印的测试结果

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

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

看实验效果,成功了


目录
相关文章
|
2月前
|
JavaScript 小程序 开发者
uni-app开发实战:利用Vue混入(mixin)实现微信小程序全局分享功能,一键发送给朋友、分享到朋友圈、复制链接
uni-app开发实战:利用Vue混入(mixin)实现微信小程序全局分享功能,一键发送给朋友、分享到朋友圈、复制链接
468 0
|
5月前
|
小程序 安全 搜索推荐
【微信小程序开发实战项目】——个人中心页面的制作
本文介绍了如何设计和实现一个网上花店的微信小程序,包括个人中心、我的订单和我的地址等功能模块。个人中心让用户能够查看订单历史、管理地址和与客服互动。代码示例展示了`own.wxml`、`own.wxss`和`own.js`文件,用于构建个人中心界面,包括用户信息、订单链接、收藏、地址、客服和版本信息。我的订单部分展示了订单详情,包括商品图片、名称、销量、价格和订单状态,用户可以查看和管理订单。我的地址功能允许用户输入和编辑收货信息,包括联系人、性别、电话、城市和详细地址。每个功能模块都附有相应的WXML和WXSS代码,以及简洁的样式设计。
281 0
【微信小程序开发实战项目】——个人中心页面的制作
|
5月前
|
小程序 开发者
uniapp实战 —— 开发微信小程序的调试技巧
uniapp实战 —— 开发微信小程序的调试技巧
493 1
|
5月前
|
前端开发 小程序
【微信小程序-原生开发】实用教程20 - 生成海报(实战范例为生成活动海报,内含生成指定页面的小程序二维码,保存图片到手机,canvas 系列教程)
【微信小程序-原生开发】实用教程20 - 生成海报(实战范例为生成活动海报,内含生成指定页面的小程序二维码,保存图片到手机,canvas 系列教程)
425 0
|
5月前
|
小程序
【微信小程序】实战案例 -- 向订阅用户发送消息(范例:报名提醒)
【微信小程序】实战案例 -- 向订阅用户发送消息(范例:报名提醒)
300 0
|
5月前
|
小程序 前端开发
【微信小程序-原生开发】TDesign 实战模板——聊天气泡
【微信小程序-原生开发】TDesign 实战模板——聊天气泡
107 0
|
5月前
|
小程序
【微信小程序-原生开发】TDesign 实战模板——带性别图标的头像
【微信小程序-原生开发】TDesign 实战模板——带性别图标的头像
75 0
|
1月前
|
小程序 前端开发 JavaScript
在线课堂+工具组件小程序uniapp移动端源码
在线课堂+工具组件小程序uniapp移动端源码
35 0
在线课堂+工具组件小程序uniapp移动端源码
|
2月前
|
移动开发 小程序 数据可视化
基于npm CLI脚手架的uniapp项目创建、运行与打包全攻略(微信小程序、H5、APP全覆盖)
基于npm CLI脚手架的uniapp项目创建、运行与打包全攻略(微信小程序、H5、APP全覆盖)
348 3
|
2月前
|
小程序 API
微信小程序更新提醒uniapp
在小程序开发中,版本更新至关重要。本方案利用 `uni-app` 的 `uni.getUpdateManager()` API 在启动时检测版本更新,提示用户并提供立即更新选项,自动下载更新内容,并在更新完成后重启小程序以应用新版本。适用于微信小程序,确保用户始终使用最新版本。以下是实现步骤: ### 实现步骤 1. **创建更新方法**:在 `App.vue` 中创建 `updateApp` 方法用于检查小程序是否有新版本。 2. **测试**:添加编译模式并选择成功状态进行模拟测试。
57 0
微信小程序更新提醒uniapp