在线看毛片视频-国产免费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>
  • 手机看片福利盒子久久| 麻豆传媒网站在线观看| 男人天堂网站在线| 熟女熟妇伦久久影院毛片一区二区| av动漫在线观看| 91专区在线观看| 黄色成人在线看| 黄色一级在线视频| 99视频在线免费播放| 亚洲熟妇国产熟妇肥婆| 成人免费在线小视频| 131美女爱做视频| 青青青国产在线视频| 超碰成人在线播放| 国产黑丝在线视频| 国产青草视频在线观看| 免费看欧美黑人毛片| 国产精品333| 57pao国产成永久免费视频| 香蕉视频xxx| 大j8黑人w巨大888a片| 国产成人久久777777| 不卡中文字幕在线观看| 欧美日韩理论片| 国产欧美日韩网站| 日韩av在线中文| 欧美国产视频一区| 可以在线看的黄色网址| 亚洲精品mv在线观看| 日韩av高清在线看片| 一级黄色香蕉视频| 久久久久久久免费视频| 黑人糟蹋人妻hd中文字幕 | 无罩大乳的熟妇正在播放| 欧美视频第一区| 亚洲精品在线网址| 国产精品涩涩涩视频网站| 男人草女人视频| 色www免费视频| 黑森林福利视频导航| 国产日韩欧美大片| 国产一级片自拍| 欧美精品一区二区三区免费播放| 国产欧美自拍视频| 我看黄色一级片| 日韩av黄色网址| 成人在线观看你懂的| 日本一本在线视频| 亚洲一区精品视频在线观看| 久久久精品在线视频| 成人性做爰片免费视频| 国产原创精品在线| 欧美黄色一级片视频| 99热自拍偷拍| 日韩a级在线观看| 91免费国产精品| 中文字幕免费高| 天天操天天干天天做| 99精品人妻少妇一区二区 | 无码人妻少妇伦在线电影| 在线视频一二区| 中文字幕一区二区在线观看视频| 亚洲最大成人在线观看| 国内自拍视频一区| 黑鬼大战白妞高潮喷白浆| 日韩精品xxxx| 国产激情在线观看视频| 熟妇人妻va精品中文字幕| 男人透女人免费视频| 北条麻妃在线一区| 免费一级特黄录像| 美女网站色免费| 一级一片免费播放| 成人在线免费高清视频| 国产xxxx振车| 漂亮人妻被中出中文字幕| 18禁男女爽爽爽午夜网站免费| 久久婷婷国产精品| 男人添女人下面免费视频| 99re6在线观看| 亚洲天堂第一区| 欧美成人黑人猛交| 日本超碰在线观看| 麻豆视频传媒入口| 精品国产免费av| 肉色超薄丝袜脚交| 九一国产精品视频| 中文字幕22页| 霍思燕三级露全乳照| 亚洲成人av免费看| 日本人妻伦在线中文字幕| 北条麻妃在线视频观看| 老司机午夜性大片| 青青草国产精品视频| 国产精彩免费视频| 中文字幕日韩精品无码内射| 人妻有码中文字幕| 青青视频免费在线观看| 欧美日韩一区二区在线免费观看| av中文字幕网址| 91专区在线观看| 小说区视频区图片区| 日韩精品视频一区二区在线观看| 久久精品亚洲天堂| 北条麻妃在线一区| 国产a级片网站| 国产奶头好大揉着好爽视频| 男人的天堂99| 欧美日韩视频免费| 午夜影院免费版| 999精品视频在线| 日本日本19xxxⅹhd乱影响| 日本在线观看视频一区| 97在线免费公开视频| 欧美黑人在线观看| 国产高清免费在线| 伊人成人222| 亚州精品一二三区| 国产无套内射久久久国产| 蜜臀精品一区二区| 国产精品无码电影在线观看| 青青草原播放器| 在线观看免费不卡av| 中文字幕网av| 草草草在线视频| 国产裸体舞一区二区三区| 欧美变态另类刺激| 日韩五码在线观看| www.日本在线播放| 你懂的av在线| 日韩av在线综合| 亚洲 中文字幕 日韩 无码| aaaaaa亚洲| 熟妇人妻无乱码中文字幕真矢织江| 男人添女人下部高潮视频在观看| 黄色成人在线免费观看| 亚洲乱码日产精品bd在线观看| avove在线观看| 男人天堂手机在线视频| 人人干视频在线| 丝袜老师办公室里做好紧好爽| 自慰无码一区二区三区| 又色又爽又高潮免费视频国产| 欧美黑人又粗又大又爽免费| 天天干天天操天天做| 天天干天天操天天干天天操| 欧美极品少妇无套实战| 免费看日本毛片| 五月婷婷丁香色| 久久香蕉视频网站| 日韩视频在线视频| 免费午夜视频在线观看| 中文字幕22页| 人妻av无码专区| 午夜免费一区二区| 久久最新免费视频| 欧美一区二区三区爽大粗免费| 免费在线观看毛片网站| 一区二区在线免费看| 少妇大叫太大太粗太爽了a片小说| 日本福利视频一区| 在线观看免费黄网站| 黄网站色视频免费观看| 亚洲色成人一区二区三区小说| 99视频免费播放| 人妻av无码专区| 91高清国产视频| 国产 福利 在线| 做爰高潮hd色即是空| 久久婷婷国产精品| 日韩a级黄色片| 亚洲最大天堂网| 色一情一乱一伦一区二区三区日本| 欧美日韩久久婷婷| 成年人小视频网站| 日韩中文字幕在线免费| www.桃色.com| 亚洲视频在线观看一区二区三区| 屁屁影院ccyy国产第一页| 欧美美女性视频| 97视频在线免费播放| 欧洲精品在线播放| 国产三级中文字幕| theporn国产精品| 午夜dv内射一区二区| 婷婷五月综合缴情在线视频| 永久免费网站视频在线观看| 亚洲精品手机在线观看| 三级4级全黄60分钟| 少妇无码av无码专区在线观看| 成年丰满熟妇午夜免费视频| 久国产精品视频| 中文字幕22页| 九九九在线观看视频| 欧美日韩激情视频在线观看| 99久久国产综合精品五月天喷水| 日韩中文在线字幕| 国产日韩第一页| 污污污污污污www网站免费| 国产成人亚洲综合无码|