好湿?好紧?好多水好爽自慰,久久久噜久噜久久综合,成人做爰A片免费看黄冈,机机对机机30分钟无遮挡

主頁 > 知識庫 > ASP.NET微信開發(接口指南)

ASP.NET微信開發(接口指南)

熱門標簽:地圖標注的公司有哪些 天心智能電銷機器人 地圖定位圖標標注 遂寧市地圖標注app 400電話辦理哪家性價比高 地圖標注專業團隊 濮陽外呼電銷系統怎么樣 代理接電話機器人如何取消 塔城代理外呼系統

公眾平臺用戶提交信息后,微信服務器將發送GET請求到填寫的URL上,并且帶上四個參數:

開發者通過檢驗signature對請求進行校驗(下面有校驗方式)。若確認此次GET請求來自微信服務器,請原樣返回echostr參數內容,則接入生效,否則接入失敗。

signature結合了開發者填寫的token參數和請求中的timestamp參數、nonce參數。

加密/校驗流程:

  • 1. 將token、timestamp、nonce三個參數進行字典序排序
  • 2. 將三個參數字符串拼接成一個字符串進行sha1加密
  • 3. 開發者獲得加密后的字符串可與signature對比,標識該請求來源于微信
/// summary> 
 /// 驗證簽名 
 /// /summary> 
 /// param name="signature">/param> 
 /// param name="timestamp">/param> 
 /// param name="nonce">/param> 
 /// returns>/returns> 
 public static bool CheckSignature(String signature, String timestamp, String nonce) 
 { 
 String[] arr = new String[] { token, timestamp, nonce }; 
 // 將token、timestamp、nonce三個參數進行字典序排序 
 Array.SortString>(arr); 
 
 StringBuilder content = new StringBuilder(); 
 for (int i = 0; i  arr.Length; i++) 
 { 
  content.Append(arr[i]); 
 } 
 
 String tmpStr = SHA1_Encrypt(content.ToString()); 
 
 
 // 將sha1加密后的字符串可與signature對比,標識該請求來源于微信 
 return tmpStr != null ? tmpStr.Equals(signature) : false; 
 } 
 
 
 /// summary> 
 /// 使用缺省密鑰給字符串加密 
 /// /summary> 
 /// param name="Source_String">/param> 
 /// returns>/returns> 
 public static string SHA1_Encrypt(string Source_String) 
 { 
 byte[] StrRes = Encoding.Default.GetBytes(Source_String); 
 HashAlgorithm iSHA = new SHA1CryptoServiceProvider(); 
 StrRes = iSHA.ComputeHash(StrRes); 
 StringBuilder EnText = new StringBuilder(); 
 foreach (byte iByte in StrRes) 
 { 
  EnText.AppendFormat("{0:x2}", iByte); 
 } 
 return EnText.ToString(); 
 } 

接入后是消息推送當普通微信用戶向公眾賬號發消息時,微信服務器將POST該消息到填寫的URL上。

 protected void Page_Load(object sender, EventArgs e) 
 { 
 
 if (Request.HttpMethod.ToUpper() == "GET") 
 { 
  // 微信加密簽名 
  string signature = Request.QueryString["signature"]; 
  // 時間戳 
  string timestamp = Request.QueryString["timestamp"]; 
  // 隨機數 
  string nonce = Request.QueryString["nonce"]; 
  // 隨機字符串 
  string echostr = Request.QueryString["echostr"]; 
  if (WeixinServer.CheckSignature(signature, timestamp, nonce)) 
  { 
  Response.Write(echostr); 
  } 
 
 } 
 else if (Request.HttpMethod.ToUpper() == "POST") 
 { 
 
  StreamReader stream = new StreamReader(Request.InputStream); 
  string xml = stream.ReadToEnd(); 
 
  processRequest(xml); 
 } 
 
 
 } 
 
 
 /// summary> 
 /// 處理微信發來的請求 
 /// /summary> 
 /// param name="xml">/param> 
 public void processRequest(String xml) 
 { 
 try 
 { 
 
  // xml請求解析 
  Hashtable requestHT = WeixinServer.ParseXml(xml); 
 
  // 發送方帳號(open_id) 
  string fromUserName = (string)requestHT["FromUserName"]; 
  // 公眾帳號 
  string toUserName = (string)requestHT["ToUserName"]; 
  // 消息類型 
  string msgType = (string)requestHT["MsgType"]; 
 
  //文字消息 
  if (msgType == ReqMsgType.Text) 
  { 
  // Response.Write(str); 
 
  string content = (string)requestHT["Content"]; 
  if(content=="1") 
  { 
   // Response.Write(str); 
   Response.Write(GetNewsMessage(toUserName, fromUserName)); 
   return; 
  } 
  if (content == "2") 
  { 
   Response.Write(GetUserBlogMessage(toUserName, fromUserName)); 
   return; 
  } 
  if (content == "3") 
  { 
   Response.Write(GetGroupMessage(toUserName, fromUserName)); 
   return; 
  } 
  if (content == "4") 
  { 
   Response.Write(GetWinePartyMessage(toUserName, fromUserName)); 
   return; 
  } 
  Response.Write(GetMainMenuMessage(toUserName, fromUserName, "你好,我是vinehoo,")); 
 
  } 
  else if (msgType == ReqMsgType.Event) 
  { 
  // 事件類型 
  String eventType = (string)requestHT["Event"]; 
  // 訂閱 
  if (eventType==ReqEventType.Subscribe) 
  { 
   
   Response.Write(GetMainMenuMessage(toUserName, fromUserName, "謝謝您的關注!,")); 
   
  } 
  // 取消訂閱 
  else if (eventType==ReqEventType.Unsubscribe) 
  { 
   // TODO 取消訂閱后用戶再收不到公眾號發送的消息,因此不需要回復消息 
  } 
  // 自定義菜單點擊事件 
  else if (eventType==ReqEventType.CLICK) 
  { 
   // TODO 自定義菜單權沒有開放,暫不處理該類消息 
  } 
  } 
  else if (msgType == ReqMsgType.Location) 
  { 
  } 
 
 
 } 
 catch (Exception e) 
 { 
  
 } 
 }pre name="code" class="csharp"> protected void Page_Load(object sender, EventArgs e) 
 { 
 
 if (Request.HttpMethod.ToUpper() == "GET") 
 { 
  // 微信加密簽名 
  string signature = Request.QueryString["signature"]; 
  // 時間戳 
  string timestamp = Request.QueryString["timestamp"]; 
  // 隨機數 
  string nonce = Request.QueryString["nonce"]; 
  // 隨機字符串 
  string echostr = Request.QueryString["echostr"]; 
  if (WeixinServer.CheckSignature(signature, timestamp, nonce)) 
  { 
  Response.Write(echostr); 
  } 
 
 } 
 else if (Request.HttpMethod.ToUpper() == "POST") 
 { 
 
  StreamReader stream = new StreamReader(Request.InputStream); 
  string xml = stream.ReadToEnd(); 
 
  processRequest(xml); 
 } 
 
 
 } 
 
 
 /// summary> 
 /// 處理微信發來的請求 
 /// /summary> 
 /// param name="xml">/param> 
 public void processRequest(String xml) 
 { 
 try 
 { 
 
  // xml請求解析 
  Hashtable requestHT = WeixinServer.ParseXml(xml); 
 
  // 發送方帳號(open_id) 
  string fromUserName = (string)requestHT["FromUserName"]; 
  // 公眾帳號 
  string toUserName = (string)requestHT["ToUserName"]; 
  // 消息類型 
  string msgType = (string)requestHT["MsgType"]; 
 
  //文字消息 
  if (msgType == ReqMsgType.Text) 
  { 
  // Response.Write(str); 
 
  string content = (string)requestHT["Content"]; 
  if(content=="1") 
  { 
   // Response.Write(str); 
   Response.Write(GetNewsMessage(toUserName, fromUserName)); 
   return; 
  } 
  if (content == "2") 
  { 
   Response.Write(GetUserBlogMessage(toUserName, fromUserName)); 
   return; 
  } 
  if (content == "3") 
  { 
   Response.Write(GetGroupMessage(toUserName, fromUserName)); 
   return; 
  } 
  if (content == "4") 
  { 
   Response.Write(GetWinePartyMessage(toUserName, fromUserName)); 
   return; 
  } 
  Response.Write(GetMainMenuMessage(toUserName, fromUserName, "你好,我是vinehoo,")); 
 
  } 
  else if (msgType == ReqMsgType.Event) 
  { 
  // 事件類型 
  String eventType = (string)requestHT["Event"]; 
  // 訂閱 
  if (eventType==ReqEventType.Subscribe) 
  { 
   
   Response.Write(GetMainMenuMessage(toUserName, fromUserName, "謝謝您的關注!,")); 
   
  } 
  // 取消訂閱 
  else if (eventType==ReqEventType.Unsubscribe) 
  { 
   // TODO 取消訂閱后用戶再收不到公眾號發送的消息,因此不需要回復消息 
  } 
  // 自定義菜單點擊事件 
  else if (eventType==ReqEventType.CLICK) 
  { 
   // TODO 自定義菜單權沒有開放,暫不處理該類消息 
  } 
  } 
  else if (msgType == ReqMsgType.Location) 
  { 
  } 
 
 
 } 
 catch (Exception e) 
 { 
  
 } 
 }/pre>br> 
pre>/pre> 
br> 
br> 

本文已被整理到了《ASP.NET微信開發教程匯總》,歡迎大家學習閱讀。

以上就是關于ASP.NET微信開發接口指南的相關內容介紹,希望對大家的學習有所幫助。

您可能感興趣的文章:
  • .NET微信公眾號查看關注者接口
  • C#.net 微信公眾賬號接口開發
  • asp.net實現微信公眾賬號接口開發教程
  • .net實現微信公眾賬號接口開發實例代碼
  • 微信JS接口匯總及使用詳解
  • PHP對接微信公眾平臺消息接口開發流程教程
  • 微信API接口大全
  • 微信公眾號支付(二)實現統一下單接口
  • 微信公眾平臺開發接口PHP SDK完整版
  • .NET微信公眾號客服接口

標簽:麗江 宜春 汕頭 重慶 婁底 吉林 本溪 河南

巨人網絡通訊聲明:本文標題《ASP.NET微信開發(接口指南)》,本文關鍵詞  ASP.NET,微信,開發,接口,指南,;如發現本文內容存在版權問題,煩請提供相關信息告之我們,我們將及時溝通與處理。本站內容系統采集于網絡,涉及言論、版權與本站無關。
  • 相關文章
  • 下面列出與本文章《ASP.NET微信開發(接口指南)》相關的同類信息!
  • 本頁收集關于ASP.NET微信開發(接口指南)的相關信息資訊供網民參考!
  • 推薦文章
    主站蜘蛛池模板: 短片黄色小说| 国产精品1区2区3区在线播放 | 香港三级日本三级三级韩级2| 成人免费在线观看视频| 男男cao烂总裁的屁股眼视频| 国产精品久久久久久精品毛片李沁 | 糖心hd在线观看| 伊人69| 精品人妻少妇嫩草AV无码专区 | 操老女人逼| 老公把儿媳妇当成老公的话| 免费??成人??用黄上黄两年半| 国产产欧美A片| 亚洲最大成人综合网| 91人妻欧美精品综合久久| 天堂8在线天堂资源bt| 色片免费看| 福利毛片| 国产精品5g天天爽久久| 国色A片三級三級三級蜜桃成熟时 午夜爽爽一级A片毛片苍井空 | 欧美????69| 免费看特级毛片| 99久久国产综合色| Free???性欧美AV按摩| 人妻被又粗又大捣出了白浆| 久久曰视频| 汤芳阴部| 国产欧美日韩精品第三区| 亚洲精品亚洲一区二区三区| 全本小说免费下载TXT电子书| 馒头一线天馒头| 亚洲国产天堂在线网址| 6―13呦交www在线观看| 久久久久久无码日韩欧美电影| 91少妇高潮喷水流白浆| 国产精品亚洲w码日韩中文app| 受被多人lj双性美人| 性欧美精品???高清| 免费?无码?国产在线19男男| 簧片在线免费看| 热99精品|