亚洲国产精品乱码一区二区,美景房屋2免费观看,哎呀哎呀在线观看视频高清国语,从镜子里看我是怎么C哭你

Solution/ 解決方案

解決方案分類

【短信防火墻】后端接入---JAVA接入指引

發(fā)布時間:2021-01-27 點擊數(shù):19455

后端接入---JAVA接入指引

 

 

本篇教程介紹如何在Java后端接入防火墻

 

下載鏈接

 

快速接入步驟

 

1、 配置必要依賴包

 

nxt-sms-client-1.2.jar
commons-codec-1.4.jar
commons-lang3-3.6.jar
commons-logging.jar
fastjson-1.2.31.jar
logback-core-1.0.13.jar
slf4j-api-1.6.6.jar
logback-classic-1.0.13.jar

2、 配置相關(guān)配置文件

newxt.ini
修改參數(shù)(fireWareUrl-->http://localhost:7502 (本地服務(wù)路徑或云端服務(wù)地址:http://fw.newxtc.com)
isNginx)-->true (有無反向代理)

3、 各場景示例代碼(注:短信下發(fā)短信驗證須成對出現(xiàn))

 

1. 短信下發(fā)

 

public RetMsg smsSend(HttpServletRequest request, HttpServletResponse response, String clientMobile) {
    RetMsg retMsg = new RetMsg(-1, "系統(tǒng)異常");
    FwClient fwClient = new FwClientImpl();
    try {
        // 1 調(diào)用【短信防火墻】短信發(fā)送請求
        HashMap < String, Object > paramMap = fwClient.getSendReq(request, clientMobile);
        String jsonReq = fwClient.execReq(paramMap);
        String smsSendRet = fwClient.getRetVaule(jsonReq, "riskResult");
        if("REJECT".equals(smsSendRet)) {
            retMsg.setRet(3);
            retMsg.setMsg("請求過于頻繁");
        }
        else {
            // 業(yè)務(wù) TODO
            // 業(yè)務(wù)調(diào)用短信接口 TODO
            // 調(diào)用短信接口 結(jié)束
            if(smsRetMsg != null && smsRetMsg.getRet() == 0) {
                // 2 調(diào)用【短信防火墻】成功結(jié)果
                fwClient.execSucc(paramMap);
                logger.debug("send succ");
                retMsg.setRet(0);
                retMsg.setMsg("發(fā)送驗證碼成功");
            }
            else {
                // 2 調(diào)用【短信防火墻】失敗結(jié)果
                SmsVerifyCache.getInstance().remove(clientMobile);
                fwClient.execFail(paramMap);
                retMsg.setRet(-1);
                retMsg.setMsg("發(fā)送驗證碼失敗");
            }
        }
    }
    catch(Exception e) {
        for(StackTraceElement elment: e.getStackTrace()) {
            logger.error(elment.toString());
        }
    }
    return retMsg;
}

 

2. 短信驗證

public RetMsg smsVerify(HttpServletRequest request, HttpServletResponse response, String clientMobile, String smsVerifyCode) {
    FwClient fwClient = new FwClientImpl();
    RetMsg retMsg = new RetMsg(-1, "系統(tǒng)異常");
    if(smsVerifyCode == null || smsVerifyCode.isEmpty()) {
        retMsg.setRet(1);
        retMsg.setMsg("輸入驗證碼為空");
    }
    else {
        // 1 調(diào)用【短信防火墻】驗證請求
        HashMap < String, Object > paramMap = fwClient.getVerifyReq(request, clientMobile); // 請求防火墻
        String jsonReq = fwClient.execReq(paramMap);
        // 報文處理
        String smsSendRet = fwClient.getRetVaule(jsonReq, "riskResult");
        if("REJECT".equals(smsSendRet)) {
            retMsg.setRet(3);
            retMsg.setMsg("請求過于頻繁");
        }
        // 業(yè)務(wù) TODO
        if(cacheSmsVerify != null && cacheSmsVerify.getVerifyCode() != null && !cacheSmsVerify.getVerifyCode().isEmpty()) {
            if(cacheSmsVerify.getVerifyCode().equals(smsVerifyCode)) {
                retMsg.setRet(0);
                retMsg.setMsg("驗證成功");
            }
            else {
                retMsg.setRet(1);
                retMsg.setMsg("驗證碼錯誤");
            }
        }
        else {
            retMsg.setRet(-9);
            retMsg.setMsg("驗證碼超時");
        }
        if(retMsg.getRet() == 0) {
            // 2 調(diào)用【短信防火墻】成功結(jié)果
            fwClient.execSucc(paramMap);
        }
        else {
            // 2 調(diào)用【短信防火墻】失敗結(jié)果
            fwClient.execFail(paramMap);
        }
    }
    return retMsg;
}

 

3. 用戶登錄

 

public RetMsg loginByPwd(HttpServletRequest request, HttpServletResponse response, String userId, String password) {
    FwClient fwClient = new FwClientImpl();
    RetMsg retMsg = new RetMsg(-1, "登錄失敗");
    if(userId == null || userId.isEmpty()) {
        retMsg.setRet(1);
        retMsg.setMsg("請輸入手機號碼");
    }
    else if(password == null || password.isEmpty()) {
        retMsg.setRet(1);
        retMsg.setMsg("請輸入密碼");
    }
    else {
        // 1 調(diào)用【短信防火墻】驗證請求
        HashMap < String, Object > paramMap = fwClient.getLoginByMobile(request, userId);
        String jsonReq = fwClient.execReq(paramMap);
        // 報文處理
        String smsSendRet = fwClient.getRetVaule(jsonReq, "riskResult");
        if("REJECT".equals(smsSendRet)) {
            retMsg.setRet(3);
            retMsg.setMsg("請求過于頻繁");
        }
        else {
            // 2 調(diào)用【短信防火墻】成功結(jié)果
            fwClient.execSucc(paramMap);
            // 業(yè)務(wù) TODO
            if(userInfo == null) {
                retMsg.setRet(1);
                retMsg.setMsg("用戶名或密碼錯誤");
                // 2 調(diào)用【短信防火墻】失敗結(jié)果
                fwClient.loginFail(paramMap);
            }
            else {
                retMsg.setRet(0);
                retMsg.setMsg("登錄成功");
                // 2 調(diào)用【短信防火墻】成功結(jié)果
                fwClient.loginSucc(paramMap);
            }
        }
    }
    return retMsg;
}