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

886 阅读3分钟

工作中,掘金者说偶尔会进行对接第三方平台接口(掘金者说品味过: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 {

 
 /**
  * 支付参数类
  */
 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/