/// <summary>
        /// 启动验证
        /// </summary>
        /// <param name="url">验证地址</param>
        public void StartVaildate(string url)
        {
            Geetest.OnValidate_Success += Geetest_OnValidate_Success;

            Geetest.StartValidate();

            var settings = new CefSettings();

            settings.CefCommandLineArgs.Add("proxy-server", $"127.0.0.1:{Geetest.Port}");
            settings.CefCommandLineArgs.Add("enable-media-stream", "1");
            settings.CefCommandLineArgs.Add("disable-gpu", "1");

            Cef.Initialize(settings);

            browser = new ChromiumWebBrowser()
            {
                Width = content.Width, Height = content.Height
            };

            content.Children.Add(browser);

            browser.Margin        = new Thickness(0, 0, 0, 0);
            browser.Address       = url;
            browser.FrameLoadEnd += Browser_FrameLoadEnd;
        }
Example #2
0
        /// <summary>
        /// 启动验证
        /// </summary>
        /// <param name="url">验证地址</param>
        public void StartVaildate(string url)
        {
            Geetest.OnValidate_Success += Geetest_OnValidate_Success;

            Geetest.StartValidate();

            var settings = new CefSettings();

            settings.CefCommandLineArgs.Add("--proxy-server", $"127.0.0.1:{Geetest.Port}");
            settings.CefCommandLineArgs.Add("enable-media-stream", "1");
            settings.CefCommandLineArgs.Add("disable-gpu", "1");
            settings.CefCommandLineArgs.Add("--ignore-urlfetcher-cert-requests", "1");
            settings.CefCommandLineArgs.Add("--ignore-certificate-errors", "1");
            settings.CefCommandLineArgs.Add("--disable-web-security", "1");
            Cef.Initialize(settings);

            browser = new ChromiumWebBrowser(url)
            {
                Width = Width, Height = Height
            };

            Controls.Add(browser);

            browser.Left          = 0;
            browser.Top           = 0;
            browser.FrameLoadEnd += Browser_FrameLoadEnd;
        }
        private static async Task Get()
        {
            using (HttpClient http = new HttpClient())
            {
                //三代汉字
                var resp = await http.GetStringAsync("http://www.geetest.com/demo/gt/register-click?t=1527475267971");

                //三代滑块
                //var resp = await http.GetStringAsync("http://www.geetest.com/demo/gt/register-slide?t=1527479423500");
                //二代滑块
                //var resp = await http.GetStringAsync("http://id.ourgame.com/id.ourgame.com/captcha!lzCaptcha.do?t=0.6296260015670256");

                var json      = JObject.Parse(resp);
                var gt        = json["gt"].ToString();
                var challenge = json["challenge"].ToString();
                var result    = await Geetest.Recognition(new GeetestInput
                {
                    //WebProxy = new WebProxy(), //此处传入代理(如果是用的代理)
                    Challenge = challenge,
                    Gt        = gt,
                    User      = "", //此处传入key
                    Referer   = new Uri("http://www.gsxt.gov.cn/")
                });

                switch (result.Code)
                {
                case Code.Success:
                    //识别成功
                    Console.WriteLine("challenge:" + result.Challenge);
                    Console.WriteLine("validate:" + result.Validate);
                    Console.WriteLine("seccode:" + result.SecCode);
                    Console.WriteLine("params:" + result);
                    break;

                case Code.InMaintenance:
                    //系统维护,后续逻辑
                    break;

                case Code.BadIp:
                    //IP被极验封了,该IP短时间内(预计封1-3个小时)不可用于极验3代。此处将该IP加入黑名单
                    break;

                case Code.UserError:
                    //帐号到期,触发告警通知,提示财务或负责人
                    break;

                default:
                    //常规错误,记录SDK返回的错误描述
                    Console.WriteLine(result.Message);
                    break;
                }
            }
            Thread.Sleep(-1);
        }
Example #4
0
        /// <summary>
        ///  获取极验结果
        /// </summary>
        /// <returns></returns>
        public Jiyan GetJiyan()
        {
            string  geetest_code          = GetGeetet();
            Geetest geetest               = (Geetest)HttpHelper.JsonToObject <Geetest>(geetest_code);
            Dictionary <string, string> d = new Dictionary <string, string>();

            d.Add("gt", geetest.gt);
            d.Add("challenge", geetest.challenge);
            d.Add("model", "3");
            d.Add("supportclick", "jiyan");
            d.Add("referer", "https://www.228.com.cn/auth/login");
            d.Add("return", "json");
            d.Add("user", "dragon8jiyan");
            d.Add("pass", "202063");
            d.Add("devuser", "dragon8jiyan");
            string   strHash = Functions.DictionaryToPostString(d);
            HttpItem item    = new HttpItem()
            {
                URL        = "http://jiyanapi.c2567.com/shibie?" + strHash,
                Method     = "GET",
                Timeout    = 30000,
                ResultType = ResultType.String
            };
            HttpResult result = http.GetHtml(item);
            string     html   = result.Html;
            string     cookie = result.Cookie;
            Jiyan      jy     = (Jiyan)HttpHelper.JsonToObject <Jiyan>(html);

            if (jy.status == "stop")
            {
                MessageBox.Show("极验账户积分不足!请充值再尝试!");
                throw new Exception("极验账户积分不足!请充值再尝试!");
            }
            if (jy.status != "ok")
            {
                MessageBox.Show("获取失败,正在重新获取...");
                return(GetJiyan());
            }
            return(jy);
        }