首先是根据登陆阿里云官网
点击控制台—使用支付宝登录—搜索短信服务—在右上角找到短信操作服务指南—按照里面的步骤进行就可以了
网易云短信验证
语言验证
- 登录网易网址: https://netease.im/sms
- 注册网易云账号(不实名认证)
- 创建一个应用
- 通过应用名称—>短信模板管理—>语音短信模板ID保存起来
- 语音短信—>APP Key管理----> 公钥App Key值 和App Secret值 保存起来
- 接入网易云短信接口 ---->开发手册—>短信接入示例—>Java-发送短信/语音短信验证码 复制代码到本工程中
- 查找CheckSumBuilder类---->导航栏—>产品---->IM即时通讯—>服务端API开发文档->接口概述–>CheckSumBuilder
- 导入依赖
<dependency>
<groupId>org.apache.httpcomponents</groupId>
<artifactId>httpclient</artifactId>
<version>4.5.12</version>
</dependency>
<dependency>
<groupId>org.apache.httpcomponents</groupId>
<artifactId>httpcore</artifactId>
<version>4.4.13</version>
</dependency>
在controller里面写一个utils里面写一个实现类SendCode
public class SendCode {
private static final String
SERVER_URL="https://api.netease.im/sms/sendcode.action";
private static final String
APP_KEY="998a55ec8ef63bc9c45a251bbaf13e09";
private static final String APP_SECRET="cbc4df35c848";
private static final String NONCE="123456";
private static final String TEMPLATEID="19483113";
private static final String CODELEN="6";
public static String sendCode(String phone) throws Exception {
DefaultHttpClient httpClient = new DefaultHttpClient();
HttpPost httpPost = new HttpPost(SERVER_URL);
String curTime = String.valueOf((new Date()).getTime() / 1000L);
String checkSum = CheckSumBuilder.getCheckSum(APP_SECRET, NONCE, curTime);
httpPost.addHeader("AppKey", APP_KEY);
httpPost.addHeader("Nonce", NONCE);
httpPost.addHeader("CurTime", curTime);
httpPost.addHeader("CheckSum", checkSum);
httpPost.addHeader("Content-Type", "application/x-www-form-urlencoded;charset=utf-8");
List<NameValuePair> nvps = new ArrayList<NameValuePair>();
nvps.add(new BasicNameValuePair("templateid", TEMPLATEID));
nvps.add(new BasicNameValuePair("mobile", phone));
nvps.add(new BasicNameValuePair("codeLen", CODELEN));
httpPost.setEntity(new UrlEncodedFormEntity(nvps, "utf-8"));
HttpResponse response = httpClient.execute(httpPost);
String jsonCode = EntityUtils.toString(response.getEntity(), "utf-8");
ObjectMapper parse = new ObjectMapper();
Map map = parse.readValue(jsonCode, Map.class);
String code = (String) map.get("obj");
return code;
}
}
写一个register,html里面写获取验证码页面
<head>
<meta charset="UTF-8">
<title>Title</title>
<script src="./static/js/jquery-1.12.4.min.js"></script>
</head>
<body>
<form action="/user/reg.do" method="post" onsubmit="return checkForm();"/>
用户名:<input type="text" placeholder="用户名" id="username"/><br>
手机号:<input type="text" placeholder="手机号" id="phone"/><br>
<input type="button" value="发送验证码" onclick = "getCode();"/><br>
验证码:<input type="text" placeholder="输入验证码" onblur = "checkCode();" id="code"><span id="message"></span>
<input type="submit" value="提交" disabled id="sub"><br>
</form>
<script>
var code = "";
function getCode() {
var phone = $("#phone").val();
$.post("front/user/getCode.do", {"phone":phone},function (data) {
code = data.data;
});
}
function checkCode() {
var inputCode = $("#code").val();
if (code == inputCode) {
$("#message").html("<font color='green'>验证码正确</font>");
$("#sub").attr("disabled",false);
}else {
$("#message").html("<font color='red'>验证码错误</font>");
$("#sub").attr("disabled",true);
}
}
</script>