.Net獲取小程式用戶UnionID

来源:https://www.cnblogs.com/lihuanancn/archive/2018/04/03/8710010.html
-Advertisement-
Play Games

第一次寫博客,寫的不好多多海涵! 小程式獲取UnionID的流程,用code去換取session_key,然後去解密小程式獲取到的那串字元,目前小程式還沒提供.net 解密案例,在這裡貼出來,互相學習一下! 這裡就不多說了,獲取原理大家都懂得! 直接上代碼 備註:以下代碼只供參考,不考慮代碼穩健性! ...


第一次寫博客,寫的不好多多海涵!


    小程式獲取UnionID的流程,用code去換取session_key,然後去解密小程式獲取到的那串字元,目前小程式還沒提供.net 解密案例,在這裡貼出來,互相學習一下!

這裡就不多說了,獲取原理大家都懂得!

 直接上代碼

 

備註:以下代碼只供參考,不考慮代碼穩健性!!!!!!

 

 1   public string GetMiniAppUserUnionID(string code, string userInfo, string iv)
 2   {
 5             Dictionary<string, string> parames = new Dictionary<string, string>();
 6             parames.Add("appid", "");
 7             parames.Add("secret", "");
 8             parames.Add("js_code", code);
 9             parames.Add("grant_type", "authorization_code");
10             string res = HttpWebResponseHelper.Get("https://api.weixin.qq.com/sns/jscode2session", parames);
12             var obj = Parse(res);
string unionid="";
13 if (!res.Contains("errcode")) 14 { 15 userJson = AESDecrypt(userInfo, obj.session_key, iv); 16 var userobj = Parse(userJson); 17 unionid = userobj.unionId;
}
               return unionid ;
19  } 
AESDecrypt解密演算法
 1         /// <summary>
 2         /// AES解密
 3         /// </summary>
 4         /// <param name="text"></param>
 5         /// <param name="password"></param>
 6         /// <param name="iv"></param>
 7         /// <returns></returns>
 8         public static string AESDecrypt(string text, string password, string iv)
 9         {
10             RijndaelManaged rijndaelCipher = new RijndaelManaged();
11             rijndaelCipher.Mode = CipherMode.CBC;
12             rijndaelCipher.Padding = PaddingMode.PKCS7;
13 
14             byte[] encryptedData = Convert.FromBase64String(text);
15             byte[] pwdBytes = Convert.FromBase64String(password);
16 
17             rijndaelCipher.Key = pwdBytes;
18 
19             if (!string.IsNullOrEmpty(iv))
20             {
21                 byte[] ivBytes = Convert.FromBase64String(iv); 
22                 rijndaelCipher.IV = ivBytes;
23             }
24             ICryptoTransform transform = rijndaelCipher.CreateDecryptor();
25             byte[] plainText = transform.TransformFinalBlock(encryptedData, 0, encryptedData.Length);
26 
27             return Encoding.UTF8.GetString(plainText);
28 
29         }

 

序列化方法



1   public static dynamic Parse(string json, Encoding encoding)
2         {
3             using (var reader = JsonReaderWriterFactory.CreateJsonReader(encoding.GetBytes(json), XmlDictionaryReaderQuotas.Max))
4             {
5                 return ToValue(XElement.Load(reader));
6             }
7         }

 

打個廣告:       晨風電影    https://www.chenfengdy.top/  

 

 






您的分享是我們最大的動力!

-Advertisement-
Play Games
更多相關文章
  • Description P教授要去看奧運,但是他舍不下他的玩具,於是他決定把所有的玩具運到北京。他使用自己的壓縮器進行壓縮,其可以將任意物品變成一堆,再放到一種特殊的一維容器中。P教授有編號為1...N的N件玩具,第i件玩具經過壓縮後變成一維長度為Ci.為了方便整理,P教授要求在一個一維容器中的玩具 ...
  • 多線程相對於其他 Java 知識點來講,有一定的學習門檻,並且瞭解起來比較費勁。在平時工作中如若使用不當會出現數據錯亂、執行效率低(還不如單線程去運行)或者死鎖程式掛掉等等問題,所以掌握瞭解多線程至關重要。 本文從基礎概念開始到最後的併發模型由淺入深,講解下線程方面的知識。 概念梳理 本節我將帶大家 ...
  • 數數並說序列是一個整數序列,第二項起每一項的值為對前一項的計數,其前五項如下: 1 被讀作 "一個一" 即 11。11 被讀作 "兩個一" 即 21。21 被讀作 "一個二 和 一個一" 即 1211。 給一個正整數 n ,輸出數數並說序列的第 n 項。 註意:該整數序列的每項都輸出為字元串。 一看 ...
  • 概述 UWP Community Toolkit 中有一個圖片的擴展控制項 - ImageEx,本篇我們結合代碼詳細講解 ImageEx 的實現。 ImageEx 是一個圖片的擴展控制項,包括 ImageEx 和 RoundImageEx,它可以在非同步載入圖片源時顯示載入狀態,也可以在載入前使用占點陣圖片 ...
  • 學習內容:https://www.cnblogs.com/5ishare/p/5801229.html 註意點: 1、NuGet程式包引入ef,使用DbSet<>必須引入ef。本例EFCodeFirstDemo跟EFCodeFirstDataAccess都需要引入EF 2、connectionstr ...
  • surging是什麼 surging 是一個分散式微服務框架,提供高性能RPC遠程服務調用,採用Zookeeper、Consul作為surging服務的註冊中心,集成了哈希,隨機,輪詢、壓力最小優先作為負載均衡的演算法,RPC集成採用的是netty框架,採用非同步傳輸. surging的特色是什麼 開源 ...
  • 最佳答案 報這個錯是因為,提交了主鍵重覆的數據,雖然未提交到資料庫中 但是現在的EF上下文中已經包含了我提交的數據,下次在提交正確數據時, 原來添加到上下文中的數據依然還在。。如何處理這個問題呢? 最佳答案 報這個錯是因為,提交了主鍵重覆的數據,雖然未提交到資料庫中 但是現在的EF上下文中已經包含了 ...
  • 最近公司有一個項目模塊讓用nosql-mongodb替換了,故,對mongodb做了一點研究,然後分享一下! 1.首先說一下安裝時的坑 下載mongodb,如果你從官網下載,將會是一件很慢的事情,在公司我都沒有下載下來,回家下載的。 安裝的時候非常坑,此圖是我已經安裝好打開的,如果你第一次安裝,請不 ...
一周排行
    -Advertisement-
    Play Games
  • 移動開發(一):使用.NET MAUI開發第一個安卓APP 對於工作多年的C#程式員來說,近來想嘗試開發一款安卓APP,考慮了很久最終選擇使用.NET MAUI這個微軟官方的框架來嘗試體驗開發安卓APP,畢竟是使用Visual Studio開發工具,使用起來也比較的順手,結合微軟官方的教程進行了安卓 ...
  • 前言 QuestPDF 是一個開源 .NET 庫,用於生成 PDF 文檔。使用了C# Fluent API方式可簡化開發、減少錯誤並提高工作效率。利用它可以輕鬆生成 PDF 報告、發票、導出文件等。 項目介紹 QuestPDF 是一個革命性的開源 .NET 庫,它徹底改變了我們生成 PDF 文檔的方 ...
  • 項目地址 項目後端地址: https://github.com/ZyPLJ/ZYTteeHole 項目前端頁面地址: ZyPLJ/TreeHoleVue (github.com) https://github.com/ZyPLJ/TreeHoleVue 目前項目測試訪問地址: http://tree ...
  • 話不多說,直接開乾 一.下載 1.官方鏈接下載: https://www.microsoft.com/zh-cn/sql-server/sql-server-downloads 2.在下載目錄中找到下麵這個小的安裝包 SQL2022-SSEI-Dev.exe,運行開始下載SQL server; 二. ...
  • 前言 隨著物聯網(IoT)技術的迅猛發展,MQTT(消息隊列遙測傳輸)協議憑藉其輕量級和高效性,已成為眾多物聯網應用的首選通信標準。 MQTTnet 作為一個高性能的 .NET 開源庫,為 .NET 平臺上的 MQTT 客戶端與伺服器開發提供了強大的支持。 本文將全面介紹 MQTTnet 的核心功能 ...
  • Serilog支持多種接收器用於日誌存儲,增強器用於添加屬性,LogContext管理動態屬性,支持多種輸出格式包括純文本、JSON及ExpressionTemplate。還提供了自定義格式化選項,適用於不同需求。 ...
  • 目錄簡介獲取 HTML 文檔解析 HTML 文檔測試參考文章 簡介 動態內容網站使用 JavaScript 腳本動態檢索和渲染數據,爬取信息時需要模擬瀏覽器行為,否則獲取到的源碼基本是空的。 本文使用的爬取步驟如下: 使用 Selenium 獲取渲染後的 HTML 文檔 使用 HtmlAgility ...
  • 1.前言 什麼是熱更新 游戲或者軟體更新時,無需重新下載客戶端進行安裝,而是在應用程式啟動的情況下,在內部進行資源或者代碼更新 Unity目前常用熱更新解決方案 HybridCLR,Xlua,ILRuntime等 Unity目前常用資源管理解決方案 AssetBundles,Addressable, ...
  • 本文章主要是在C# ASP.NET Core Web API框架實現向手機發送驗證碼簡訊功能。這裡我選擇是一個互億無線簡訊驗證碼平臺,其實像阿裡雲,騰訊雲上面也可以。 首先我們先去 互億無線 https://www.ihuyi.com/api/sms.html 去註冊一個賬號 註冊完成賬號後,它會送 ...
  • 通過以下方式可以高效,並保證數據同步的可靠性 1.API設計 使用RESTful設計,確保API端點明確,並使用適當的HTTP方法(如POST用於創建,PUT用於更新)。 設計清晰的請求和響應模型,以確保客戶端能夠理解預期格式。 2.數據驗證 在伺服器端進行嚴格的數據驗證,確保接收到的數據符合預期格 ...