package com.jmfy.controller; import com.google.gson.Gson; import com.jmfy.dto.CUserDao; import com.jmfy.paramBean.PaySdkEnum; import com.jmfy.paramBean.XPParamBean2; import com.jmfy.util.JsonUtil; import com.jmfy.util.MD5Util; import org.slf4j.Logger; import org.slf4j.LoggerFactory; import org.springframework.web.bind.annotation.RequestMapping; import org.springframework.web.bind.annotation.RestController; import javax.annotation.Resource; import javax.servlet.http.HttpServletRequest; import java.util.*; /** * @discribe 喜扑ios */ @Deprecated @RestController public class XPiosRechargeController { @Resource private CUserDao cuserDao; @Resource private PayLogic payLogic; private static final Logger LOGGER = LoggerFactory.getLogger(XPiosRechargeController.class); private static Gson gson = new Gson(); @RequestMapping(value = "/Web/XPCallback2") public String XPCallback2(HttpServletRequest request) throws Exception { return process(request,"c6b1b36a27195504134161f264969dec"); } /* @RequestMapping(value = "/Web/XPCallback2") public String XPCallback2Ios(HttpServletRequest request) throws Exception { return process(request,"c6b1b36a27195504134161f264969dec"); } @RequestMapping(value = "/Web/XPCallback2") public String XPCallbackTest2(HttpServletRequest request) throws Exception { return process(request,"c6b1b36a27195504134161f264969dec"); }*/ protected String process(HttpServletRequest request,String appsecret) throws Exception{ HashMap parameterMap = JsonUtil.getInstence().getParameterMap2(request); if (parameterMap.isEmpty()) { LOGGER.info("data is null"); return "FAIL"; } XPParamBean2 data = getData(parameterMap); if (data == null) { LOGGER.info("data is null"); return "FAIL"; } String response = "SUCCESS"; try { //String consumerid = data.getConsumerid(); String sign = data.getNewsign(); String sig = getMySign(data, appsecret); if (!sig.equals(sign)) { LOGGER.info("callback==>roleUid={},sin derify fail,mine sign={},other sign={} ", data.getRoleId(), sig,sign); return "sign fail"; } response = insertOrder(data); } catch (Exception e) { e.printStackTrace(); LOGGER.info("callback==>err " + e.toString()); response = "FAIL"; } return response; } private XPParamBean2 getData(HashMap parameterMap) { XPParamBean2 rechargeRequestBean = gson.fromJson( new Gson().toJson(parameterMap), XPParamBean2.class); return rechargeRequestBean; } private String insertOrder(XPParamBean2 data) { // 角色id_物品id_cc值 String callbackInfo = data.getCallbackInfo(); String orderNo = data.getOrderId(); String amount = data.getMoney(); Date time = new Date(System.currentTimeMillis()); LOGGER.info("xp ios callback==>consumerId={},orderId={} amount={} ", callbackInfo, orderNo,amount); return payLogic.initOrder(callbackInfo,orderNo,amount,time,data.getRoleId(), PaySdkEnum.XP); } private static String getMySign(XPParamBean2 data,String appsecret) throws IllegalAccessException { String para= data.getAppId()+data.getOrderId()+data.getOpenId()+data.getServerId() +data.getRoleId()+data.getMoney()+data.getAmount()+data.getCallbackInfo()+appsecret; return MD5Util.encrypByMd5(para).toLowerCase(); } }