阿里大于 DEMO(java)

xiaoxiao2021-02-28  41

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);

 

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


点关注,不迷路

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

转载请注明原文地址: https://www.6miu.com/read-2620567.html

最新回复(0)