1. 程式人生 > 其它 >redis存簡訊驗證碼,取簡訊驗證碼

redis存簡訊驗證碼,取簡訊驗證碼

技術標籤:redis簡訊驗證碼

傳送簡訊不做過多描述,用的飛鴿國際簡訊

    @RequestMapping("/sssssss")
    public ResponseProtocol<String> testsssss(String tel,String areaCode) {
        ResponseProtocol<String> resp=new ResponseProtocol<String>();
        //先從redis中拿。有,直接返回!
        ValueOperations<String,
Object>
redisString = template.opsForValue(); //生成驗證碼 Integer code = VolidateCodeUtil.getVolidateCode(); //呼叫feige傳送介面 MultiValueMap<String, String> params = new LinkedMultiValueMap<String, String>(); params.add("Account",config.getMsgAccount
()); params.add("Pwd",config.getMsgPwd()); params.add("Content",code.toString()); params.add("Mobile",areaCode+tel); params.add("SignId",config.getMsgSignId()); params.add("TemplateId",config.getMsgTemp()); String res =
HttpUtil.sendPostRequest(config.getFeigeUrl(),params); ResultVO vo = HttpUtil.convert(res); if(!"OK".equals(vo.getMessage())){ log.error("傳送簡訊報錯!"); resp.setMessage("傳送簡訊報錯!"); resp.setResultCode(Constant.RET_CODE_FAILED); return resp; } //獲取驗證碼並將之放入到redis中,5分鐘後失效 redisString.set(tel, code,60*5, TimeUnit.SECONDS); resp.setData(code.toString()); resp.setMessage(Constant.SUCCESS); resp.setResultCode(Constant.RET_CODE_SUCCESS); return resp; }

根據電話號碼去redis獲取的簡訊驗證碼

    /**
     * 根據電話號碼去redis獲取的簡訊驗證碼
     * @param tel
     * @return
     */
    public Integer getCodeByTel(String tel) {

        ValueOperations<String, Object> redisString = template.opsForValue();
        if(redisString.get(tel)!=null){
            Integer code = Integer.valueOf(redisString.get(tel)+"");
            return code;
        }
        return 0;
    }

輸入redis存放的號碼進行測試,檢視redis存放的驗證碼

    @RequestMapping("/test")
    public void sss() {
        Integer codeByTel = getCodeByTel("138********");
        System.out.println(codeByTel);
    }

在這裡插入圖片描述