去除邮储签约实现
This commit is contained in:
parent
50d740e9a2
commit
332457bc07
@ -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<String, String> 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<String, String> msg = new HashMap<>();
|
||||
|
||||
@ -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 = "<root>" + matcher.group(3) + "</root>";
|
||||
Map<String, String> 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("<?xml version=\"1.0\" encoding=\"GBK\"?><sign>DXTZ</sign>");
|
||||
sb.append("<cardno>").append(signObj.getAccNumber()).append("</cardno>")//银行卡号
|
||||
.append("<name>").append(signObj.getUserName()).append("</name>")//姓名
|
||||
.append("<papertype>01</papertype>")//证件类型(身份证)
|
||||
.append("<paperid>").append(signObj.getCertId()).append("</paperid>")//证件号码
|
||||
.append("<transq>").append(SerialNumberUtil.getYouChuSerialNumber("DXTZ", 4)).append("</transq>")//交易流水号
|
||||
.append("<bak1></bak1><bak2></bak2>");//备注
|
||||
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<String, String> 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 = "<root>" + matcher.group(3) + "</root>";
|
||||
Map<String, String> 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("<?xml version=\"1.0\" encoding=\"GBK\"?><sign>DXQY</sign>");
|
||||
sb.append("<cardno>").append(signObj.getAccNumber()).append("</cardno>")//银行卡号
|
||||
.append("<name>").append(signObj.getUserName()).append("</name>")//姓名
|
||||
.append("<papertype>01</papertype>")//证件类型(身份证)
|
||||
.append("<paperid>").append(signObj.getCertId()).append("</paperid>")//证件号码
|
||||
.append("<payid>").append(payId).append("</payid>")//签约用户号
|
||||
.append("<transq>").append(SerialNumberUtil.getYouChuSerialNumber("DXQY", 4)).append("</transq>")//交易流水号
|
||||
.append("<verifycd>").append(verifyCode).append("</verifycd>")//短信验证码
|
||||
.append("<bak1></bak1><bak2></bak2>");//备注
|
||||
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;
|
||||
}
|
||||
|
||||
|
||||
}
|
||||
|
||||
|
||||
Loading…
x
Reference in New Issue
Block a user