using System; using System.Collections.Generic; using System.IO; using System.Net; using System.Text; using System.Web; using WX.CRM.CRMServices.SMS; using WX.CRM.CRMServices.SMS.InterfaceModel; namespace WX.CRM.CRMServices.PkgSms.InterfaceExec { /// /// 企业信使 /// internal class QYXS : IMsgSend { string userid = ""; string account = ""; string pwd = ""; string url = ""; public QYXS(string _userid = "", string _account = "", string _password = "") { WX.CRM.CRMServices.PkgSms.InterfaceModel.QYXSConfig config = new InterfaceModel.QYXSConfig(); userid = config.userid; account = config.account; pwd = config.pwd; url = config.url; if (!string.IsNullOrEmpty(_userid) && !string.IsNullOrEmpty(_account) && !string.IsNullOrEmpty(_password)) { userid = _userid; pwd = _password; account = _account; } } public SMS.InterfaceModel.ReturnResult Execute(string[] mobiles, string msg) { return Send(mobiles, msg); } public decimal queryAmt() { throw new NotImplementedException(); } #region WX.CRM.CRMServices.SMS.InterfaceModel.ReturnResult Send(string[] mobiles, string msg) { string mobilesStr = string.Join(",", mobiles); WX.CRM.CRMServices.SMS.InterfaceModel.ReturnResult result = new WX.CRM.CRMServices.SMS.InterfaceModel.ReturnResult(); result.SendStr = ""; try { Encoding myEncoding = Encoding.GetEncoding("UTF-8"); String sResult = ""; //string param = string.Format("userid={0}&password=123456&account=优智能&mobile=13397149125,15902700620,18627671006,13212305006,15815865975&content=感谢您成为优智能的注册用户,您的手机号将绑定我们高端信息服务,稍后我们客服人员将以0731-88736777对您进行回访,祝您投资顺利!&action=send" // , account // ); //string param = string.Format("username={0}&pass={1}&mobile={2}&content={3}" // , HttpUtility.UrlEncode(account) // , Common.Utility.EncryptMD5(pwd) // , mobilesStr // , HttpUtility.UrlEncode(msg) // ); string param = string.Format("userid={0}&account={1}&password={2}&mobile={3}&content={4}&action=send" , userid , account , pwd , mobilesStr , msg ); result.SendStr = param; //byte[] postBytes = Encoding.ASCII.GetBytes(param); byte[] postBytes = Encoding.GetEncoding("UTF-8").GetBytes(param); //http://116.255.238.170:8768/sms.aspx HttpWebRequest req = (HttpWebRequest)HttpWebRequest.Create(url); req.Method = "POST"; req.ContentType = "application/x-www-form-urlencoded;"; req.ContentLength = postBytes.Length; Stream webStream = req.GetRequestStream(); webStream.Write(postBytes, 0, postBytes.Length); webStream.Close(); HttpWebResponse webResponse = (HttpWebResponse)req.GetResponse(); StreamReader reader = new StreamReader(webResponse.GetResponseStream(), myEncoding); sResult = reader.ReadToEnd(); reader.Close(); sResult.Trim(); sResult = HttpUtility.UrlDecode(sResult); result.ReturnStr = sResult; if (!string.IsNullOrEmpty(sResult)) { System.Xml.XmlDocument doc = new System.Xml.XmlDocument(); doc.LoadXml(sResult); //得到XML文档根节点 System.Xml.XmlElement root = doc.DocumentElement; System.Xml.XmlNodeList nodeList = root.ChildNodes; Dictionary dic = new Dictionary(); foreach (System.Xml.XmlNode node in nodeList) { dic.Add(node.Name, node.InnerText); } if (dic["returnstatus"].ToLower() == SubmitStatus.success.ToString()) { result.submitStatus = SubmitStatus.success; } else { result.submitStatus = SubmitStatus.fail; Common.LogHelper.Error(string.Format("QYXS.Send: sendStr:{0}; returnStr:{1}", result.SendStr, result.ReturnStr)); } } } catch (Exception ex) { result.submitStatus = WX.CRM.CRMServices.SMS.InterfaceModel.SubmitStatus.fail; Common.LogHelper.Error("QYXS.Send:" + ex.Message + ex.StackTrace); } return result; } public class res { public bool result { get; set; } public string retcode { get; set; } } #endregion } }