掘金者说-第三方票据对接

工作中,掘金者说偶尔会进行对接第三方平台接口(掘金者说品味过:POS机对接、缴费接口对接、电子票据对接、打印机接口对接、门禁卡接口对接、交通罚没接口对接、电子证照接口对接...),接二连三的对接难免造成资源浪费,一个百度、谷歌或写个请求调用是很简单的事情,如果把简单的事情,再总结下那就更加完美。当这种对接能否进行抽象概念或者模板虚化进行处理呢?希望我们的工作上代码循环利用,节约时间在更有创造性的工作上。还记得:掘金者说上网查问题解决的时候,查到本人在CSDN上面写的文章,后来不由的开心笑了。根据遗忘曲线,还是要不断的练习并总结。

我们输入的信息在经过人的注意过程的学习后,便成为了人的短时的记忆,但是如果不经过及时的复习,这些记住过的东西就会遗忘,而经过了及时的复习,这些短时的记忆就会成为了人的一种长时的记忆,从而在大脑中保持着很长的时间。

最近,掘金者说对接了一个票据第三方打印机,关于【易联云云打印】开发文档为例子,把这个方式进行掘金笔记分享参考做下笔记。尽可能的实现“重复利用”。大致的浏览了文档,需要根据开发文档进行注册一个账号,然后添加个APP就可以获取他的相关数据了。大概笔记,仅供参考!

抽象思路

创建一个工程pig-print,文件夹com.pig4cloud.yilianyun.helper抽象打印请求类AbstractPrintRequest

package com.pig4cloud.yilianyun.helper;

import org.slf4j.Logger;
import org.slf4j.LoggerFactory;

/**  * 抽象打印请求  *  * @author Lucky  * @date 2020-06-29  */ public abstract class AbstractPrintRequest {   /**  * 日志类  */  private static Logger logger = LoggerFactory.getLogger(AbstractPrintRequest.class);   /**  * 支付参数类  */  static PrintConfig config;   /**  * 获取业务参数  *  * @return 业务参数JSON字符串格式  **/  abstract String getBusinessParam();   /**  * 获取执行方法  *  * @return 执行方法名称  **/  abstract String getMethod();   /**  * 发送http请求  */  public String doApi() {  // ...处理忽略   return sendHttpRsp(allParam);  }   /**  * TODO 构建签名  *  * @return 签名字符串  **/  String buildSign(String timestamp) {  // ...处理忽略  }   /**  * TODO 发送post请求  *  * @param params 业务参数  * @return  **/  private static String sendHttpRsp(Map<String, Object> params) {  // ...处理忽略  } }  复制代码

添加PrintConfig配置类

package com.pig4cloud.yilianyun.helper;

import lombok.Getter;
import org.springframework.context.annotation.Configuration;

/**  * 打印配置  *  * @author Lucky  * @date 2020-06-29  */ @Configuration @Getter public class PrintConfig {   /**  * 打印方法(参考)  */  @Value("${print.yilianyun.method}")  private String printMethod;  } 复制代码

添加PrintRequest

package com.pig4cloud.yilianyun.helper;

/**
 * 打印请求
 *  * @author Lucky  * @date 2020-06-29  */ public class PrintRequest extends AbstractPrintRequest {   private String content;   @Override  String getBusinessParam() {  }   @Override  String getMethod() {  return config.getPrintMethod();  }   public static Builder builder(PrintConfig config) {  AbstractPrintRequest.config = config;  return new Builder();  }   public static class Builder {  private PrintRequest printRequest;   public Builder() {  this.printRequest = new PrintRequest();  }  public Builder content(String content) {  printRequest.content = content;  return this;  }  public PrintRequest builder() {  return this.printRequest;  }  } } 复制代码

添加PrintRequestFactory

package com.pig4cloud.yilianyun.helper;

import org.springframework.stereotype.Component;

import javax.annotation.Resource;
 /**  * 打印请求工厂  *  * @author Lucky  * @date 2020-06-29  */ @Component public class PrintRequestFactory {   /**  * 参数配置类  */  @Resource  private PrintConfig config;   /**  * printRequest工厂类  */  public PrintRequest.Builder printRequestBuilder() {  return PrintRequest.builder(config);  } } 复制代码

单元测试


/**
 * 打印请求工厂
 *
 * @author Lucky  * @date 2020-06-29  */ @SpringBootTest(classes = {PrintApplication.class}) @RunWith(SpringRunner.class) public class TestPrintRequest {   @Resource  private PrintRequestFactory factory;   @Test  public void testPrint() {  String content = "pig4cloud.com";  String msg = factory.printRequestBuilder().content(content).builder().doApi()  System.out.println(msg);  } } 复制代码

艾宾浩斯的实验向我们充分证实了一个道理:学习要勤于复习,而且记忆的理解效果越好,遗忘的也越慢,对所学知识和记忆效果及时进行复习和自测是有效的记忆方法。道理都是那个意思,我们要知行合一说的容易,做起来就难了。

传送:
易联云云打印:doc2.10ss.net/331994
pig for cloud 官网:pig4cloud.com/

猜你喜欢

转载自juejin.im/post/5ef92b0fe51d453496765dc5