From 3fd282d2dda1aabcce246638e8fa83a81f3f8609 Mon Sep 17 00:00:00 2001 From: mashiyu Date: Sat, 2 Dec 2017 18:37:50 +0800 Subject: [PATCH] =?UTF-8?q?=E5=8F=91=E8=B4=A7=E6=9C=BA?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../java/com/jmfy/Handler/ManagerManager.java | 3 +- .../jmfy/controller/ManagerController.java | 81 ++++++++++++++++--- src/main/java/com/jmfy/util/YsjConstant.java | 47 +++++++++++ src/main/thrift/idl/core.thrift | 3 +- 4 files changed, 120 insertions(+), 14 deletions(-) create mode 100644 src/main/java/com/jmfy/util/YsjConstant.java diff --git a/src/main/java/com/jmfy/Handler/ManagerManager.java b/src/main/java/com/jmfy/Handler/ManagerManager.java index 09ac8dd..12ee6d2 100644 --- a/src/main/java/com/jmfy/Handler/ManagerManager.java +++ b/src/main/java/com/jmfy/Handler/ManagerManager.java @@ -13,8 +13,9 @@ public class ManagerManager { public static ManagerManager getInstance(){ - if (instance == null) + if (instance == null){ instance = new ManagerManager(); + } return instance; } diff --git a/src/main/java/com/jmfy/controller/ManagerController.java b/src/main/java/com/jmfy/controller/ManagerController.java index 5ff73f2..99c3a1f 100644 --- a/src/main/java/com/jmfy/controller/ManagerController.java +++ b/src/main/java/com/jmfy/controller/ManagerController.java @@ -5,6 +5,8 @@ import com.jmfy.thrift.idl.RPCRequestIFace; import com.jmfy.thrift.idl.Result; import com.jmfy.thrift.pool.ClientAdapterPo; import com.jmfy.thrift.pool.ServiceKey; +import com.jmfy.util.YsjConstant; +import com.jmfy.util.tencentutil.SnsSigCheck; import org.slf4j.Logger; import org.slf4j.LoggerFactory; import org.springframework.web.bind.annotation.RequestMapping; @@ -13,7 +15,6 @@ import org.springframework.web.bind.annotation.RestController; import javax.servlet.http.HttpServletRequest; import java.util.Enumeration; import java.util.HashMap; -import java.util.Map; @RestController public class ManagerController { @@ -23,7 +24,7 @@ public class ManagerController { @RequestMapping(value = "/manager") public JsonResult deliveryGoods(HttpServletRequest request){ try { - Map map = new HashMap(); + HashMap map = new HashMap(); Enumeration paramNames = request.getParameterNames(); while (paramNames.hasMoreElements()) { String paramName = (String) paramNames.nextElement(); @@ -37,26 +38,80 @@ public class ManagerController { } } } - //TODO RPC 发货 - String openid = "test_openid"; - String payitem = "test_payitem"; - String billno = "test_billno"; - String amt = "test_amt"; - String appmeta = "test_appmeta"; - String channel_id = "test_channel_id"; +// String app_metadata = new StringBuffer() +// // ios 0/android 1 +// .append(cbiData.getPlatId()).append("*") +// //wx:1;qq:2(和idip保持一致) +// .append(cbiData.getMyLoginChannel()).append("*") +// // 登录的游戏服务器大区id +// .append(cbiData.getGameSvrId()).append("*") +// // 登录的游戏服务器小区编号 +// .append(this.coreServerAutoConfiguration.getConfig().getArea()).append("*") +// //用户id +// .append(cbiData.getUid()).append("*") +// //1:内网测试;0:正常线上 +// .append(this.serverProperties.getIsLAN()).append("*") +// //游戏自生成orderid +// .append(orderId).toString(); + String sig = map.get("sig"); + String[] serverParam = map.get("appmeta").split("\\*"); + int plat = Integer.parseInt(serverParam[0]); + int channel = Integer.parseInt(serverParam[1]); + int gameServer = Integer.parseInt(serverParam[2]); + int area = Integer.parseInt(serverParam[3]); + int userId = Integer.parseInt(serverParam[4]); + int online = Integer.parseInt(serverParam[5]); + String serverOrder = serverParam[6]; - //TODO 根据大区id和小区id找到对应服的 + String m_interface; + String final_appkey; + String final_appId; + if (online == 0 && plat == 1){ + m_interface = YsjConstant.Midas_Buy_Goods; + final_appkey = YsjConstant.Midas_Buy_Android_Appkey; + final_appId = YsjConstant.Midas_Buy_Android_Appid; + }else if (online == 0 && plat == 0){ + m_interface = YsjConstant.Midas_Buy_Goods; + final_appkey = YsjConstant.Midas_Buy_Ios_Appkey; + final_appId = YsjConstant.Midas_Buy_Ios_Appid; + }else if (online == 1 && plat == 0){ + m_interface = YsjConstant.Test_Midas_Buy_Goods; + final_appkey = YsjConstant.Midas_Buy_Ios_Appkey_Test; + final_appId = YsjConstant.Midas_Buy_Ios_Appid; + }else { + m_interface = YsjConstant.Test_Midas_Buy_Goods; + final_appkey = YsjConstant.Midas_Buy_Android_Appkey_Test; + final_appId = YsjConstant.Midas_Buy_Android_Appid; + } + boolean checkSign = SnsSigCheck.verifySig("GET", m_interface, map, final_appkey, sig); + if (!checkSign){ + JsonResult jsonResult = new JsonResult(); + jsonResult.setRet(5); + jsonResult.setMsg("sign error"); + return jsonResult; + } + + String openid = map.get("openid"); + String payitem = map.get("payitem"); + String billno = map.get("billno"); + String amt = map.get("amt"); + String channel_id = map.get("channel_id"); + String token = map.get("token"); + + + //TODO 根据大区id和小区id从redis找到对应服的 IP和 Port String ip = "127.0.0.1"; String port = "7900"; + + //TODO RPC 发货 Result result = null; ClientAdapterPo rPCClient = null; - String serviceKey = getServiceKey(ServiceKey.RPCCore,ip,port); try { rPCClient = ClientAdapterPo.getClientAdapterPo(serviceKey); - result = rPCClient.getClient().deliveryGood(openid,payitem,billno,amt,appmeta,channel_id); + result = rPCClient.getClient().deliveryGood(openid,userId,payitem,billno,amt,channel_id,token,serverOrder); } catch (Exception e) { e.printStackTrace(); } finally { @@ -70,6 +125,8 @@ public class ManagerController { } catch (Exception e) { e.printStackTrace(); JsonResult jsonResult = new JsonResult(); + jsonResult.setRet(1); + jsonResult.setMsg("system error"); return jsonResult; } } diff --git a/src/main/java/com/jmfy/util/YsjConstant.java b/src/main/java/com/jmfy/util/YsjConstant.java new file mode 100644 index 0000000..46f46d7 --- /dev/null +++ b/src/main/java/com/jmfy/util/YsjConstant.java @@ -0,0 +1,47 @@ +package com.jmfy.util; + +/** + * Created by Marvin on 2017/10/20. + */ +public class YsjConstant { + + + + public static String Midas_Buy_Goods = "/v3/r/mpay/buy_goods_m"; + + public static String Test_Midas_Buy_Goods = "/mpay/buy_goods_m"; + + + public static String Midas_Android_Appid = "1450013210"; + + public static String Midas_Ios_Appid = "1450013217"; + + public static String Midas_Android_Appkey = "9jmOKYwCiQYPBU56Lf1hsMulaUiUrN0p"; + + public static String Midas_Android_Appkey_Test = "8WzVTnfJFDzsaGy5xwNIDKpDYarucl1I"; + + public static String Midas_Ios_Appkey = "r01xrc9VAhEVKBCLj9VYyrAV8sFxNDxi"; + + public static String Midas_Ios_Appkey_Test = "UiRETrkwHWq9YKBoK9A9ovQxmFTL2bjC"; + + + + public static String Midas_Buy_Android_Appid = "1450013496"; + + public static String Midas_Buy_Ios_Appid = "1450013495"; + + public static String Midas_Buy_Android_Appkey = ""; + + public static String Midas_Buy_Android_Appkey_Test = "LAhW7WH0jVRjGVkj1wL3fG1YJmCcO6TR"; + + public static String Midas_Buy_Ios_Appkey = ""; + + public static String Midas_Buy_Ios_Appkey_Test = "IJBg5GkaG3bfKhWJPfx8nzBTIwy04Uii"; + + + + public static String protocol_http = "http"; + + public static String protocol_https = "https"; + +} diff --git a/src/main/thrift/idl/core.thrift b/src/main/thrift/idl/core.thrift index efbd7da..35fb607 100644 --- a/src/main/thrift/idl/core.thrift +++ b/src/main/thrift/idl/core.thrift @@ -8,5 +8,6 @@ struct Result { service RPCRequestIFace{ - Result deliveryGood(1:string openid, 2:string payitem, 3:string billno, 5:string amt, 6:string appmeta, 7:string channel_id) throws (1:common.InvalidOperException ouch); + Result deliveryGood(1:string openid, 2:i32 userId, 3:string payitem, 4:string billno, 5:string amt, + 6:string channel_id, 7:string token, 8:string serverOrder) throws (1:common.InvalidOperException ouch); } \ No newline at end of file