欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页  >  技术分享

Java集成阿里大鱼短信平台_ Maven阿里云新版SDK具体代码编写步骤

程序员文章站 2022-01-10 19:57:11
...

一直使用的阿里云短信作为DD记账的短信验证码发送业务,因为最近阿里短信业务升级了,所以必须要修改一下,在修改的过程中发现了有很多地方坑你会出错的地方,比如Maven加载包的时候还有加载一个阿里云的core包才可以。在这里记录一下,希望有相似需求的哥们少走弯路。话不多少,下面进入正题。


1、jar包导入

下载SDK工具包SDK工具包中一共包含了2个类库,一个aliyun-java-sdk-core包,另外一个是alicom-dysms-api包,将这两个包执行mvn package命令或者mvn deploy命令打包出相应的jar包,添加到工程类库中依赖使用。当然我是没有下载的,自己使用maven依赖的。官方只提供了alicom-dysms-api的依赖代码。下面看看我的完整代码。

<!-- 发短信相关jar -->
<dependency>
    <groupId>com.aliyun</groupId>
    <artifactId>aliyun-java-sdk-core</artifactId>
    <version>3.2.6</version>
</dependency>
<dependency>
    <groupId>com.aliyun</groupId>
    <artifactId>aliyun-java-sdk-dysmsapi</artifactId>
    <version>1.0.0</version>
</dependency>


2、发送短信代码

下面是我封装的方法,根据官方给的Demo修改而来

private void sendSMS(String code, String phone) throws ClientException{
    String paramString = "{"code":""   code   ""}";
    //设置超时时间-可自行调整
    System.setProperty("sun.net.client.defaultConnectTimeout", "10000");
    System.setProperty("sun.net.client.defaultReadTimeout", "10000");
    //初始化ascClient需要的几个参数
    final String product = "Dysmsapi";//短信API产品名称(短信产品名固定,无需修改)
    final String domain = "dysmsapi.aliyuncs.com";//短信API产品域名(接口地址固定,无需修改)
    //替换成你的AK
    final String accessKeyId = "yourAccessKeyId";//你的accessKeyId,参考本文档步骤2
    final String accessKeySecret = "yourAccessKeySecret";//你的accessKeySecret,参考本文档步骤2
    //初始化ascClient,暂时不支持多region(请勿修改)
    IClientProfile profile = DefaultProfile.getProfile("cn-hangzhou", accessKeyId,
    accessKeySecret);
    DefaultProfile.addEndpoint("cn-hangzhou", "cn-hangzhou", product, domain);
    IAcsClient acsClient = new DefaultAcsClient(profile);
    //组装请求对象
    SendSmsRequest request = new SendSmsRequest();
    //使用post提交
    request.setMethod(MethodType.POST);
    //必填:待发送手机号。支持以逗号分隔的形式进行批量调用,批量上限为1000个手机号码,批量调用相对于单条调用及时性稍有延迟,验证码类型的短信推荐使用单条调用的方式
    request.setPhoneNumbers(phone);
    //必填:短信签名-可在短信控制台中找到
    request.setSignName("云通信");
    //必填:短信模板-可在短信控制台中找到
    request.setTemplateCode("SMS_1000000");
    //可选:模板中的变量替换JSON串,如模板内容为"亲爱的${name},您的验证码为${code}"时,此处的值为
    //友情提示:如果JSON中需要带换行符,请参照标准的JSON协议对换行符的要求,比如短信内容中包含
的情况在JSON中需要表示成\r\n,否则会导致JSON在服务端解析失败
    request.setTemplateParam(paramString);
    //可选-上行短信扩展码(扩展码字段控制在7位或以下,无特殊需求用户请忽略此字段)
    //request.setSmsUpExtendCode("90997");
    //可选:outId为提供给业务方扩展字段,最终在短信回执消息中将此值带回给调用者
    //request.setOutId("yourOutId");
    //请求失败这里会抛ClientException异常
    SendSmsResponse sendSmsResponse = acsClient.getAcsResponse(request);
    if(sendSmsResponse.getCode() != null && sendSmsResponse.getCode().equals("OK")) {
    //请求成功

    }
}


以上就是新版阿里云短信的发短信代码,另外一定要到阿里云申请短信签名和短信模板哦!根据用户属性来创建符合自身属性的签名信息。企业用户需要上传相关企业资质证明,个人用户需要上传证明个人身份的证明。注意:短信签名需要审核通过后才可以使用。

短信模板,即具体发送的短信内容。短信模板可以支持验证码、短信通知、推广短信三种模式。验证码和短信通知,通过变量替换实现个性短信定制。推广短信不支持在模板中添加变量。


若资源对你有帮助,浏览后有很大收获,不妨小额打赏我一下、你的鼓励是维持我不断写博客最大动力。

想获取DD博客最新代码,你可以扫描下方的二维码,关注DD博客微信公众号(ddblogs)。

或者你也可以关注我的新浪微博,了解DD博客的最新动态:DD博客官方微博(dwtedx的微博)

如对资源有任何疑问或觉得仍然有很大的改善空间,可以对该博文进行评论,希望不吝赐教。

为保证及时回复,可以使用博客留言板给我留言: DD博客留言板(dwtedx的留言板)

感谢你的访问,祝你生活愉快、工作顺心、欢迎常来逛逛。