//测试转换 public string TestTran() { GetUsersHelper.AesIV = "Lcpj9wNElgK9vuPXb9XmdQ=="; GetUsersHelper.AesKey = "fQzhx8pyE7aqY1HwVZRL8A=="; string result = GetUsersHelper.AESDecrypt("rk1fT8fL5uWHlvIFQAryrymM4jIbiaXdBy8lJ7Pt1vcVKumkq3b4K4TLWhPUxld/nE1bs/nasTp/QcyuJHFNKJibEcMkfOtTXoXXOK/FRIsLiEltIKUDWHfSHhDt24arWCWXBkqosEzVTH6BA3Dh6AEqjaAV+q9z+ho7KNZ471neNOFiZ1Y2ds3qwxx3eL8OhCkGelfwA9wVXs2d8sxy8lOwCUfK8Pi9PcIZnr2DPcXIhgfCFDl7bJNX668o4vEJlusQ7MUtvQRf6kHWVgNXzD16buCTynDCwY763jmrud4lYoQ/tzO6SK2o2WvOCsaY+ZiQDW8ACvIbfBeS9H53ftAbWw4W/2GOoC1o6BlGYmvj8p8/RllEahYROUIBLF7CWVyZVCYuy5yb2N7wY9ngxrjeg7Q8xBU07Lekk4sxdbiYZFBgFW2AgEJNcTyaY8nbHZKG1n00pMpTfkdsg7TdrQ=="); return(result); }
public void ProcessRequest(HttpContext context) { context.Response.ContentType = "text/plain"; writeFile("enter"); string code = ""; string iv = ""; string encryptedData = ""; string threedsession = ""; try { code = HttpContext.Current.Request.QueryString["code"].ToString(); writeFile("nice"); writeFile(code); iv = HttpContext.Current.Request.QueryString["iv"].ToString(); encryptedData = HttpContext.Current.Request.QueryString["encryptedData"].ToString(); //threedsession = HttpContext.Current.Request.QueryString["threedsession"].ToString(); } catch (Exception ex) { context.Response.Write(ex.ToString()); } writeFile(code); string Appid = "wx2e67c9b918d371a4"; string Secret = "84060efaf50e9fa85a62963a36dbb4b2"; string grant_type = "authorization_code"; //向微信服务端 使用登录凭证 code 获取 session_key 和 openid string url = "https://api.weixin.qq.com/sns/jscode2session?appid=" + Appid + "&secret=" + Secret + "&js_code=" + code + "&grant_type=" + grant_type; string type = "utf-8"; writeFile(url); GetUsersHelper GetUsersHelper = new GetUsersHelper(); string j = GetUsersHelper.GetUrltoHtml(url, type);//获取微信服务器返回字符串 writeFile(j); //将字符串转换为json格式 JObject jo = (JObject)JsonConvert.DeserializeObject(j); writeFile(jo.ToString()); result res = new result(); try { //微信服务器验证成功 res.openid = jo["openid"].ToString(); res.session_key = jo["session_key"].ToString(); threedsession = Guid.NewGuid().ToString().Replace("-", "").Substring(0, 16); writeFile(res.openid); writeFile(res.session_key); writeFile(threedsession); //GetUsersHelper GetUsers = new GetUsersHelper(); // GetUsers.SetSession(threedsession, res.openid + "|" + res.session_key); SetCookie(threedsession, res.openid + "|" + res.session_key, 1); //写code 保存到cookies //context.Response.Write(res.openid); //context.Response.Write("fail"); // context.Response.Write(threedsession); } catch (Exception) { //微信服务器验证失败 res.errcode = jo["errcode"].ToString(); res.errmsg = jo["errmsg"].ToString(); } if (!string.IsNullOrEmpty(res.openid)) { //用户数据解密 GetUsersHelper.AesIV = iv; GetUsersHelper.AesKey = res.session_key; string result = GetUsersHelper.AESDecrypt(encryptedData); writeFile(result); //存储用户数据 JObject _usrInfo = (JObject)JsonConvert.DeserializeObject(result); userInfo userInfo = new userInfo(); userInfo.openId = _usrInfo["openId"].ToString(); try //部分验证返回值中没有unionId { userInfo.unionId = _usrInfo["unionId"].ToString(); } catch (Exception) { userInfo.unionId = "unionId"; } userInfo.nickName = _usrInfo["nickName"].ToString(); userInfo.gender = _usrInfo["gender"].ToString(); userInfo.city = _usrInfo["city"].ToString(); userInfo.province = _usrInfo["province"].ToString(); userInfo.country = _usrInfo["country"].ToString(); userInfo.avatarUrl = _usrInfo["avatarUrl"].ToString(); object watermark = _usrInfo["watermark"].ToString(); object appid = _usrInfo["watermark"]["appid"].ToString(); object timestamp = _usrInfo["watermark"]["timestamp"].ToString(); writeFile(userInfo.nickName); writeFile(userInfo.city); writeFile(userInfo.province); writeFile(userInfo.country); context.Response.Write(result); } else { context.Response.Write(j); } }
public void ProcessRequest(HttpContext context) { kyfly.BLL.jichu_renyuanxinxiB bll = new kyfly.BLL.jichu_renyuanxinxiB(context); context.Response.ContentType = "text/plain"; writeFile("getinfor"); string phone = ""; string key = ""; string iv = ""; string encryptedData = ""; string threedsession = ""; string value = ""; try { phone = HttpContext.Current.Request.QueryString["phone"].ToString(); key = HttpContext.Current.Request.QueryString["key"].ToString(); iv = HttpContext.Current.Request.QueryString["iv"].ToString(); encryptedData = HttpContext.Current.Request.QueryString["encryptedData"].ToString(); threedsession = HttpContext.Current.Request.QueryString["threedsession"].ToString(); } catch (Exception ex) { context.Response.Write(ex.ToString()); } writeFile(phone); writeFile(key); writeFile(iv); writeFile(encryptedData); writeFile(threedsession); if (!string.IsNullOrEmpty(threedsession)) { GetUsersHelper GetUsersHelper = new GetUsersHelper(); //用户数据解密 if (HttpContext.Current.Request.Cookies["threedsession"] != null) { value = HttpContext.Current.Request.Cookies["threedsession"].Value; } GetUsersHelper.AesIV = iv; GetUsersHelper.AesKey = value; string result = GetUsersHelper.AESDecrypt(encryptedData); //存储用户数据 JObject _usrInfo = (JObject)JsonConvert.DeserializeObject(result); userInfo userInfo = new userInfo(); userInfo.openId = _usrInfo["openId"].ToString(); try //部分验证返回值中没有unionId { userInfo.unionId = _usrInfo["unionId"].ToString(); } catch (Exception) { userInfo.unionId = "unionId"; } userInfo.nickName = _usrInfo["nickName"].ToString(); userInfo.gender = _usrInfo["gender"].ToString(); userInfo.city = _usrInfo["city"].ToString(); userInfo.province = _usrInfo["province"].ToString(); userInfo.country = _usrInfo["country"].ToString(); userInfo.avatarUrl = _usrInfo["avatarUrl"].ToString(); object watermark = _usrInfo["watermark"].ToString(); object appid = _usrInfo["watermark"]["appid"].ToString(); object timestamp = _usrInfo["watermark"]["timestamp"].ToString(); bll.Add(userInfo.nickName, phone, userInfo.openId, key, "", "", "客户", "", "", "", ""); //#region ////创建连接池对象(与数据库服务器进行连接) //SqlConnection conn = new SqlConnection("server=127.0.0.1;database=Test;uid=sa;pwd=1"); ////打开连接池 //conn.Open(); ////创建命令对象 //string Qrystr = "SELECT * FROM WeChatUsers WHERE openId='" + userInfo.openId + "'"; //SqlCommand cmdQry = new SqlCommand(Qrystr, conn); //object obj = cmdQry.ExecuteScalar(); //if ((Object.Equals(obj, null)) || (Object.Equals(obj, System.DBNull.Value))) //{ // string str = "INSERT INTO WeChatUsers ([UnionId] ,[OpenId],[NickName],[Gender],[City],[Province],[Country],[AvatarUrl],[Appid],[Timestamp],[Memo],[counts])VALUES('" + userInfo.unionId + "','" + userInfo.openId + "','" + userInfo.nickName + "','" + userInfo.gender + "','" + userInfo.city + "','" + userInfo.province + "','" + userInfo.country + "','" + userInfo.avatarUrl + "','" + appid.ToString() + "','" + timestamp.ToString() + "','来自微信小程序','1')"; // SqlCommand cmdUp = new SqlCommand(str, conn); // // 执行操作 // try // { // int row = cmdUp.ExecuteNonQuery(); // } // catch (Exception ex) // { // context.Response.Write(ex.ToString()); // } //} //else //{ // //多次访问,记录访问次数counts 更新unionId是预防最初没有,后期关联后却仍未记录 // string str = "UPDATE dbo.WeChatUsers SET counts = counts+1,UnionId = '" + userInfo.unionId + "' WHERE OpenId='" + userInfo.openId + "'"; // SqlCommand cmdUp = new SqlCommand(str, conn); // int row = cmdUp.ExecuteNonQuery(); //} ////关闭连接池 //conn.Close(); //#endregion //返回解密后的用户数据 context.Response.Write(result); } }
/// <summary> /// 资讯用户插入 /// </summary> /// <returns></returns> public string InsertUserNew() { string code = ""; string iv = ""; string encryptedData = ""; try { code = HttpContext.Request.QueryString["code"].ToString(); iv = HttpContext.Request.QueryString["iv"].ToString(); encryptedData = Server.UrlDecode(HttpContext.Request.QueryString["encryptedData"].ToString()); } catch (Exception ex) { Response.Write("code:" + code + "|iv:" + iv + "|encryptedData:" + encryptedData); } string Appid = "wxba92380dc6210082";//资讯的 string Secret = "8938f3c2513bfc3883038284b67e0316"; string grant_type = "authorization_code"; //向微信服务端 使用登录凭证 code 获取 session_key 和 openid string url = "https://api.weixin.qq.com/sns/jscode2session?appid=" + Appid + "&secret=" + Secret + "&js_code=" + code + "&grant_type=" + grant_type; string type = "utf-8"; GetUsersHelper GetUsersHelper = new GetUsersHelper(); string j = GetUsersHelper.GetUrltoHtml(url, type);//获取微信服务器返回字符串 //return string.Format("j:{0}---"+"code:" + code + "|iv:" + iv ,j); //将字符串转换为json格式 JObject jo = (JObject)JsonConvert.DeserializeObject(j); OpenIdAndSessionKey res = new OpenIdAndSessionKey(); try { //微信服务器验证成功 res.openid = jo["openid"].ToString(); res.session_key = jo["session_key"].ToString(); } catch (Exception) { //微信服务器验证失败 res.errcode = jo["errcode"].ToString(); res.errmsg = jo["errmsg"].ToString(); } if (!string.IsNullOrEmpty(res.openid)) { //用户数据解密 GetUsersHelper.AesIV = iv; GetUsersHelper.AesKey = res.session_key; string result = GetUsersHelper.AESDecrypt(encryptedData); //return string.Format("j:{0}---" + "code:" + code + "|iv:" + iv + "result:" + result+ "encryptedData:"+ encryptedData+ "AesIV:"+iv+ "AesKey:"+ res.session_key, j); //存储用户数据 JObject _usrInfo = (JObject)JsonConvert.DeserializeObject(result); WechatUserInfo userInfo = new WechatUserInfo(); userInfo.openId = _usrInfo["openId"].ToString(); try //部分验证返回值中没有unionId { userInfo.unionId = _usrInfo["unionId"].ToString(); } catch (Exception) { userInfo.unionId = "unionId"; } userInfo.nickName = _usrInfo["nickName"].ToString(); userInfo.gender = _usrInfo["gender"].ToString(); userInfo.city = _usrInfo["city"].ToString(); userInfo.province = _usrInfo["province"].ToString(); userInfo.country = _usrInfo["country"].ToString(); userInfo.avatarUrl = _usrInfo["avatarUrl"].ToString(); object watermark = _usrInfo["watermark"].ToString(); object appid = _usrInfo["watermark"]["appid"].ToString(); object timestamp = _usrInfo["watermark"]["timestamp"].ToString(); //return "code:" + code + "|iv:" + iv + "|encryptedData:" + encryptedData + "openId:" + userInfo.openId; #region 插入数据库 //创建连接池对象(与数据库服务器进行连接) MySqlConnection conn = new MySqlConnection("Database=ourtool;Data Source=101.201.69.84;Port=3306;User=root;Password=qsx123456;CharSet=utf8;Allow User Variables=True;Connect Timeout=300;"); //打开连接池 conn.Open(); //创建命令对象 string Qrystr = "SELECT * FROM WeChatUsers WHERE openId='" + userInfo.openId + "'"; MySqlCommand cmdQry = new MySqlCommand(Qrystr, conn); object obj = cmdQry.ExecuteScalar(); if ((Object.Equals(obj, null)) || (Object.Equals(obj, System.DBNull.Value))) { string str = "INSERT into `ourtool`.`WeChatUsers` ( `OpenId`, `NickName`, `Gender`, `City`, `Province`, `Country`, `AvatarUrl`, `Appid`, `Memo`, `Counts`,Type,CreateTime ) values('" + userInfo.openId + "','" + userInfo.nickName + "','" + userInfo.gender + "','" + userInfo.city + "','" + userInfo.province + "','" + userInfo.country + "','" + userInfo.avatarUrl + "','" + appid.ToString() + "','来自资讯小程序','1',2,now())"; MySqlCommand cmdUp = new MySqlCommand(str, conn); // 执行操作 try { int row = cmdUp.ExecuteNonQuery(); } catch (Exception ex) { Response.Write(ex.ToString()); } } else { //多次访问,记录访问次数counts 更新unionId是预防最初没有,后期关联后却仍未记录 string str = "UPDATE WeChatUsers SET counts = counts+1,EditeTime=now() WHERE OpenId='" + userInfo.openId + "'"; MySqlCommand cmdUp = new MySqlCommand(str, conn); int row = cmdUp.ExecuteNonQuery(); } //关闭连接池 conn.Close(); #endregion //返回解密后的用户数据 //Response.Write(result); } else { //Response.Write(j); } return("code:" + code + "|iv:" + iv + "|encryptedData:" + encryptedData + "openId:" + res.openid); }
public void ProcessRequest(HttpContext context) { context.Response.ContentType = "text/plain"; string iv = ""; string encryptedData = ""; string threedsession = ""; string value = ""; string openid = ""; string[] arr = new string[10]; try { iv = HttpContext.Current.Request.QueryString["iv"].ToString(); encryptedData = HttpContext.Current.Request.QueryString["encryptedData"].ToString(); threedsession = HttpContext.Current.Request.QueryString["threedsession"].ToString(); } catch (Exception ex) { context.Response.Write(ex.ToString()); } writeFile(iv); writeFile(encryptedData); writeFile(threedsession); if (!string.IsNullOrEmpty(threedsession)) { writeFile("1"); GetUsersHelper GetUsersHelper = new GetUsersHelper(); writeFile("cooming"); value = threedsession.ToString(); writeFile(value); arr = value.Split('|'); openid = arr[0]; writeFile(openid); value = arr[1]; writeFile(value); GetUsersHelper.AesIV = iv; GetUsersHelper.AesKey = value; writeFile(value); string result = GetUsersHelper.AESDecrypt(encryptedData); writeFile(result); //存储用户数据 JObject _usrInfo = (JObject)JsonConvert.DeserializeObject(result); userInfo userInfo = new userInfo(); userInfo.phoneNumber = _usrInfo["phoneNumber"].ToString(); //用户绑定的手机号 userInfo.purePhoneNumber = _usrInfo["purePhoneNumber"].ToString(); //没有区号的手机号 userInfo.countryCode = _usrInfo["countryCode"].ToString(); //区号 object watermark = _usrInfo["watermark"].ToString(); object appid = _usrInfo["watermark"]["appid"].ToString(); object timestamp = _usrInfo["watermark"]["timestamp"].ToString(); writeFile(userInfo.phoneNumber); writeFile(userInfo.purePhoneNumber); writeFile(userInfo.countryCode); context.Response.Write(result); } else { writeFile("threesession null"); context.Response.Write("threesession null"); } }