SpringMVC 结合阿里云 发送短信
阿里云短信
-
这里使用阿里云短信服务(可以选择其他)
-
购买了短信服务后,进入控制台:https://dysms.console.aliyun.com/quickstart
-
进入 快速学习和测试
-
选择Java,下方就有代码:
-
引入依赖,点击右侧的 SDK 依赖信息 获取maven。
accessKeyId 以及accessKeySecret查找的方式:
-
点击头像打开accessKey管理
-
进行查看所需要的accessKeyId 以及accessKeySecret
- 注意,accessKeySecret 只会显示一次,想要第二次查看需进行验证;
- 若是使用子用户,则不能再次显示 accessKeySecret 了。
java 编写
- 直接复制阿里云提供的代码
com.aliyun.dysmsapi20170525.models.SendSmsRequest 类:
-
setSignName:代表的签名名称
-
setTemplateCode:代表的模板code
-
setPhoneNumbers:接收短信的 手机号
-
setTemplateParam:模板参数(例如验证码),要求是json字符串
Maven 依赖:
<!-- 阿里云短信 -->
<dependency>
<groupId>com.aliyun</groupId>
<artifactId>dysmsapi20170525</artifactId>
<version>2.0.23</version>
</dependency>
<!-- 如果报错:java.lang.NoClassDefFoundError: org/bouncycastle/jce/provider/BouncyCastleProvider,则添加 -->
<dependency>
<groupId>org.bouncycastle</groupId>
<artifactId>bcprov-jdk15on</artifactId>
<version>1.69</version>
</dependency>
代码:
public class TestSms {
public static com.aliyun.dysmsapi20170525.Client createClient(String accessKeyId, String accessKeySecret) throws Exception {
com.aliyun.teaopenapi.models.Config config = new com.aliyun.teaopenapi.models.Config()
// 必填,您的 AccessKey IDr
.setAccessKeyId(accessKeyId)
// 必填,您的 AccessKey Secret
.setAccessKeySecret(accessKeySecret);
// 访问的域名
config.endpoint = "dysmsapi.aliyuncs.com";
return new com.aliyun.dysmsapi20170525.Client(config);
}
public static void main(String[] args_) throws Exception {
com.aliyun.dysmsapi20170525.Client client = TestSms.createClient("accessKeyId", "accessKeySecret");
com.aliyun.dysmsapi20170525.models.SendSmsRequest sendSmsRequest = new com.aliyun.dysmsapi20170525.models.SendSmsRequest()
.setSignName("阿里云短信测试")
.setTemplateCode("SMS_154950909")
.setPhoneNumbers("手机号码")
.setTemplateParam("{\"code\":\"1234\"}"); // 验证码,json字符串
com.aliyun.teautil.models.RuntimeOptions runtime = new com.aliyun.teautil.models.RuntimeOptions();
try {
// 复制代码运行请自行打印 API 的返回值
com.aliyun.dysmsapi20170525.models.SendSmsResponse resp = client.sendSmsWithOptions(sendSmsRequest, runtime);
System.out.println(resp);
} catch (TeaException error) {
// 如有需要,请打印 error
System.out.println(Common.assertAsString(error.message));
} catch (Exception _error) {
TeaException error = new TeaException(_error.getMessage(), _error);
// 如有需要,请打印 error
System.out.println(Common.assertAsString(error.message));
}
}
}