1.标签和模板申请
先登录阿里云官网: https://www.aliyun.com/ 然后搜索短信服务,进去。
左侧导航栏选择国内或者国际消息
然后签名和模板各申请一个。
申请后耐心等待通过即可使用,通过后签名名称和模板CODE都是下面需要用到的。
在这之前还有一件事,就是先给账户充钱(测试的话冲个1块钱就够了)。
2.发送短信工具类
首先,先引入jar包,maven坐标如下:
<dependency>
<groupId>com.aliyun</groupId>
<artifactId>aliyun-java-sdk-core</artifactId>
<version>4.4.4</version>
</dependency>
<dependency>
<groupId>com.aliyun</groupId>
<artifactId>aliyun-java-sdk-dysmsapi</artifactId>
<version>1.1.0</version>
</dependency>
注意:版本要一致,或者2个jar包都选择最新的,否则会版本冲突。
工具类:
import com.aliyuncs.CommonRequest;
import com.aliyuncs.CommonResponse;
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.exceptions.ServerException;
import com.aliyuncs.http.MethodType;
import com.aliyuncs.profile.DefaultProfile;
import com.aliyuncs.profile.IClientProfile;
public class SmsUtils {
//开发者的ID
private static final String ACCESS_KEY_ID = "xxxxxxxxxxxxxxxxxxx";
//开发者的秘钥
private static final String ACCESS_SECRET = "xxxxxxxxxxxxxxxxxxx";
//申请的短信模板代码
private static final String TEMPLATE_CODE = "SMS_173474008";
//申请的标签名称
private static final String SIGN_NAME = "xuye";
//产品名称:云通信短信API产品,开发者无需替换
private static final String PRODUCT = "Dysmsapi";
//产品域名,开发者无需替换
private static final String DOMAIN = "dysmsapi.aliyuncs.com";
/**
*
* @param phoneNumbers 接收短信的手机号 国内11位
* @param param 模板中的变量替换JSON字符串,如模板内容为"您的验证码为${code}",则此字符串中的code值便是替换该内容
* @throws ClientException
*/
public static void sendShortMessage(String phoneNumbers,String param) throws ClientException {
DefaultProfile profile = DefaultProfile.getProfile("default", ACCESS_KEY_ID, ACCESS_SECRET);
IAcsClient client = new DefaultAcsClient(profile);
CommonRequest request = new CommonRequest();
request.setMethod(MethodType.POST);
request.setDomain(DOMAIN);
request.setVersion("2017-05-25");
request.setAction("SendSms");
request.putQueryParameter("RegionId", "default");
request.putQueryParameter("PhoneNumbers", phoneNumbers);
request.putQueryParameter("TemplateCode",TEMPLATE_CODE);
request.putQueryParameter("TemplateParam", param);
request.putQueryParameter("SignName",SIGN_NAME);
try {
CommonResponse response = client.getCommonResponse(request);
} catch (ServerException e) {
e.printStackTrace();
} catch (ClientException e) {
e.printStackTrace();
}
}
}
代码已经经过测试,工具类复制粘贴即可。
开发者秘钥移动到头像,选择accesskeys点进去即可。