diff --git a/src/main/java/com/yn/bftl/thirdparty/modules/chinaums/util/ByxChinaumsUtil.java b/src/main/java/com/yn/bftl/thirdparty/modules/chinaums/util/ByxChinaumsUtil.java index eb6f0fd..c7c2e7c 100644 --- a/src/main/java/com/yn/bftl/thirdparty/modules/chinaums/util/ByxChinaumsUtil.java +++ b/src/main/java/com/yn/bftl/thirdparty/modules/chinaums/util/ByxChinaumsUtil.java @@ -141,6 +141,9 @@ */ @Transactional(propagation = Propagation.NOT_SUPPORTED) public T execute(String method, JSONObject requestJson, Class voClass) { + if (voClass == null) { + return null; + } String requestBody = null; configInit(); try { @@ -152,25 +155,22 @@ it.remove(); } } -// String params = this.initBizContent(requestJson); - requestBody = buildRequestBodyAndSign(method, requestJson.toJSONString()); + requestBody = buildRequestBodyAndSign(method, initBizContent(requestJson)); // 调用请求接口 - JSONObject jsonObject = ByxHttpClientUtil.getInstance(SIGN_ALG, publicKey).sendPost(DOMAIN_NAME, requestBody);//.setHeaderMap(buildRequestHead(requestJson)).sendPost(DOMAIN_NAME + url, mainJsonObject); + JSONObject jsonObject = ByxHttpClientUtil.getInstance(SIGN_ALG, publicKey).sendPost(DOMAIN_NAME, requestBody); if (active.equals("test")) { log.debug("银联请求返回数据:" + jsonObject.toJSONString()); } - - T result = jsonObject.toJavaObject(voClass); - ByxBaseVO baseVO = (ByxBaseVO) result; - if (baseVO.getRspCode().equals("00000")) { - loggerService.unionpay(jsonObject.toJSONString(), requestBody, ByxChinaumsUtil.class.getName(), method, "chinaums"); - if (voClass == null) { - return null; + String rspCode = jsonObject.get("rspCode").toString(); + loggerService.unionpay(jsonObject.toJSONString(), requestBody, ByxChinaumsUtil.class.getName(), method, "chinaums"); + if (rspCode.equals("00000")) { + if (voClass.getName().equals(JSONObject.class.getName())) { + return (T) jsonObject.getJSONObject("msgBody"); } else { - return result; + return jsonObject.toJavaObject(voClass); } } else { - throw new RuntimeException(baseVO.getRspMsg()); + throw new RuntimeException(jsonObject.get("rspResult").toString()); } } catch (final Exception e) { loggerService.unionpay(e.getMessage(), requestBody, ByxChinaumsUtil.class.getName(), method, "chinaums");