From 899e244757a2f2fa89a281613b850d4f55a737ab Mon Sep 17 00:00:00 2001 From: Xia Kaixiang Date: Tue, 6 Aug 2019 10:17:52 +0800 Subject: [PATCH] =?utf8?q?=E4=B8=8E=E9=93=B6=E8=A1=8C=E5=AF=B9=E6=8E=A5?= =?utf8?q?=E7=9A=84=E7=BC=96=E7=A0=81=E7=AD=89=E9=97=AE=E9=A2=98=E4=BF=AE?= =?utf8?q?=E6=94=B9?= MIME-Version: 1.0 Content-Type: text/plain; charset=utf8 Content-Transfer-Encoding: 8bit --- .../com/supwisdom/agent/Util/DlpayUtil.java | 4 +- .../supwisdom/agent/api/bean/DlpayReq.java | 39 ++++++++++--------- .../api/service/impl/YnrccApiServiceImpl.java | 2 + .../impl/YnrccParamCheckServiceImpl.java | 2 +- 4 files changed, 25 insertions(+), 22 deletions(-) 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; -- 2.17.1