PosPushDataNewHelper.cs 4.8 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108
  1. using System;
  2. using System.Collections.Generic;
  3. using System.Linq;
  4. using Library;
  5. using MySystem.MpMainModels2;
  6. namespace MySystem
  7. {
  8. public class PosPushDataNewHelper
  9. {
  10. public readonly static PosPushDataNewHelper Instance = new PosPushDataNewHelper();
  11. private PosPushDataNewHelper()
  12. { }
  13. //绑定数据
  14. public static void Bind(SpModels.BindRecord mer)
  15. {
  16. try
  17. {
  18. Dictionary<string, object> dataContent = new Dictionary<string, object>();
  19. dataContent.Add("pos_sn", mer.MerSnNo); //机具sn
  20. dataContent.Add("mer_no", mer.MerNo); //商户号
  21. dataContent.Add("id_card", ""); //商户身份证
  22. dataContent.Add("mer_name", mer.MerName); //商户姓名
  23. dataContent.Add("mer_mobile", ""); //商户手机号
  24. dataContent.Add("request_id", getRequestId(mer.Id, "bind")); //流水号
  25. dataContent.Add("bind_time", mer.CreateTime.Value.ToString("yyyy-MM-dd HH:mm:ss")); //绑定时间
  26. dataContent.Add("brand", int.Parse(function.CheckInt(mer.ProductType))); //品牌
  27. Push("bind", dataContent);
  28. }
  29. catch (Exception ex)
  30. {
  31. function.WriteLog(DateTime.Now.ToString() + "\n" + ex.ToString() + "\n\n", "推送绑定数据异常");
  32. }
  33. }
  34. //押金数据
  35. public static void Deposit(SpModels.ActivateRecord act)
  36. {
  37. try
  38. {
  39. List<string> BrandIds = new List<string>();
  40. decimal TradeAmount = decimal.Parse(function.CheckNum(act.SeoTitle));
  41. Dictionary<string, object> dataContent = new Dictionary<string, object>();
  42. dataContent.Add("pos_sn", act.SnNo); //机具sn
  43. dataContent.Add("mer_no", act.MerNo); //商户号
  44. dataContent.Add("request_id", getRequestId(act.Id, "deposit")); //流水号
  45. dataContent.Add("deposit_amount", TradeAmount); //押金金额
  46. dataContent.Add("trade_time", DateTime.Now.ToString("yyyy-MM-dd HH:mm:ss")); //交易时间
  47. dataContent.Add("card_type", 1); //卡类型
  48. dataContent.Add("brand", int.Parse(function.CheckInt(act.ProductType))); //品牌
  49. Push("deposit", dataContent);
  50. }
  51. catch (Exception ex)
  52. {
  53. function.WriteLog(DateTime.Now.ToString() + "\n" + ex.ToString() + "\n\n", "推送押金数据异常");
  54. }
  55. }
  56. //交易数据
  57. public static void Trade(ConsumerOrders trade, string kind)
  58. {
  59. try
  60. {
  61. int brand = 18;
  62. if(kind.Contains("好哒语音王")) brand = 18;
  63. if(kind.Contains("收款王M820")) brand = 19;
  64. if(kind.Contains("收款王M826")) brand = 20;
  65. if(kind.Contains("S312")) brand = 21;
  66. if(kind.Contains("好哒扫码通")) brand = 29;
  67. Dictionary<string, object> dataContent = new Dictionary<string, object>();
  68. dataContent.Add("pos_sn", trade.SnNo); //机具sn
  69. dataContent.Add("mer_no", trade.TradePayNo); //商户号
  70. dataContent.Add("request_id", trade.OrderNo); //流水号
  71. dataContent.Add("trade_amount", trade.PayMoney); //交易金额
  72. dataContent.Add("trade_time", trade.CreateDate.Value.ToString("yyyy-MM-dd HH:mm:ss")); //交易时间
  73. dataContent.Add("brand", brand); //品牌
  74. dataContent.Add("is_act", trade.IsAct); //品牌
  75. dataContent.Add("card_type", 1); //卡类型
  76. dataContent.Add("qr_pay_flag", 0); //云闪付标记
  77. dataContent.Add("fee_rate", trade.IsAct == 1 ? 0.6M : 0.63M); // 费率
  78. dataContent.Add("fee_amt", trade.IsAct == 1 ? 0 : 3); // 秒到费
  79. Push("trade", dataContent);
  80. }
  81. catch (Exception ex)
  82. {
  83. function.WriteLog(DateTime.Now.ToString() + "\n" + ex.ToString() + "\n\n", "推送交易数据异常");
  84. }
  85. }
  86. public static void Push(string dataType, Dictionary<string, object> dataContent)
  87. {
  88. Dictionary<string, object> data = new Dictionary<string, object>();
  89. data.Add("data_type", dataType);
  90. data.Add("data_content", dataContent);
  91. RedisDbconn.Instance.AddList("KxsPosDataQueue", Newtonsoft.Json.JsonConvert.SerializeObject(data));
  92. }
  93. public static string getRequestId(int id, string type)
  94. {
  95. if(id > 0)
  96. {
  97. return function.MD5_32(id.ToString() + type);
  98. }
  99. return DateTime.Now.ToString("yyyyMMddHHmmssfff") + function.get_Random(8);
  100. }
  101. }
  102. }