1.百度搜索阿里云,支付宝登录阿里云。
2.点击右下角控制台,进入阿里云控制台页面。
3点击右上角头像,然后点击AccessKey管理,弹出页面点击开始使用子用户AccessKey,进入RAM访问控制
4.创建用户组、用户、添加权限
注意:添加用户的时候一点要点击编程访问,这样我们编程的时候才能用API进行调用发短信验证码。
特别注意:添加完用户之后一定要点击下载CSV文件将AccessKey ID 和AccessKey Secret 保存好,千万不能让别人获取到,否则只能删除用户重新创建。
添加权限搜索SMS将对应的权限添加进去。
5.搜索短信服务进入短信管理控制台,点击国内消息
4.添加签名
签名:为短信【】里面的内容,如【某某某技术公司】您的验证码为:123456,该验证码 5 分钟内有效,请勿泄漏于他人。
5.添加模版
模板内容:您的验证码为:${code},该验证码 5 分钟内有效,请勿泄漏于他人。code为你生产的二维码。
注意:所有的申请说明不能乱写,否则审核不通过。
可以写“因公司需要发送短信验证码”等其他正规理由。
6.点击帮助文档,找到demo事例
PhoneNumbers:要发送的电话号码。
SignName:签名管理里面的签名名称。
TemplateCode:模板管理里的模板CODE。
TemplateParam:短信验证码格式为JSON字符串 {"code",''123456"}。
填写完成可以发起调用查看是否发送成功。
7 导入maven 依赖jar包
<dependency>
<groupId>com.aliyun</groupId>
<artifactId>aliyun-java-sdk-core</artifactId>
<version>4.1.0</version>
</dependency>
<dependency>
<groupId>com.alibaba</groupId>
<artifactId>fastjson</artifactId>
<version>1.2.28</version>
</dependency>
8.编写后台程序
这里可以将第6步中图二右侧代码粘贴到项目中进行修改,这里是我自己写的一个工具类
import com.alibaba.fastjson.JSONObject;
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;
import lombok.extern.slf4j.Slf4j;
import java.util.HashMap;
import java.util.Map;
@Slf4j
public class SendSmsUtils {
private static final String ALI_ACCESS_KEY_ID= "你的AccessKey ID";//AccessKey ID
private static final String ALI_ACCESS_KEY_SECRET= "你的AccessKeySecret";//AccessKeySecret
private static final String ALI_SIGN_NAME= "签名名称";//签名名称
private static final String ALI_TEMPLATE_CODE= "模版CODE";//模版CODE
/**
* 阿里云发送短信验证码
* @param phoneNumbers 手机号
* @param code 短信验证码
* @return
*/
public static boolean SendAliSms(String phoneNumbers,int code){
Map<String,Object> map = new HashMap();
map.put("code",code);
DefaultProfile profile = DefaultProfile.getProfile("cn-hangzhou", ALI_ACCESS_KEY_ID, ALI_ACCESS_KEY_SECRET);
IAcsClient client = new DefaultAcsClient(profile);
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("PhoneNumbers", phoneNumbers);
request.putQueryParameter("SignName", ALI_SIGN_NAME);
request.putQueryParameter("TemplateCode", ALI_TEMPLATE_CODE);
request.putQueryParameter("TemplateParam", JSONObject.toJSONString(map));
try {
CommonResponse response = client.getCommonResponse(request);
log.info("阿里云短信发送成功返回结果:"+response.getData());
return response.getHttpResponse().isSuccess();
} catch (ServerException e) {
log.error("阿里云短信发送失败返回结果: "+ e.getMessage());
e.printStackTrace();
} catch (ClientException e) {
log.error("阿里云短信发送失败返回结果: "+ e.getMessage());
e.printStackTrace();
}
return false;
}
}