码迷,mamicode.com
首页 > 移动开发 > 详细

发送手机验证码

时间:2020-01-02 22:28:34      阅读:124      评论:0      收藏:0      [点我收藏+]

标签:验证   next   request   情况下   sea   print   pcl   for   获取   

public R getVerifyCode(String phone) {
if (redisTemplate.hasKey(Constant.PREFIX_VER + phone)) {
return R.error("请不要频繁发送短息");
} else {
// 生成6位验证码
String verifyCode = String.valueOf(new Random().nextInt(899999) + 100000);
if (nutsMessageUtil.sendVerifyCode(phone, verifyCode)) {
//未使用验证码情况下,60类不能重复发送
redisTemplate.opsForValue().set(Constant.PREFIX_VER + phone, "SEND", 60, TimeUnit.SECONDS);
//验证码5分钟内有效,使用后失效
redisTemplate.opsForValue().set(phone, verifyCode, 5, TimeUnit.MINUTES);
//return R.ok().setMsg("验证码:"+verifyCode);
return R.ok().setMsg("短信发送成功");
} else {
return R.error("获取验证码失败");
}
}

}
/**
* 发送验证码给收件人
* @param mobile
* @param code
* @return
*/
public boolean sendVerifyCode(String mobile, String code) {
JSONObject map = new JSONObject();
map.put("templateCode",NUSTS_MSG_APP_TEMPLATE_VER);
JSONObject json = new JSONObject();
json.put("No", code);
map.put("templateParam", json);
map.put("userId",mobile);
return sendRequest(map);
}
/**
* @param map 请求参数
* @return
*/
public Boolean sendRequest(JSONObject map) {
map.put("accessId",NUSTS_MSG_APP_ACCESSID);
map.put("accessToken",NUSTS_MSG_APP_ACCESSTOKEN);
String stringJson = JSON.toJSONString(map);
String body = HttpClientUtil.doPostJson(NUSTS_MSG_API, stringJson);
JSONObject jsonObject = JSONObject.parseObject(body);
if (jsonObject.getBooleanValue("success")){
return true;
}else {
log.info("短信发送失败,失败编码:{},描述信息:{}",jsonObject.get("errorCode"),jsonObject.get("errorMessage"));
return false;
}
}


/**
* 发post请求 传入xml/json字符串
* @param url
* @param json
* @return
*/
public static String doPostJson(String url, String json) {
log.info("POST请求地址:{},请求参数内容:{}",url,json);
// 创建Httpclient对象
CloseableHttpClient httpClient = HttpClients.createDefault();
CloseableHttpResponse response = null;
String resultString = "";
try {
// 创建Http Post请求
HttpPost httpPost = new HttpPost(url);
// 创建请求内容
StringEntity entity = new StringEntity(json, ContentType.APPLICATION_JSON);
httpPost.setEntity(entity);
// 执行http请求
response = httpClient.execute(httpPost);
resultString = EntityUtils.toString(response.getEntity(), "utf-8");
} catch (Exception e) {
e.printStackTrace();
} finally {
try {
response.close();
} catch (IOException e) {
e.printStackTrace();
}
}
log.info("POST响应参数:{}",resultString);
return resultString;
}

发送手机验证码

标签:验证   next   request   情况下   sea   print   pcl   for   获取   

原文地址:https://www.cnblogs.com/pxzbky/p/12142079.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!