Bläddra i källkod

添加天谕音响逻辑代码

lcl 1 år sedan
förälder
incheckning
d3421a15a4
2 ändrade filer med 110 tillägg och 1 borttagningar
  1. 5 1
      Util/HaoDa/WeChatPayBackService.cs
  2. 105 0
      Util/TianYuVoiceHelper.cs

+ 5 - 1
Util/HaoDa/WeChatPayBackService.cs

@@ -95,10 +95,14 @@ namespace MySystem
                     Models.Main1.PosMachines machine = db1.PosMachines.FirstOrDefault(m => m.PosSn == order.SnNo);
                     if(machine != null)
                     {
-                        if(!string.IsNullOrEmpty(addinfo.AliMerchantId))
+                        if(!string.IsNullOrEmpty(addinfo.AliMerchantId) && machine.BrandId == 1)
                         {
                             AliIotFunction.Instance.IotTradeVoice(machine.SeoDescription, addinfo.AliMerchantId, order.PayMoney.ToString("f2"), "OTHER");
                         }
+                        if(machine.BrandId == 2)
+                        {
+                            TianYuVoiceHelper.Instance.doSomething(DateTime.Now.ToString("yyyyMMddHHmmssfff"), machine.Detail, order.PayMoney.ToString("f2"));
+                        }
                     }
                     db1.Dispose();
                 }

+ 105 - 0
Util/TianYuVoiceHelper.cs

@@ -0,0 +1,105 @@
+using System;
+using System.Threading;
+using System.Linq;
+using System.Data;
+using Library;
+using MySystem.Models;
+using LitJson;
+using System.Collections.Generic;
+using System.Security.Cryptography;
+
+namespace MySystem
+{
+    public class TianYuVoiceHelper
+    {
+        public readonly static TianYuVoiceHelper Instance = new TianYuVoiceHelper();
+        private TianYuVoiceHelper()
+        {
+        }
+
+        string accesskeyld = "IOT_ACCOUNT_TEST_CSYH";
+        string accesskeySecret = "AtR4g5sa24fdy6GII3hts75_CSYH";
+        string reqUrl = "https://voicetest.tysmartpos.com/api/bank/pushmsg";
+
+        // public void Start()//启动
+        // {
+        //     Thread thread = new Thread(listen);
+        //     thread.IsBackground = true;
+        //     thread.Start();
+        // }
+
+        // public void listen()
+        // {
+        //     while (true)
+        //     {
+        //         string content = RedisDbconn.Instance.RPop<string>("TianYuVoiceQueue");
+        //         if (!string.IsNullOrEmpty(content))
+        //         {
+        //             try
+        //             {
+        //                 doSomething(content);
+        //                 Thread.Sleep(10);
+        //             }
+        //             catch (Exception ex)
+        //             {
+        //                 LogHelper.Instance.WriteLog(DateTime.Now.ToString() + ":" + ex.ToString(), "天喻云喇叭异常");
+        //             }
+        //         }
+        //         else
+        //         {
+        //             Thread.Sleep(1000);
+        //         }
+        //     }
+        // }
+
+        public string doSomething(string OrderNo, string DeviceId, string Amount)
+        {
+            string result = "";
+            try
+            {
+                SortedList<string, string> data = new SortedList<string, string>();
+                data.Add("accessKeyId", accesskeyld); //由本公司统一提供给客户的唯一识别码(同accessKeyId)
+                data.Add("requestId", OrderNo); //请求标识,用于唯一标识当前请求
+                data.Add("timestamp", function.GetCurTimestamp().ToString()); //请求时间戳,格式如:1593532800000
+                data.Add("deviceId", DeviceId); //设备编号
+                data.Add("content", "来客吧收款" + Amount + "元"); //(终端直接播报内容,支持 tts 设备可以直接播报汉字语音,不支持 tts 的设备要分开传 requestData、payType)
+                // data.Add("requestData", "0.01"); //播报金额((只送金额,单位:元)
+                // data.Add("payType", "01"); //播报类型:  01-XX银行收款成功    02-支付宝收款成功  03-微信收款成功 10-取消支付
+                result = post(data);
+            }
+            catch (Exception ex)
+            {
+                LogHelper.Instance.WriteLog(DateTime.Now.ToString() + ":" + ex.ToString(), "天喻云喇叭异常");
+            }
+            return result;
+        }
+
+        private string post(SortedList<string, string> data)
+        {
+            string signString = function.BuildQueryString(data);
+            data.Add("sign", hmac_sha256(signString));
+            string req = Newtonsoft.Json.JsonConvert.SerializeObject(data);
+            function.WriteLog("请求地址:" + reqUrl, "天谕音响日志");
+            function.WriteLog("请求参数:" + req, "天谕音响日志");
+            string result = function.PostWebRequest(reqUrl, req, "application/json");
+            function.WriteLog("响应数据:" + result, "天谕音响日志");
+            return result;
+        }
+
+        #region hmac_sha256算法
+
+        public string hmac_sha256(string message)
+        {
+            var encoding = new System.Text.UTF8Encoding();
+            byte[] keyByte = encoding.GetBytes(accesskeySecret);
+            byte[] messageBytes = encoding.GetBytes(message);
+            using (var hmacsha256 = new HMACSHA256(keyByte))
+            {
+                byte[] hashmessage = hmacsha256.ComputeHash(messageBytes);
+                return Convert.ToBase64String(hashmessage);
+            }
+        }
+
+        #endregion
+    }
+}