发表于: 2021-03-29 23:30:18
1 1197
今天完成的事情:
短信接口半成品
邮箱选择,纠结
听之前在这里学完的师兄讲解一些做完任务需要做的事
明天计划的事情:
短信接口完成
邮箱demo
遇到的问题:
在阿里云和SendCloud纠结来纠结去,但是我的目的写一个邮箱demo而已,无论用那个都可以。导致晚上没进度
想写一个验证码的方案,发现没有前端知识很难做到
收获:
public static String sendSMS(HttpServletRequest request, String phoneNumber) {
String reStr = ""; //定义返回值
// 短信应用SDK AppID 1400开头
int appid = 1400500060 ;
// 短信应用SDK AppKey
String appkey = "74bf5660ba1a3415cc32a542283a938d";
// 短信模板ID,需要在短信应用中申请
int templateId = 906359 ;
// 签名,使用的是签名内容,而不是签名ID
String smsSign = "思青争";
//随机生成四位验证码的工具类
String code = keyUtil.keyUtils();
try {
//参数,一定要对应短信模板中的参数顺序和个数,
String[] params = {code};
//创建ssender对象
SmsSingleSender ssender = new SmsSingleSender(appid, appkey);
//发送
SmsSingleSenderResult result = ssender.sendWithParam("86", phoneNumber,templateId, params, smsSign, "", "");
if(result.result!=0){
reStr = "error";
}
// 签名参数未提供或者为空时,会使用默认签名发送短信
HttpSession session = request.getSession();
//JSONObject存入数据
JSONObject json = new JSONObject();
json.put("Code", code);//存入验证码
json.put("createTime", System.currentTimeMillis());//存入发送短信验证码的时间
// 将验证码和短信发送时间码存入SESSION
request.getSession().setAttribute("MsCode", json);
reStr = "success";
} catch (HTTPException e) {
// HTTP响应码错误
e.printStackTrace();
} catch (JSONException e) {
// json解析错误
e.printStackTrace();
} catch (IOException e) {
// 网络IO错误
e.printStackTrace();
}catch (Exception e) {
// 网络IO错误
e.printStackTrace();
}
return reStr;
}
//点击注册
@GetMapping("/register")
public Object register(HttpServletRequest request, String Code) {
JSONObject json = (JSONObject)request.getSession().getAttribute("MsCode");
if(!json.getString("Code").equals(Code)){
return "验证码错误";
}
//一分钟
if((System.currentTimeMillis() - json.getLong("createTime")) > 1000 * 60 * 1){
return "验证码过期";
}
//将用户信息存入数据库、这里省略
return "success";
}
==========
==========
之前在这里学完的师兄说,应该先尽快做完任务,了解一个大概的方向。复盘在回过头来看之前不懂的地方,不然现在花在这些细枝末节的地方,很花费时间。确实很对
评论