diff --git a/pom.xml b/pom.xml index da5b00600..84588407e 100644 --- a/pom.xml +++ b/pom.xml @@ -9,7 +9,7 @@ 4.0.0 manage - 1.3.36 + 1.3.39 UTF-8 1.8.0 diff --git a/src/main/java/au/com/royalpay/payment/manage/appclient/core/impls/RetailRSvcServiceImpl.java b/src/main/java/au/com/royalpay/payment/manage/appclient/core/impls/RetailRSvcServiceImpl.java index bc23206c4..e44363a17 100644 --- a/src/main/java/au/com/royalpay/payment/manage/appclient/core/impls/RetailRSvcServiceImpl.java +++ b/src/main/java/au/com/royalpay/payment/manage/appclient/core/impls/RetailRSvcServiceImpl.java @@ -82,7 +82,7 @@ public class RetailRSvcServiceImpl implements RetailRSvcService { throw new BadRequestException("this channel config is wrong"); } String signa = params.getString("sign"); - params.remove(signa); + params.remove("sign"); params = JSONObject.parseObject(JSON.toJSONString(params), Feature.OrderedField); boolean checkSign = SignUtils.validSign(params.toJSONString(), signa, svcInfo.getString("channel_pub_key")); if (!checkSign) { @@ -92,8 +92,7 @@ public class RetailRSvcServiceImpl implements RetailRSvcService { if (client == null) { throw new InvalidShortIdException(); } - String aesKeyStr = Base64.encodeBase64String(AESCrypt.randomKey().getEncoded()); - Key key = AESCrypt.fromKeyString(Base64.decodeBase64(aesKeyStr)); + Key key = AESCrypt.fromKeyString(Base64.decodeBase64(params.getString("nonce_str"))); JSONObject serviceApply = new JSONObject(); serviceApply.put("apply_id", UUID.randomUUID().toString()); serviceApply.put("service_code", sourceCode); @@ -108,6 +107,7 @@ public class RetailRSvcServiceImpl implements RetailRSvcService { clientServicesApplyMapper.save(serviceApply); result.put("result_status", "PROCESSING"); } catch (Exception e) { + logger.error("enter R services fail:{} - {}",sourceCode,e.getMessage()); result.put("result_status", "SYSTEMERROR"); result.put("result_msg", e.getMessage()); } @@ -120,7 +120,7 @@ public class RetailRSvcServiceImpl implements RetailRSvcService { } private String decData(String data, Key key, String privateKey) { - String priKeyDecData = SignUtils.decData(data, privateKey); - return org.apache.commons.codec.binary.Base64.encodeBase64String(AESCrypt.encrypt(priKeyDecData.getBytes(StandardCharsets.UTF_8), key)); + String aesData = new String(AESCrypt.decrypt(Base64.decodeBase64(data), key), StandardCharsets.UTF_8); + return SignUtils.decData(aesData, privateKey); } }