using System; using System.Collections.Generic; using System.Linq; using System.Web; using Microsoft.Extensions.Logging; using Microsoft.Extensions.Options; using Microsoft.AspNetCore.Mvc; using Microsoft.AspNetCore.Http; using System.IO; using Library; using LitJson; using System.Threading.Tasks; using System.Reflection.Metadata.Ecma335; namespace MySystem.Areas.Api.Controllers { [Area("Api")] [Route("Api/v1/[controller]/[action]")] public class Kq3Controller : Admin.Controllers.BaseController { public Kq3Controller(IHttpContextAccessor accessor, ILogger logger, IOptions setting) : base(accessor, logger, setting) { } #region 接收统一地址通知 [HttpPost] [Route("/kxs3/notice/{BrandId:int}")] public string Notice(IFormCollection form, int BrandId = 1) { string requestMes = "{"; LogHelper.Instance.WriteLog(DateTime.Now.ToString(), "接收统一地址通知"); foreach (string key in form.Keys) { LogHelper.Instance.WriteLog(key + ":" + form[key].ToString(), "接收统一地址通知"); if (key == "dataJson" || key == "extData") { requestMes += "\"" + key + "\":" + form[key].ToString() + ","; } else { requestMes += "\"" + key + "\":\"" + form[key].ToString() + "\","; } } requestMes = requestMes.TrimEnd(','); LogHelper.Instance.WriteLog("\n\n", "接收统一地址通知"); requestMes += "}"; string content = Newtonsoft.Json.JsonConvert.SerializeObject(Request.Headers) + "#cut#" + requestMes + "#cut#" + BrandId; RedisDbconn.Instance.AddList("SpSingleNotice", content); return "SUCCESS"; } #endregion #region 接收统一地址通知 [HttpPost] [Route("/kxs/lkb/{Path}")] public Dictionary publicnotice(string Path) { StreamReader sr = new StreamReader(Request.Body); string requestMes = sr.ReadToEnd(); if (string.IsNullOrEmpty(requestMes)) { return new Dictionary(); } string content = Newtonsoft.Json.JsonConvert.SerializeObject(Request.Headers) + "#cut#" + requestMes; LogHelper.Instance.WriteLog(content, "接收来客吧L版-" + Path + "通知"); string fileName = function.MD5_16(Guid.NewGuid().ToString()); if(Path == "terminal-bind") { RedisDbconn.Instance.AddList("kxs_bind_list_27", content + "#cut#" + fileName); // function.WritePage("/redis/kxs_bind_list_27/", fileName + ".txt", content); } else if(Path == "trade") { RedisDbconn.Instance.AddList("kxs_trade_list_27", content + "#cut#" + fileName); // function.WritePage("/redis/kxs_trade_list_27/", fileName + ".txt", content); } else if(Path == "rebate") { RedisDbconn.Instance.AddList("kxs_rebate_list_27", content + "#cut#" + fileName); // function.WritePage("/redis/kxs_rebate_list_27/", fileName + ".txt", content); } string sign = ""; Dictionary back = PublicImportDataService.Instance.LkbCallBack(out sign); Response.Headers.Add("Content-Type", "application/json"); Response.Headers.Add("X-Sign", sign); return back; } #endregion #region 接收统一地址通知 [HttpPost] [Route("/wifi/{Path}")] public Dictionary wifinotice(string Path) { StreamReader sr = new StreamReader(Request.Body); string requestMes = sr.ReadToEnd(); if (string.IsNullOrEmpty(requestMes)) { return new Dictionary(); } string content = Newtonsoft.Json.JsonConvert.SerializeObject(Request.Headers) + "#cut#" + requestMes; // LogHelper.Instance.WriteLog(content, "接收WIFI数据-" + Path + "通知"); function.WriteLog(content, "接收WIFI数据-" + Path + "通知"); RedisDbconn.Instance.AddList("wifi_data_list", Path + "#cut#" + requestMes); Dictionary dic = new Dictionary(); dic.Add("code", 200); dic.Add("msg", "ok"); return dic; } #endregion #region 接收联动掌中宝推送数据 [HttpPost] [Route("/kxs3/notice/ld")] public string NoticeLd() { StreamReader sr = new StreamReader(Request.Body); string requestMes = sr.ReadToEnd(); if (string.IsNullOrEmpty(requestMes)) { return "FAIL"; } string content = Newtonsoft.Json.JsonConvert.SerializeObject(Request.Headers) + "#cut#" + requestMes; LogHelper.Instance.WriteLog(DateTime.Now.ToString() + content, "联动掌中宝推送数据", "34"); // function.WriteLog(DateTime.Now.ToString() + content, "联动掌中宝推送数据"); JsonData jsonObj = JsonMapper.ToObject(requestMes); string serviceType = jsonObj["serviceType"].ToString(); if(serviceType == "MATERIAL_BIND_STATUS_NOTIFY") RedisDbconn.Instance.AddList("kxs_bind_list_34", content); else if(serviceType == "PAY_ORDER_NOTIFY") RedisDbconn.Instance.AddList("kxs_trade_list_34", content); else if(serviceType == "CUSTOMER_INFO_REGISTER_NOTIFY") RedisDbconn.Instance.AddList("kxs_merchant_list_34", content); else if(serviceType == "MATERIALS_ACTIVATION_NOTIFY") RedisDbconn.Instance.AddList("kxs_active_list_34", content); else if(serviceType == "CUSTOMER_LAST_RATE_NOTIFY") RedisDbconn.Instance.AddList("kxs_rate_list_34", content); else RedisDbconn.Instance.AddList("kxs_ld_zzb_list", content); return "OK"; } #endregion } }