互联网上有许多公司提供短信接口服务,,诸如网易云信、阿里大于等等。我在自己项目里需要使用到短信服务起到通知作用,实际开发周期三天,完成配置、开发和使用,总的说,阿里大于提供的接口易于开发,非常的方便,短信费用是计数缴纳的,作为个人开发者,我使用的服务产生的费用为0.45¥/条(10万条以下)。
现在要实现一个例会短信群发通知的功能,所有被通知对象信息均存于Mysql中,应用架构采用asp.net MVC 。首先准备好获取的API各项(以下各项服务参数都需要在大于官网上申请),
申请好自己的短信签名与短信模板,根据服务商的要求需要这些参数:
1 ITopClient client = new DefaultTopClient(url, appkey, secret); 2 AlibabaAliqinFcSmsNumSendRequest req = new AlibabaAliqinFcSmsNumSendRequest(); 3 req.Extend = "" ;//可空,返回状态 4 req.SmsType = "normal" ;//不可更改 5 req.SmsFreeSignName = "" ;//申请的短信签名,不可填写与申请的不一 6 req.SmsParam = "" ;//短信模板中的变量如:{name} 7 req.RecNum = "13000000000" ;//手机号码 8 req.SmsTemplateCode = "" ;//短信模板的编号,不可出错 9 AlibabaAliqinFcSmsNumSendResponse rsp = client.Execute(req); 10 Console.WriteLine(rsp.Body);
View Code具体开发中,需要注意到的是这一段代码是官方提供的样品,在写短信发送函方法时,将它粘贴再进行开发即可。其中模板变量的配对尤其关键:
req.SmsParam = "" ;//短信模板中的变量如:{name}
在这种情况下,对字符串拼接要有基本功,由于是类json化的,所以
req.SmsParam ="{number:‘" + Password + "‘}";//去掉双引号则是{number:‘Password’}
说完细节之后,开始在本机上的项目里引用编译好的dll,该dll文件可在阿里大于官网https://www.alidayu.com/center/application/sdk下载zip压缩包,解压即可得到生成好的dll.之后写一个可以发送短信的void方法,
1 public void SmsSendForFindPassword(string phonenum,string Password) 2 { 3 string url = "https://eco.taobao.com/router/rest"; 4 string appkey = "********"; 5 string secret = "**********************"; 6 ITopClient client = new DefaultTopClient(url, appkey, secret); 7 AlibabaAliqinFcSmsNumSendRequest req = new AlibabaAliqinFcSmsNumSendRequest(); 8 req.Extend = ""; 9 req.SmsType = "normal";//默认normal不可改动 10 req.SmsFreeSignName = "院红会网宣";//短信签名必填 11 req.SmsParam = "{number:‘" + Password + "‘}";//模板内参数必填 12 req.RecNum = phonenum;//手机号码必填 13 req.SmsTemplateCode = "SMS_******";//不可改动 14 AlibabaAliqinFcSmsNumSendResponse rsp = client.Execute(req); 15 }
View Code这个方法是我为管理员找回密码开发的,其中需要注意一下,传入参数phonenum,Password,在传入前从数据库中调出,不得为空。