Beispiel #1
0
        public string Send()
        {
            Dictionary <string, string> dictionary = new Dictionary <string, string>();

            dictionary.Add("AccessKeyId", this.AccessKeyId);
            dictionary.Add("Action", "SendSms");
            dictionary.Add("Format", "JSON");
            dictionary.Add("PhoneNumbers", this.PhoneNumbers);
            dictionary.Add("SignatureMethod", "HMAC-SHA1");
            dictionary.Add("SignatureNonce", Guid.NewGuid().ToString());
            dictionary.Add("SignatureVersion", "1.0");
            dictionary.Add("SignName", this.SignName);
            dictionary.Add("TemplateCode", this.TemplateCode);
            dictionary.Add("TemplateParam", this.TemplateParam);
            dictionary.Add("Timestamp", AliTools.GetTimeStamp());
            dictionary.Add("Version", "2017-05-25");
            string source = AliTools.ComposeStringToSign("GET", dictionary);
            string value  = AliTools.SignString(source, this.AccessKeySecret + "&");

            dictionary.Add("Signature", value);
            string url    = "http://dysmsapi.aliyuncs.com/?" + AliTools.GetQueryString(dictionary);
            string value2 = AliTools.HttpGet(url);
            //Log.Write("[SMS]", url, "sms/");
            string  result  = "";
            JObject jObject = new JObject();

            try
            {
                jObject = (JObject)JsonConvert.DeserializeObject(value2);
            }
            catch (Exception Ex)
            {
                result  = "Json Error";
                jObject = null;
                //Log.Write("[SMS]:", "【Data】:", Ex);
            }
            if (jObject != null)
            {
                if (jObject["Code"] != null)
                {
                    result = jObject["Code"].ToString();
                }
                else
                {
                    result = "Code Error";
                }
            }
            return(result);
        }
Beispiel #2
0
        public static string ComposeStringToSign(string method, Dictionary <string, string> queries)
        {
            IDictionary <string, string> dictionary = AliTools.SortDictionary(queries);
            StringBuilder stringBuilder             = new StringBuilder();

            foreach (KeyValuePair <string, string> current in dictionary)
            {
                stringBuilder.Append("&").Append(AliTools.PercentEncode(current.Key)).Append("=").Append(AliTools.PercentEncode(current.Value));
            }
            StringBuilder stringBuilder2 = new StringBuilder();

            stringBuilder2.Append(method);
            stringBuilder2.Append("&");
            stringBuilder2.Append(AliTools.PercentEncode("/"));
            stringBuilder2.Append("&");
            stringBuilder2.Append(AliTools.PercentEncode(stringBuilder.ToString().Substring(1)));
            return(stringBuilder2.ToString());
        }
Beispiel #3
0
        public static string GetQueryString(Dictionary <string, string> reqMap)
        {
            string text = "";

            foreach (string current in reqMap.Keys)
            {
                string text2 = text;
                text = string.Concat(new string[]
                {
                    text2,
                    current,
                    "=",
                    AliTools.percentEncode(reqMap[current]),
                    "&"
                });
            }
            text = text.Substring(0, text.Length - 1);
            return(text);
        }