diff --git a/src/main/java/com/jmfy/controller/MHTRechargeController.java b/src/main/java/com/jmfy/controller/MHTRechargeController.java index c6c7d3d..f12bd3c 100644 --- a/src/main/java/com/jmfy/controller/MHTRechargeController.java +++ b/src/main/java/com/jmfy/controller/MHTRechargeController.java @@ -43,7 +43,7 @@ public class MHTRechargeController { @Resource private CUserDao cuserDao; private static final Logger LOGGER = LoggerFactory.getLogger(MHTRechargeController.class); - private static Gson gson = new Gson(); + // private static Gson gson = new Gson(); @RequestMapping(value = "/MHTcallback") public String MHTcallback( HttpServletRequest request) throws Exception { @@ -52,91 +52,110 @@ public class MHTRechargeController { LOGGER.info( "data is null"); return "FAIL"; } - String source = parameterMap.keySet().iterator().next(); - source = source.replaceAll(" ", "+"); - LOGGER.info(source); - MHTRechargeRequestBean rechargeRequestBean = gson.fromJson(source, MHTRechargeRequestBean.class); - - MHTRechargeRequestBean.DataBean data = rechargeRequestBean.getData(); - if(data == null){ - LOGGER.info( "data is null"); - return "FAIL"; - } - - String consumerid = data.getConsumerid(); - String consumerName = data.getConsumerName(); - String orderNo = data.getOrderNo(); - String sign = data.getSign(); - String sig = getMySign(rechargeRequestBean); - - String goodID; - if(consumerName.isEmpty()){ - LOGGER.info("callback==>roleUid={},sin derify fail,mine sign={} ",consumerid,sig); - return "FAIL"; - } - String[] split1 = consumerName.split("#"); - goodID = split1[0]; - if(null==goodID||goodID.isEmpty()){ - LOGGER.info("callback==>roleUid={},sin derify fail,mine sign={} ,consumerName={}",consumerid,sig,consumerName); - } - if (!sig.equals(sign)){ - LOGGER.info("callback==>roleUid={},sin derify fail,mine sign={} ",consumerid,sig); - return "FAIL"; - } - - CUserInfo cUserInfo = cuserDao.findUserInfo(Integer.valueOf(consumerid)); - if(cUserInfo == null){ - LOGGER.info( "该用户无此角色"+consumerid); - return "FAIL"; - } - - CPayOrder cPayOrder = cuserDao.getCpayOrderByOrderId(orderNo); +// String source = parameterMap.keySet().iterator().next(); +// source = source.replaceAll(" ", "+"); +// LOGGER.info(source); +// MHTRechargeRequestBean rechargeRequestBean = gson.fromJson(source, MHTRechargeRequestBean.class); +// +// MHTRechargeRequestBean.DataBean data = rechargeRequestBean.getData(); +// if(data == null){ +// LOGGER.info( "data is null"); +// return "FAIL"; +// } String response = "SUCCESS"; - if (cPayOrder != null) { - LOGGER.info("callback==>creditId={},uId={} orderId is exit!!!",cUserInfo.getId(),cUserInfo.getOpenId()); - return "FAIL"; - } else { - DateFormat dateTimeformat = new SimpleDateFormat("yyyy-MM-dd hh:mm:ss"); - String date = dateTimeformat.format(new Date()); - cPayOrder = new CPayOrder(); - cPayOrder.setOrderId(orderNo); - cPayOrder.setServerId(cUserInfo.getServerid()); - cPayOrder.setDelivery_time(date); - cPayOrder.setUserId(consumerid); - Result result = null; - String userAddress = cuserDao.findUserAddress(cUserInfo.getId()); - if (userAddress != null) { - LOGGER.info("callback==>userAddress={} ",userAddress); - String[] split = userAddress.split(":"); - String ip = split[0]; - String port = split[1]; - LOGGER.info("RPC address --> IP : " + ip + "; PORT : " + port); - ClientAdapterPo rPCClient = null; - String serviceKey = JsonUtil.getServiceKey(ServiceKey.RPCCore, ip, port); - LOGGER.info("serviceKey : " + serviceKey); - try { - rPCClient = ClientAdapterPo.getClientAdapterPo(serviceKey); - result = rPCClient.getClient().deliveryRecharge(cUserInfo.getId(),Integer.parseInt(goodID),consumerid, orderNo,0,0); - } catch (Exception e) { - LOGGER.info("callback=>",e); - }finally { - if (rPCClient != null){ - rPCClient.returnObject(serviceKey); - }else{ - LOGGER.info("callback=> rPCClient is null "); - } - } - }else{ - LOGGER.info("not get the user url,the openID={} ",consumerid); - response = "FAIL"; + try { + String consumerid = parameterMap.get("consumerid"); + String consumerName =parameterMap.get("consumername"); + String gameCurrency ="0"; + String mhtOrderAmt =parameterMap.get("mhtOrderAmt"); + String orderDetail =parameterMap.get("orderDetail"); + String orderNo =parameterMap.get("orderNo"); + String time =parameterMap.get("time"); + String sign = parameterMap.get("sign"); + StringBuilder stringBuilder = new StringBuilder(); + stringBuilder.append("consumerid").append("=").append(consumerid).append("&"); + stringBuilder.append("consumerName").append("=").append(consumerName).append("&"); + stringBuilder.append("gameCurrency").append("=").append(gameCurrency).append("&"); + stringBuilder.append("mhtOrderAmt").append("=").append(mhtOrderAmt).append("&"); + stringBuilder.append("orderDetail").append("=").append(orderDetail).append("&"); + stringBuilder.append("orderNo").append("=").append(orderNo).append("&"); + stringBuilder.append("time").append("=").append(time); + String plain = stringBuilder.toString() + MD5Util.encrypByMd5(MHTSDKConstans.secretKey); + String sig = MD5Util.encrypByMd5(plain); + + String goodID; + if(consumerName.isEmpty()){ + LOGGER.info("callback==>roleUid={},sin derify fail,mine sign={} ",consumerid,sig); + return "FAIL"; } - if (result != null && result.getResultCode() == 1) { - LOGGER.info(" callback==>RPC result : ResultCode : " + result.getResultCode() + "; ResultMsg : " + result.getResultMsg()); - cuserDao.addCpayOrder(cPayOrder); + String[] split1 = consumerName.split("#"); + goodID = split1[0]; + if(null==goodID||goodID.isEmpty()){ + LOGGER.info("callback==>roleUid={},sin derify fail,mine sign={} ,consumerName={}",consumerid,sig,consumerName); + } + if (!sig.equals(sign)){ + LOGGER.info("callback==>roleUid={},sin derify fail,mine sign={} ",consumerid,sig); + return "FAIL"; + } + + CUserInfo cUserInfo = cuserDao.findUserInfo(Integer.valueOf(consumerid)); + if(cUserInfo == null){ + LOGGER.info( "该用户无此角色"+consumerid); + return "FAIL"; + } + + CPayOrder cPayOrder = cuserDao.getCpayOrderByOrderId(orderNo); + + if (cPayOrder != null) { + LOGGER.info("callback==>creditId={},uId={} orderId is exit!!!",cUserInfo.getId(),cUserInfo.getOpenId()); + return "FAIL"; } else { - response = "FAIL"; + DateFormat dateTimeformat = new SimpleDateFormat("yyyy-MM-dd hh:mm:ss"); + String date = dateTimeformat.format(new Date()); + cPayOrder = new CPayOrder(); + cPayOrder.setOrderId(orderNo); + cPayOrder.setServerId(cUserInfo.getServerid()); + cPayOrder.setDelivery_time(date); + cPayOrder.setUserId(consumerid); + Result result = null; + String userAddress = cuserDao.findUserAddress(cUserInfo.getId()); + if (userAddress != null) { + LOGGER.info("callback==>userAddress={} ",userAddress); + String[] split = userAddress.split(":"); + String ip = split[0]; + String port = split[1]; + LOGGER.info("RPC address --> IP : " + ip + "; PORT : " + port); + ClientAdapterPo rPCClient = null; + String serviceKey = JsonUtil.getServiceKey(ServiceKey.RPCCore, ip, port); + LOGGER.info("serviceKey : " + serviceKey); + try { + rPCClient = ClientAdapterPo.getClientAdapterPo(serviceKey); + result = rPCClient.getClient().deliveryRecharge(cUserInfo.getId(),Integer.parseInt(goodID),consumerid, orderNo,0,0); + } catch (Exception e) { + LOGGER.info("callback=>",e); + }finally { + if (rPCClient != null){ + rPCClient.returnObject(serviceKey); + }else{ + LOGGER.info("callback=> rPCClient is null "); + } + } + }else{ + LOGGER.info("not get the user url,the openID={} ",consumerid); + response = "FAIL"; + } + if (result != null && result.getResultCode() == 1) { + LOGGER.info(" callback==>RPC result : ResultCode : " + result.getResultCode() + "; ResultMsg : " + result.getResultMsg()); + cuserDao.addCpayOrder(cPayOrder); + } else { + response = "FAIL"; + } } + }catch (Exception e){ + LOGGER.info("callback==>err "+e.toString()); + response = "FAIL"; } + return response; }