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); }
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()); }
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); }