全网整合营销服务商

营销型网站+SEO优化+关键词快排=一站式服务

免费咨询热线:15959292472

[抚顺seo公司都选久澳]微信小程序服务端获取用户解密信息的方法

  这篇文章主要介绍了 C#微信小程序服务端获取用户解密信息实例代码的相关资料,需要的朋友可以参考下

   C#微信小程序服务端获取用户解密信息实例代码

  实现代码:

  

 

  

using AIOWeb.Models□▽□; 
using Newtonsoft.Json; 
using Newtonsoft.Json.Linq; 
using System◇▲; 
using System.Collections.Generic; 
using System□◇●☆.Data▼•▽○; 
using System•▲….Data.SqlClient; 
using System○=.Linq◁▼☆▽; 
using System.Web; 
namespace AIOWeb 
{ 
 /// <summary> 
 /// wxapi 的摘要说明 
 /// </summary>◇■; 
 public class wxapi : IHttpHandler 
 { 
 public void ProcessRequest(HttpContext context) 
 { 
 context▷◁▼•.Response.ContentType = "text/plain"■=○-;; 
 string code = ""◆…▼;; 
 string iv = "■◁▲◇;"▪▲…;•▼□; 
 string encryptedData = ""▽★□•;; 
 try 
 { 
 code = HttpContext.Current•◁●.Request•■.QueryString["code"].ToString(); 
 iv = HttpContext◁•▪.Current…•.Request.QueryString["iv"-▽◆;].ToString()▽◁; 
 encryptedData = HttpContext◆△○.Current.Request▪•☆.QueryString["encryptedData"◁●-△;].ToString(); 
 } 
 catch (Exception ex) 
 { 
 context.Response.Write(ex.ToString())▽■◁•; 
 } 
 string Appid = "wxdb2641f85b04f1b3"; 
 string Secret = "8591d8cd7197b9197e17b3275329a1e7"▽▲=◇; 
 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"○▷☆●; 
 AIOWeb▲◇▽△.Models.GetUsersHelper GetUsersHelper = new AIOWeb.Models●■▷.GetUsersHelper(); 
 string j = GetUsersHelper.GetUrltoHtml(url, type)□■▲;//获取微信服务器返回字符串 
 //将字符串转换为json格式 
 JObject jo = (JObject)JsonConvert.DeserializeObject(j)▽◇; 
 result res = new result(); 
 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); 
 //存储用户数据 
 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()○◆; 
 #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)☆◇▲▪; } else { context★△☆•.Response.Write(j); } } public bool IsReusable { get { return false-★○-; } } } }

 

  GetUsersHelper 帮助类

  

 

  

using System; 
using System★▽.Collections○◆.Generic; 
using System.IO; 
using System.Linq; 
using System.Security◇▲◆-.Cryptography■▪◆■; 
using System.Text; 
using System.Threading.Tasks●=; 
namespace AIOWeb.Models 
{ 
 public class GetUsersHelper 
 { 
 /// <summary> 
 /// 获取链接返回数据 
 /// <☆◁○;/summary> 
 /// <param name="Url"▲◁▪◆;>链接</param>▲★; 
 /// <▪▼…▷;param name="type">请求类型<△◁◁;/param> 
 /// <returns>-◇•;</returns>■•; 
 public string GetUrltoHtml(string Url, string type) 
 { 
 try 
 { 
 System.Net.WebRequest wReq = System.Net.WebRequest▷○●•.Create(Url); 
 // Get the response instance. 
 System▼■●◇.Net.WebResponse wResp = wReq.GetResponse(); 
 System△◁●.IO◆▪.Stream respStream = wResp.GetResponseStream(); 
 // Dim reader As StreamReader = New StreamReader(respStream) 
 using (System▪••☆.IO.StreamReader reader = new System…▼•.IO-◇.StreamReader(respStream, Encoding.GetEncoding(type))) 
 { 
 return reader.ReadToEnd(); 
 } 
 } 
 catch (System.Exception ex) 
 { 
 return ex.Message; 
 } 
 } 
 #region 微信小程序用户数据解密 
 public static string AesKey=▲; 
 public static string AesIV-▪◇; 
 /// <summary>◁•◆■; 
 /// AES解密 
 /// </summary>◁•; 
 /// <param name="■◇○;inputdata"▲●■;>•◆;输入的数据encryptedData</param> 
 /// <-☆▼★;param name="•▽□•;AesKey">key<▽=◁▽;/param> 
 /// <param name="AesIV">向量128</param> 
 /// <•-•◆;returns name="result"◁△★◁;>解密后的字符串</returns> 
 public string AESDecrypt(string inputdata) 
 { 
 try 
 { 
 AesIV = AesIV.Replace("●△; "■-▲◁, "+"); 
 AesKey = AesKey◁●.Replace(" "○■◆;◇▼, "+"); 
 inputdata = inputdata.Replace(" ", "+"•◇▷☆;); 
 byte[] encryptedData = Convert.FromBase64String(inputdata); 
 RijndaelManaged rijndaelCipher = new RijndaelManaged(); 
 rijndaelCipher.Key = Convert.FromBase64String(AesKey)◁●☆; // Encoding◁◁◆….UTF8.GetBytes(AesKey); 
 rijndaelCipher.IV = Convert.FromBase64String(AesIV);// Encoding●◇.UTF8.GetBytes(AesIV); 
 rijndaelCipher●▼○◆.Mode = CipherMode▼….CBC○◁; 
 rijndaelCipher.Padding = PaddingMode.PKCS7; 
 ICryptoTransform transform = rijndaelCipher.CreateDecryptor(); 
 byte[] plainText = transform◁□■.TransformFinalBlock(encryptedData▷▪, 0, encryptedData.Length); 
 string result = Encoding.UTF8.GetString(plainText)■=▼; 
 return result; 
 } 
 catch (Exception) 
 { 
 return null; 
 } 
 } 
 #endregion 
 } 
}

 

  以上就是本文的全部内容,希望对大家的学习有所帮助,[抚顺seo公司都选久澳]更多相关内容请关注PHP中文网!

  相关推荐:

  如何解决微信小程序请求服务器手机预览请求不到数据的问题
 

  关于微信小程序中弹框和模态框的实现
 

  

 

  以上就是微信小程序服务端获取用户解密信息的方法的详细内容…▼,更多请关注久澳传媒编程栏目其它相关文章!08 2020.10 [成都哪家公司做seo]MySQL跨行事务模型(图文详解) MySQL事务模型在网上也有很多的介绍,遵义市小程序制作公司在写这篇文章之前本人也翻看了很多资料作为参考,以期让自己理解的更加深入全面。看了大多数介绍文章之后发现部分文章并不完整,比如有的哈尔滨市小程序制作公司

[抚顺seo公司都选久澳]微信小程序服务端获取用户解密信息的方法

您的项目需求

*请认真填写需求信息,我们会在24小时内与您取得联系。