一、开通阿里云短信服务,申请签名和模板,记住accessKeyId和accessKeySecret,具体操作可搜到
二、点击短信服务的帮助文档,点击旧版的开发指南,(新版未试用),下载java版本,访问dysms_javajavaapi_demoalicom-dysms-apisrcmainjavacomalicomdysmsapi
中的smsdemo文件,导入dysms_javajavaapi_demoalicom-dysms-apilibs的两个包,然后就可以按照demo中的注释修改access、签名、模板,
在sendSms方法中传入两个参,分别是手机号和验证码(取随机数)
三、创建一个msgutil工具类,可直接将sendSms方法和自己创建的随机数方法放在该类中。使用验证码服务一般使用ajax,在controller层
@RequestMapping("sendCode") @ResponseBody public Map<String, Object> sendCode(String phone, HttpSession session) { String code = MsgUtil.randCode(); Map<String, Object> result = new HashMap<>(); try { MsgUtil.sendSms(phone, code); session.setAttribute("code", code); result.put("statu", 200); result.put("msg", "短信发送成功"); } catch (ClientException e) { result.put("statu", 500); result.put("msg", "短信发送失败"); } return result; }
调用sendsms方法,同时将code存到session中,可以用map方式返回
登录或注册时,将输入的验证码与session中验证码比较即可。(这里验证码没有设置过期时间)