FE:
使用jQuery ajax 发送request。
//获取手机短信验证码
$(".sendMobileCode").click(function(){
var mobile = $('#regName').val().trim();
var obj = $('.getmobilecode button');
//alert(mobile);
//var jsonData="{ \"mobile\": \"189****1014\" }";//string format
var jsonData= "{ \"mobile\": \"" +mobile +"\" }";
//var jsonData= "{ 'mobile': '"+mobile+"'}";//json format
//var jsonData = {"mobile": mobile};
//alert(jsonData.mobile);
$.ajaxSetup({
contentType: "application/json; charset=UTF-8"
});
$.ajax({
type:"POST",
dataType:"json",
url:"rest/passport/reqval/",//rest api 短信服务接口
data:jsonData,
headers:{"content-type":"application/json"},
success: function(result) {
// alert("success"+result.identity);
$(".sendMobileCode").text("验证码发送成功");
hideInfo();
try {
timeDown.init(60, obj);//倒计时60s
} catch (e) {
};
},
error: function(result){
alert("errot:"+result);
}
});
// return false;
});
BE
public ValidationResultDTO requestValication(ValidationRequestDTO requuestDTO) {
//String validationStub= UUID.randomUUID().toString();
String validationStub="123";
String smsValidationCode = "123456";//change to random
//<stub,code>,stub 发给注册用户,服务器保存stub和code的映射,用户注册时,发回stub和code;服务器拿该stub取出code去做匹配。
validationCodeMap.put(validationStub, smsValidationCode);
ValidationResultDTO result = new ValidationResultDTO();
String phoneNumber=requuestDTO.getMobile();//phoneNumber
System.out.println("smsPhone"+phoneNumber);
result.setValidationStub(validationStub);
//result.setIdentity(smsValidationCode);
String targetID = "SMSVerificationCode";
Map<String, String> keyValues = new HashMap<String, String>();
keyValues.put("mobile_code",smsValidationCode);
keyValues.put("disabled_time", "1");//
keyValues.put("PHONE_NUMBER", phoneNumber);
try {
smsService.sendSMS(null, targetID, keyValues);//发送短信服务
} catch (SMSTemplateMissingException | SMSTemplateValueMissingException e) {
e.printStackTrace();
}
return result;
}