在线看毛片视频-国产免费av在线-欧美日韩一区二区三区-国产成人无码av在线播放无广告-亚洲人va欧美va人人爽-国产第一草草-西班牙黄色片-四虎在线网站8848-最新av片免费网站入口-东京热无码中文字幕av专区-日本大人吃奶视频xxxx-欧美精品一区二区三区四区五区-国产片天天弄-国产免费内射又粗又爽密桃视频-欧美爱爱网站-日韩v欧美

當(dāng)前位置:雨林木風(fēng)下載站 > 應(yīng)用軟件教程 > 詳細(xì)頁面

微信小程序服務(wù)端取得用戶解密信息的方法

微信小程序服務(wù)端取得用戶解密信息的方法

更新時(shí)間:2025-09-25 文章作者:未知 信息來源:網(wǎng)絡(luò) 閱讀次數(shù):

導(dǎo)微信小程序,簡稱小程序,英文名Mini Program,是一種不需要下載安裝即可使用的應(yīng)用,它實(shí)現(xiàn)了應(yīng)用“觸手可及”的夢想,用戶掃一掃或搜一下即可打開應(yīng)用。小程序是一種不用下載就能使用的應(yīng)用,也是一...
微信小程序,簡稱小程序,英文名Mini Program,是一種不需要下載安裝即可使用的應(yīng)用,它實(shí)現(xiàn)了應(yīng)用“觸手可及”的夢想,用戶掃一掃或搜一下即可打開應(yīng)用。小程序是一種不用下載就能使用的應(yīng)用,也是一項(xiàng)門檻非常高的創(chuàng)新,經(jīng)過將近兩年的發(fā)展,已經(jīng)構(gòu)造了新的小程序開發(fā)環(huán)境和開發(fā)者生態(tài)。
這篇文章主要介紹了 C#微信小程序服務(wù)端獲取用戶解密信息實(shí)例代碼的相關(guān)資料,需要的朋友可以參考下

C#微信小程序服務(wù)端獲取用戶解密信息實(shí)例代碼

實(shí)現(xiàn)代碼:

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"; 
 
      //向微信服務(wù)端 使用登錄憑證 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);//獲取微信服務(wù)器返回字符串 
 
      //將字符串轉(zhuǎn)換為json格式 
      JObject jo = (JObject)JsonConvert.DeserializeObject(j); 
 
      result res = new result(); 
      try 
      { 
        //微信服務(wù)器驗(yàn)證成功 
        res.openid = jo["openid"].ToString(); 
        res.session_key = jo["session_key"].ToString(); 
      } 
      catch (Exception) 
      { 
        //微信服務(wù)器驗(yàn)證失敗 
        res.errcode = jo["errcode"].ToString(); 
        res.errmsg = jo["errmsg"].ToString(); 
      } 
      if (!string.IsNullOrEmpty(res.openid)) 
      { 
        //用戶數(shù)據(jù)解密 
        GetUsersHelper.AesIV = iv; 
        GetUsersHelper.AesKey = res.session_key; 
 
        string result = GetUsersHelper.AESDecrypt(encryptedData); 
 
 
        //存儲(chǔ)用戶數(shù)據(jù) 
        JObject _usrInfo = (JObject)JsonConvert.DeserializeObject(result); 
 
        userInfo userInfo = new userInfo(); 
        userInfo.openId = _usrInfo["openId"].ToString(); 
 
        try //部分驗(yàn)證返回值中沒有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 
 
 
        //創(chuàng)建連接池對象(與數(shù)據(jù)庫服務(wù)器進(jìn)行連接) 
        SqlConnection conn = new SqlConnection("server=127.0.0.1;database=Test;uid=sa;pwd=1"); 
        //打開連接池 
        conn.Open(); 
        //創(chuàng)建命令對象 
        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); 
          // 執(zhí)行操作 
          try 
          { 
            int row = cmdUp.ExecuteNonQuery(); 
          } 
          catch (Exception ex) 
          { 
            context.Response.Write(ex.ToString()); 
          } 
        } 
        else 
        { 
          //多次訪問,記錄訪問次數(shù)counts  更新unionId是預(yù)防最初沒有,后期關(guān)聯(lián)后卻仍未記錄 
          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(); 
        } 
         
        //關(guān)閉連接池 
        conn.Close(); 
        #endregion 
 
        //返回解密后的用戶數(shù)據(jù) 
        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> 
    /// 獲取鏈接返回?cái)?shù)據(jù) 
    /// </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 微信小程序用戶數(shù)據(jù)解密 
 
    public static string AesKey; 
    public static string AesIV; 
 
    /// <summary> 
    /// AES解密 
    /// </summary> 
    /// <param name="inputdata">輸入的數(shù)據(jù)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 
  } 
}

以上就是本文的全部內(nèi)容,希望對大家的學(xué)習(xí)有所幫助,更多相關(guān)內(nèi)容請關(guān)注PHP中文網(wǎng)!

相關(guān)推薦:

如何解決微信小程序請求服務(wù)器手機(jī)預(yù)覽請求不到數(shù)據(jù)的問題

關(guān)于微信小程序中彈框和模態(tài)框的實(shí)現(xiàn)

以上就是微信小程序服務(wù)端獲取用戶解密信息的方法的詳細(xì)內(nèi)容,更多請關(guān)注php中文網(wǎng)其它相關(guān)文章!


小程序是一種不需要下載安裝即可使用的應(yīng)用,它實(shí)現(xiàn)了應(yīng)用“觸手可及”的夢想,用戶掃一掃或者搜一下即可打開應(yīng)用。

溫馨提示:喜歡本站的話,請收藏一下本站!

本類教程下載

系統(tǒng)下載排行

在线看毛片视频-国产免费av在线-欧美日韩一区二区三区-国产成人无码av在线播放无广告-亚洲人va欧美va人人爽-国产第一草草-西班牙黄色片-四虎在线网站8848-最新av片免费网站入口-东京热无码中文字幕av专区-日本大人吃奶视频xxxx-欧美精品一区二区三区四区五区-国产片天天弄-国产免费内射又粗又爽密桃视频-欧美爱爱网站-日韩v欧美
  • <li id="86scu"><menu id="86scu"></menu></li>
    <li id="86scu"></li>
    <button id="86scu"></button>
  • <s id="86scu"></s><button id="86scu"><menu id="86scu"></menu></button>
  • 国产女女做受ⅹxx高潮| 久久久久免费看黄a片app| 日韩a∨精品日韩在线观看| 亚洲精品在线视频播放| 奇米影视四色在线| 一道本在线免费视频| 日韩视频免费在线播放| 男人透女人免费视频| 亚洲精品怡红院| 丰满少妇在线观看| 玖玖爱视频在线| 99久re热视频精品98| 91看片淫黄大片91| 国产一区二区三区乱码| 青青青国产在线观看| 国产xxxxx在线观看| 久久九九国产视频| 奇米视频888| 青草全福视在线| 久久久久久久久久久福利| 一级黄色香蕉视频| 国产三级三级看三级| 亚洲成人动漫在线| 久久视频这里有精品| 成人中文字幕av| 北条麻妃亚洲一区| 国产中文字幕二区| 嫩草影院国产精品| 国产成人生活片| 久久综合久久色| 99精品一区二区三区的区别| 男女私大尺度视频| 久久人人爽av| 久草热视频在线观看| 亚洲免费av一区| 激情深爱综合网| 日韩在线一区视频| 国产97在线 | 亚洲| 久久这里只精品| 女人扒开屁股爽桶30分钟| 天天久久综合网| 日韩 欧美 高清| 国产精品12345| 一级黄色高清视频| jizz欧美激情18| 和岳每晚弄的高潮嗷嗷叫视频| 国产一区二区在线免费播放| 免费无码毛片一区二三区| 亚洲va在线va天堂va偷拍| 国产精品免费观看久久| 免费看日b视频| 波多野结衣免费观看| 亚洲一区二区三区四区五区xx| 亚洲 欧美 综合 另类 中字| av在线网站免费观看| 欧美大尺度做爰床戏| 国产偷人视频免费| 国产v片免费观看| 成人午夜视频免费观看| 国产盗摄视频在线观看| 亚洲一区精品视频在线观看| 国产a级片免费观看| 国模吧无码一区二区三区 | 久久99中文字幕| 老汉色影院首页| 四虎精品欧美一区二区免费| 天天综合天天添夜夜添狠狠添| 男人天堂网视频| 男女av免费观看| 亚洲爆乳无码专区| 日本在线观看a| 久久九九国产视频| 亚洲人成无码www久久久| 欧洲av无码放荡人妇网站| 久久成人免费观看| 久久黄色免费看| 永久免费的av网站| 国产xxxxhd| 东北少妇不带套对白| 狠狠干 狠狠操| 中文字幕永久视频| 亚洲天堂网2018| 国产性生活免费视频| 日本欧美视频在线观看| av动漫在线看| www.夜夜爽| 免费黄频在线观看| 黄色一级片在线看| 午夜精品久久久内射近拍高清 | 欧美成人三级在线播放| 亚洲精品第三页| 国产成人在线小视频| 粗暴91大变态调教| www.久久久久久久久久久| 国产激情片在线观看| 成人av一级片| 中文字幕线观看| 少妇高潮喷水在线观看| 国产视频1区2区3区| 女人帮男人橹视频播放| 久久久久久香蕉| 国产美女作爱全过程免费视频| 国产综合av在线| youjizz.com亚洲| 2022亚洲天堂| 手机看片日韩国产| 麻豆传传媒久久久爱| 日本大片免费看| 日本高清一区二区视频| 成人一级片网站| 日韩不卡视频一区二区| 黄色三级视频在线| 国产av麻豆mag剧集| 日韩欧美视频免费在线观看| 日韩一级在线免费观看| 日本xxxxxxxxxx75| 2021狠狠干| 亚洲图片 自拍偷拍| 亚洲不卡视频在线| 青青草精品视频在线| 国产精品无码免费专区午夜| 天天色天天综合网| 老熟妇仑乱视频一区二区| 欧美 日韩 亚洲 一区| 99久re热视频精品98| 一级黄色在线播放| 中文字幕av专区| jizzzz日本| 热久久精品国产| 男女曰b免费视频| 国产精品亚洲a| 国产成人精品视频ⅴa片软件竹菊| 久久亚洲精品无码va白人极品| 午夜激情视频网| 久久精品亚洲天堂| 国产又大又长又粗又黄| 亚洲高清视频免费| 欧美日韩一区二区三区电影| 中文字幕免费高| 一本二本三本亚洲码| 乱子伦一区二区| 日本福利视频一区| 国产3p露脸普通话对白| 日韩av片在线看| 91最新在线观看| 五月花丁香婷婷| eeuss中文| 日韩视频免费播放| 激情网站五月天| 不卡中文字幕在线观看| 六月婷婷激情网| 日本国产在线播放| av无码精品一区二区三区| 亚洲久久中文字幕| 4444亚洲人成无码网在线观看| 日韩精品一区二区免费| 国产精品视频一区二区三区四区五区 | 九九精品久久久| 亚洲天堂网站在线| 久久综合久久网| 日韩欧美黄色大片| 久久久精品视频国产| 无码粉嫩虎白一线天在线观看| 成年人在线看片| 韩国黄色一级大片| 国产91对白刺激露脸在线观看| 欧美一级小视频| 精品国产免费av| 日韩高清在线一区二区| 北条麻妃69av| 警花观音坐莲激情销魂小说| 欧美激情国产精品日韩| 天堂v在线视频| 日韩精品一区二区三区不卡 | 国产成人在线免费看| 亚欧精品在线视频| 色欲av无码一区二区人妻| 日本成人性视频| 91国产精品视频在线观看| 亚洲中文字幕无码一区二区三区| 97公开免费视频| 日韩精品综合在线| 久久精品亚洲天堂| 91淫黄看大片| 日本一区二区黄色| 日本香蕉视频在线观看| 一本二本三本亚洲码| 国产一级做a爰片久久| 日韩av资源在线| 精品少妇人妻av免费久久洗澡| 中文字幕日韩久久| 一区二区免费av| 人人爽人人av| 狠狠热免费视频| www.超碰com| 国产三级三级三级看三级| av片中文字幕| wwwwww.色| 五月天av在线播放| 国产3p在线播放|