using Newtonsoft.Json; using System; using System.Collections.Generic; using System.Net; using System.Text; using System.Web; using WX.CRM.BLL.Util; using WX.CRM.CRMServices.SMS.InterfaceModel; using WX.CRM.IBLL.Util; namespace WX.CRM.CRMServices.SMS.InterfaceExec { public class YiZhengSms2 : IMsgSend { string account = ""; string pwd = ""; string url = ""; public YiZhengSms2(string _account = "", string _password = "") { var config = new YiZhengConfig2(); account = config.account; pwd = config.pwd; url = config.url; if (!string.IsNullOrEmpty(_account) && !string.IsNullOrEmpty(_password)) { pwd = _password; account = _account; } } public ReturnResult Execute(string[] mobiles, string msg) { return Send(mobiles, msg); } public decimal queryAmt() { throw new NotImplementedException(); } ReturnResult Send(string[] mobiles, string msg) { var mobilesStr = string.Join(",", mobiles); var result = new ReturnResult(); result.SendStr = mobilesStr; result.ReturnStr = mobilesStr; try { //WX.CRM.Common.LogHelper.Error("url:" + url); var list = new List(); foreach (var item in mobiles) { list.Add(new SmsDto() { mobile = item, message = msg }); } var json = JsonConvert.SerializeObject(list); ISecurityHelper sHelper = new SecurityHelper(); //var para = sHelper.createSignEncodingStr(json); string clientid = "UPWEBSITE"; //string key = "content={0}&clientid=gd_crm&sign={1}"; string jiami = sHelper.encyptData(clientid, json); string jiami1 = HttpUtility.UrlEncode(jiami, Encoding.UTF8); string jiasuo = sHelper.signData(clientid, jiami); string jiasuo1 = HttpUtility.UrlEncode(jiasuo, Encoding.UTF8); var para = new PutSmsDto() { clientid = clientid, content = jiami1, sign = jiasuo1 }; WebClient webClient = new WebClient(); webClient.Encoding = Encoding.UTF8; webClient.Headers.Add("Content-Type", "application/json"); //LogHelper.Info("url:" + url); //LogHelper.Info("para:" + JsonConvert.SerializeObject(para)); var jsonResult = webClient.UploadString(url, "POST", JsonConvert.SerializeObject(para)); //var jsonResult = Utility.GetData(url, para, Encoding.UTF8); var objResult = JsonConvert.DeserializeObject(jsonResult); if (objResult.result) { result.submitStatus = SubmitStatus.success; } else { result.submitStatus = SubmitStatus.fail; } } catch (Exception ex) { result.submitStatus = SubmitStatus.fail; WX.CRM.Common.LogHelper.Error("YiZhengSms2.Send:" + ex.Message + ex.StackTrace); } return result; } private class SmsDto { public string message { get; set; } public string mobile { get; set; } } private class SmsResult { public bool result { get; set; } public int retcode { get; set; } } private class PutSmsDto { public string content { get; set; } public string clientid { get; set; } public string sign { get; set; } } } }