Exemplo n.º 1
0
 //登录
 public void StartLogin()
 {
     //开始时间戳
     StartTimestamp = Tools.Timestamp();
     //获取uuid
     Uuid = LoginUuid.GetUuid(StartTimestamp, httpClient);
     TimestampCount++;
     //报告设备号,无实际意义,模拟真实页面
     WebwxStatReport.GetData(httpJson, DeviceID);
     //开始监听登录事件
     httpClient.GetAsync(LoginQrcode.MonitorUrl(Uuid, StartTimestamp + TimestampCount++, GetRnum()), WaitScanCode);
     //报告时设备号,时间戳,无实际意义,模拟真实页面
     WebwxStatReport.GetData(httpJson, DeviceID, StartTimestamp);
     //获取登录二维码
     OnImageChanged(LoginQrcode.QrCode(httpClient, Uuid));
 }
Exemplo n.º 2
0
 //监听二维码扫描状态
 private void WaitScanCode(string result)
 {
     //等待中
     //window.code = 201
     if (result.Trim().Contains("window.code=408"))
     {
         httpClient.GetAsync(LoginQrcode.MonitorUrl(Uuid, StartTimestamp + TimestampCount++, GetRnum()), WaitScanCode);
     }
     else
     //二维码失效
     if (result.Trim().Contains("window.code=400"))
     {
     }
     else
     //扫码完成
     if (result.Trim().Contains("window.code=201"))
     {
         var bytes = LoginQrcode.UserAvatar(result);
         if (bytes.Length > 0)
         {
             MemoryStream stream = new MemoryStream(bytes);
             OnImageChanged(Image.FromStream(stream));
         }
         else
         {
             //没有头像
         }
         httpClient.GetAsync(LoginQrcode.MonitorUrl(Uuid, StartTimestamp + TimestampCount++, GetRnum()), WaitScanCode);
     }
     else
     //确认登录完成
     if (result.Trim().Contains("window.code=200"))
     {
         string r_url = LoginQrcode.LoginRedirectUri(result);
         Uri    uri   = new Uri(r_url);
         var    dict  = Tools.QueryStringToDict(uri.Query);
         Ticket = dict["ticket"] ?? "";
         Scan   = dict["scan"] ?? "";
         LoginCompleted(r_url);
     }
 }