SDK下载地址(需要先登录阿里大于):https://www.alidayu.com/center/application/sdk
阿里大于文档中心(接入、返回码等文档):https://doc.alidayu.com/doc2/detail.htm?treeId=135&articleId=104495&docType=1
使用阿里大于发送短信
首先我们的目标是:使用阿里大于的短信平台来帮我们将信息发给用户,那么需要的参数就是手机号。阿里大于的网址是:https://dayu.aliyun.com/,进入阿里大于登录后我们看到的是:
点击右上角的控制台进入,我们将会看到控制台,看到余额,短信平台是收费的(按成功数实时扣费,短信≤4.5分/条,语音≤5.5分/分钟):
然后看左侧,点击应用管理 –> 应用列表 ,如果没有应用,就可以创建一个,创建之后,我们可以看到应用的名字,AppKey,由于发送短信还需要一个appSecret
那么我们可以点击设置,登录对应的淘宝账号,就可以看到AppKey,appSecret,获取这两个东西才能在代码里调用发送短信。
完成了应用的配置,那么我们下面要完成短信的配置,左侧配置管理–>短信通知–>添加签名,配置短信签名,会有一个审核期,一般都比较快。
配置好短信签名之后,需要配置短信的模板,要是有的话,需要知道模板的id。
所有的东西都配置好了,那么我们的项目中需要使用阿里大于的功能必须导入阿里大于的jar包,同样是右侧的菜单
下载好jar包,导入我们的java web项目下的WEB-INF下的lib目录下,右键,build path–>add to build path就可以了。然后就可以开开心心地写代码了,这里只给一个简单的demo函数示范发信息。
现在要实现一个例会短信群发通知的功能,所有被通知对象信息均存于Mysql中,应用架构采用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);

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


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 }

- 这个方法是我为管理员找回密码开发的,其中需要注意一下,传入参数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的实例经验,项目也经历了用户的使用检验,目前未出状况,这也说明了阿里大于在短信接口服务这块,信息传达的效率还是业内良心。
点关注,不迷路
文章每周持续更新,可以微信搜索「 十分钟学编程 」第一时间阅读和催更,如果这个文章写得还不错,觉得有点东西的话 ~求点赞👍 求关注❤️ 求分享❤️
各位的支持和认可,就是我创作的最大动力,我们下篇文章见!