public AuthenticateResponse(LoginCore user, string token) { Id = user.Id; username = user.UserName; Token = token; role = user.Role; }
/// <summary> /// 发送表情 /// </summary> /// <param name="msg"></param> /// <param name="from"></param> /// <param name="to"></param> /// <param name="type"></param> public void SendEmoticon(string EMoticonMd5, string from, string to, int type) { string msg_json = "{{" + "\"BaseRequest\":{{" + "\"DeviceID\" : \"{0}\"," + "\"Sid\" : \"{1}\"," + "\"Skey\" : \"{2}\"," + "\"Uin\" : \"{3}\"" + "}}," + "\"Msg\" : {{" + "\"ClientMsgId\" : {4}," + "\"EMoticonMd5\" : \"{5}\"," + "\"FromUserName\" : \"{6}\"," + "\"LocalID\" : {7}," + "\"ToUserName\" : \"{8}\"," + "\"Type\" : {9}" + "}}," + "\"rr\" : {10}" + "}}"; var entity = LoginCore.GetPassTicket(Uin); if (Sid != null && Uin != null) { //((long)(DateTime.Now.ToUniversalTime() - new System.DateTime(1970, 1, 1)).TotalMilliseconds) * 10000 msg_json = string.Format(msg_json, DeviceID, Sid, entity.SKey, Uin, DateTime.Now.Millisecond, EMoticonMd5, from, DateTime.Now.Millisecond, to, type, DateTime.Now.Millisecond); byte[] bytes = HttpService.SendPostRequest(BaseUrl + Constant._webwxsendemoticon_url + "&pass_ticket=" + entity.PassTicket, msg_json, Uin); string send_result = Encoding.UTF8.GetString(bytes); var aa = send_result; } //((Action)delegate() //{ // //存储发送消息 // var b = WxOperateLogDal.AddWxsendmsglog(Uin, from, msg,to,from); //}).BeginInvoke(null, null); }
/// <summary> /// 点击发送 /// </summary> /// <param name="sender"></param> /// <param name="e"></param> /// private void SendContent_Click(object sender, EventArgs e) { try //if (rSendContent.Text != null && _friendUser != null && _meUser != null) { if (rSendContent.Text.Trim() == "") //Trim()是去除空格 { MessageBox.Show("(*^__^*) 嘻嘻……\n不能发空消息", "提 示"); } else { WXMsg msg = new WXMsg(); msg.Uin = _meUser.uin; msg.Sid = LoginCore.GetPassTicket(_meUser.uin).WxSid; msg.From = _meUser.UserName; msg.Msg = rSendContent.Text; msg.Readed = false; msg.To = _friendUser.UserName; msg.Type = 1; msg.Time = DateTime.Now; _friendUser.SendMsg(msg, false); rSendContent.Clear(); rSendContent.Focus(); } } catch { return; } }
/// <summary> /// 发送消息 /// </summary> /// <param name="msg"></param> /// <param name="from"></param> /// <param name="to"></param> /// <param name="type"></param> public void SendMsg(string msg, string from, string to, int type, string Uin, string Sid) { string msg_json = "{{" + "\"BaseRequest\":{{" + "\"DeviceID\" : \"e441551176\"," + "\"Sid\" : \"{0}\"," + "\"Skey\" : \"{6}\"," + "\"Uin\" : \"{1}\"" + "}}," + "\"Msg\" : {{" + "\"ClientMsgId\" : {8}," + "\"Content\" : \"{2}\"," + "\"FromUserName\" : \"{3}\"," + "\"LocalID\" : {9}," + "\"ToUserName\" : \"{4}\"," + "\"Type\" : {5}" + "}}," + "\"rr\" : {7}" + "}}"; var entity = LoginCore.GetPassTicket(Uin); if (Sid != null && Uin != null) { msg_json = string.Format(msg_json, Sid, Uin, msg, from, to, type, entity.SKey, DateTime.Now.Millisecond, DateTime.Now.Millisecond, DateTime.Now.Millisecond); byte[] bytes = HttpService.SendPostRequest(Constant._sendmsg_url + Sid + "&lang=zh_CN&pass_ticket=" + entity.PassTicket, msg_json, Uin); string send_result = Encoding.UTF8.GetString(bytes); } //((Action)delegate() //{ // //存储发送消息 // var b = WxOperateLogDal.AddWxsendmsglog(Uin, from, msg,to,from); //}).BeginInvoke(null, null); }
protected async override void OnCreate(Bundle savedInstanceState) { base.OnCreate(savedInstanceState); SetContentView(Resource.Layout.Splash); core = new LoginCore(); //Delays await Task.Delay(5000); await Task.Factory.StartNew(() => { //Revisar si hay preferencias guardadas Context mContext = Application.Context; ISharedPreferences prefs = PreferenceManager.GetDefaultSharedPreferences(mContext); if (prefs.Contains("correo")) { String sesion_red = prefs.GetString("red_social", ""); if (sesion_red.Equals("facebook")) { String sesion_correo = prefs.GetString("correo", ""); String sesion_nombre = prefs.GetString("nombre", ""); Revisar_login(sesion_correo, sesion_nombre, "facebook"); } if (sesion_red.Equals("correo")) { String sesion_correo = prefs.GetString("correo", ""); String sesion_nombre = prefs.GetString("nombre", ""); Revisar_login(sesion_correo, sesion_nombre, "correo"); } } else { Intent intent = new Intent(this, typeof(MainActivity)); StartActivity(intent); } }); }
private void LoginButton_Click(object sender, EventArgs e) { long role = (comboBoxRole.SelectedItem as ComboBoxItem).ID; bool loginSet = false; bool passwordSet = false; if (!string.IsNullOrEmpty(textBoxLogin.Text)) { loginSet = true; } if (!string.IsNullOrEmpty(textBoxPassword.Text)) { passwordSet = true; } if (loginSet && passwordSet) { string login = textBoxLogin.Text; string password = textBoxPassword.Text; LoginCore.LogIn(role, login, password); if (CoreBase.isAuthorised) { this.Visible = false; Form form; switch (role) { case 1: form = new Forms.AdminForm(); form.Show(); break; case 2: form = new Forms.CashierForm(); form.ShowDialog(); break; case 3: form = new Forms.KitchenForm(); form.Show(); break; default: ErrorsViewWrapper.ShowError(ErrorTexts.UNEXPEXTED_ERROR); Application.Exit(); break; } } } else if (!loginSet && !passwordSet) { ErrorsViewWrapper.ShowError(ErrorTexts.ENTER_LOGIN_AND_PASSWORD); } else if (loginSet && !passwordSet) { ErrorsViewWrapper.ShowError(ErrorTexts.ENTER_PASSWORD); } else { ErrorsViewWrapper.ShowError(ErrorTexts.ENTER_LOGIN); } }
protected override void OnCreate(Bundle savedInstanceState) { base.OnCreate(savedInstanceState); //RequestWindowFeature(WindowFeatures.NoTitle); SetContentView(Resource.Layout.LoginLayout); loginCore = new LoginCore(this); SetResources(); }
public async Task <string> CreateLogin(LoginCore login) { var loginDB = _mapper.Map <Login>(login); var res = await _loginDBManager.CreateDBLogin(loginDB); if (res == "Success") { SmsProvider.SendSms(login.user.Telephone, "Welcome to Tender + Thanks for joining our services"); } return(res); }
public WxContact(string uin) { _uin = uin; var entity = LoginCore.GetPassTicket(this._uin); if (entity != null) { wx.Sid = entity.WxSid; wx.Uin = this._uin; } }
public WxContact(string uin) { _uin = uin; var entity = LoginCore.GetPassTicket(_uin); if (entity != null) { wxs.Sid = entity.WxSid; wxs.Uin = this._uin; // wx.DeviceID= "e" + GenerateCheckCode(15); wxs.BaseUrl = "https://" + LoginCore.GetPassTicket(wxs.Uin).WxHost; } }
// helper methods private string generateJwtToken(LoginCore user) { var tokenHandler = new JwtSecurityTokenHandler(); var key = Encoding.ASCII.GetBytes(_appSettings.Secret); var tokenDescriptor = new SecurityTokenDescriptor { Subject = new ClaimsIdentity(new[] { new Claim("id", user.UserName.ToString()) }), Expires = DateTime.UtcNow.AddMinutes(40), SigningCredentials = new SigningCredentials(new SymmetricSecurityKey(key), SecurityAlgorithms.HmacSha256Signature) }; var token = tokenHandler.CreateToken(tokenDescriptor); return(tokenHandler.WriteToken(token)); }
public string WxSyncCheck() { string sync_key = ""; try { var _syncKey = LoginCore.GetSyncKey(Uin); foreach (KeyValuePair <string, string> p in _syncKey) { sync_key += p.Key + "_" + p.Value + "%7C"; } sync_key = sync_key.TrimEnd('%', '7', 'C'); var entity = LoginCore.GetPassTicket(Uin); if (Sid != null && Uin != null) { var _synccheck_url = string.Format(PushUrl + Constant._synccheck_url, Sid, Uin, sync_key, (long)(DateTime.Now.ToUniversalTime() - new System.DateTime(1970, 1, 1)).TotalMilliseconds, entity.SKey.Replace("@", "%40"), DeviceID); byte[] bytes = HttpService.SendGetRequest(_synccheck_url + "&_=" + DateTime.Now.Ticks, Uin); if (bytes != null) { //string contact_str = Encoding.UTF8.GetString(bytes); return(Encoding.UTF8.GetString(bytes)); //string retcode = contact_str.ToString().Split(new string[] { "\"" }, StringSplitOptions.None)[1]; //string selector = contact_str.ToString().Split(new string[] { "\"" }, StringSplitOptions.None)[3]; //string[]rs= { retcode, selector }; //return contact_str; //return new string[]{ retcode, selector }; } else { return(null); } } else { return(null); } } catch (Exception ex) { //MessageBox.Show("WxSyncCheck" + ex.Message); Tools.Tools.WriteLog(ex.ToString()); return(""); //return null; } }
void shisan13ListView1_MouseDoubleClick(object sender, MouseEventArgs e) { TabPage tab = new TabPage(); tab.Name = WechartListView.SelectedItems[0].SubItems[0].Text; tab.Text = WechartListView.SelectedItems[0].SubItems[2].Text + "--云客服";//获取登录列表为微信 Wx_wechart form = new Wx_wechart(); form.Uin = WechartListView.SelectedItems[0].SubItems[0].Text; form.Sid = LoginCore.GetPassTicket(WechartListView.SelectedItems[0].SubItems[0].Text).WxSid; form.robotID = "013"; form.TopLevel = false; //设置为非顶级控件 tab.Controls.Add(form); WXMaintab.Controls.Add(tab); form.Show(); }
private void MainFrom_Load(object sender, EventArgs e) { Text = Constant.SoftName + Constant.Version + " 初始化中..."; string[] heads = { "微信唯一ID", "微信用户", "微信", "上线时间", "总群数", "到期时间" }; int[] widths = { 140, 140, 140, 130, 140, 100 }; WechartListView.InitHead(heads, widths); WechartListView.Columns[0].TextAlign = HorizontalAlignment.Center; Uins = LoginCore.GetOnLineUin(); foreach (var uin in Uins) { LoginCore.InitCookie(uin); AddToList(uin); Thread.Sleep(10); } this.WechartListView.SelectedIndexChanged += new EventHandler(shisan13ListView1_SelectedIndexChanged); }
protected override void OnCreate(Bundle savedInstanceState) { base.OnCreate(savedInstanceState); SetContentView(Resource.Layout.CrearCuenta); core_login = new LoginCore(); core_registro = new RegistroCore(); //Mapa _mapFragment = FragmentManager.FindFragmentById <MapFragment>(Resource.Id.mapa_crear); _mapFragment.GetMapAsync(this); //Crear Cuenta btn_crear_cuenta = FindViewById <Button>(Resource.Id.crear_cuenta); btn_crear_cuenta.Click += delegate { Crear_cuenta(); }; }
/// <summary> /// 微信初始化 /// </summary> /// <returns></returns> public JObject WxInit() { string init_json = "{{\"BaseRequest\":{{\"Uin\":\"{0}\",\"Sid\":\"{1}\",\"Skey\":\"{2}\",\"DeviceID\":\"e1615250492\"}}}}"; if (Uin != null && Sid != null) { string pass_ticket = LoginCore.GetPassTicket(Uin).PassTicket;//这个位置过来了 string skey = LoginCore.GetPassTicket(Uin).SKey; init_json = string.Format(init_json, Uin, Sid, skey); byte[] bytes = HttpService.SendPostRequest(Constant._init_url + "&pass_ticket=" + pass_ticket, init_json, Uin); string init_str = Encoding.UTF8.GetString(bytes); JObject init_result = JsonConvert.DeserializeObject(init_str) as JObject; return(init_result); } else { return(null); } }
public async Task <ActionResult <User> > PostAdminUser(LoginCore user) { try { var response = await _userCore.CreateUser(user); if (response == null) { return(BadRequest(new { message = "Error encountered in authorizing." })); } return(Ok(response)); } catch (Exception e) { _logger.Error("authenticate():" + e); return(BadRequest(new { message = "Error encountered in authorizing." })); } }
public async Task <ActionResult <LoginCore> > getUserByID(string user) { try { LoginCore response = await _userCore.getUserByID(user); if (response == null) { return(BadRequest(new { message = "Error encountered in authorizing." })); } return(Ok(response)); } catch (Exception e) { _logger.Error("authenticate():" + e); return(BadRequest(new { message = "Error encountered in authorizing." })); } }
public async Task <LoginCore> getUserByID(string user) { try { var res = await _loginDBManager.GetDBLoginByUsername(user); LoginCore reslog = new LoginCore() { UserName = res.UserName, Role = res.Role, Id = res.Id }; return(reslog); } catch (System.Exception e) { throw; } }
/// <summary> /// 获取sid uid 结果存放在cookies中 /// </summary> public string GetSidUid(string login_redirect) { try { CookieContainer cookieContainer = new CookieContainer(); byte[] bytes = HttpService.SendGetRequest(login_redirect + "&fun=new&version=v2&lang=zh_CN", ref cookieContainer); string pass_ticket = Encoding.UTF8.GetString(bytes); string url = login_redirect; Uri uri = new Uri(url); string WXUser_url = (uri.Host); string pass_Ticket = pass_ticket.Split(new string[] { "pass_ticket" }, StringSplitOptions.None)[1].TrimStart('>').TrimEnd('<', '/'); string sKey = pass_ticket.Split(new string[] { "skey" }, StringSplitOptions.None)[1].TrimStart('>').TrimEnd('<', '/'); string wxSid = pass_ticket.Split(new string[] { "wxsid" }, StringSplitOptions.None)[1].TrimStart('>').TrimEnd('<', '/'); string wxUin = pass_ticket.Split(new string[] { "wxuin" }, StringSplitOptions.None)[1].TrimStart('>').TrimEnd('<', '/'); var passticketEntity = new PassTicketEntity() { PassTicket = pass_Ticket, SKey = sKey, WxSid = wxSid, WxUin = wxUin, WxHost = WXUser_url }; LoginCore.PassTicket(wxUin, passticketEntity); if (HttpService.CookiesContainerDic.ContainsKey(wxUin)) { HttpService.CookiesContainerDic.Remove(wxUin); } WxSerializable s = new WxSerializable(wxUin, EnumContainer.SerializType.cookie); HttpService.CookiesContainerDic.Add(wxUin, cookieContainer); s.Serializable(HttpService.CookiesContainerDic); return(wxUin); } catch (Exception ex) { Tools.Tools.WriteLog(ex.ToString()); return(null); } }
protected override void OnCreate(Bundle savedInstanceState) { base.OnCreate(savedInstanceState); core = new LoginCore(); // Set our view from the "main" layout resource SetContentView(Resource.Layout.Main); //Facebook mprofileTracker = new MyProfileTracker(); mprofileTracker.mOnProfileChanged += mProfileTracker_mOnProfileChanged; mprofileTracker.StartTracking(); BtnFBLogin = FindViewById <LoginButton>(Resource.Id.fblogin); BtnFBLogin.SetReadPermissions(new List <string> { "user_friends", "public_profile", "email" }); mFBCallManager = CallbackManagerFactory.Create(); BtnFBLogin.RegisterCallback(mFBCallManager, this); //Crear Cuenta crear_cuenta = FindViewById <Button>(Resource.Id.crear_cuenta); crear_cuenta.Click += delegate { Crear_cuenta(); }; //iniciar sesion iniciar_sesion = FindViewById <Button>(Resource.Id.iniciar_sesion); iniciar_sesion.Click += delegate { Iniciar_sesion(); }; //Hash PackageInfo info = this.PackageManager.GetPackageInfo("com.smartapptech.Boss_Mandados", PackageInfoFlags.Signatures); foreach (Android.Content.PM.Signature signature in info.Signatures) { MessageDigest md = MessageDigest.GetInstance("SHA"); md.Update(signature.ToByteArray()); string keyhash = Convert.ToBase64String(md.Digest()); Console.WriteLine("Keyhash: " + keyhash); } }
private void UpLoad_Click(object sender, RoutedEventArgs e) { string sid = LoginCore.GetPassTicket(uin).WxSid; string host = LoginCore.GetPassTicket(uin).WxHost; WXService wxs = new WXService { Uin = uin, Sid = sid, DeviceID = "e" + LoginCore.GenerateCheckCode(15), BaseUrl = "https://" + LoginCore.GetPassTicket(uin).WxHost, PushUrl = "https://webpush." + LoginCore.GetPassTicket(uin).WxHost, UploadUrl = "https://file." + LoginCore.GetPassTicket(uin).WxHost }; string FileName = "1.jpg"; string FilePath = "c:\\1.jpg"; //文件的绝对路径 //string FilePath = Environment.CurrentDirectory + FileName; //文件的绝对路径 var ClientMediaId = wxs.UploadMedia(wxs.UploadUrl + Constant._uploadmedia_url, FilePath, FileName, sid, wxs.DeviceID, forwardUser, "filehelper"); wxs.SendMsgImg("", ClientMediaId, forwardUser, "filehelper", 3); Core.Constant.WU_FILE_N += 1; }
/// <summary> /// 微信同步 /// </summary> /// <returns></returns> public JObject WxSync() { var entity = LoginCore.GetPassTicket(Uin); string sync_json = "{{\"BaseRequest\" : {{\"DeviceID\":\"{6}\",\"Sid\":\"{1}\", \"Skey\":\"{5}\", \"Uin\":\"{0}\"}},\"SyncKey\" : {{\"Count\":{2},\"List\": [{3}]}},\"rr\" :{4}}}"; string sync_keys = ""; var _syncKey = LoginCore.GetSyncKey(Uin); foreach (KeyValuePair <string, string> p in _syncKey) { sync_keys += "{\"Key\":" + p.Key + ",\"Val\":" + p.Value + "},"; } sync_keys = sync_keys.TrimEnd(','); sync_json = string.Format(sync_json, this.Uin, this.Sid, _syncKey.Count, sync_keys, (long)(DateTime.Now.ToUniversalTime() - new System.DateTime(1970, 1, 1)).TotalMilliseconds, entity.SKey, DeviceID); if (this.Sid != null && this.Uin != null) { byte[] bytes = HttpService.SendPostRequest(BaseUrl + Constant._sync_url + this.Sid + "&lang=zh_CN&skey=" + entity.SKey + "&pass_ticket=" + entity.PassTicket, sync_json, this.Uin); string sync_str = Encoding.UTF8.GetString(bytes); if (sync_str == null) { return(null); } JObject sync_resul = JsonConvert.DeserializeObject(sync_str) as JObject; // Dictionary<string, string> ss = new Dictionary<string, string>(); if (sync_resul["SyncKey"]["Count"].ToString() != "1") { _syncKey.Clear(); foreach (JObject key in sync_resul["SyncKey"]["List"]) { _syncKey.Add(key["Key"].ToString(), key["Val"].ToString()); } } return(sync_resul); } else { return(null); } }
public async Task <bool> CreateUser(LoginCore userc) { try { Login login = new Login() { UserName = userc.UserName, Password = userc.Password, Role = userc.Role }; var res1 = await _loginDBManager.CreateDBLogin(login); var res = await _loginDBManager.GetDBLoginByUsername(userc.UserName); User user = new User() { Id = res.Id, Aadhar = userc.user.Aadhar, Email = userc.user.Email, Telephone = userc.user.Telephone, License = userc.user.License, CompanyName = userc.user.CompanyName, Name = userc.UserName, PanId = userc.user.PanId }; bool res2; var response = await _userDBManager.CreateDBUser(user); if (response) { res2 = SmsProvider.SendSms(string.Concat("+91", userc.user.Telephone), "Welcome to Tender + Thanks for joining our services"); } return(response); } catch (System.Exception e) { throw; } }
public JObject BatGetContact(List <string> groupUserName) { var entity = LoginCore.GetPassTicket(Uin); var _jstr = string.Empty; foreach (var username in groupUserName) { _jstr += string.Format("{{{{\"UserName\":\"{0}\",\"ChatRoomId\":\"\"}}}},", username, ""); } string json = "{{" + "\"BaseRequest\":{{\"Uin\":{0}," + "\"Sid\":\"{1}\"," + "\"Skey\":\"{2}\"," + "\"DeviceID\":\"{4}\"}}," + "\"Count\":{3}," + "\"List\":[" + _jstr.TrimEnd(',') + "]" + "}}"; try { json = string.Format(json, Uin, Sid, entity.SKey, groupUserName.Count, DeviceID); } catch (Exception ex) { //MessageBox.Show("BatGetContact" + ex.Message); Tools.Tools.WriteLog(ex.ToString()); //写日志 } string url = string.Format(BaseUrl + Constant._getbatcontact_url, HttpService.GetTimeStamp(), entity.PassTicket); byte[] bytes = HttpService.SendPostRequest(url, json, Uin); string contact_str = Encoding.UTF8.GetString(bytes); return(JsonConvert.DeserializeObject(contact_str) as JObject); }
/// <summary> /// 微信同步检测 /// </summary> /// <returns></returns> public string WxSyncCheck() { string sync_key = ""; try { var _syncKey = LoginCore.GetSyncKey(Uin); foreach (KeyValuePair <string, string> p in _syncKey) { sync_key += p.Key + "_" + p.Value + "%7C"; } sync_key = sync_key.TrimEnd('%', '7', 'C'); var entity = LoginCore.GetPassTicket(Uin); if (Sid != null && Uin != null) { var _synccheck_url = string.Format(Constant._synccheck_url, Sid, Uin, sync_key, (long)(DateTime.Now.ToUniversalTime() - new System.DateTime(1970, 1, 1)).TotalMilliseconds, entity.SKey.Replace("@", "%40"), "e1615250492"); byte[] bytes = HttpService.SendGetRequest(_synccheck_url + "&_=" + DateTime.Now.Ticks, Uin); if (bytes != null) { return(Encoding.UTF8.GetString(bytes)); } else { return(null); } } else { return(null); } } catch (Exception) { return(""); } }
public void AddToList(string uin) { ((Action)(delegate() { string sid = LoginCore.GetPassTicket(uin).WxSid; string WXUser_url = LoginCore.GetPassTicket(uin).WXUser_url;//传值不同域名不同的 WXService wx = new WXService(); wx.Uin = uin; wx.Sid = sid; JObject init_result = wx.WxInit(); var partUsers = new List <WXUser>(); foreach (JObject contact in init_result["ContactList"]) //部分好友名单 { WXUser user = new WXUser(); //传值uin sin user.uin = uin; user.UserName = contact["UserName"].ToString(); user.City = contact["City"].ToString(); user.HeadImgUrl = contact["HeadImgUrl"].ToString(); user.NickName = contact["NickName"].ToString(); user.Province = contact["Province"].ToString(); user.PYQuanPin = contact["PYQuanPin"].ToString(); user.RemarkName = contact["RemarkName"].ToString(); user.RemarkPYQuanPin = contact["RemarkPYQuanPin"].ToString(); user.Sex = contact["Sex"].ToString(); user.Signature = contact["Signature"].ToString(); partUsers.Add(user); } var _me = new WXUser(); if (init_result != null) { _me.UserName = init_result["User"]["UserName"].ToString(); _me.City = ""; _me.HeadImgUrl = init_result["User"]["HeadImgUrl"].ToString(); _me.NickName = init_result["User"]["NickName"].ToString(); _me.Province = ""; _me.PYQuanPin = init_result["User"]["PYQuanPin"].ToString(); _me.RemarkName = init_result["User"]["RemarkName"].ToString(); _me.RemarkPYQuanPin = init_result["User"]["RemarkPYQuanPin"].ToString(); _me.Sex = init_result["User"]["Sex"].ToString(); _me.Signature = init_result["User"]["Signature"].ToString(); Tools.WriteLog("【警告】" + _me.NickName + "不能在此软件运行,请切换版本或重新扫描登陆"); if (string.IsNullOrEmpty(_me.NickName)) { WriteLog("【警告】" + _me.NickName + "不能在此软件运行,请切换版本或重新扫描登陆"); Tools.WriteLog("【警告】" + uin + "不能在此软件运行,请切换版本或重新扫描登陆"); return; } var _syncKey = new Dictionary <string, string>(); foreach (JObject synckey in init_result["SyncKey"]["List"]) //同步键值 { _syncKey.Add(synckey["Key"].ToString(), synckey["Val"].ToString()); } //保存最新key LoginCore.AddSyncKey(uin, _syncKey); //更新数据库 var table = WeChatRobotDal.GetWxRobot(_me.NickName); if (table.Rows.Count == 0) { WriteLog("【警告】" + _me.NickName + "没有加入系统中"); return; } partUsers.Add(_me); WxContact _contact = new WxContact(uin); //记住此处不适合再开线程 _contact.InitContact(partUsers); //初始联系人 WeChatRobotDal.UpdateUin(_me.NickName, uin); #region 加入listview if (!_dic.ContainsKey(uin)) { this.BeginInvoke((Action) delegate() { this.WechartListView.BeginUpdate(); //把扫描好的微信加入到列表中 ListViewItem item = new ListViewItem(); item.Text = uin; item.SubItems.Add(_me.UserName); item.SubItems.Add(_me.ShowName); item.SubItems.Add(DateTime.Now.ToString("yyyy-MM-dd HH:mm:ss")); item.SubItems.Add("0"); item.SubItems.Add(table.Rows[0]["EndDate"].ToString()); this.WechartListView.Items.Add(item); this.WechartListView.EndUpdate(); //设置下高度 ImageList image = new ImageList(); image.ImageSize = new Size(10, 50);//这边设置宽和高 this.WechartListView.SmallImageList = image; //隐藏以下按钮 //this.WechartListView.Columns[1].Width = 0; //this.WechartListView.Columns[0].Width = 0; //this.WechartListView.Columns[4].Width = 0; //this.WechartListView.Columns[5].Width = 0; }); _dic.Add(uin, uin); //#region 开始任务 //var robotID = table.Rows[0]["RobotId"].ToString(); //WxTaskCore wt = new WxTaskCore(sid, uin, robotID); //wt.user = _me; ////接收消息事件 //wt.OnRevice += new WxTaskCore.Revice(wt_OnRevice); ////接收修改联系人消息 //wt.OnModifyContact += new WxTaskCore.ModifyContact(wt_OnModifyContact); ////通知发送信息 //wt.OnNotifySend += new WxTaskCore.NotifySend(wt_OnNotifySend); ////每一个微信号,开启一个线程 //ThreadStart start = new ThreadStart(wt.ReviceMsg); //new Thread(start).Start(); ////启动发送线程 //new Thread(new ThreadStart(wt.AutoSendMsg)).Start(); //#endregion } #endregion } if (!Uins.Contains(uin)) { Uins.Add(uin); } LoginCore.AddOnLineUin(Uins); UpDataFromData(); })).BeginInvoke(null, null); }
public string UploadMedia(string url, string picpath, string mediaName, string sid, string DeviceID, string fromUser, string toUser) { string result = string.Empty; var entity = LoginCore.GetPassTicket(Uin); var webwx_data_ticket = ""; var lastModified = new FileInfo(picpath).LastWriteTime; var dt = lastModified.ToString("r").Replace(",", "") + lastModified.ToString("zzz").Replace(":", ""); var lastModifiedDate = dt.Split(' ')[0].ToString() + " " + dt.Split(' ')[2].ToString() + " " + dt.Split(' ')[1].ToString() + " " + dt.Split(' ')[3].ToString() + " " + dt.Split(' ')[4].ToString() + " " + dt.Split(' ')[5].ToString() + " (中国标准时间)"; var fileSize = Tools.Tools.FileSize(picpath); var chunkSize = 512 * 1024; var chunks = Math.Ceiling((double)fileSize / (double)chunkSize); var clientMediaID = DateTime.Now.Millisecond; var fileMd5 = HttpService.GetMD5(picpath); var fs = new FileStream(picpath, FileMode.Open, FileAccess.Read); var length = fs.Length; var current = 0; var bReader = new BinaryReader(fs); byte[] data; var byteCount = 512 * 1024; int i = 0; for (; current <= length; current = current + byteCount) //for (int i = 0; i < chunks; i++) { CookieContainer _cookiesContainer = HttpService.CookiesContainerDic[Uin]; var request = (HttpWebRequest)WebRequest.Create(url); request.Accept = "*/*"; request.Headers.Add("Accept-Encoding", "gzip, deflate, br"); request.Headers.Add("Accept-Language", "zh-CN,zh;q=0.8"); request.ContentType = "multipart/form-data; boundary=----WebKitFormBoundarya4gGLw" + i + "MjIJx7nyC"; request.KeepAlive = true; //request.ProtocolVersion = HttpVersion.Version11; request.Timeout = 25000; request.AllowAutoRedirect = true; request.Host = "file." + LoginCore.GetPassTicket(Uin).WxHost; request.Headers.Add("Origin", "https://" + LoginCore.GetPassTicket(Uin).WxHost); request.Referer = "https://" + LoginCore.GetPassTicket(Uin).WxHost + "/?&lang=zh_CN"; request.UserAgent = "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/52.0.2743.82 Safari/537.36"; request.Method = "POST"; //ServicePointManager.ServerCertificateValidationCallback = new System.Net.Security.RemoteCertificateValidationCallback(CheckValidationResult); if (!string.IsNullOrEmpty(Uin)) { request.CookieContainer = _cookiesContainer; //启用cookie foreach (var c in HttpService.GetAllCookies(_cookiesContainer)) { Tools.Tools.WriteLog(c.ToString()); if (c.ToString().Contains("webwx_data_ticket")) { webwx_data_ticket = c.ToString().Split(new string[] { "=" }, StringSplitOptions.None)[1]; } } } //ServicePointManager.ServerCertificateValidationCallback += RemoteCertificateValidate; using (var ms = new MemoryStream()) { StringBuilder sb = new StringBuilder(); string uploadmediarequest = "{\"UploadType\":2," + "\"BaseRequest\":{" + "\"Uin\":" + Uin + "," + "\"Sid\":\"" + sid + "\"," + "\"Skey\":\"" + entity.SKey + "\"," + "\"DeviceID\":\"" + DeviceID + "\"}," + "\"ClientMediaId\":" + clientMediaID + "," + "\"TotalLen\":" + length + "," + "\"StartPos\":0," + "\"DataLen\":" + length + "," + "\"FileMd5\":\"" + fileMd5 + "\"," + "\"FromUserName\":\"" + fromUser + "\"," + "\"ToUserName\":\"" + toUser + "\"," + "\"MediaType\":4}"; var boundary = "------WebKitFormBoundarya4gGLw" + i + "MjIJx7nyC\r\n"; var lastBoundary = "------WebKitFormBoundarya4gGLw" + i + "MjIJx7nyC--\r\n"; var enterStr = "\r\n"; sb.Append(boundary); sb.Append("Content-Disposition: form-data; name=\"id\"\r\n\r\n"); sb.Append("WU_FILE_" + Core.Constant.WU_FILE_N + enterStr); sb.Append(boundary); sb.Append("Content-Disposition: form-data; name=\"name\"" + enterStr + enterStr); sb.Append(mediaName.Substring(mediaName.LastIndexOf("\\") + 1) + enterStr); sb.Append(boundary); sb.Append("Content-Disposition: form-data; name=\"type\"" + enterStr + enterStr); sb.Append("image/jpeg\r\n"); sb.Append(boundary); sb.Append("Content-Disposition: form-data; name=\"lastModifiedDate\"" + enterStr + enterStr); //sb.Append("Wed Dec 30 2015 15:24:14 GMT+0800 (中国标准时间)" + enterStr); sb.Append(lastModifiedDate + enterStr); sb.Append(boundary); sb.Append("Content-Disposition: form-data; name=\"mediatype\"" + enterStr + enterStr); sb.Append("pic" + enterStr); sb.Append(boundary); sb.Append("Content-Disposition: form-data; name=\"size\"\r\n\r\n"); sb.Append(fileSize + enterStr); if (chunks > 1) { sb.Append(boundary); sb.Append("Content-Disposition: form-data; name=\"chunks\"\r\n\r\n"); sb.Append(chunks + enterStr); sb.Append(boundary); sb.Append("Content-Disposition: form-data; name=\"chunk\"\r\n\r\n"); sb.Append(i + enterStr); } sb.Append(boundary); sb.Append("Content-Disposition: form-data; name=\"uploadmediarequest\"\r\n\r\n"); sb.Append(uploadmediarequest + enterStr); sb.Append(boundary); sb.Append("Content-Disposition: form-data; name=\"webwx_data_ticket\"\r\n\r\n"); sb.Append(webwx_data_ticket + enterStr); sb.Append(boundary); sb.Append("Content-Disposition: form-data; name=\"pass_ticket\"\r\n\r\n"); sb.Append(entity.PassTicket + enterStr); sb.Append(boundary); sb.Append("Content-Disposition: form-data; name=\"filename\"; filename=\"" + picpath.Substring(picpath.LastIndexOf("\\") + 1) + "\"\r\n"); sb.Append("Content-Type: application/octet-stream\r\n\r\n"); var bytes1 = Encoding.UTF8.GetBytes(sb.ToString()); ms.Write(bytes1, 0, bytes1.Length); sb.Clear(); sb = null; fs.Seek(current, SeekOrigin.Current); if (current + byteCount > length) { data = new byte[Convert.ToInt64((length - current))]; bReader.Read(data, 0, Convert.ToInt32((length - current))); } else { data = new byte[byteCount]; bReader.Read(data, 0, byteCount); } ms.Write(data, 0, data.Length); var bytes2 = Encoding.UTF8.GetBytes(lastBoundary); ms.Write(bytes2, 0, bytes2.Length); using (var dataStream = request.GetRequestStream()) { var bytes3 = ms.ToArray(); dataStream.Write(bytes3, 0, bytes3.Length); } using (var response = (HttpWebResponse)request.GetResponse()) { using (var reader = new StreamReader(response.GetResponseStream(), Encoding.UTF8)) { result = reader.ReadToEnd(); } } } i++; } fs.Close(); JObject _resul = JsonConvert.DeserializeObject(result) as JObject; var result1 = _resul["MediaId"].ToString(); return(result1); }
public LoginController() { _core = new LoginCore(); }
public Login(LoginCore services) { InitializeComponent(); this.services = services; }