diff --git a/src/com/tenwa/lease/app/allinpay/servlet/AllinpayServlet.java b/src/com/tenwa/lease/app/allinpay/servlet/AllinpayServlet.java index f78a04daa..66739a703 100644 --- a/src/com/tenwa/lease/app/allinpay/servlet/AllinpayServlet.java +++ b/src/com/tenwa/lease/app/allinpay/servlet/AllinpayServlet.java @@ -43,7 +43,8 @@ public class AllinpayServlet extends BaseServlet { String signType = request.getParameter("signType"); String projectId = request.getParameter("projectId"); if (signType.equals("YCcollect")) { - return new YCPaySignServlet().ycDXNotice(request, response, getSignObj(projectId)); +// return new YCPaySignServlet().ycDXNotice(request, response, getSignObj(projectId)); + return "/error.jsp"; } Map msg = new HashMap<>(); @@ -113,7 +114,8 @@ public class AllinpayServlet extends BaseServlet { String signType = request.getParameter("signType"); String projectId = request.getParameter("projectId"); if (signType.equals("YCcollect")) { - return new YCPaySignServlet().ycDXSign(request, response, getSignObj(projectId)); +// return new YCPaySignServlet().ycDXSign(request, response, getSignObj(projectId)); + return "/error.jsp"; } Map msg = new HashMap<>(); diff --git a/src/com/tenwa/lease/app/allinpay/servlet/YCPaySignServlet.java b/src/com/tenwa/lease/app/allinpay/servlet/YCPaySignServlet.java deleted file mode 100644 index 694e5e7c7..000000000 --- a/src/com/tenwa/lease/app/allinpay/servlet/YCPaySignServlet.java +++ /dev/null @@ -1,206 +0,0 @@ -package com.tenwa.lease.app.allinpay.servlet; - -import com.alibaba.fastjson.JSONObject; -import com.amarsoft.app.lc.util.DateAssistant; -import com.amarsoft.are.jbo.BizObject; -import com.amarsoft.are.jbo.BizObjectManager; -import com.amarsoft.are.jbo.JBOFactory; -import com.amarsoft.are.util.DataConvert; -import com.tenwa.collectaudit.yccollect.XMLAnalysis; -import com.tenwa.util.SerialNumberUtil; -import org.apache.commons.lang3.StringUtils; -import org.apache.log4j.Logger; - -import javax.servlet.http.HttpServletRequest; -import javax.servlet.http.HttpServletResponse; -import java.io.PrintWriter; -import java.util.HashMap; -import java.util.Map; -import java.util.regex.Matcher; -import java.util.regex.Pattern; - -/** - * @program: apzl_leasing - * @author: yjf - * @create: 2020-11-23 15:39 - **/ -public class YCPaySignServlet { - - public static Logger logger = Logger.getLogger(YCPaySignServlet.class); - - // 邮储短信通知 - public String ycDXNotice(HttpServletRequest request, HttpServletResponse response, SignDto signObj) throws Exception { - String retPath = null; - try (PrintWriter pw = response.getWriter()) { - logger.info("-------------------- 邮储短信通知(YC_DX_NOTICE)执行--------------------"); - String projectId = request.getParameter("projectId"); - String dxNoticeXml = createDXNoticeXml(signObj); -// String retMeg = SocketClientUtil.sendTcpNoticeMsg(dxNoticeXml); - String retMeg = ""; - logger.info("-------------------- 邮储短信通知(YC_DX_NOTICE)返回信息--------------------"); - logger.info(retMeg); - logger.info("-------------------- 邮储短信通知(YC_DX_NOTICE)返回信息--------------------"); - Pattern pattern = Pattern.compile("(\\d{4})(<\\?.*\\?>)(<.*>)(\\s*$)"); - Matcher matcher = pattern.matcher(retMeg); - if (matcher.matches()) { - String analysisXml = "" + matcher.group(3) + ""; - Map respMap = XMLAnalysis.xmlToMap(analysisXml, "GBK"); - BizObjectManager bomLDC = JBOFactory.getBizObjectManager("jbo.app.tenwa.calc.LC_CARD_TLSIGN"); - bomLDC.createQuery("update O SET CUSTOMER_LAUNCH_TIME=:customerLaunchTime,REQUEST_CONTENT=:requestContent,RESPONSE_CONTENT=:responseContent where project_id = :projectId ") - .setParameter("customerLaunchTime", DateAssistant.getTodayNow()) - .setParameter("requestContent", dxNoticeXml) - .setParameter("responseContent", retMeg) - .setParameter("projectId", projectId).executeUpdate(); - if (respMap.get("respcd").equals("0000")) { - JSONObject jsonObject = new JSONObject(); - jsonObject.put("message", "success"); - pw.write(jsonObject.toJSONString()); - } - } - } catch (Exception e) { - logger.error("-------------------- 邮储短信通知(YC_DX_NOTICE)异常--------------------", e); - request.setAttribute("state", "500"); - request.setAttribute("title", "服务器内部异常"); - request.setAttribute("message", e.getMessage()); - retPath = "/error.jsp"; - } - return retPath; - } - - /** - * 生成短信通知xml - */ - private String createDXNoticeXml(SignDto signObj) throws Exception { - StringBuilder sb = new StringBuilder("DXTZ"); - sb.append("").append(signObj.getAccNumber()).append("")//银行卡号 - .append("").append(signObj.getUserName()).append("")//姓名 - .append("01")//证件类型(身份证) - .append("").append(signObj.getCertId()).append("")//证件号码 - .append("").append(SerialNumberUtil.getYouChuSerialNumber("DXTZ", 4)).append("")//交易流水号 - .append("");//备注 - String xmlLength = String.format("%04d", sb.length());//报文长度 - return xmlLength + sb.toString(); - } - - - // 邮储短信签约 - public String ycDXSign(HttpServletRequest request, HttpServletResponse response, SignDto signObj) throws Exception { - String retPath = null; - try (PrintWriter pw = response.getWriter()) { - Map retMap = new HashMap<>(); - retMap.put("status", "error"); - logger.info("-------------------- 邮储短信签约(YC_DX_SIGN)执行--------------------"); - String projectId = request.getParameter("projectId"); - String verCode = request.getParameter("verCode"); - String dxNoticeXml = createDXSignXml(signObj, "", verCode); -// String retMeg = SocketClientUtil.sendTcpNoticeMsg(dxNoticeXml); - String retMeg = ""; - logger.info("-------------------- 邮储短信签约(YC_DX_SIGN)返回信息--------------------"); - logger.info(retMeg); - logger.info("-------------------- 邮储短信签约(YC_DX_SIGN)返回信息--------------------"); - Pattern pattern = Pattern.compile("(\\d{4})(<\\?.*\\?>)(<.*>)(\\s*$)"); - Matcher matcher = pattern.matcher(retMeg); - if (matcher.matches()) { - String analysisXml = "" + matcher.group(3) + ""; - Map respMap = XMLAnalysis.xmlToMap(analysisXml, "GBK"); - BizObjectManager bomLDC = JBOFactory.getBizObjectManager("jbo.app.tenwa.calc.LC_CARD_TLSIGN"); - String signTime = DateAssistant.getTodayNow(); - if (respMap.get("respcd").equals("0000")) { - bomLDC.createQuery("update o set o.SIGN_STATUS = 'sign_status2',o.SIGN_TIME = :signTime where o.project_id = :projectId ") - .setParameter("signTime", signTime).setParameter("projectId", projectId).executeUpdate(); - } else { - bomLDC.createQuery("update o set o.SIGN_STATUS = 'sign_status3',o.SIGN_TIME = :signTime where o.project_id = :projectId ") - .setParameter("signTime", signTime).setParameter("projectId", projectId).executeUpdate(); - } - } - pw.write(retMap.toString()); - } catch (Exception e) { - logger.error("-------------------- 邮储短信签约(YC_DX_SIGN)异常--------------------", e); - request.setAttribute("state", "500"); - request.setAttribute("title", "服务器内部异常"); - request.setAttribute("message", e.getMessage()); - retPath = "/error.jsp"; - } - return retPath; - } - - /** - * 生成短信签约xml - */ - private String createDXSignXml(SignDto signObj, String payId, String verifyCode) throws Exception { - StringBuilder sb = new StringBuilder("DXQY"); - sb.append("").append(signObj.getAccNumber()).append("")//银行卡号 - .append("").append(signObj.getUserName()).append("")//姓名 - .append("01")//证件类型(身份证) - .append("").append(signObj.getCertId()).append("")//证件号码 - .append("").append(payId).append("")//签约用户号 - .append("").append(SerialNumberUtil.getYouChuSerialNumber("DXQY", 4)).append("")//交易流水号 - .append("").append(verifyCode).append("")//短信验证码 - .append("");//备注 - String xmlLength = String.format("%04d", sb.length());//报文长度 - return xmlLength + sb.toString(); - } - - // 邮储签约界面 - public String ycSignPage(HttpServletRequest request, HttpServletResponse response, SignDto signObj) { - String retPath = "/error.jsp"; - try { - String projectId = DataConvert.toString(request.getParameter("con")); - String userName = "", phoneNumber = "", accNumber = "", certId = ""; - if (signObj != null) { - userName = signObj.getUserName(); - phoneNumber = signObj.getPhoneNumber(); - accNumber = signObj.getAccNumber(); - certId = signObj.getCertId(); - } - if (StringUtils.isEmpty(userName) || StringUtils.isEmpty(phoneNumber) || StringUtils.isEmpty(accNumber) || StringUtils.isEmpty(certId)) { - logger.error("【" + projectId + "】信息不完整:userName=" + userName + ",phoneNumber=" + phoneNumber + "accNumber=" + accNumber + "certId=" + certId); - request.setAttribute("state", "500"); - request.setAttribute("title", "服务器内部异常"); - request.setAttribute("message", "您的信息不完整,请联系业务人员"); - return retPath; - } - BizObjectManager bomLDC = JBOFactory.getBizObjectManager("jbo.app.tenwa.calc.LC_CARD_TLSIGN"); - BizObject ldc = bomLDC.createQuery("O.PROJECT_ID=:PROJECT_ID").setParameter("PROJECT_ID", projectId).getSingleResult(true); - if (ldc == null) { - ldc = bomLDC.newObject(); - ldc.setAttributeValue("PROJECT_ID", projectId); - ldc.setAttributeValue("sign_type", "YC"); - ldc.setAttributeValue("SIGN_STATUS", "sign_status1"); - bomLDC.saveObject(ldc); - } else if ("sign_status2".equals(ldc.getAttribute("SIGN_STATUS").toString())) { - logger.error("【" + projectId + "】无签约业务需求"); - request.setAttribute("state", "404"); - request.setAttribute("title", "UH OH!页面丢失"); - request.setAttribute("message", "已签约,不能重复签约"); - return retPath; - } - request.setAttribute("userName", userName); - request.setAttribute("phoneNumber", phoneNumber); - request.setAttribute("certId", certId); - request.setAttribute("accNumber", accNumber); - //前台展示短信息 - String userNameShort = "*" + userName.substring(1, userName.length()); - String phoneNumberShort = "*****" + phoneNumber.substring(phoneNumber.length() - 4); - String accNumberShort = "*****" + accNumber.substring(accNumber.length() - 4); - String certIdShort = certId.substring(certId.length() - 6); - request.setAttribute("userNameShort", userNameShort); - request.setAttribute("phoneNumberShort", phoneNumberShort); - request.setAttribute("accNumberShort", accNumberShort); - request.setAttribute("certIdShort", certIdShort); - request.setAttribute("projectId", projectId); - request.setAttribute("signType", "YC"); - retPath = "/ycsign_index.jsp"; - } catch (Exception e) { - e.printStackTrace(); - request.setAttribute("state", "500"); - request.setAttribute("title", "服务器内部异常"); - request.setAttribute("message", e.getMessage()); - } - return retPath; - } - - -} - -