近日在用java写登录的时候,需要用到短信验证码,公司选择了七牛的短信验证码。在网上看了七牛的开发者文档,我们部署了两套,一个套linux,一套内网windows ,linux上线完了,没问题,但是windows就是发送短信失败。原来是遇到了七牛的sdk jar包 依赖了谷歌的gsonjar包。
第一步导入jar包。
<dependency>
<groupId>com.qiniu</groupId>
<artifactId>qiniu-java-sdk</artifactId>
<version>7.2.20</version>
</dependency>
<!--由于七牛依赖了gson一定要添加下面这个包,很坑-->
<dependency>
<groupId>com.google.code.gson</groupId>
<artifactId>gson</artifactId>
<version>2.2.8</version>
</dependency>
第二,负责调用七牛云短信接口的util 。如下:
public boolean sendSmsQNCode(String phone,String code){
//qnAccessKey,qnSecretKey 在七牛后台获取, templetId为短信模板id,在七牛后台定义的
Auth auth = Auth.create(qnAccessKey, qnSecretKey);
SmsManager smsManager = new SmsManager(auth);
Map<String,String> map = new HashMap<String,String>();
map.put("code",code);
try {
Response resp = smsManager.sendMessage(templetId, new String[]{phone} , map);
if(resp.statusCode == 200){
return true;
}else {
return false;
}
} catch (QiniuException e) {
e.printStackTrace();
}
return false;
}
其中accessKey(AK),secretKey(SK),TemplateId(模板id)可以在申请七牛云短信时获取。map的存在是为了给短信模板添加动态内容
比如短信模板为:西南马的博客欢迎你,验证码为${code}。map中的第一个参数的key="code",value="123456"