Beispiel #1
0
        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;
            }
        }
Beispiel #2
0
        /// <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);
            }
        }
Beispiel #3
0
        /// <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("");
            }
        }