diff --git a/mallinkCApi/src/main/java/com/iformall/controller/WxCarController.java b/mallinkCApi/src/main/java/com/iformall/controller/WxCarController.java index a3dd93a82..ca5d39c25 100644 --- a/mallinkCApi/src/main/java/com/iformall/controller/WxCarController.java +++ b/mallinkCApi/src/main/java/com/iformall/controller/WxCarController.java @@ -10,6 +10,7 @@ import com.iformall.domain.po.*; import com.iformall.domain.vo.WxCouponOrderCarCVo; import com.iformall.domain.vo.WxMerchantVo; import com.iformall.enums.*; +import com.iformall.exception.MallinkException; import com.iformall.service.*; import com.iformall.utils.ETCPUtil; import com.iformall.utils.TJDCarUtil; @@ -109,16 +110,26 @@ public class WxCarController extends BaseController { String merchantKey = objParams.getString("merchantKey"); String version = objParams.getString("version"); - String ret = etcp.userSignin(url, appId, merchantNo, merchantKey, version, phone); + String ret = ""; + try { + ret = etcp.userSignin(url, appId, merchantNo, merchantKey, version, phone); + } catch (MallinkException e) { + logger.error("ETCP fail: " + e.getMessage()); + return new ResultData(e.getErrorCode(), e.getMessage()); + } JSONObject retObj = JSON.parseObject(ret); if (retObj.getIntValue("code") == EnumETCPCode.SUCCESS.getCode()) { // 获取绑定的车牌 JSONObject dataObj = retObj.getJSONObject("data"); dataObj.put("vendor", EnumCarVendor.CAR_ETCP.getCode()); String etcpToken = dataObj.getString("token"); - JSONObject dataObj1 = syncCarNumbers(user.getId(), user.getTenantId(), park.getVendorType(), - url, merchantNo, merchantKey, version, - etcpToken); + try { + JSONObject dataObj1 = syncCarNumbers(user.getId(), user.getTenantId(), park.getVendorType(), + url, merchantNo, merchantKey, version, + etcpToken); + } catch (MallinkException e) { + logger.error("ETCP cmd error: " + e.getMessage()); + } // c端必须保存此token return new ResultData(dataObj); } else { @@ -152,8 +163,12 @@ public class WxCarController extends BaseController { String etcpToken) { String ret; JSONObject retObj; - ret = etcp.carNum(url, merchantNo, merchantKey, version, etcpToken); /*{"code": 0,"msg": "ok","data": {"number": 3,"carList": ["晋 BMZ105","云 C12345"]}} */ + try { + ret = etcp.carNum(url, merchantNo, merchantKey, version, etcpToken); + } catch (MallinkException e) { + throw new MallinkException(e.getErrorCode(), e.getMessage()); + } retObj = JSON.parseObject(ret); JSONObject dataObj1 = retObj.getJSONObject("data"); dataObj1.put("vendor", iVendorType); @@ -251,7 +266,13 @@ public class WxCarController extends BaseController { String merchantKey = objParams.getString("merchantKey"); String version = objParams.getString("version"); - String ret = etcp.bindCar(url, merchantNo, merchantKey, version, etcpToken, carNumber, null); + String ret = ""; + try { + ret = etcp.bindCar(url, merchantNo, merchantKey, version, etcpToken, carNumber, null); + } catch (MallinkException e) { + logger.error("ETCP fail: " + e.getMessage()); + return new ResultData(e.getErrorCode(), e.getMessage()); + } JSONObject retObj = JSON.parseObject(ret); if (retObj.getIntValue("code") == 0) { // 插入车牌 @@ -375,7 +396,14 @@ public class WxCarController extends BaseController { String merchantKey = objParams.getString("merchantKey"); String version = objParams.getString("version"); - String ret = etcp.unbindCar(url, merchantNo, merchantKey, version, etcpToken, carNumber); + String ret = ""; + try { + ret = etcp.unbindCar(url, merchantNo, merchantKey, version, etcpToken, carNumber); + } catch (MallinkException e) { + logger.error("ETCP fail: " + e.getMessage()); + return new ResultData(e.getErrorCode(), e.getMessage()); + } + JSONObject retObj = JSON.parseObject(ret); if (retObj.getIntValue("code") == 0) { try { @@ -497,7 +525,14 @@ public class WxCarController extends BaseController { String merchantKey = objParams.getString("merchantKey"); String version = objParams.getString("version"); - String ret = etcp.orderUnpay(url, appId, merchantNo, merchantKey, version, etcpToken, carNumber); + String ret = ""; + try { + ret = etcp.orderUnpay(url, appId, merchantNo, merchantKey, version, etcpToken, carNumber); + } catch (MallinkException e) { + logger.error("ETCP failed: " + e.getMessage()); + return new ResultData(e.getErrorCode(), e.getMessage()); + } + JSONObject retObj = JSON.parseObject(ret); if (retObj.getIntValue("code") == 0) { JSONObject feeObj = retObj.getJSONArray("data").getJSONObject(0); @@ -667,8 +702,14 @@ public class WxCarController extends BaseController { businessId = objParams.getString("businessId"); } - String ret = etcp.bCouponRecord(url, merchantNo, merchantKey, version, - etcpToken, park.getParkId(), businessId, carNumber, String.valueOf(userCar.getCouponFreeId())); + String ret = ""; + try { + ret = etcp.bCouponRecord(url, merchantNo, merchantKey, version, + etcpToken, park.getParkId(), businessId, carNumber, String.valueOf(userCar.getCouponFreeId())); + } catch (MallinkException e) { + logger.error("ETCP failed: " + e.getMessage()); + return new ResultData(e.getErrorCode(), e.getMessage()); + } JSONObject retObj = JSON.parseObject(ret); if (retObj.getIntValue("code") == EnumETCPCode.SUCCESS.getCode()) { @@ -732,6 +773,7 @@ public class WxCarController extends BaseController { String version = objParams.getString("version"); if (park.getParkingId() == null) { // those code is not supported + /* String lat = objParams.getString("lat"); String lon = objParams.getString("lon"); String radius = objParams.getString("radius"); @@ -755,10 +797,17 @@ public class WxCarController extends BaseController { } } } + */ } if (park.getParkingId() != null) { - String ret = etcp.parkingStatus(url, merchantNo, merchantKey, version, park.getParkingId()); + String ret = ""; + try { + ret = etcp.parkingStatus(url, merchantNo, merchantKey, version, park.getParkingId()); + } catch (MallinkException e) { + logger.error("ETCP failed: " + e.getMessage()); + return new ResultData(e.getErrorCode(), e.getMessage()); + } JSONObject retObj = JSON.parseObject(ret); if (retObj.getIntValue("code") == EnumETCPCode.SUCCESS.getCode()) { diff --git a/mallinkService/src/main/java/com/iformall/utils/ETCPUtil.java b/mallinkService/src/main/java/com/iformall/utils/ETCPUtil.java index ace4ab489..a6a3c52a4 100755 --- a/mallinkService/src/main/java/com/iformall/utils/ETCPUtil.java +++ b/mallinkService/src/main/java/com/iformall/utils/ETCPUtil.java @@ -3,6 +3,8 @@ package com.iformall.utils; import com.alibaba.fastjson.JSON; import com.alibaba.fastjson.JSONArray; import com.alibaba.fastjson.JSONObject; +import com.iformall.common.ErrorCode; +import com.iformall.exception.MallinkException; import okhttp3.*; import org.apache.commons.lang3.StringUtils; import org.slf4j.Logger; @@ -306,7 +308,7 @@ public class ETCPUtil { * } */ public String userSignin(String baseUrl, String appId, String merchantNo, String merchantKey, String version, - String mobilePhone) { + String mobilePhone) throws MallinkException { JSONObject jsonObject = new JSONObject(); jsonObject.put("appId", appId); jsonObject.put("mobilePhone", mobilePhone); @@ -315,8 +317,12 @@ public class ETCPUtil { String timeStamp = dateTimeFormatter.format(LocalDateTime.now()); String sign = genSign(data, merchantKey, timeStamp); - return doPost(baseUrl + userSigninUrl.replaceAll("\\{version}", version), data, sign, + String respStr = doPost(baseUrl + userSigninUrl.replaceAll("\\{version}", version), data, sign, timeStamp, merchantNo); + if(respStr.startsWith("")) { + throw new MallinkException(ErrorCode.ETCP_CMD_FAIL); + } + return respStr; } /** @@ -333,7 +339,7 @@ public class ETCPUtil { */ public String bindCar(String baseUrl, String merchantNo, String merchantKey, String version, String etcpToken, - String plateNumber, String plateColor) { + String plateNumber, String plateColor) throws MallinkException { JSONObject jsonObject = new JSONObject(); jsonObject.put("token", etcpToken); jsonObject.put("plateNumber", plateNumber); @@ -346,8 +352,12 @@ public class ETCPUtil { String timeStamp = dateTimeFormatter.format(LocalDateTime.now()); String sign = genSign(data, merchantKey, timeStamp); - return doPost(baseUrl + bindCarUrl.replaceAll("\\{version}", version), + String respStr = doPost(baseUrl + bindCarUrl.replaceAll("\\{version}", version), data, sign, timeStamp, merchantNo); + if(respStr.startsWith("")) { + throw new MallinkException(ErrorCode.ETCP_CMD_FAIL); + } + return respStr; } /** @@ -363,7 +373,7 @@ public class ETCPUtil { */ public String unbindCar(String baseUrl, String merchantNo, String merchantKey, String version, String etcpToken, - String plateNumber) { + String plateNumber) throws MallinkException { JSONObject jsonObject = new JSONObject(); jsonObject.put("token", etcpToken); jsonObject.put("plateNumber", plateNumber); @@ -372,8 +382,12 @@ public class ETCPUtil { String timeStamp = dateTimeFormatter.format(LocalDateTime.now()); String sign = genSign(data, merchantKey, timeStamp); - return doPost(baseUrl + unbindCarUrl.replaceAll("\\{version}", version), + String respStr = doPost(baseUrl + unbindCarUrl.replaceAll("\\{version}", version), data, sign, timeStamp, merchantNo); + if(respStr.startsWith("")) { + throw new MallinkException(ErrorCode.ETCP_CMD_FAIL); + } + return respStr; } /** @@ -392,7 +406,7 @@ public class ETCPUtil { public String carAuth(String baseUrl, String merchantNo, String merchantKey, String version, String etcpToken, String carFrameNum, String plateNumber, String carEngineNum - ) { + ) throws MallinkException { JSONObject jsonObject = new JSONObject(); jsonObject.put("token", etcpToken); jsonObject.put("carFrameNum", carFrameNum); @@ -403,8 +417,12 @@ public class ETCPUtil { String timeStamp = dateTimeFormatter.format(LocalDateTime.now()); String sign = genSign(data, merchantKey, timeStamp); - return doPost(baseUrl + carAuthUrl.replaceAll("\\{version}", version), + String respStr = doPost(baseUrl + carAuthUrl.replaceAll("\\{version}", version), data, sign, timeStamp, merchantNo); + if(respStr.startsWith("")) { + throw new MallinkException(ErrorCode.ETCP_CMD_FAIL); + } + return respStr; } /** @@ -423,7 +441,7 @@ public class ETCPUtil { */ public String carRetrieve(String baseUrl, String merchantNo, String merchantKey, String version, String etcpToken, - String carFrameNum, String plateNumber, String carEngineNum, String plateColor ) { + String carFrameNum, String plateNumber, String carEngineNum, String plateColor ) throws MallinkException { JSONObject jsonObject = new JSONObject(); jsonObject.put("token", etcpToken); jsonObject.put("carFrameNum", carFrameNum); @@ -436,8 +454,12 @@ public class ETCPUtil { String timeStamp = dateTimeFormatter.format(LocalDateTime.now()); String sign = genSign(data, merchantKey, timeStamp); - return doPost(baseUrl + carRetrieveUrl.replaceAll("\\{version}", version), + String respStr = doPost(baseUrl + carRetrieveUrl.replaceAll("\\{version}", version), data, sign, timeStamp, merchantNo); + if(respStr.startsWith("")) { + throw new MallinkException(ErrorCode.ETCP_CMD_FAIL); + } + return respStr; } /** @@ -458,7 +480,7 @@ public class ETCPUtil { * } */ public String carNum(String baseUrl, String merchantNo, String merchantKey, String version, - String etcpToken) { + String etcpToken) throws MallinkException { JSONObject jsonObject = new JSONObject(); jsonObject.put("token", etcpToken); @@ -466,8 +488,12 @@ public class ETCPUtil { String timeStamp = dateTimeFormatter.format(LocalDateTime.now()); String sign = genSign(data, merchantKey, timeStamp); - return doGet(baseUrl + carNumUrl.replaceAll("\\{version}", version), + String respStr = doGet(baseUrl + carNumUrl.replaceAll("\\{version}", version), data, sign, timeStamp, merchantNo); + if(respStr.startsWith("")) { + throw new MallinkException(ErrorCode.ETCP_CMD_FAIL); + } + return respStr; } /** @@ -481,7 +507,7 @@ public class ETCPUtil { public String orderUnpay(String baseUrl, String appId, String merchantNo, String merchantKey, String version, String etcpToken, - String plateNumber) { + String plateNumber) throws MallinkException { JSONObject jsonObject = new JSONObject(); jsonObject.put("token", etcpToken); jsonObject.put("plateNumber", plateNumber); @@ -493,8 +519,12 @@ public class ETCPUtil { String timeStamp = dateTimeFormatter.format(LocalDateTime.now()); String sign = genSign(data, merchantKey, timeStamp); - return doGet(baseUrl + orderUnpayUrl.replaceAll("\\{version}", version), + String respStr = doGet(baseUrl + orderUnpayUrl.replaceAll("\\{version}", version), data, sign, timeStamp, merchantNo); + if(respStr.startsWith("")) { + throw new MallinkException(ErrorCode.ETCP_CMD_FAIL); + } + return respStr; } /** @@ -508,7 +538,7 @@ public class ETCPUtil { public String couponList(String baseUrl, String merchantNo, String merchantKey, String version, String etcpToken, - String lastCode, String pageSize) { + String lastCode, String pageSize) throws MallinkException { JSONObject jsonObject = new JSONObject(); jsonObject.put("token", etcpToken); if (!StringUtils.isBlank(lastCode)) @@ -519,8 +549,12 @@ public class ETCPUtil { String timeStamp = dateTimeFormatter.format(LocalDateTime.now()); String sign = genSign(data, merchantKey, timeStamp); - return doGet(baseUrl + couponListUrl.replaceAll("\\{version}", version), + String respStr = doGet(baseUrl + couponListUrl.replaceAll("\\{version}", version), data, sign, timeStamp, merchantNo); + if(respStr.startsWith("")) { + throw new MallinkException(ErrorCode.ETCP_CMD_FAIL); + } + return respStr; } /** @@ -531,7 +565,7 @@ public class ETCPUtil { */ public String orderHistory(String baseUrl, String merchantNo, String merchantKey, String version, - String etcpToken) { + String etcpToken) throws MallinkException { JSONObject jsonObject = new JSONObject(); jsonObject.put("token", etcpToken); @@ -539,8 +573,12 @@ public class ETCPUtil { String timeStamp = dateTimeFormatter.format(LocalDateTime.now()); String sign = genSign(data, merchantKey, timeStamp); - return doGet(baseUrl + orderHistoryUrl.replaceAll("\\{version}", version), + String respStr = doGet(baseUrl + orderHistoryUrl.replaceAll("\\{version}", version), data, sign, timeStamp, merchantNo); + if(respStr.startsWith("")) { + throw new MallinkException(ErrorCode.ETCP_CMD_FAIL); + } + return respStr; } /** @@ -555,7 +593,7 @@ public class ETCPUtil { public String orderPay(String baseUrl, String merchantNo, String merchantKey, String version, String etcpToken, String orderId, - String returnUrl, String couponCode) { + String returnUrl, String couponCode) throws MallinkException { // payType 支付方式(1 微信公众号内支付 2 支付宝 H5 支付 3 微信二维码 4 支付宝二维码 5 微信 H5)(非空) int payType = 1; JSONObject jsonObject = new JSONObject(); @@ -571,8 +609,12 @@ public class ETCPUtil { String timeStamp = dateTimeFormatter.format(LocalDateTime.now()); String sign = genSign(data, merchantKey, timeStamp); - return doPost(baseUrl + orderpayUrl.replaceAll("\\{version}", version), + String respStr = doPost(baseUrl + orderpayUrl.replaceAll("\\{version}", version), data, sign, timeStamp, merchantNo); + if(respStr.startsWith("")) { + throw new MallinkException(ErrorCode.ETCP_CMD_FAIL); + } + return respStr; } /** @@ -591,7 +633,7 @@ public class ETCPUtil { String appId, String merchantNo, String merchantKey, String version, String etcpToken, String orderId, String externalOrderId, - BigDecimal payment, String payTime, String verificationInfo) { + BigDecimal payment, String payTime, String verificationInfo) throws MallinkException { JSONObject jsonObject = new JSONObject(); jsonObject.put("token", etcpToken); jsonObject.put("orderId", orderId); @@ -607,8 +649,12 @@ public class ETCPUtil { String timeStamp = dateTimeFormatter.format(LocalDateTime.now()); String sign = genSign(data, merchantKey, timeStamp); - return doPost(baseUrl + orderPaidUrl.replaceAll("\\{version}", version), + String respStr = doPost(baseUrl + orderPaidUrl.replaceAll("\\{version}", version), data, sign, timeStamp, merchantNo); + if(respStr.startsWith("")) { + throw new MallinkException(ErrorCode.ETCP_CMD_FAIL); + } + return respStr; } /** @@ -619,7 +665,7 @@ public class ETCPUtil { */ public String parkingInfo(String baseUrl, String merchantNo, String merchantKey, String version, - String lat, String lon, String radius) { + String lat, String lon, String radius) throws MallinkException { JSONObject jsonObject = new JSONObject(); jsonObject.put("lat", lat); jsonObject.put("lon", lon); @@ -630,8 +676,12 @@ public class ETCPUtil { String timeStamp = dateTimeFormatter.format(LocalDateTime.now()); String sign = genSign(data, merchantKey, timeStamp); - return doPost(baseUrl + parkingInfoUrl.replaceAll("\\{version}", version), + String respStr = doPost(baseUrl + parkingInfoUrl.replaceAll("\\{version}", version), data, sign, timeStamp, merchantNo); + if(respStr.startsWith("")) { + throw new MallinkException(ErrorCode.ETCP_CMD_FAIL); + } + return respStr; } /** @@ -642,7 +692,7 @@ public class ETCPUtil { */ public String parkingStatus(String baseUrl, String merchantNo, String merchantKey, String version, - String parkingId) { + String parkingId) throws MallinkException { JSONObject jsonObject = new JSONObject(); jsonObject.put("parkingId", parkingId); @@ -650,8 +700,12 @@ public class ETCPUtil { String timeStamp = dateTimeFormatter.format(LocalDateTime.now()); String sign = genSign(data, merchantKey, timeStamp); - return doPost(baseUrl + parkingStatusUrl.replaceAll("\\{version}", version), + String respStr = doPost(baseUrl + parkingStatusUrl.replaceAll("\\{version}", version), data, sign, timeStamp, merchantNo); + if(respStr.startsWith("")) { + throw new MallinkException(ErrorCode.ETCP_CMD_FAIL); + } + return respStr; } /** @@ -662,7 +716,7 @@ public class ETCPUtil { */ public String getDebt(String baseUrl, String appId, String merchantNo, String merchantKey, String version, - String etcpToken, String carNumber) { + String etcpToken, String carNumber) throws MallinkException { JSONObject jsonObject = new JSONObject(); jsonObject.put("token", etcpToken); jsonObject.put("appId", appId); @@ -672,8 +726,12 @@ public class ETCPUtil { String timeStamp = dateTimeFormatter.format(LocalDateTime.now()); String sign = genSign(data, merchantKey, timeStamp); - return doPost(baseUrl + parkingStatusUrl.replaceAll("\\{version}", version), + String respStr = doPost(baseUrl + parkingStatusUrl.replaceAll("\\{version}", version), data, sign, timeStamp, merchantNo); + if(respStr.startsWith("")) { + throw new MallinkException(ErrorCode.ETCP_CMD_FAIL); + } + return respStr; } /** @@ -686,7 +744,7 @@ public class ETCPUtil { */ public String repayDebt(String baseUrl, String merchantNo, String merchantKey, String version, - String etcpToken, String returnUrl) { + String etcpToken, String returnUrl) throws MallinkException { // payType(1:支付宝 2:微信H5) int payType = 2; JSONObject jsonObject = new JSONObject(); @@ -698,8 +756,12 @@ public class ETCPUtil { String timeStamp = dateTimeFormatter.format(LocalDateTime.now()); String sign = genSign(data, merchantKey, timeStamp); - return doPost(baseUrl + parkingStatusUrl.replaceAll("\\{version}", version), + String respStr = doPost(baseUrl + parkingStatusUrl.replaceAll("\\{version}", version), data, sign, timeStamp, merchantNo); + if(respStr.startsWith("")) { + throw new MallinkException(ErrorCode.ETCP_CMD_FAIL); + } + return respStr; } /** @@ -709,7 +771,7 @@ public class ETCPUtil { */ public String getBCouponList(String baseUrl, String merchantNo, String merchantKey, String version, - String parkId, String businessId) { + String parkId, String businessId) throws MallinkException { JSONObject jsonObject = new JSONObject(); jsonObject.put("parkId", parkId); jsonObject.put("businessId", businessId); @@ -718,8 +780,12 @@ public class ETCPUtil { String timeStamp = dateTimeFormatter.format(LocalDateTime.now()); String sign = genSign(data, merchantKey, timeStamp); - return doPost(baseUrl + bCouponListUrl.replaceAll("\\{version}", version), + String respStr = doPost(baseUrl + bCouponListUrl.replaceAll("\\{version}", version), data, sign, timeStamp, merchantNo); + if(respStr.startsWith("")) { + throw new MallinkException(ErrorCode.ETCP_CMD_FAIL); + } + return respStr; } /** @@ -731,7 +797,7 @@ public class ETCPUtil { public String bCouponRecord(String baseUrl, String merchantNo, String merchantKey, String version, String etcpToken, - String parkId, String businessId, String carNumber, String couponFreeId) { + String parkId, String businessId, String carNumber, String couponFreeId) throws MallinkException { JSONObject jsonObject = new JSONObject(); jsonObject.put("token", etcpToken); jsonObject.put("parkId", parkId); @@ -743,8 +809,12 @@ public class ETCPUtil { String timeStamp = dateTimeFormatter.format(LocalDateTime.now()); String sign = genSign(data, merchantKey, timeStamp); - return doPost(baseUrl + bCouponRecordUrl.replaceAll("\\{version}", version), + String respStr = doPost(baseUrl + bCouponRecordUrl.replaceAll("\\{version}", version), data, sign, timeStamp, merchantNo); + if(respStr.startsWith("")) { + throw new MallinkException(ErrorCode.ETCP_CMD_FAIL); + } + return respStr; } /** @@ -755,7 +825,7 @@ public class ETCPUtil { */ public String carSimulation(String baseUrl, String appId, String merchantNo, String merchantKey, String version, - String plateNumber) { + String plateNumber) throws MallinkException { JSONObject jsonObject = new JSONObject(); jsonObject.put("appId", appId); jsonObject.put("plateNumber", plateNumber); @@ -764,8 +834,12 @@ public class ETCPUtil { String timeStamp = dateTimeFormatter.format(LocalDateTime.now()); String sign = genSign(data, merchantKey, timeStamp); - return doPost(baseUrl + bCarSimulationUrl.replaceAll("\\{version}", version), + String respStr = doPost(baseUrl + bCarSimulationUrl.replaceAll("\\{version}", version), data, sign, timeStamp, merchantNo); + if(respStr.startsWith("")) { + throw new MallinkException(ErrorCode.ETCP_CMD_FAIL); + } + return respStr; } private String doPost(String url, String data, String sign, String timeStamp, String merchantNo) {