风控中台对接-评分回调接口修改

This commit is contained in:
zhanglei 2023-09-01 10:49:48 +08:00
parent 08839caba7
commit b889eb8296

View File

@ -2,10 +2,16 @@ package com.ample.esb.server;
import com.alibaba.fastjson.JSONObject;
import com.amarsoft.are.ARE;
import com.amarsoft.are.jbo.*;
import com.ample.esb.bean.esb.*;
import com.ample.esb.util.BaicPropertiesUtil;
import com.ample.esb.util.DateUtils;
import com.ample.esb.util.XstreamUtil;
import com.ample.sms.FileUtil;
import com.ample.sms.WriteRptThread;
import com.tenwa.httpclient.pboc.PbocXmlUtils;
import com.tenwa.reckon.util.UUIDUtil;
import jbo.oti.RC_CALLBACK_LOG;
import jbo.oti.RC_SCORE_RESULT;
import jbo.oti.RC_SCORE_RESULT_LOG;
import javax.servlet.ServletException;
@ -24,36 +30,28 @@ public class ScoreResultServlet extends HttpServlet {
}
private static final long serialVersionUID = 1L;
public void doPost(HttpServletRequest request, HttpServletResponse response) throws IOException, ServletException {
// TODO: 2023-8-25 确实判断ip白名单
response.setContentType("application/xml;charset:utf-8");
public void doPost(HttpServletRequest request, HttpServletResponse response) {
System.out.println("评分结果推送接收接口请求回调开始!");
response.setContentType("application/x-www-form-urlencoded;charset:utf-8");
response.setHeader("Cache-Control", "no-store");
response.setHeader("Pragma", "no-cache");
response.setDateHeader("Expires", 0L);
response.setCharacterEncoding("utf-8");
JSONObject resultJson = new JSONObject();
String userid = request.getParameter("userid");
resultJson.put("cmd","RPT_RESP");
PrintWriter out = response.getWriter();
ARE.getLog().info("接收到Rpt记录" + 1 + "");
resultJson.put("status","200");
resultJson.put("result","success");
try{
PrintWriter out = null;
String resultXml = null;
try {
out = response.getWriter();
BufferedReader in = new BufferedReader(new InputStreamReader(request.getInputStream(), "UTF-8"));
StringBuilder stb = new StringBuilder();
StringBuilder sb = new StringBuilder();
String line = null;
while ((line = in.readLine()) != null) {
stb.append(line);
sb.append(line);
}
ARE.getLog().info("接收到Rpt记录" + stb.toString());
savePushLog(stb.toString());
}catch (Exception e){
resultXml = sb.toString();
ARE.getLog().info("接收到Rpt记录" + resultXml);
} catch (Exception e) {
e.printStackTrace();
resultJson.put("status","500");
resultJson.put("result",e.getMessage());
}
out.print(resultJson.toJSONString());
out.close();
}
private void savePushLog(String xmlRes) throws Exception{
@ -102,4 +100,48 @@ public class ScoreResultServlet extends HttpServlet {
}
public String updateResult(String requestXml) throws Exception{
Transaction tran = (Transaction) XstreamUtil.objectConvert(requestXml);
String logPath = BaicPropertiesUtil.get("log_path");
String globalSeqNo = tran.getMessageEsbHead().getGlobalSeqNo();
String projectNo = tran.getMessageBody().getAfsResultRequest().getApplyNo();
FileUtil.writeFile(logPath + projectNo +"_"+ globalSeqNo +"_request.txt", requestXml);
String fraudAlert = tran.getMessageBody().getAfsResultRequest().getFraudAlert();
String actionTaken = tran.getMessageBody().getAfsResultRequest().getActionTaken();
try {
savePushLog(requestXml);
} catch (Exception e) {
e.printStackTrace();
throw new RuntimeException(e);
}
Response rs = new Response();
rs.setResult("Successful");
MessageBody mb = new MessageBody();
mb.setResponse(rs);
tran.setMessageBody(mb);
MessageEsbHead esbHead = tran.getMessageEsbHead();
esbHead.setTargetMachineDate(DateUtils.dateNow());
esbHead.setTargetMachineTime(DateUtils.TimeNowAccurate());
esbHead.setTargetReciveDate(DateUtils.dateNow());
esbHead.setTargetReciveTime(DateUtils.TimeNowAccurate());
esbHead.setRetCommStatus("S");
esbHead.setRetCode("000000");
esbHead.setRetMsg("成功");
esbHead.setRetSystemId("APF");
MessageAppHead appHead = tran.getMessageAppHead();
appHead.setTargetTranDate(DateUtils.dateNow());
appHead.setTargetTranTime(DateUtils.TimeNowAccurate());
String responseXml = XstreamUtil.xmlConvert(tran);
FileUtil.writeFile(logPath + projectNo +"_"+ globalSeqNo +"_response.txt", responseXml);
return responseXml;
}
public void doGet(HttpServletRequest request, HttpServletResponse response) throws IOException, ServletException {
doPost(request, response);
}
}