From: Xia Kaixiang Date: Tue, 6 Aug 2019 02:17:52 +0000 (+0800) Subject: 与银行对接的编码等问题修改 X-Git-Url: https://source.supwisdom.com/gerrit/gitweb?a=commitdiff_plain;h=30c267bfa853b2557e4b04041165bb0cb4c36886;p=epayment%2Ffood_payapi.git 与银行对接的编码等问题修改 --- diff --git a/ynrcc-agent/src/main/java/com/supwisdom/agent/Util/DlpayUtil.java b/ynrcc-agent/src/main/java/com/supwisdom/agent/Util/DlpayUtil.java index 4dbd2bb6..45b2ac5e 100644 --- a/ynrcc-agent/src/main/java/com/supwisdom/agent/Util/DlpayUtil.java +++ b/ynrcc-agent/src/main/java/com/supwisdom/agent/Util/DlpayUtil.java @@ -26,13 +26,13 @@ public class DlpayUtil { public static String send(String ip, int port, int timeout, String data) throws UnknownHostException, IOException { Socket client = new Socket(ip, port); client.setSoTimeout(timeout * 1000); //timeout秒 - PrintWriter printWriter = new PrintWriter(client.getOutputStream()); + PrintWriter printWriter = new PrintWriter(new OutputStreamWriter(client.getOutputStream(),"GBK")); // 发送消息 printWriter.println(data); printWriter.flush(); // 读取返回信息 - InputStreamReader streamReader = new InputStreamReader(client.getInputStream()); + InputStreamReader streamReader = new InputStreamReader(client.getInputStream(), "GBK"); BufferedReader reader = new BufferedReader(streamReader); StringBuffer content = new StringBuffer(); //存返回信息 int ch; diff --git a/ynrcc-agent/src/main/java/com/supwisdom/agent/api/bean/DlpayReq.java b/ynrcc-agent/src/main/java/com/supwisdom/agent/api/bean/DlpayReq.java index 03f957f9..7fae31ac 100644 --- a/ynrcc-agent/src/main/java/com/supwisdom/agent/api/bean/DlpayReq.java +++ b/ynrcc-agent/src/main/java/com/supwisdom/agent/api/bean/DlpayReq.java @@ -2,6 +2,8 @@ package com.supwisdom.agent.api.bean; import com.supwisdom.agent.Util.MD5; +import java.io.UnsupportedEncodingException; + public class DlpayReq { private static final String prefix = ""; private static final String BANKCARD_BIND_TRANSCODE = "BC5510"; @@ -36,8 +38,8 @@ public class DlpayReq { /** * 市民卡绑定请求XML - * */ - public String getBindCardXml() { + */ + public String getBindCardXml() throws UnsupportedEncodingException { StringBuffer xml = new StringBuffer(); xml.append(prefix) .append("") @@ -52,14 +54,13 @@ public class DlpayReq { .append("").append(idNo).append("") .append("").append(phone).append("") .append(""); - return String.format("%08d", xml.toString().length()) + xml.toString(); + return String.format("%08d", xml.toString().getBytes("GBK").length) + xml.toString(); } - /** * 市民卡签约/解约请求XML - * */ - public String getSignXml(){ + */ + public String getSignXml() throws UnsupportedEncodingException { StringBuffer xml = new StringBuffer(); xml.append(prefix) .append("") @@ -75,13 +76,13 @@ public class DlpayReq { .append("").append(phone).append("") .append("").append(transType).append("") .append(""); - return String.format("%08d", xml.toString().length()) + xml.toString(); + return String.format("%08d", xml.toString().getBytes("GBK").length) + xml.toString(); } /** * 市民卡代扣消费接口请求报文 - * */ - public String getCardpayXml(){ + */ + public String getCardpayXml() throws UnsupportedEncodingException { StringBuffer xml = new StringBuffer(); xml.append(prefix) .append("") @@ -100,13 +101,13 @@ public class DlpayReq { .append("").append(description).append("") .append("").append(MD5.encodeByMD5ForYnrcc(merchantBcno + bcNo + amount)).append("") .append(""); - return String.format("%08d", xml.toString().length()) + xml.toString(); + return String.format("%08d", xml.toString().getBytes("GBK").length) + xml.toString(); } /** * 市民卡退款接口请求报文 - * */ - public String getPayRefundXml(){ + */ + public String getPayRefundXml() throws UnsupportedEncodingException { StringBuffer xml = new StringBuffer(); xml.append(prefix) .append("") @@ -118,13 +119,13 @@ public class DlpayReq { .append("").append(amount).append("") .append("").append(description).append("") .append(""); - return String.format("%08d", xml.toString().length()) + xml.toString(); + return String.format("%08d", xml.toString().getBytes("GBK").length) + xml.toString(); } /** * 市民卡交易查询接口请求报文 - * */ - public String getQueryResultXml(){ + */ + public String getQueryResultXml() throws UnsupportedEncodingException { StringBuffer xml = new StringBuffer(); xml.append(prefix) .append("") @@ -134,13 +135,13 @@ public class DlpayReq { .append("").append(sn).append("") .append("").append(oriSn).append("") .append(""); - return String.format("%08d", xml.toString().length()) + xml.toString(); + return String.format("%08d", xml.toString().getBytes("GBK").length) + xml.toString(); } /** * 市民卡对账接口请求报文 - * */ - public String getChkfileXml(){ + */ + public String getChkfileXml() throws UnsupportedEncodingException { StringBuffer xml = new StringBuffer(); xml.append(prefix) .append("") @@ -151,7 +152,7 @@ public class DlpayReq { .append("").append(chkdate).append("") .append("").append("") .append(""); - return String.format("%08d", xml.toString().length()) + xml.toString(); + return String.format("%08d", xml.toString().getBytes("GBK").length) + xml.toString(); } public String getTransdate() { diff --git a/ynrcc-agent/src/main/java/com/supwisdom/agent/api/service/impl/YnrccApiServiceImpl.java b/ynrcc-agent/src/main/java/com/supwisdom/agent/api/service/impl/YnrccApiServiceImpl.java index 4ae422e2..1d492e04 100644 --- a/ynrcc-agent/src/main/java/com/supwisdom/agent/api/service/impl/YnrccApiServiceImpl.java +++ b/ynrcc-agent/src/main/java/com/supwisdom/agent/api/service/impl/YnrccApiServiceImpl.java @@ -1,5 +1,6 @@ package com.supwisdom.agent.api.service.impl; +import com.google.gson.Gson; import com.supwisdom.agent.Util.BussinessException; import com.supwisdom.agent.Util.DlpayUtil; import com.supwisdom.agent.Util.StringUtil; @@ -76,6 +77,7 @@ public class YnrccApiServiceImpl implements YnrccApiService { try { DlpayResp resp = XmlUtils.getXmlToObject(returnXml.substring(8), "GBK", DlpayResp.class); + logger.info("==========refno=[" + req.getSn() + "]成功返回:" + new Gson().toJson(resp)); return resp; } catch (Exception e) { throw new BussinessException("返回报文解析异常!"); diff --git a/ynrcc-agent/src/main/java/com/supwisdom/agent/api/service/impl/YnrccParamCheckServiceImpl.java b/ynrcc-agent/src/main/java/com/supwisdom/agent/api/service/impl/YnrccParamCheckServiceImpl.java index 52009b1e..52c3228f 100644 --- a/ynrcc-agent/src/main/java/com/supwisdom/agent/api/service/impl/YnrccParamCheckServiceImpl.java +++ b/ynrcc-agent/src/main/java/com/supwisdom/agent/api/service/impl/YnrccParamCheckServiceImpl.java @@ -221,7 +221,7 @@ public class YnrccParamCheckServiceImpl implements YnrccParamCheckService { return false; } - if (StringUtil.checkDatetimeValid(checkdate,"yyyyMMdd")) { + if (!StringUtil.checkDatetimeValid(checkdate,"yyyyMMdd")) { resp.setCode(ErrorCode.REQ_PARAM_ERROR); resp.setMessage("请求参数错误[对账日期]"); return false;