ASP.NET MVC阿里大于短信接口开发短信群发能

所属分类: 网络编程 / ASP.NET 阅读数: 970
收藏 0 赞 0 分享

        互联网上有许多公司提供短信接口服务,诸如网易云信、阿里大于等等。我在自己项目里需要使用到短信服务起到通知作用,实际开发周期三天,完成配置、开发和使用,总的说,阿里大于提供的接口易于开发,非常的方便,短信费用是计数缴纳的,作为个人开发者,我使用的服务业务产生的费用为0.045¥/条(10万条以下)。

  现在要实现一个例会短信群发通知的功能,所有被通知对象信息均存于Mysql中,应用架构采用asp.net MVC 。首先准备好获取的API各项(以下各项服务参数都需要在大于官网上申请),

申请好自己的短信签名与短信模板,根据服务商的要求需要这些参数:

ITopClient client = new DefaultTopClient(url, appkey, secret);
AlibabaAliqinFcSmsNumSendRequest req = new AlibabaAliqinFcSmsNumSendRequest();
req.Extend = "" ;//可空,返回状态
req.SmsType = "normal" ;//不可更改
req.SmsFreeSignName = "" ;//申请的短信签名,不可填写与申请的不一
req.SmsParam = "" ;//短信模板中的变量如:{name}
req.RecNum = "13000000000" ;//手机号码
req.SmsTemplateCode = "" ;//短信模板的编号,不可出错
AlibabaAliqinFcSmsNumSendResponse rsp = client.Execute(req);
Console.WriteLine(rsp.Body); 

具体开发中,需要注意到的是这一段代码是官方提供的样品,在写短信发送函方法时,将它粘贴再进行开发即可。其中模板变量的配对尤其关键:

req.SmsParam = "" ;//短信模板中的变量如:{name}

在这种情况下,对字符串拼接要有基本功,由于是类json化的,所以

req.SmsParam ="{number:'" + Password + "'}";//去掉双引号则是{number:‘Password'} 

说完细节之后,开始在本机上的项目里引用编译好的dll,该dll文件可在阿里大于官网https://www.alidayu.com/center/application/sdk下载zip压缩包,解压即可得到生成好的dll.之后写一个可以发送短信的void方法, 

public void SmsSendForFindPassword(string phonenum,string Password)
 {
 string url = "https://eco.taobao.com/router/rest";
 string appkey = "********";
 string secret = "**********************"; 
 ITopClient client = new DefaultTopClient(url, appkey, secret);
 AlibabaAliqinFcSmsNumSendRequest req = new AlibabaAliqinFcSmsNumSendRequest();
 req.Extend = "";
 req.SmsType = "normal";//默认normal不可改动
 req.SmsFreeSignName = "院红会网宣";//短信签名必填
 req.SmsParam = "{number:'" + Password + "'}";//模板内参数必填
 req.RecNum = phonenum;//手机号码必填
 req.SmsTemplateCode = "SMS_******";//不可改动
 AlibabaAliqinFcSmsNumSendResponse rsp = client.Execute(req);
 }

这个方法是我为管理员找回密码开发的,其中需要注意一下,传入参数phonenum,Password,在传入前从数据库中调出,不得为空。

ITopClient client = new DefaultTopClient(url, appkey, secret);

这其中的url在官方中给出了两个,我倾向于https,这样数据传输更安全。具体选择请参考阿里大于官网文档。

AlibabaAliqinFcSmsNumSendResponse rsp = client.Execute(req);

//这个对象实例化后,才是api发送方法调用的最后一步,在这之前,每一项都要正确,出错可以使用Console.WriteLine(rsp.Body);

//显示出错误信息

  对于如何实现的群发功能,写一个SendSmsForMeetingTime(string name, string time, string phonenum, string department, string minister)方法函数,我使用了List<Model>,将数据库中的多条数据读入List中,使用foreach(var item in list),在每一次遍历中调用一次SendSmsForMeetingTime;当遍历完成之时,每一个通知对象的信息传入方法参数中,方法执行完后之后,便实现了调用。

  在这里说明一下接口调用,短信经过的流程。用户客户端/用户服务器——>阿里大于服务器——>移动/电信/联通运营商服务器——>对象可接受短信服务终端。实际上,阿里大于也是调用的运营商的接口,只是阿里大于将接口封装到便宜开发,而我们开发者在这基础上能完成第三方接口开发,这些开发也仅限制于服务商封装了哪些接口,开发者无法调用服务商未封装的接口。

  以上便是我在实际项目中调用API的实例经验,项目也经历了用户的使用检验,目前未出状况,这也说明了阿里大于在短信接口服务这块,信息传达的效率还是业内良心。

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持脚本之家。

更多精彩内容其他人还在看

asp.net 页面间传值与跳转的区别

通过Server.Transfer("b.aspx") 与Response.Redirect("b.aspx")的区别
收藏 0 赞 0 分享

ASP.NET Gridview与checkbox全选、全不选实现代码

ASP.NET Gridview checkbox全选与全不选实现代码,其实原理就是利用js来实现的,但需要简单的设置下回传。
收藏 0 赞 0 分享

ASP.NET DropDownList控件的使用方法

ASP.NET DropDownList控件的使用方法,学习asp.net的朋友没用过这个控件的朋友可以参考下。
收藏 0 赞 0 分享

一些.NET对多线程异常处理技巧分享

多线程应用,在实际的项目或产品开发中,原则上来说,应该尽量避免,但是在强调用户体验的要求下或开发平台的限制下(如 Silverlight Socket 通讯),我们不得不用多线程。
收藏 0 赞 0 分享

ASP.NET MVC运行出现Uncaught TypeError: Cannot set property __MVC_FormValidation of null的解决方法

同一相站点,有些页面的客户端验证能工作,而有些死活不行。打开页面就出现Uncaught TypeError: Cannot set property __MVC_FormValidation of null错误
收藏 0 赞 0 分享

asp.net 通用分页显示辅助类(改进版)

在使用ASP.NET编程时,如果不用控件的默认分页功能,想自己搞一个,可以看看本文的asp.net通用分页显示辅助类哦。
收藏 0 赞 0 分享

微软 Visual Studio 2010官方下载地址给大家

昨天VS2010在网上报道都已经发布了,现在今天在网上找到Visual Studio 2010官方下载地址,提供给大家下载。
收藏 0 赞 0 分享

Javascript 直接调用服务器C#代码 ASP.NET Ajax实例

近来总有一些朋友会问到一些入门的问题,把这些问题整理一下,写出来。在以前的文章里,曾经利用纯JS编写过Ajax引擎,在真正开发的时候,大家都不喜欢以这种低效率的方式开发,利用MS Ajax的集成的引擎,可以简单不少工作。
收藏 0 赞 0 分享

ASP.NET 页面刷新的实现方法(包括html,js)

ASP.NET 页面刷新的实现方法,比较全了, 包括html与js下的实现方法。
收藏 0 赞 0 分享

asp.net 无刷新翻页就是这么简单

前两天看了一个自定义分页控件,和AspNetPager一样是实现IPostBackEventHandler接口,不过简洁许多,就想能不能实现ICallbackEventHandler接口做到无刷新分页呢?想到了就马上去做,终于,设想变成了现实!!
收藏 0 赞 0 分享
查看更多