Kq2Controller.cs 18 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463
  1. using System;
  2. using System.Collections.Generic;
  3. using System.Linq;
  4. using System.Web;
  5. using Microsoft.Extensions.Logging;
  6. using Microsoft.Extensions.Options;
  7. using Microsoft.AspNetCore.Mvc;
  8. using Microsoft.AspNetCore.Http;
  9. using System.IO;
  10. using Library;
  11. using LitJson;
  12. using System.Threading.Tasks;
  13. namespace MySystem.Areas.Api.Controllers
  14. {
  15. [Area("Api")]
  16. [Route("Api/v1/[controller]/[action]")]
  17. public class Kq2Controller : Admin.Controllers.BaseController
  18. {
  19. public Kq2Controller(IHttpContextAccessor accessor, ILogger<Admin.Controllers.BaseController> logger, IOptions<Setting> setting) : base(accessor, logger, setting)
  20. {
  21. }
  22. #region 接收绑定记录
  23. [HttpPost]
  24. [Route("/kxs2/bind/{BrandId:int}")]
  25. public string Bind(int BrandId = 1)
  26. {
  27. StreamReader sr = new StreamReader(Request.Body);
  28. string requestMes = sr.ReadToEnd();
  29. if (string.IsNullOrEmpty(requestMes))
  30. {
  31. return "fail";
  32. }
  33. string content = Newtonsoft.Json.JsonConvert.SerializeObject(Request.Headers) + "#cut#" + requestMes;
  34. SaveLog(BrandId, "绑定", content);
  35. string fileName = function.MD5_16(Guid.NewGuid().ToString());
  36. RedisDbconn.Instance.AddList("kxs_bind_list_" + BrandId, content + "#cut#" + fileName);
  37. // function.WritePage("/redis/kxs_bind_list_" + BrandId + "/", fileName + ".txt", content);
  38. return BackInfo(BrandId);
  39. }
  40. #endregion
  41. #region 接收激活记录
  42. [HttpPost]
  43. [Route("/kxs2/active/{BrandId:int}")]
  44. public string Active(int BrandId = 1)
  45. {
  46. StreamReader sr = new StreamReader(Request.Body);
  47. string requestMes = sr.ReadToEnd();
  48. if (string.IsNullOrEmpty(requestMes))
  49. {
  50. return "fail";
  51. }
  52. string content = Newtonsoft.Json.JsonConvert.SerializeObject(Request.Headers) + "#cut#" + requestMes;
  53. SaveLog(BrandId, "激活", content);
  54. string fileName = function.MD5_16(Guid.NewGuid().ToString());
  55. RedisDbconn.Instance.AddList("kxs_active_list_" + BrandId, content + "#cut#" + fileName);
  56. // function.WritePage("/redis/kxs_active_list_" + BrandId + "/", fileName + ".txt", content);
  57. return BackInfo(BrandId);
  58. }
  59. #endregion
  60. #region 接收商户记录
  61. [HttpPost]
  62. [Route("/kxs2/merchant/{BrandId:int}")]
  63. public string Merchant(int BrandId = 1)
  64. {
  65. StreamReader sr = new StreamReader(Request.Body);
  66. string requestMes = sr.ReadToEnd();
  67. if (string.IsNullOrEmpty(requestMes))
  68. {
  69. return "fail";
  70. }
  71. RedisDbconn.Instance.AddList("kxs_merchant_list_" + BrandId, requestMes);
  72. return BackInfo(BrandId);
  73. }
  74. #endregion
  75. #region 接收交易记录
  76. [HttpPost]
  77. [Route("/kxs2/trade/{BrandId:int}")]
  78. public string Trade(int BrandId = 1)
  79. {
  80. StreamReader sr = new StreamReader(Request.Body);
  81. string requestMes = sr.ReadToEnd();
  82. if (string.IsNullOrEmpty(requestMes))
  83. {
  84. return "fail";
  85. }
  86. string content = Newtonsoft.Json.JsonConvert.SerializeObject(Request.Headers) + "#cut#" + requestMes;
  87. SaveLog(BrandId, "交易", content);
  88. string fileName = function.MD5_16(Guid.NewGuid().ToString());
  89. RedisDbconn.Instance.AddList("kxs_trade_list_" + BrandId, content + "#cut#" + fileName);
  90. // function.WritePage("/redis/kxs_trade_list_" + BrandId + "/", fileName + ".txt", content);
  91. Dictionary<string, object> obj = new Dictionary<string, object>();
  92. return BackInfo(BrandId);
  93. }
  94. #endregion
  95. #region 接收分润记录
  96. [HttpPost]
  97. [Route("/kxs2/profit/{BrandId:int}")]
  98. public string Profit(int BrandId = 1)
  99. {
  100. StreamReader sr = new StreamReader(Request.Body);
  101. string requestMes = sr.ReadToEnd();
  102. if (string.IsNullOrEmpty(requestMes))
  103. {
  104. return "fail";
  105. }
  106. string content = Newtonsoft.Json.JsonConvert.SerializeObject(Request.Headers) + "#cut#" + requestMes;
  107. SaveLog(BrandId, "分润", content);
  108. RedisDbconn.Instance.AddList("kxs_profit_list_" + BrandId, requestMes);
  109. return BackInfo(BrandId);
  110. }
  111. #endregion
  112. #region 接收流量卡分佣交易记录
  113. [HttpPost]
  114. [Route("/kxs2/flux/{BrandId:int}")]
  115. public string Flux(int BrandId = 1)
  116. {
  117. StreamReader sr = new StreamReader(Request.Body);
  118. string requestMes = sr.ReadToEnd();
  119. if (string.IsNullOrEmpty(requestMes))
  120. {
  121. return "fail";
  122. }
  123. string content = Newtonsoft.Json.JsonConvert.SerializeObject(Request.Headers) + "#cut#" + requestMes;
  124. SaveLog(BrandId, "流量卡交易", content);
  125. string fileName = function.MD5_16(Guid.NewGuid().ToString());
  126. RedisDbconn.Instance.AddList("kxs_flux_list_" + BrandId, content + "#cut#" + fileName);
  127. // function.WritePage("/redis/kxs_flux_list_" + BrandId + "/", fileName + ".txt", content);
  128. return BackInfo(BrandId);
  129. }
  130. #endregion
  131. #region 接收商终关系变更通知
  132. [HttpPost]
  133. [Route("/kxs2/changebind/{BrandId:int}")]
  134. public string ChangeBind(int BrandId = 1)
  135. {
  136. StreamReader sr = new StreamReader(Request.Body);
  137. string requestMes = sr.ReadToEnd();
  138. if (string.IsNullOrEmpty(requestMes))
  139. {
  140. return "fail";
  141. }
  142. string content = Newtonsoft.Json.JsonConvert.SerializeObject(Request.Headers) + "#cut#" + requestMes;
  143. SaveLog(BrandId, "商终关系变更", content);
  144. string fileName = function.MD5_16(Guid.NewGuid().ToString());
  145. RedisDbconn.Instance.AddList("kxs_changebind_list_" + BrandId, content + "#cut#" + fileName);
  146. // function.WritePage("/redis/kxs_changebind_list_" + BrandId + "/", fileName + ".txt", content);
  147. return BackInfo(BrandId);
  148. }
  149. #endregion
  150. #region 终端费率模板变更记录
  151. [HttpPost]
  152. [Route("/kxs2/tempchange/{BrandId:int}")]
  153. public string TempChange(int BrandId = 1)
  154. {
  155. StreamReader sr = new StreamReader(Request.Body);
  156. string requestMes = sr.ReadToEnd();
  157. if (string.IsNullOrEmpty(requestMes))
  158. {
  159. return "fail";
  160. }
  161. string content = Newtonsoft.Json.JsonConvert.SerializeObject(Request.Headers) + "#cut#" + requestMes;
  162. SaveLog(BrandId, "终端费率模板变更", content);
  163. string fileName = function.MD5_16(Guid.NewGuid().ToString());
  164. RedisDbconn.Instance.AddList("kxs_tempchange_list_" + BrandId, content + "#cut#" + fileName);
  165. // function.WritePage("/redis/kxs_tempchange_list_" + BrandId + "/", fileName + ".txt", content);
  166. return BackInfo(BrandId);
  167. }
  168. #endregion
  169. #region 首刷达标数据
  170. [HttpPost]
  171. [Route("/kxs2/first/{BrandId:int}")]
  172. public string First(int BrandId = 1)
  173. {
  174. StreamReader sr = new StreamReader(Request.Body);
  175. string requestMes = sr.ReadToEnd();
  176. if (string.IsNullOrEmpty(requestMes))
  177. {
  178. return "fail";
  179. }
  180. string content = Newtonsoft.Json.JsonConvert.SerializeObject(Request.Headers) + "#cut#" + requestMes;
  181. SaveLog(BrandId, "首刷达标", content);
  182. string fileName = function.MD5_16(Guid.NewGuid().ToString());
  183. RedisDbconn.Instance.AddList("kxs_first_list_" + BrandId, content + "#cut#" + fileName);
  184. // function.WritePage("/redis/kxs_first_list_" + BrandId + "/", fileName + ".txt", content);
  185. return BackInfo(BrandId);
  186. }
  187. #endregion
  188. #region 换绑数据
  189. [HttpPost]
  190. [Route("/kxs2/changebinddata/{BrandId:int}")]
  191. public string ChangeBindData(int BrandId = 1)
  192. {
  193. StreamReader sr = new StreamReader(Request.Body);
  194. string requestMes = sr.ReadToEnd();
  195. if (string.IsNullOrEmpty(requestMes))
  196. {
  197. return "fail";
  198. }
  199. string content = Newtonsoft.Json.JsonConvert.SerializeObject(Request.Headers) + "#cut#" + requestMes;
  200. SaveLog(BrandId, "换绑", content);
  201. string fileName = function.MD5_16(Guid.NewGuid().ToString());
  202. RedisDbconn.Instance.AddList("kxs_changebinddata_list_" + BrandId, content + "#cut#" + fileName);
  203. // function.WritePage("/redis/kxs_changebinddata_list_" + BrandId + "/", fileName + ".txt", content);
  204. return BackInfo(BrandId);
  205. }
  206. #endregion
  207. #region 商户SVIP会员开通和续费数据
  208. [HttpPost]
  209. [Route("/kxs2/svip/{BrandId:int}")]
  210. public string SVip(int BrandId = 1)
  211. {
  212. StreamReader sr = new StreamReader(Request.Body);
  213. string requestMes = sr.ReadToEnd();
  214. if (string.IsNullOrEmpty(requestMes))
  215. {
  216. return "fail";
  217. }
  218. string content = Newtonsoft.Json.JsonConvert.SerializeObject(Request.Headers) + "#cut#" + requestMes;
  219. SaveLog(BrandId, "商户SVIP会员开通和续费", content);
  220. string fileName = function.MD5_16(Guid.NewGuid().ToString());
  221. RedisDbconn.Instance.AddList("kxs_svip_list_" + BrandId, content + "#cut#" + fileName);
  222. // function.WritePage("/redis/kxs_svip_list_" + BrandId + "/", fileName + ".txt", content);
  223. return BackInfo(BrandId);
  224. }
  225. #endregion
  226. #region 解绑数据
  227. [HttpPost]
  228. [Route("/kxs2/unbind/{BrandId:int}")]
  229. public string UnBind(int BrandId = 1)
  230. {
  231. StreamReader sr = new StreamReader(Request.Body);
  232. string requestMes = sr.ReadToEnd();
  233. if (string.IsNullOrEmpty(requestMes))
  234. {
  235. return "fail";
  236. }
  237. string content = Newtonsoft.Json.JsonConvert.SerializeObject(Request.Headers) + "#cut#" + requestMes;
  238. SaveLog(BrandId, "解绑", content);
  239. string fileName = function.MD5_16(Guid.NewGuid().ToString());
  240. RedisDbconn.Instance.AddList("kxs_unbind_list_" + BrandId, content + "#cut#" + fileName);
  241. // function.WritePage("/redis/kxs_unbind_list_" + BrandId + "/", fileName + ".txt", content);
  242. return BackInfo(BrandId);
  243. }
  244. #endregion
  245. #region 修改结算卡数据
  246. [HttpPost]
  247. [Route("/kxs2/modifybankcard/{BrandId:int}")]
  248. public string ModifyBankCard(int BrandId = 1)
  249. {
  250. StreamReader sr = new StreamReader(Request.Body);
  251. string requestMes = sr.ReadToEnd();
  252. if (string.IsNullOrEmpty(requestMes))
  253. {
  254. return "fail";
  255. }
  256. string content = Newtonsoft.Json.JsonConvert.SerializeObject(Request.Headers) + "#cut#" + requestMes;
  257. SaveLog(BrandId, "修改结算卡", content);
  258. string fileName = function.MD5_16(Guid.NewGuid().ToString());
  259. RedisDbconn.Instance.AddList("kxs_modifybankcard_list_" + BrandId, content + "#cut#" + fileName);
  260. // function.WritePage("/redis/kxs_modifybankcard_list_" + BrandId + "/", fileName + ".txt", content);
  261. return BackInfo(BrandId);
  262. }
  263. #endregion
  264. #region 提现通知
  265. [HttpPost]
  266. [Route("/kxs2/cash/{BrandId:int}")]
  267. public string Cash(int BrandId = 1)
  268. {
  269. StreamReader sr = new StreamReader(Request.Body);
  270. string requestMes = sr.ReadToEnd();
  271. if (string.IsNullOrEmpty(requestMes))
  272. {
  273. return "fail";
  274. }
  275. string content = Newtonsoft.Json.JsonConvert.SerializeObject(Request.Headers) + "#cut#" + requestMes;
  276. SaveLog(BrandId, "提现", content);
  277. string fileName = function.MD5_16(Guid.NewGuid().ToString());
  278. RedisDbconn.Instance.AddList("kxs_cash_list_" + BrandId, content + "#cut#" + fileName);
  279. // function.WritePage("/redis/kxs_cash_list_" + BrandId + "/", fileName + ".txt", content);
  280. return BackInfo(BrandId);
  281. }
  282. #endregion
  283. #region 结算通知业务
  284. [HttpPost]
  285. [Route("/kxs2/settle/{BrandId:int}")]
  286. public string Settle(int BrandId = 1)
  287. {
  288. StreamReader sr = new StreamReader(Request.Body);
  289. string requestMes = sr.ReadToEnd();
  290. if (string.IsNullOrEmpty(requestMes))
  291. {
  292. return "fail";
  293. }
  294. string content = Newtonsoft.Json.JsonConvert.SerializeObject(Request.Headers) + "#cut#" + requestMes;
  295. SaveLog(BrandId, "结算业务", content);
  296. string fileName = function.MD5_16(Guid.NewGuid().ToString());
  297. RedisDbconn.Instance.AddList("kxs_settle_list_" + BrandId, content + "#cut#" + fileName);
  298. // function.WritePage("/redis/kxs_settle_list_" + BrandId + "/", fileName + ".txt", content);
  299. return BackInfo(BrandId);
  300. }
  301. #endregion
  302. #region 手续费和秒到费
  303. [HttpPost]
  304. [Route("/kxs2/rate/{BrandId:int}")]
  305. public string Rate(int BrandId = 1)
  306. {
  307. StreamReader sr = new StreamReader(Request.Body);
  308. string requestMes = sr.ReadToEnd();
  309. if (string.IsNullOrEmpty(requestMes))
  310. {
  311. return "fail";
  312. }
  313. string content = Newtonsoft.Json.JsonConvert.SerializeObject(Request.Headers) + "#cut#" + requestMes;
  314. SaveLog(BrandId, "手续费和秒到费", content);
  315. string fileName = function.MD5_16(Guid.NewGuid().ToString());
  316. RedisDbconn.Instance.AddList("kxs_rate_list_" + BrandId, content + "#cut#" + fileName);
  317. // function.WritePage("/redis/kxs_rate_list_" + BrandId + "/", fileName+".txt", content);
  318. return BackInfo(BrandId);
  319. }
  320. #endregion
  321. #region 接收参数日志
  322. private void SaveLog(int BrandId, string KindName, string content)
  323. {
  324. if (BrandId == 2)
  325. {
  326. LogHelper.Instance.WriteLog(DateTime.Now.ToString() + content, "开店宝" + KindName + "推送消息");
  327. }
  328. else if (BrandId == 4)
  329. {
  330. LogHelper.Instance.WriteLog(DateTime.Now.ToString() + content, "乐刷" + KindName + "推送消息");
  331. }
  332. else if (BrandId == 6)
  333. {
  334. LogHelper.Instance.WriteLog(DateTime.Now.ToString() + content, "立刷" + KindName + "推送消息");
  335. }
  336. else if (BrandId == 22)
  337. {
  338. LogHelper.Instance.WriteLog(DateTime.Now.ToString() + content, "立刷微电签" + KindName + "推送消息");
  339. }
  340. else if (BrandId == 7)
  341. {
  342. LogHelper.Instance.WriteLog(DateTime.Now.ToString() + content, "盛付通" + KindName + "推送消息");
  343. }
  344. else if (BrandId == 8)
  345. {
  346. LogHelper.Instance.WriteLog(DateTime.Now.ToString() + content, "海科电签" + KindName + "推送消息");
  347. }
  348. else if (BrandId == 9)
  349. {
  350. LogHelper.Instance.WriteLog(DateTime.Now.ToString() + content, "海科大POS" + KindName + "推送消息");
  351. }
  352. else if (BrandId == 10 || BrandId == 11)
  353. {
  354. LogHelper.Instance.WriteLog(DateTime.Now.ToString() + content, "联动" + KindName + "推送消息");
  355. }
  356. else if (BrandId == 12)
  357. {
  358. LogHelper.Instance.WriteLog(DateTime.Now.ToString() + content, "盒易付电签" + KindName + "推送消息");
  359. }
  360. else if (BrandId == 15)
  361. {
  362. LogHelper.Instance.WriteLog(DateTime.Now.ToString() + content, "联客宝" + KindName + "推送消息");
  363. }
  364. else if (BrandId == 23)
  365. {
  366. LogHelper.Instance.WriteLog(DateTime.Now.ToString() + content, "WIFI" + KindName + "推送消息");
  367. }
  368. else if (BrandId == 34)
  369. {
  370. LogHelper.Instance.WriteLog(DateTime.Now.ToString() + content, "联动掌中宝" + KindName + "推送消息");
  371. }
  372. else
  373. {
  374. LogHelper.Instance.WriteLog(DateTime.Now.ToString() + content, "金控" + KindName + "推送消息");
  375. }
  376. }
  377. #endregion
  378. #region 返回报文
  379. private string BackInfo(int BrandId)
  380. {
  381. if(BrandId == 34)
  382. {
  383. return "OK";
  384. }
  385. return "SUCCESS";
  386. }
  387. #endregion
  388. #region 解析get请求键值对
  389. private Dictionary<string, string> GetParams(string data)
  390. {
  391. Dictionary<string, string> result = new Dictionary<string, string>();
  392. string[] datalist = data.Split('&');
  393. foreach (string sub in datalist)
  394. {
  395. string[] subdatalist = sub.Split('=');
  396. result.Add(subdatalist[0], subdatalist[1]);
  397. }
  398. return result;
  399. }
  400. #endregion
  401. }
  402. }