using Newtonsoft.Json; using System; using System.Collections.Generic; using System.Linq; using System.Net; using System.Net.Http; using System.Web.Http; using VueWebApi.Models; using VueWebApi.Tools; using VueWebApi.Util; namespace VueWebApi.Controllers { [RoutePrefix(prefix: "api/Message")] [ControllerGroup("T8授权管理", "在线接口")] public class MessageController : ApiController { [Route(template: "OAuth")] [HttpGet] public string OAuth(string code, string state) { Console.WriteLine($"Code:{code}"); LogHelper.WriteLogData("code:" + code); return code; } [Route(template: "Receive")] [HttpPost] public dynamic Receive([FromBody] ChanjetEncryptMsg encryptMsg) { string enMsg = encryptMsg.GetEncryptMsg(); LogHelper.WriteLogData("解密前的消息enMsg:" + enMsg); Console.WriteLine($"解密前的消息{enMsg}"); String decryptMsg = OpenapiHelper.AesDecrypt(enMsg, config.Key_encryptKey); LogHelper.WriteLogData2("解密后消息:" +decryptMsg); Console.WriteLine($"解密后消息{decryptMsg}"); MessageBase message = JsonConvert.DeserializeObject(decryptMsg); object retObj = null; try { switch (message.msgType) { case "APP_TEST": LogHelper.WriteLogData("消息类型msgType:" + message.msgType); retObj = DealTestMsg(message); break; case "APP_TICKET": LogHelper.WriteLogData("消息类型msgType:" + message.msgType); retObj = DealTicketMsg(message); break; case "TEMP_AUTH_CODE": LogHelper.WriteLogData("消息类型msgType:" + message.msgType); retObj = DealOrgTempAuthMsg(message); break; case "PAY_ORDER_SUCCESS": LogHelper.WriteLogData("消息类型msgType:" + message.msgType); retObj = DealOrderPayMsg(message); break; default: break; } } catch (Exception ex) { throw ex; } return retObj; } private object DealOrderPayMsg(MessageBase message) { throw new NotImplementedException(); } private object DealOrgTempAuthMsg(MessageBase message) { LogHelper.WriteLogData("开始OrgTempAuthContent"); OrgTempAuthContent content = JsonConvert.DeserializeObject(message.bizContent.ToString()); Console.WriteLine($"OrgTempAuthCode:{content.tempAuthCode}"); LogHelper.WriteLogData("结束OrgTempAuthContent"); return $"OrgTempAuthCode:{content.tempAuthCode}"; } private object DealTicketMsg(MessageBase message) { LogHelper.WriteLogData("开始AppTicket"); AppTicketContent content = JsonConvert.DeserializeObject(message.bizContent.ToString()); Console.WriteLine($"AppTicket:{content.appTicket}"); LogHelper.WriteLogData("结束AppTicket"); return $"AppTicket:{content.appTicket}"; } private object DealTestMsg(MessageBase message) { Dictionary dic = new Dictionary { { "result","success"} }; LogHelper.WriteLogData1(JsonConvert.SerializeObject(dic)); return JsonConvert.SerializeObject(dic); } } }