使用阿里云短信服务发送短信验证码
阿里云短发服务使用流程:
1.在阿里云上完成短信服务的购买。
2.导入相关的jar包。
<!-- 阿里云短信服务 --> <dependency> <groupId>com.aliyun</groupId> <artifactId>aliyun-java-sdk-core</artifactId> <version>4.1.0</version> </dependency> <!-- 阿里云短信服务 -->
3.复制以下模板代码(完成3.1和3.2的参数获取即可使用)。
3.1从购买的短信服务获取参数:signName(签名名称)、templateCode(模版CODE)、<accessKeyId>、<accessSecret>;
注意:前两个参数申请位置(请按需要选择国内或国际):
最后两个参数获取位置(<accessKeyId>、<accessSecret>):
3.2传入参数:phone(电话号码)、code(要发送给用户的验证码)。
import com.aliyuncs.CommonRequest; import com.aliyuncs.CommonResponse; import com.aliyuncs.DefaultAcsClient; import com.aliyuncs.IAcsClient; import com.aliyuncs.exceptions.ClientException; import com.aliyuncs.exceptions.ServerException; import com.aliyuncs.http.MethodType; import com.aliyuncs.profile.DefaultProfile; /** * 使用阿里云短信服务发送短信验证码 */ public class SendSms { /** * @Title: sendSMS * @Description: 阿里云发送短信 * @param phone 电话号码 * @param code 自定义的验证码 * @param signName 阿里云短信服务上创建的签名名称 * @param templateCode 阿里云短信服务上创建的模板的模版CODE * @return void */ public static void sendSMS(String phone,String code,String signName,String templateCode){ DefaultProfile profile = DefaultProfile.getProfile("cn-hangzhou", "<accessKeyId>", "<accessSecret>"); IAcsClient client = new DefaultAcsClient(profile); //拼接模板参数(验证码)value String codeSMS="{\"code\":\""+code+"\"}"; 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("SignName", signName);//签名必须使用阿里云短信服务上创建的签名名称 request.putQueryParameter("TemplateCode", templateCode);//模板必须使用阿里云短信服务上创建的模板的模版CODE request.putQueryParameter("PhoneNumbers", phone);//电话号码 request.putQueryParameter("TemplateParam", codeSMS); try { CommonResponse response = client.getCommonResponse(request); System.out.println(response.getData()); } catch (ServerException e) { e.printStackTrace(); } catch (ClientException e) { e.printStackTrace(); } } }