接入騰訊 驗證碼


文檔地址:https://cloud.tencent.com/document/product/1110/36839

首先需要在控制台建立appid什么的:

 

 注冊完成后,您可以在控制台的 基礎配置 中查看 AppID 以及 AppSecret。

快速接入

在 Head 標簽的最后加入以下代碼,引入驗證 JS 文件(建議直接在 HTML 中引入)。

<script src="https://ssl.captcha.qq.com/TCaptcha.js"></script>

2.在您需要激活驗證碼的 DOM 元素(button、div、span)內加入以下 ID 及屬性。

<!--點擊此元素會自動激活驗證碼-->
<!--id : 元素的 ID (必須)-->
<!--data-appid : AppID(必須)-->
<!--data-cbfn : 回調函數名(必須)-->
<!--data-biz-state : 業務自定義透傳參數(可選)-->
<button id="TencentCaptcha"
     data-appid="appId"
     data-cbfn="callback"
     type="button"
>驗證</button>

3.為驗證碼創建回調函數。

注意:

函數名要與 data-cbfn 相同。

window.callback = function(res){
 console.log(res)
 // res(用戶主動關閉驗證碼)= {ret: 2, ticket: null}
 // res(驗證成功) = {ret: 0, ticket: "String", randstr: "String"}
 if(res.ret === 0){
     alert(res.ticket)   // 票據
 }
}

 下面是實際應用:

我是將這個滑塊驗證的代碼封裝到工具js中了,方便統一調用:

/**
 * 
 * @param {*} captchaId //appId
 * @param {*} callback //驗證成功回調
 */
function tencentCaptchaVerify(captchaId,callback){
    let langtion = 'zh-hk';
    let appId = captchaId?captchaId:'2069772036'; //騰訊滑塊驗證碼appid 默認為登錄驗證
    //生成一個滑塊驗證碼對象
    var captcha = new TencentCaptcha(appId, function(res) {
        callback(res);
        captcha.destroy();//隱藏驗證碼 沒有這一句好像也會自動消失
        captcha=null;
    });
    //  滑塊多語言調用
    captcha.initOpts.forceLang = langtion;
    captcha.langFun();
    // 滑塊顯示
    captcha.show();
}

 

參數說明:

callback: 驗證碼頁面關閉回調函數。用戶驗證之后,會調用該函數,傳入json格式驗證參數。

{ret:xxx,ticket:"xxx"}

ret=0 表示用戶驗證完成,業務可以校驗 ticket;

ret=1 表示用戶未驗證驗證碼,此時沒有 ticket 參數。

參數 ticket 需要提交給業務后台,具體填哪個字段參考后面后台 server 開發部分。

themeColor :設置頁面的主題色彩,值為 16 進制色彩,比如 ff572d。設置后頁面里的按鈕和圖標會變成設置的顏色

showHeader
:顯示驗證碼頁面的 header (返回和幫助,只對手機頁面有效)

false:不顯示

type :PC 端可選選項,配置驗證碼的樣式。具體樣式表現可以查看驗證碼官網

"point":觸發式(默認)

"embed":嵌入式

"popup":彈窗式

pos:設置彈框驗證碼的位置屬性,該參數只對 PC 彈框驗證碼有效

absolute: 絕對定位

fixed:相對於瀏覽器窗口的絕對定位

static:靜態定位

relative:相對定位

keepOpen:設置驗證通過頁面屬性

false:驗證通過刷新(默認)

lang:設置驗證碼語言類型

簡體中文:2052(默認)

繁體中文:1028

英文:1033

要記得及時調用capDestroy()來銷毀你創建的script標簽,否則就會出現很多個script標簽

 

然后在項目中就可以這樣來用了:

tools.tencentCaptchaVerify('xxxxx',res=>{
                if(res.ret===0){
                    self.getPhoneVerifyCode({mobile:self.loginByPhoneObj.mobile,type:1});//驗證成功后發送驗證碼  執行一些自定義邏輯
                }
            });

很好用:

效果圖:

 

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM