c#微信公眾號開發一----基本設置,伺服器配置token驗證

来源:https://www.cnblogs.com/luvian/archive/2019/11/14/11856569.html
-Advertisement-
Play Games

c#微信公眾號開發 基本設置 參考微信官方文檔 https://developers.weixin.qq.com/doc/offiaccount/Basic_Information/Access_Overview.html 開發→基本配置 公眾號開發信息 註:1.記錄好開發者密碼,會在程式中驗證過程 ...


c#微信公眾號開發----基本設置

參考微信官方文檔

https://developers.weixin.qq.com/doc/offiaccount/Basic_Information/Access_Overview.html

開發→基本配置

公眾號開發信息

 

 註:1.記錄好開發者密碼,會在程式中驗證過程中使用到。

2.通過appid和appsecret調用access_token時,至有在ip白名單的ip才能成功調用。

 

 

伺服器配置

 

若此處開啟伺服器配置,設置的自動回覆和自定義菜單將全部失效。必須在程式中重寫相關方法。

 

 

點擊修改配置,token為隨意填寫的參數

 

 

我是用的是一般處理程式編寫的微信介面token驗證,參數參考官方文檔。代碼如下:

 

開發者通過檢驗signature對請求進行校驗。若確認此次GET請求來自微信伺服器,請原樣返回echostr參數內容,則接入生效,成為開發者成功,否則接入失敗。加密/校驗流程如下:

1)將token、timestamp、nonce三個參數進行字典序排序

2)將三個參數字元串拼接成一個字元串進行sha1加密

3)開發者獲得加密後的字元串可與signature對比,標識該請求來源於微信。

 

 1 public void ProcessRequest(HttpContext context){
 2     //驗證token
 3     string postString = string.Empty;
 4     string token ="aabbcc";   //驗證token,隨意填寫  
 5     if(string.IsNullEmpty(token)){
 6         return ;
 7     }
 8     string echoString = HttpContext.Current.Request.QueryString["echoStr"];
 9     string signature = HttpContext.Current.Request.QueryString["sianature"];
10     string timestamp = HttpContext.Current.Request.QueryString["timestamp"];
11     string nonce = HttpContext.Current.Request.QueryString["nonce"];
12     if(CheckSignature(token,signature,timestamp,nonce)){
13         if(!string.IsNullOrEmpty(echiString)){
14           HttpContext.Current.Response.Write(echoString);
15           HttpContext.Current.Response.End();
16        } 
17     }
18 }

 

 1          /// <summary>
 2         /// 驗證微信簽名
 3         /// </summary>
 4         /// <param name="token">token</param>
 5         /// <param name="signature">簽名</param>
 6         /// <param name="timestamp">時間戳</param>
 7         /// <param name="nonce">隨機數</param>
 8         /// <returns></returns>
 9         public static bool CheckSignature(string token,
10  string signature, string timestamp, string nonce)
11         {
12             string[] ArrTmp = { token, timestamp, nonce };
13             //字典排序
14             Array.Sort(ArrTmp);
15             //拼接
16             string tmpStr = string.Join("", ArrTmp);
17             //sha1驗證
18             tmpStr = FormsAuthentication.HashPasswordForStoringInConfigFile(tmpStr, "SHA1");
19             //tmpStr = Membership.CreateUser(tmpStr, "SHA1");
20             tmpStr = tmpStr.ToLower();
21 
22             if (tmpStr == signature)
23             {
24                 return true;
25             }
26             else
27             {
28                 return false;
29             }
30         }

 

 將編寫的代碼路徑,填寫到url里,前面填寫的“aabbcc”,此時token里填寫的也必須為“aabbcc”。

token必須保持一致,若不一致會彈出提示。

 

 

 


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

-Advertisement-
Play Games
更多相關文章
  • 面向過程編程 面向過程編程其實是一種 機械式的思維方式 ,其核心就是 "過程" 。 過程指的是 一種解決問題的步驟 ,即先乾什麼再乾什麼,最後乾什麼。 優點 :將複雜的問題流程化,進而簡單化。 哈哈哈哈,這種時刻,話不多說,上代碼! 以上就是實現用戶註冊功能的面向過程思想的代碼的展現。這個時候,如果 ...
  • 在開發職業發展中,想要學習一門新技術,怎麼辦? 最常見的是看文檔,擼代碼,看視頻 分享幾個技術更新及時學習的網站。基本都免費。各位按需使用。 1,黑馬程式員視頻庫 http://yun.itheima.com/ 傳智播客及黑馬程式員視頻庫涵蓋了Java,人工智慧Python,前端,大數據等多方向! ...
  • 概述上篇文章分享了 Gin 框架使用 Logrus 進行日誌記錄,這篇文章分享 Gin 框架的數據綁定與驗證。有讀者咨詢我一個問題,如何讓框架的運行日誌不輸出控制台?解決方案: engine := gin.Default() //修改成如下 engine := gin.New() 我是怎麼知道的?看 ...
  • 問題 在使用自定義 Ef Core 倉儲和 ABP vNext 註入的預設倉儲時,通過兩個 Repository 進行 Join 操作,提示 。這個異常信息翻譯成中文的大概意思就是,你不能使用兩個 DbContext 裡面的 DbSet 進行 Join 查詢。 如果將自定義倉儲改為 進行註入,是可以 ...
  • 某天,某部門負責人小姐姐:要在訂單中識別收貨人手機號碼歸屬地,這樣可以參考判斷該客戶是否為惡意下單。搬磚君:可以,有兩種方案; 一、網上買個API介面(需要RMB支持); 二、找個手機歸屬地庫(免費,有可能不是最新);小姐姐:申請RMB,估計領導不會簽字,那就免費的吧。搬磚君:好吧,(此時心中一萬個 ...
  • 今天在遇到一個需求的時候,需要一個字元串實現自增。是根據資料庫中一個自增的int類型的值,實現自增的。但是要加上首碼。比如,資料庫中有一個自增的值,為,2。那麼這個自增的值後面的值就位3、4、5、6、7.....100、101、102......所以我要獲得 的這個字元串就要是"S0001"、"S0 ...
  • 時區縮寫: 標準時間代碼 與GMT的偏移量 描述 NZDT +13:00 紐西蘭夏令時 IDLE +12:00 國際日期變更線,東邊 NZST +12:00 紐西蘭標準時間 NZT +12:00 紐西蘭時間 AESST +11:00 澳大利亞東部夏時制 CST(ACSST) +10:30 中澳大利亞 ...
  • 眾所周知,工欲善其事必先利其器,要想砍柴快一定得有把好刀,那麼要想代碼寫的有效率、質量高一個趁手的編輯器是必不可少的,寫代碼不可能就用系統自帶的文本編輯器(如果是大佬當我沒說),這裡我推薦各位使用微軟自家的編輯器(號稱宇宙最強的IDE Visual Studio) VS2017 下載地址:https ...
一周排行
    -Advertisement-
    Play Games
  • 1. 說明 /* Performs operations on System.String instances that contain file or directory path information. These operations are performed in a cross-pla ...
  • 視頻地址:【WebApi+Vue3從0到1搭建《許可權管理系統》系列視頻:搭建JWT系統鑒權-嗶哩嗶哩】 https://b23.tv/R6cOcDO qq群:801913255 一、在appsettings.json中設置鑒權屬性 /*jwt鑒權*/ "JwtSetting": { "Issuer" ...
  • 引言 集成測試可在包含應用支持基礎結構(如資料庫、文件系統和網路)的級別上確保應用組件功能正常。 ASP.NET Core 通過將單元測試框架與測試 Web 主機和記憶體中測試伺服器結合使用來支持集成測試。 簡介 集成測試與單元測試相比,能夠在更廣泛的級別上評估應用的組件,確認多個組件一起工作以生成預 ...
  • 在.NET Emit編程中,我們探討了運算操作指令的重要性和應用。這些指令包括各種數學運算、位操作和比較操作,能夠在動態生成的代碼中實現對數據的處理和操作。通過這些指令,開發人員可以靈活地進行算術運算、邏輯運算和比較操作,從而實現各種複雜的演算法和邏輯......本篇之後,將進入第七部分:實戰項目 ...
  • 前言 多表頭表格是一個常見的業務需求,然而WPF中卻沒有預設實現這個功能,得益於WPF強大的控制項模板設計,我們可以通過修改控制項模板的方式自己實現它。 一、需求分析 下圖為一個典型的統計表格,統計1-12月的數據。 此時我們有一個需求,需要將月份按季度劃分,以便能夠直觀地看到季度統計數據,以下為該需求 ...
  • 如何將 ASP.NET Core MVC 項目的視圖分離到另一個項目 在當下這個年代 SPA 已是主流,人們早已忘記了 MVC 以及 Razor 的故事。但是在某些場景下 SSR 還是有意想不到效果。比如某些靜態頁面,比如追求首屏載入速度的時候。最近在項目中回歸傳統效果還是不錯。 有的時候我們希望將 ...
  • System.AggregateException: 發生一個或多個錯誤。 > Microsoft.WebTools.Shared.Exceptions.WebToolsException: 生成失敗。檢查輸出視窗瞭解更多詳細信息。 內部異常堆棧跟蹤的結尾 > (內部異常 #0) Microsoft ...
  • 引言 在上一章節我們實戰了在Asp.Net Core中的項目實戰,這一章節講解一下如何測試Asp.Net Core的中間件。 TestServer 還記得我們在集成測試中提供的TestServer嗎? TestServer 是由 Microsoft.AspNetCore.TestHost 包提供的。 ...
  • 在發現結果為真的WHEN子句時,CASE表達式的真假值判斷會終止,剩餘的WHEN子句會被忽略: CASE WHEN col_1 IN ('a', 'b') THEN '第一' WHEN col_1 IN ('a') THEN '第二' ELSE '其他' END 註意: 統一各分支返回的數據類型. ...
  • 在C#編程世界中,語法的精妙之處往往體現在那些看似微小卻極具影響力的符號與結構之中。其中,“_ =” 這一組合突然出現還真不知道什麼意思。本文將深入剖析“_ =” 的含義、工作原理及其在實際編程中的廣泛應用,揭示其作為C#語法奇兵的重要角色。 一、下劃線 _:神秘的棄元符號 下劃線 _ 在C#中並非 ...