阿里云短信发送工具类 AliyunSmsUtil.java
依赖<dependency><groupId>com.aliyun</groupId><artifactId>aliyun-java-sdk-core</artifactId><version>4.1.0</version></dependency><dependency>...
·
依赖
<dependency>
<groupId>com.aliyun</groupId>
<artifactId>aliyun-java-sdk-core</artifactId>
<version>4.1.0</version>
</dependency>
<dependency>
<groupId>com.aliyun</groupId>
<artifactId>aliyun-java-sdk-dysmsapi</artifactId>
<version>2.1.0</version>
</dependency>
工具类
import java.util.HashMap;
import java.util.Map;
import com.aliyuncs.DefaultAcsClient;
import com.aliyuncs.IAcsClient;
import com.aliyuncs.dysmsapi.model.v20170525.SendSmsRequest;
import com.aliyuncs.dysmsapi.model.v20170525.SendSmsResponse;
import com.aliyuncs.exceptions.ClientException;
import com.aliyuncs.profile.DefaultProfile;
import com.aliyuncs.profile.IClientProfile;
public class AliyunSmsUtil {
/**
* 产品名称:云通信短信API产品
*/
private static final String PRODUCT = "Dysmsapi";
/**
* 产品域名
*/
private static final String DOMAIN = "dysmsapi.aliyuncs.com";
/**
* todo 开发者自己的AK(在阿里云访问控制台寻找)
*/
private static final String ACCESS_KEY_ID = "XXXX";
/**
* todo accessKeySecret(在阿里云访问控制台寻找)
*/
private static final String ACCESS_KEY_SECRET = "XXXXX";
/**
* todo 必填:短信签名
*/
private static final String SIGN_NAME = "XXXX";
/**
* todo 必填:REGION_ID
*/
private static final String REGION_ID = "cn-hangzhou";
/**
* 发送方法
* @param phone 电话号码
* @param templateCode 模板编号
* @param templateParam 模板中的参数
*
* @return 返回值
* @throws ClientException 异常
*/
public static SendSmsResponse sendSms(String phone,String templateCode, String templateParam) throws ClientException {
//可自助调整超时时间
System.setProperty("sun.net.client.defaultConnectTimeout", "10000");
System.setProperty("sun.net.client.defaultReadTimeout", "10000");
//初始化acsClient,暂不支持region化
IClientProfile profile = DefaultProfile.getProfile(REGION_ID, ACCESS_KEY_ID, ACCESS_KEY_SECRET);
DefaultProfile.addEndpoint(REGION_ID, REGION_ID, PRODUCT, DOMAIN);
IAcsClient acsClient = new DefaultAcsClient(profile);
SendSmsRequest request = new SendSmsRequest();
request.setPhoneNumbers(phone);
request.setSignName(SIGN_NAME); // 短信签名
request.setTemplateCode(templateCode);
request.setTemplateParam(templateParam);
//可选:outId为提供给业务方扩展字段,最终在短信回执消息中将此值带回给调用者
request.setOutId("10000");
//hint 此处可能会抛出异常,注意catch
SendSmsResponse sendSmsResponse = acsClient.getAcsResponse(request);
return sendSmsResponse;
}
public static void main(String[] args) throws ClientException, InterruptedException {
Map<String,String> paramMap = new HashMap<String,String>();
//map.put("name",name);
String code = createRandomVcode();
paramMap.put("code", code);
String templateParam= com.alibaba.fastjson.JSONObject.toJSONString(paramMap);
String phones = "XXXXXXX";
String templateCode = "XXXXXXX"; //模板编号,不同场景,编号不同(如注册,找回密码,密码登录等)
SendSmsResponse response = sendSms(phones,templateCode,templateParam);
System.out.println("短信接口返回的数据----------------");
System.out.println("Code=" + response.getCode());
System.out.println("Message=" + response.getMessage());
System.out.println("RequestId=" + response.getRequestId());
System.out.println("BizId=" + response.getBizId());
}
/**
* 生成六位随机数
* @return
*/
public static String createRandomVcode() {
//验证码
StringBuilder vcode = new StringBuilder();
for (int i = 0; i < 6; i++) {
vcode.append((int) (Math.random() * 9));
}
return vcode.toString();
}
}
更多推荐
所有评论(0)