资源简介
java实现的8583发包解包,灵活,扩展性强,8583各域能自定义编码和解码规则,包含标准的银联MAC加密算法(ansi x9.19,ansi x9.9)及一个完整的socket客户端请求服务端的demo,修改mac运算规则时,只要重写com.protocol.p8583.field.FieldMac类就可以了。maven的demo。和其他地方50下载分的是一样的
代码片段和文件信息
package com.protocol;
import com.protocol.dto.Request;
import com.protocol.dto.Response;
import com.protocol.utils.ByteUtil;
import com.protocol.utils.ExceptionUtils;
import com.protocol.utils.Log;
/**
* User:
* Date: 14-1-10
* Time: 15:49
*/
public abstract class Protocol {
private static org.slf4j.Logger logger = Log.makeLogger(Protocol.class);
public static final String ENC_UTF8 = “UTF-8“;
public static final String ENC_GBK = “GBK“;
protected REQ paramDTO;
protected RESP resultDTO;
protected byte[] req_body;
protected byte[] resp_body;
public RESP getResultDTO() {
return resultDTO;
}
protected Protocol(REQ paramDTO RESP resultDTO) {
this.paramDTO = paramDTO;
this.resultDTO = resultDTO;
}
public byte[] makeRequest() {
try {
logger.info(paramDTO.toString());
makeRequestPre();
makeRequestContent();
makeRequestPost();
logger.info(desc() + “发送的数据 : “ + getEncodeRequest());
return req_body;
} catch (Exception e) {
ExceptionUtils.printException(e 10);
throw new RuntimeException(e);
}
}
public RESP makeResponse(byte[] resp_body) {
try {
this.resp_body = resp_body;
logger.info(desc() + “响应的数据 : “ + getEncodeResponse());
makeResponsePre();
RESP resp = makeResponseobject();
makeResponsePost();
logger.info(resp.toString());
return resp;
} catch (Exception e) {
ExceptionUtils.printException(e 10);
throw new RuntimeException(e);
}
}
protected String getEncodeRequest() {
return ByteUtil.getEncodingString(req_body getEncoding());
}
protected String getEncodeResponse() {
return ByteUtil.getEncodingString(resp_body getEncoding());
}
protected void makeRequestPre() {
}
protected void makeRequestPost() {
}
protected void makeResponsePre() {
}
protected void makeResponsePost() {
}
protected abstract void makeRequestContent();
protected abstract RESP makeResponseobject();
public REQ getParamDTO() {
return paramDTO;
}
public String desc() {
return ““;
}
public String getEncoding() {
return ENC_UTF8;
}
}
属性 大小 日期 时间 名称
----------- --------- ---------- ----- ----
目录 0 2018-12-18 13:47 j8583\
目录 0 2018-12-18 13:46 j8583\.idea\
目录 0 2018-12-18 13:46 j8583\.idea\artifacts\
文件 451 2018-12-18 13:46 j8583\.idea\artifacts\j8583_war.xm
文件 841 2018-12-18 13:46 j8583\.idea\artifacts\j8583_war_exploded.xm
文件 637 2018-12-18 13:46 j8583\.idea\compiler.xm
文件 138 2018-12-18 13:46 j8583\.idea\encodings.xm
文件 1210 2018-12-18 13:46 j8583\.idea\misc.xm
文件 257 2018-12-18 13:46 j8583\.idea\modules.xm
文件 1254 2018-12-18 13:46 j8583\.idea\workspace.xm
文件 1232 2018-12-18 13:46 j8583\j8583.iml
文件 2695 2014-05-15 21:33 j8583\pom.xm
目录 0 2018-12-18 13:46 j8583\resources\
文件 4117 2014-05-15 21:34 j8583\resources\log4j.xm
目录 0 2018-12-18 13:46 j8583\src\
目录 0 2018-12-18 13:46 j8583\src\com\
目录 0 2018-12-18 13:46 j8583\src\com\protocol\
文件 2579 2014-05-16 20:51 j8583\src\com\protocol\Protocol.java
目录 0 2018-12-18 13:46 j8583\src\com\protocol\communicator\
文件 1277 2014-05-16 20:51 j8583\src\com\protocol\communicator\Communicate.java
文件 3471 2014-05-16 20:51 j8583\src\com\protocol\communicator\CommunicateSocketLgCon.java
文件 1522 2014-05-16 20:51 j8583\src\com\protocol\communicator\DefaultSocketProcess.java
文件 288 2014-05-16 20:51 j8583\src\com\protocol\communicator\SocketProcessor.java
目录 0 2018-12-18 13:46 j8583\src\com\protocol\demo\
目录 0 2018-12-18 13:46 j8583\src\com\protocol\demo\abc\
文件 1255 2014-05-16 20:51 j8583\src\com\protocol\demo\abc\AbstractProtocolABC.java
文件 1045 2014-05-16 20:51 j8583\src\com\protocol\demo\abc\ConfigABC.java
文件 2132 2014-05-16 20:51 j8583\src\com\protocol\demo\abc\Define8583ABC.java
文件 1648 2014-05-16 21:36 j8583\src\com\protocol\demo\abc\ProtocolAbcPay.java
文件 1715 2014-05-16 21:33 j8583\src\com\protocol\demo\abc\ProtocolAbcSign.java
文件 1265 2014-05-16 20:58 j8583\src\com\protocol\demo\abc\ProtocolSign.java
............此处省略126个文件信息
评论
共有 条评论