灵动sdk接入

master
zhangshanxue 2020-07-26 20:37:38 +08:00
parent 7ae35afd90
commit 51a8fc36ca
1 changed files with 100 additions and 81 deletions

View File

@ -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<RPCRequestIFace.Client> 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<RPCRequestIFace.Client> 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;
}