HEX
Server: nginx
System: Linux 167746b7b9c4 3.10.0-1160.119.1.el7.x86_64 #1 SMP Tue Jun 4 14:43:51 UTC 2024 x86_64
User: www-data (1000)
PHP: 8.4.3
Disabled: NONE
Upload Files
File: /www/sites/cbgdh_com/index/wp-content/themes/onenav/assets/js/captcha.js
/*
 * @Author: iowen
 * @Author URI: https://www.iowen.cn/
 * @Date: 2022-02-10 22:22:47
 * @LastEditors: iowen
 * @LastEditTime: 2024-10-04 03:02:29
 * @FilePath: /onenav/assets/js/captcha.js
 * @Description: 验证
 */

function CaptchaInit() {
    var _mode = $('[captcha-type]');
    if (_mode.length) {
        var mode = _mode.attr('captcha-type');
        var _body = $('body');
        window.captcha = {}
        switch (mode) {
            case 'image':
                var _code = $('.image-captcha');
                _code.each(function () {
                    get_img($(this));
                });
                $('.image-captcha').click(function () {
                    get_img($(this));
                });
                function get_img(_this) {
                    $.ajax({
                        url: IO.ajaxurl,
                        data: {
                            action: 'get_img_captcha',
                            id: _this.data('id'),
                        },
                    }).done(function (data) {
                        _this.html('<img alt="img code" src="' + data.img + '" class="">');
                    });
                }
                break;
            case 'slider':
                ioRequire('slidercaptcha');
                break;
            case 'tcaptcha':
                var $btn = $("#TencentCaptcha.io-tcaptcha");
                var appid = _mode.data('appid');
                if (!$btn.length) {
                    _body.append('<div class="hide io-tcaptcha" id="TencentCaptcha" data-appid="' + appid + '" data-cbfn="TCaptchaOK"></div>');
                    if (_mode.data('isfree')) {//免费版
                        $.getScript("//ssl.captcha.qq.com/TCaptcha.js");
                    } else { 
                        $.getScript("//turing.captcha.qcloud.com/TCaptcha.js");
                    }
                }
                break;
            case 'geetest':
                GeetestOpen(false);
                break;
            case 'vaptcha':
                VaptchaOpen(false);
                break;
        }
    }
}
CaptchaInit();

function CaptchaOpen(_this, mode) {
    switch (mode) {
        case 'slider':
            SliderCaptchaOpen(_this);
            break;
        case 'tcaptcha':
            TCaptchaOpen(_this);
            break;
        case 'geetest':
            window.captcha._this = _this;
            GeetestOpen(true);
            break;
        case 'vaptcha':
            window.captcha._this = _this;
            VaptchaOpen(true);
            break;
    }
    return !1;
}

//腾讯验证码
function TCaptchaOpen(_this) {
    console.log(25);
    window.captcha._this = _this;
    $("#TencentCaptcha.io-tcaptcha").trigger('click');	  	
}
function TCaptchaOK(res) {
    window.captcha.ticket = 0;
    window.captcha.randstr = 0;
    if (res.ret === 0) {
        window.captcha.ticket  = res.ticket;
        window.captcha.randstr = res.randstr;
        window.captcha._this.click();
    }
}
//极验行为验4.0
function GeetestOpen(open) {
    var _mode = $('[captcha-type]');
    if (window.GeetestCaptcha) {
        open && window.GeetestCaptcha.showCaptcha();
        return;
    }
    if (!_mode.length) {
        return;
    }
    initGeetest4({
        captchaId: _mode.data('appid'),
        product: 'bind',
    }, function (captchaObj) {
        captchaObj.onReady(function () {
            window.GeetestCaptcha = captchaObj;
            open && captchaObj.showCaptcha();
        }).onSuccess(function (e) {
            var getValidate = captchaObj.getValidate();
            window.captcha.captcha_output = getValidate.captcha_output;
            window.captcha.gen_time = getValidate.gen_time;
            window.captcha.lot_number = getValidate.lot_number;
            window.captcha.ticket = getValidate.pass_token;
            window.captcha._this.click();
        })
    });
}
//Vaptcha
function VaptchaOpen(open) {
    var _mode = $('[captcha-type]');
    if (window.VaptchaObj) {
        open && window.VaptchaObj.validate();
        return;
    }
    if (!_mode.length) {
        return;
    }
    vaptcha({
        vid: _mode.data('appid'),
        mode: 'invisible',
        scene: 0,
        area: 'auto',
    }).then(function (VAPTCHAObj) {
        window.VaptchaObj = VAPTCHAObj;
        VAPTCHAObj.listen('pass', function () {
            serverToken = VAPTCHAObj.getServerToken();
            window.captcha.ticket  = serverToken.token;
            window.captcha.server = serverToken.server;
            window.VaptchaObj.reset();
            window.captcha._this.click();
        })
    })
}