@@ -163,15 +162,25 @@
$("#btn_part2").click(function(){
if(!verifyCheck._click()) return;
var projectId = $.trim($("#projectId").val());
+ var flowunid = $.trim($("#flowunid").val());
+ var signSource = $.trim($("#signSource").val());
//var contractNumber = encodeURI($.trim($("#contractNumber").val()));
var verifyNo = $.trim($("#verifyNo").val());
var signType = $.trim($("#signType").val());
+ var phoneNumber = $.trim($("#phoneNumber").val());
$.ajax({
type : "POST",
url : "sign",
async : true,
dataType: "json",
- data : {"method":"allinPaySigning","projectId":projectId,"verCode":verifyNo,"signType":signType},
+ data : {"method":"allinPaySigning",
+ "projectId":projectId,
+ "flowunid":flowunid,
+ "signSource":signSource,
+ "verCode":verifyNo,
+ "phoneNumber":phoneNumber,
+ "signType":signType
+ },
success : function(data) {
if("success" == data.message){
$(".part2").hide();
diff --git a/WebContent/js/jquery/register.js b/WebContent/js/jquery/register.js
index a5246f9ae..7b13547e7 100644
--- a/WebContent/js/jquery/register.js
+++ b/WebContent/js/jquery/register.js
@@ -117,7 +117,9 @@
if (b.code) {
$("#verifyYz").click(function() {
var projectId = $.trim($("#projectId").val());
+ var flowunid = $.trim($("#flowunid").val());
var signType = $.trim($("#signType").val());
+ var signSource = $.trim($("#signSource").val());
$.ajax({
type : "POST",
url : "sign",
@@ -126,6 +128,8 @@
data : {
"method":"allinPaySendMessages",
"projectId":projectId,
+ "flowunid":flowunid,
+ "signSource":signSource,
"signType":signType
},
success : function(data) {
@@ -136,7 +140,7 @@
d._sendVerify();
return true;
}else{
- alert("短信验证码发送失败,请稍后再试");
+ alert(data.message||"短信验证码发送失败,请稍后再试");
return false;
}
},
diff --git a/src/com/tenwa/lease/app/allinpay/service/impl/AllinpayServiceImpl.java b/src/com/tenwa/lease/app/allinpay/service/impl/AllinpayServiceImpl.java
index 99f074be7..5be8c8f29 100644
--- a/src/com/tenwa/lease/app/allinpay/service/impl/AllinpayServiceImpl.java
+++ b/src/com/tenwa/lease/app/allinpay/service/impl/AllinpayServiceImpl.java
@@ -67,7 +67,6 @@ public class AllinpayServiceImpl implements AllinpayService {
map.put("phoneNumber", phoneNumber);
map.put("userName", userName);
map.put("accNumber", accNumber);
- map.put("phoneNumber", phoneNumber);
map.put("certId", certId);
map.put("subjectid", subjectid);
return map;
diff --git a/src/com/tenwa/lease/app/allinpay/servlet/AllinpayServlet.java b/src/com/tenwa/lease/app/allinpay/servlet/AllinpayServlet.java
index c82c3ab3a..a7ea1448d 100644
--- a/src/com/tenwa/lease/app/allinpay/servlet/AllinpayServlet.java
+++ b/src/com/tenwa/lease/app/allinpay/servlet/AllinpayServlet.java
@@ -10,7 +10,6 @@ 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.amarsoft.awe.util.ASResultSet;
import com.amarsoft.awe.util.SqlObject;
import com.amarsoft.awe.util.Transaction;
@@ -24,36 +23,39 @@ import javax.servlet.annotation.WebServlet;
import javax.servlet.http.Cookie;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
-import java.net.MalformedURLException;
import java.util.HashMap;
import java.util.Map;
+import java.util.Objects;
@WebServlet(urlPatterns = {"/allinpay/sign"})
public class AllinpayServlet extends BaseServlet {
private static final long serialVersionUID = 1L;
-
- private AllinpayProperties factory;
-
private AllinpayService allinpayService = new AllinpayServiceImpl();
// 通联卡扣短信发送
- public String allinPaySendMessages(HttpServletRequest request, HttpServletResponse response)
- throws MalformedURLException, Exception {
+ public String allinPaySendMessages(HttpServletRequest request, HttpServletResponse response) throws Exception {
String signType = request.getParameter("signType");
String projectId = request.getParameter("projectId");
- if (signType.equals("YCcollect")) {
-// return new YCPaySignServlet().ycDXNotice(request, response, getSignObj(projectId));
- return "/error.jsp";
- }
+ String flowunid = request.getParameter("flowunid");
+ String signSource = request.getParameter("signSource");
Map msg = new HashMap<>();
- msg.put("message", "error");
- Map xmlMap = allinpayService.allinPaySendMessages(projectId);
- String phoneNumber = xmlMap.get("phoneNumber");
- String subjectid = xmlMap.get("subjectid");
- factory = new AllinpayProperties(subjectid);
+ SignDto signObj = getSignObj(projectId, flowunid);
+ if (signType.equals("YCcollect")) {
+// return new YCPaySignServlet().ycDXNotice(request, response, getSignObj(projectId));
+ msg.put("message", "渠道错误");
+ response.getWriter().write(JSON.toJSONString(msg));
+ return null;
+ }
+ String phoneNumber = signObj.getPhoneNumber();
+ AllinpayProperties factory = new AllinpayProperties(signSource);
+ Map xmlMap = new HashMap<>();
+ xmlMap.put("phoneNumber", phoneNumber);
+ xmlMap.put("userName", signObj.getUserName());
+ xmlMap.put("accNumber", signObj.getAccNumber());
+ xmlMap.put("certId", signObj.getCertId());
Map map = factory.allinPaySendMessages(xmlMap);
if (!"success".equals(map.get("message"))) {
@@ -66,10 +68,12 @@ public class AllinpayServlet extends BaseServlet {
AipgRsp rsp = XmlParser.parseRsp(responseContent);
InfoRsp infoRsp = rsp.getINFO();
FAGRARET ret = (FAGRARET) rsp.trxObj();
- SqlObject sqlObject = null;
+ boolean isSucc = false; //短信发送状态
+ msg.put("message", infoRsp.getERR_MSG());
if ("0000".equals(infoRsp.getRET_CODE())) {
String retCode = ret.getRET_CODE();
if (retCode != null && "0000".equals(retCode)) {
+ isSucc = true;
msg.put("message", "success");
String reqSn = infoRsp.getREQ_SN();
Cookie[] cookies = request.getCookies();
@@ -81,19 +85,17 @@ public class AllinpayServlet extends BaseServlet {
}
cookie.setMaxAge(60 * 10);
response.addCookie(cookie);
-
- String sql = "UPDATE LC_CARD_TLSIGN SET CUSTOMER_LAUNCH_TIME=:customerLaunchTime WHERE PROJECT_ID=:projectId";
- sqlObject = new SqlObject(sql);
- sqlObject.setParameter("customerLaunchTime", time);
- sqlObject.setParameter("projectId", projectId);
} else {
- String sql = "UPDATE LC_CARD_TLSIGN SET CUSTOMER_LAUNCH_TIME=:customerLaunchTime,REQUEST_CONTENT=:requestContent,RESPONSE_CONTENT=:responseContent WHERE PROJECT_ID=:projectId";
- sqlObject = new SqlObject(sql);
- sqlObject.setParameter("customerLaunchTime", time);
- sqlObject.setParameter("requestContent", requestContent);
- sqlObject.setParameter("responseContent", responseContent);
- sqlObject.setParameter("projectId", projectId);
+ msg.put("message", ret.getERR_MSG());
}
+ }
+
+ SqlObject sqlObject = null;
+ if (isSucc) {
+ String sql = "UPDATE LC_CARD_TLSIGN SET CUSTOMER_LAUNCH_TIME=:customerLaunchTime WHERE PROJECT_ID=:projectId";
+ sqlObject = new SqlObject(sql);
+ sqlObject.setParameter("customerLaunchTime", time);
+ sqlObject.setParameter("projectId", projectId);
} else {
String sql = "UPDATE LC_CARD_TLSIGN SET CUSTOMER_LAUNCH_TIME=:customerLaunchTime,REQUEST_CONTENT=:requestContent,RESPONSE_CONTENT=:responseContent WHERE PROJECT_ID=:projectId";
sqlObject = new SqlObject(sql);
@@ -104,6 +106,7 @@ public class AllinpayServlet extends BaseServlet {
}
allinpayService.update(sqlObject);
}
+
String message = JSON.toJSONString(msg);
response.getWriter().write(message);
return null;
@@ -112,22 +115,19 @@ public class AllinpayServlet extends BaseServlet {
// 通联卡扣协议签约
public String allinPaySigning(HttpServletRequest request, HttpServletResponse response) throws Exception {
String signType = request.getParameter("signType");
+ String signSource = request.getParameter("signSource");
String projectId = request.getParameter("projectId");
- if (signType.equals("YCcollect")) {
-// return new YCPaySignServlet().ycDXSign(request, response, getSignObj(projectId));
- return "/error.jsp";
- }
-
+ String phoneNumber = request.getParameter("phoneNumber");
Map msg = new HashMap<>();
msg.put("message", "error");
+ if (signType.equals("YCcollect")) {
+// return new YCPaySignServlet().ycDXSign(request, response, getSignObj(projectId));
+ msg.put("message", "渠道错误");
+ response.getWriter().write(JSON.toJSONString(msg));
+ return null;
+ }
String verCode = request.getParameter("verCode");
- Map messageMap = allinpayService.allinPaySigning(projectId);
- String phoneNumber = messageMap.get("phoneNumber");
- String subjectid = messageMap.get("subjectid");
- factory = new AllinpayProperties(subjectid);
- String time = DateAssistant.getTodayNow();
-
Cookie[] cookies = request.getCookies();
Cookie cookie = AllinpayUtil.getCookie(phoneNumber, cookies);
if (cookie == null) {
@@ -140,6 +140,9 @@ public class AllinpayServlet extends BaseServlet {
Map mapXml = new HashMap<>();
mapXml.put("reqSn", reqSn);
mapXml.put("verCode", verCode);
+
+ //调用签约接口
+ AllinpayProperties factory = new AllinpayProperties(signSource);
Map map = factory.allinPaySigning(mapXml);
if (!"success".equals(map.get("message"))) {
@@ -148,31 +151,35 @@ public class AllinpayServlet extends BaseServlet {
} else {
String requestContent = map.get("request");
String responseContent = map.get("response");
+ String time = DateAssistant.getTodayNow();
AipgRsp rsp = XmlParser.parseRsp(responseContent);
InfoRsp infoRsp = rsp.getINFO();
- SqlObject sqlObject = null;
+
+ //签约成功返回值,失败不返回
+ String agrmNo = null;
+ boolean isSucc = false;
if ("0000".equals(infoRsp.getRET_CODE())) {
FAGRCRET ret = (FAGRCRET) rsp.trxObj();
String retCode = ret.getRET_CODE();
if (retCode != null && "0000".equals(retCode)) {
+ isSucc = true;
+ agrmNo = ret.getAGRMNO();
msg.put("message", "success");
- String agrmNo = ret.getAGRMNO();
- String sql = "UPDATE LC_CARD_TLSIGN SET SIGN_TIME=:signTime,AGRMNO=:agrmno,SIGN_STATUS=:signStatus WHERE PROJECT_ID=:projectId";
- sqlObject = new SqlObject(sql);
- sqlObject.setParameter("signTime", time);
- sqlObject.setParameter("agrmno", agrmNo);
- sqlObject.setParameter("signStatus", "sign_status2");
- sqlObject.setParameter("projectId", projectId);
} else {
- String sql = "UPDATE LC_CARD_TLSIGN SET SIGN_TIME=:signTime,SIGN_STATUS=:signStatus,REQUEST_CONTENT=:requestContent,RESPONSE_CONTENT=:responseContent WHERE PROJECT_ID=:projectId";
- sqlObject = new SqlObject(sql);
- sqlObject.setParameter("signTime", time);
- sqlObject.setParameter("signStatus", "sign_status3");
- sqlObject.setParameter("requestContent", requestContent);
- sqlObject.setParameter("responseContent", responseContent);
- sqlObject.setParameter("projectId", projectId);
msg.put("msg", ret.getERR_MSG());
}
+ } else {
+ msg.put("msg", infoRsp.getERR_MSG());
+ }
+
+ SqlObject sqlObject = null;
+ if (isSucc) {
+ String sql = "UPDATE LC_CARD_TLSIGN SET SIGN_TIME=:signTime,AGRMNO=:agrmno,SIGN_STATUS=:signStatus WHERE PROJECT_ID=:projectId";
+ sqlObject = new SqlObject(sql);
+ sqlObject.setParameter("signTime", time);
+ sqlObject.setParameter("agrmno", agrmNo);
+ sqlObject.setParameter("signStatus", "sign_status2");
+ sqlObject.setParameter("projectId", projectId);
} else {
String sql = "UPDATE LC_CARD_TLSIGN SET SIGN_TIME=:signTime,SIGN_STATUS=:signStatus,REQUEST_CONTENT=:requestContent,RESPONSE_CONTENT=:responseContent WHERE PROJECT_ID=:projectId";
sqlObject = new SqlObject(sql);
@@ -181,7 +188,6 @@ public class AllinpayServlet extends BaseServlet {
sqlObject.setParameter("requestContent", requestContent);
sqlObject.setParameter("responseContent", responseContent);
sqlObject.setParameter("projectId", projectId);
- msg.put("msg", infoRsp.getERR_MSG());
}
allinpayService.update(sqlObject);
}
@@ -194,9 +200,13 @@ public class AllinpayServlet extends BaseServlet {
public String allinPaySign(HttpServletRequest request, HttpServletResponse response) {
String errorPage = "/error.jsp";
try {
- String projectId = DataConvert.toString(request.getParameter("con"));
- SignDto signObj = getSignObj(projectId);
- String userName = "", phoneNumber = "", accNumber = "", certId = "", collectType = "";
+ String signSource = request.getParameter("signSource");
+ // projectId、flowunid 同时有值,customer_account_temp数据签约
+ // projectId 有值,customer_account数据签约
+ String projectId = request.getParameter("projectId");
+ String flowunid = request.getParameter("flowunid");
+ SignDto signObj = getSignObj(projectId, flowunid);
+ String userName = "", phoneNumber = "", accNumber = "", certId = "", collectType = "", queryId = "";
if (signObj != null) {
userName = signObj.getUserName();
phoneNumber = signObj.getPhoneNumber();
@@ -211,22 +221,23 @@ public class AllinpayServlet extends BaseServlet {
return errorPage;
}
if (StringUtils.isEmpty(userName) || StringUtils.isEmpty(phoneNumber) || StringUtils.isEmpty(accNumber) || StringUtils.isEmpty(certId) || StringUtils.isEmpty(collectType)) {
- logger.error("【" + projectId + "】信息不完整:userName=" + userName + ",phoneNumber=" + phoneNumber + "accNumber=" + accNumber + "certId=" + certId + "collectType=" + collectType);
+ logger.error("【" + queryId + "】信息不完整:userName=" + userName + ",phoneNumber=" + phoneNumber + "accNumber=" + accNumber + "certId=" + certId + "collectType=" + collectType);
request.setAttribute("state", "500");
request.setAttribute("title", "服务器内部异常");
request.setAttribute("message", "您的信息不完整,请联系业务人员");
return errorPage;
}
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) {
+ BizObject ldc = bomLDC.createQuery("O.PROJECT_ID=:projectId").setParameter("projectId", projectId).getSingleResult(true);
+ if (Objects.isNull(ldc)) {
ldc = bomLDC.newObject();
ldc.setAttributeValue("PROJECT_ID", projectId);
- ldc.setAttributeValue("sign_type", collectType);
+ ldc.setAttributeValue("SIGN_TYPE", collectType);
ldc.setAttributeValue("SIGN_STATUS", "sign_status1");
+ ldc.setAttributeValue("SIGN_TIME", DateAssistant.getTodayNow());
bomLDC.saveObject(ldc);
} else if ("sign_status2".equals(ldc.getAttribute("SIGN_STATUS").toString())) {
- logger.error("【" + projectId + "】无签约业务需求");
+ logger.error("【" + queryId + "】无签约业务需求");
request.setAttribute("state", "404");
request.setAttribute("title", "UH OH!页面丢失");
request.setAttribute("message", "已签约,不能重复签约");
@@ -236,8 +247,10 @@ public class AllinpayServlet extends BaseServlet {
request.setAttribute("phoneNumber", phoneNumber);
request.setAttribute("accNumber", accNumber);
request.setAttribute("certId", certId);
- request.setAttribute("projectId", projectId);
request.setAttribute("signType", collectType);
+ request.setAttribute("signSource", signSource);
+ request.setAttribute("projectId", projectId);
+ request.setAttribute("flowunid", flowunid);
String userNameShort = "*" + userName.substring(1, userName.length());
String phoneNumberShort = "*****" + phoneNumber.substring(phoneNumber.length() - 4);
@@ -263,28 +276,34 @@ public class AllinpayServlet extends BaseServlet {
* 获取前台展示业务数据
*
* @param projectId
+ * @param flowunid
* @return
* @throws Exception
*/
- private SignDto getSignObj(String projectId) throws Exception {
+ private SignDto getSignObj(String projectId, String flowunid) throws Exception {
Transaction Sqlca = null;
SignDto signDto = null;
try {
Sqlca = Transaction.createTransaction(JBOFactory.createJBOTransaction());
- String sql = "SELECT ca.account customername,ca.mobile phonenumber,ca.acc_number accNumber,ca.certid certId,ca.collect_type collectType FROM lb_project_info lpi JOIN customer_account ca ON ca.project_id=lpi.ID WHERE lpi.id=:Id limit 1";
- ASResultSet res = Sqlca.getASResultSet(new SqlObject(sql).setParameter("Id", projectId));
+ String queryId = projectId;
+ String sql = "SELECT ca.account customername,ca.mobile phonenumber,ca.acc_number accNumber,ca.certid certId,ca.collect_type collectType FROM customer_account ca WHERE ca.project_id=:queryId ";
+ if (StringUtils.isNotBlank(flowunid)) {
+ queryId = flowunid;
+ sql = "SELECT ca.account customername,ca.mobile phonenumber,ca.acc_number accNumber,ca.certid certId,ca.collect_type collectType FROM customer_account_temp ca WHERE ca.flowunid=:queryId ";
+ }
+ ASResultSet res = Sqlca.getASResultSet(new SqlObject(sql).setParameter("queryId", queryId));
if (res.next()) {
String userName = res.getString("customername");
String phoneNumber = res.getString("phonenumber");
String accNumber = res.getString("accNumber");
String certId = res.getString("certId");
String collectType = res.getString("collectType");
- signDto = new SignDto(userName, phoneNumber, certId, accNumber, collectType);
+ signDto = new SignDto(userName, phoneNumber, certId, accNumber, collectType, queryId);
}
Sqlca.commit();
} catch (Exception e) {
- e.printStackTrace();
Sqlca.rollback();
+ throw e;
}
return signDto;
}
diff --git a/src/com/tenwa/lease/app/allinpay/servlet/SignDto.java b/src/com/tenwa/lease/app/allinpay/servlet/SignDto.java
index 1686d136e..a338edaf1 100644
--- a/src/com/tenwa/lease/app/allinpay/servlet/SignDto.java
+++ b/src/com/tenwa/lease/app/allinpay/servlet/SignDto.java
@@ -11,16 +11,19 @@ public class SignDto {
private String certId;
private String collectType;
private String accNumber;
+ //数据查询id (临时表取值flowunid 正式表取值projectId)
+ private String queryId;
public SignDto() {
}
- public SignDto(String userName, String phoneNumber, String certId, String accNumber, String collectType) {
+ public SignDto(String userName, String phoneNumber, String certId, String accNumber, String collectType ,String queryId) {
this.userName = userName;
this.phoneNumber = phoneNumber;
this.certId = certId;
this.accNumber = accNumber;
this.collectType = collectType;
+ this.queryId = queryId;
}
public String getUserName() {
@@ -42,4 +45,12 @@ public class SignDto {
public String getCollectType() {
return collectType;
}
+
+ public String getQueryId() {
+ return queryId;
+ }
+
+ public void setQueryId(String queryId) {
+ this.queryId = queryId;
+ }
}
diff --git a/src/com/tenwa/lease/app/allinpay/util/AllinpayProperties.java b/src/com/tenwa/lease/app/allinpay/util/AllinpayProperties.java
index c3082b356..f1da5b826 100644
--- a/src/com/tenwa/lease/app/allinpay/util/AllinpayProperties.java
+++ b/src/com/tenwa/lease/app/allinpay/util/AllinpayProperties.java
@@ -38,14 +38,14 @@ public class AllinpayProperties {
public AllinpayProperties(String channel) {
logger.info("通联链接渠道:"+channel);
- if(channel.equals(MultiSubjectUtil.SZSUBJECTID)) {
+ if(channel.equals(MultiSubjectUtil.SZ)) {
this.allinPayMerchantId=ConfigConstant.SZ_allinPayMerchantId;
this.allinPayUsername=ConfigConstant.SZ_allinPayUsername;
this.allinPayUserpass=ConfigConstant.SZ_allinPayUserpass;
this.allinPayPfxpass=ConfigConstant.SZ_allinPayPfxpass;
this.allinPayPathpfx=ConfigConstant.SZ_allinPayPathpfx;
this.allinBusinessCode=ConfigConstant.SZ_allinBusinessCode;
- }else if(channel.equals(MultiSubjectUtil.TJSUBJECTID)) {
+ }else if(channel.equals(MultiSubjectUtil.TJ)) {
this.allinPayMerchantId=ConfigConstant.TJ_allinPayMerchantId;
this.allinPayUsername=ConfigConstant.TJ_allinPayUsername;
this.allinPayUserpass=ConfigConstant.TJ_allinPayUserpass;
diff --git a/src_tenwa/com/tenwa/util/MultiSubjectUtil.java b/src_tenwa/com/tenwa/util/MultiSubjectUtil.java
index a7d005a49..90b6446c8 100644
--- a/src_tenwa/com/tenwa/util/MultiSubjectUtil.java
+++ b/src_tenwa/com/tenwa/util/MultiSubjectUtil.java
@@ -1,7 +1,8 @@
package com.tenwa.util;
public class MultiSubjectUtil {
-
+ public static final String SZ="sz";//深圳
+ public static final String TJ="tj";//天津
public static final String SZSUBJECTID="aa740e4111c111eaaa0000163e0e11e6";//深圳主体标识
public static final String SZSUBJECTNAME="安鹏国际融资租赁(深圳)有限公司";//深圳主体名称
public static final String TJSUBJECTID="d989246c11c111eaaa0000163e0e11e6";//天津主体标识