springboot集成阿里云短信服务,实现发送短信功能
准备工作:
1.登陆阿里云—>进入控制台—>开通短信服务(进入后根据提示开通)
2.充值(借人家平台发短信你以为不要钱的?我充了3元,够用了)
3.获取AccessKey和AccessSercet(想当与你的身份标识,代码中会用到)
新用户一般没有,需要创建,创建方式如下:
推荐使用子用户Accesskey
创建完成后会显示AccessKeyID和AccessKeySecret,一定要保存,一定要保存,一定要保存!
4.申请签名和模板,代码中需要用到 签名 和 模板的code(签名的申请比较难,我搞了差不多三个小时,为此还激活了冻结的微信公众号)
建议大家在申请签名的时候先看看签名的规则。
5.开始编程(实际就是拷贝阿里云提供的示例代码)
查看示例:
填写相关参数:
绿框中的方法需要注意:可能是由于依赖(拷贝到项目前记得先导入依赖,依赖贴在本博客的最后)版本不同,导致方法名有所不同。我项目中就遇到了找不到绿框中4个方法的问题
如果不懂参数什么意思 可以点击 或者 查看apt文档
6.贴一下我项目里的代码(更具个人情况做些许改动)
@Component
public class AliyunSmsUtils {
Logger logger = LoggerFactory.getLogger(AliyunSmsUtils.class);
@Autowired
private AliyunSmsSendProperty aliyunSmsSendProperty;
public String sendMess(String phone,String code){
logger.info(aliyunSmsSendProperty.getAccessKeyId());
logger.info(aliyunSmsSendProperty.getAccessSecret());
logger.info(aliyunSmsSendProperty.getSingleName());
logger.info(aliyunSmsSendProperty.getTemplateCode());
DefaultProfile profile = DefaultProfile.getProfile("cn-hangzhou", aliyunSmsSendProperty.getAccessKeyId(), aliyunSmsSendProperty.getAccessSecret());
IAcsClient client = new DefaultAcsClient(profile);
CommonRequest request = new CommonRequest();
request.setMethod(MethodType.POST);
request.setDomain("dysmsapi.aliyuncs.com");
request.setVersion("2017-05-25");
request.setAction("SendSms");
request.putQueryParameter("RegionId", "cn-hangzhou");
request.putQueryParameter("PhoneNumbers", phone);
request.putQueryParameter("SignName", aliyunSmsSendProperty.getSingleName());
request.putQueryParameter("TemplateCode", aliyunSmsSendProperty.getTemplateCode());
request.putQueryParameter("TemplateParam", "{\"code\":"+code+"}");
try {
CommonResponse response = client.getCommonResponse(request);
System.out.println(response.getData());
return response.getData();
} catch (ServerException e) {
e.printStackTrace();
} catch (ClientException e) {
e.printStackTrace();
}
return null;
}
}
7.依赖
<dependency>
<groupId>com.aliyun</groupId>
<artifactId>aliyun-java-sdk-core</artifactId>
<version>4.0.3</version>
</dependency>
<dependency>
<groupId>com.aliyun</groupId>
<artifactId>aliyun-java-sdk-dysmsapi</artifactId>
<version>2.1.0</version>
</dependency>
参考文档:https://blog.csdn.net/qq_38225558/article/details/84954935