阿里大于 DEMO(java)

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

这里写图片描述

那么我们可以点击设置,登录对应的淘宝账号,就可以看到AppKeyappSecret,获取这两个东西才能在代码里调用发送短信。

这里写图片描述

完成了应用的配置,那么我们下面要完成短信的配置,左侧配置管理–>短信通知–>添加签名,配置短信签名,会有一个审核期,一般都比较快。

这里写图片描述

配置好短信签名之后,需要配置短信的模板,要是有的话,需要知道模板的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);
复制代码

具体开发中,需要注意到的是这一段代码是官方提供的样品,在写短信发送函方法时,将它粘贴再进行开发即可。其中模板变量的配对尤其关键:
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         }
复制代码
  • 这个方法是我为管理员找回密码开发的,其中需要注意一下,传入参数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的实例经验,项目也经历了用户的使用检验,目前未出状况,这也说明了阿里大于在短信接口服务这块,信息传达的效率还是业内良心。


点关注,不迷路

文章每周持续更新,可以微信搜索「 十分钟学编程 」第一时间阅读和催更,如果这个文章写得还不错,觉得有点东西的话 ~求点赞👍 求关注❤️ 求分享❤️ 
各位的支持和认可,就是我创作的最大动力,我们下篇文章见!

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

蒋老湿

你的鼓励是我创作最大的动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值