发送短信
由于项目需要,在与用户对话时若发现突发事件,需要发送短信至特定的手机上,给予及时的处理和反馈
又由于公司没有写服务器和数据库的,所以这些数据都放在了外包上,而他们没有做相关的api,有关用户和特定手机的关联在一开始的表设计也没有规划好,导致这边需要自己先出一个发送短信的demo(真的怀疑后面是不是要自己写服务器和数据库)
话不多说,开整
我用的是
SMS短信通
不用阿里云等大厂的原因很简单,现在对短信服务功能的使用条件太苛刻了,必须要有企业的营业执照和委托授权书才给开发发送模板消息和设定签名的功能,劝退
SMS短信通的话就没这么麻烦,只要和客服说一下,不涉及他们自带的屏蔽词的话,让他们绑定一下模板就可以发送消息了,签名也是,没有太多的条件限制,甚至如果因为项目需要,在短信里需要出现一些敏感词的,只要提供相应的证书和文件,是可以允许以逗号隔开发送的(当然建议个人用来学习使用的话不推荐这么做)
具体实现
sms短信通api
官方提供了demo,照着写就好了,往里面传对应的参数即可
public string SendMessage(string classNum = "",string username = "",string phoneNum = "" )
{
url = url + strUid + strKey + strMob + phoneNum + strContent + string.Format(strContent_demo, classNum, username, DateTime.Now);
string result = GetHtmlFromUrl(url);
return result;
}
/// <summary>
/// 发送消息机制
/// </summary>
/// <param name="url"></param>
/// <returns></returns>
public string GetHtmlFromUrl(string url)
{
string strRet = null;
if (string.IsNullOrEmpty(url))
{
return strRet;
}
string targeturl = url.Trim().ToString();
Debug.Log(targeturl);
try
{
HttpWebRequest hr = (HttpWebRequest)WebRequest.Create(targeturl);
hr.UserAgent = "Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.1)";
hr.Method = "GET";
hr.Timeout = 30 * 60 * 1000;
WebResponse hs = hr.GetResponse();
Stream sr = hs.GetResponseStream();
StreamReader ser = new StreamReader(sr, Encoding.Default);
strRet = ser.ReadToEnd();
}
catch (Exception)
{
strRet = null;
}
return strRet;
}
代码如上