婷婷综合国产,91蜜桃婷婷狠狠久久综合9色 ,九九九九九精品,国产综合av

主頁 > 知識庫 > 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微信開發(接口指南)的相關信息資訊供網民參考!
  • 推薦文章
    婷婷综合国产,91蜜桃婷婷狠狠久久综合9色 ,九九九九九精品,国产综合av
    日韩中文字幕麻豆| 亚洲欧美日韩电影| 91成人国产精品| av电影天堂一区二区在线观看| 国产精品影视在线| 国产成人精品影视| 成人av动漫网站| 97超碰欧美中文字幕| av中文字幕亚洲| caoporn国产一区二区| 91在线小视频| 欧美久久婷婷综合色| 欧美理论在线播放| 精品国产免费视频| 国产欧美日韩综合精品一区二区 | 欧美三电影在线| 欧美日韩亚洲国产综合| 91精品午夜视频| 2024国产精品视频| 久久久.com| 亚洲精品国产精华液| 亚洲国产日韩在线一区模特| 天天影视网天天综合色在线播放 | 精品福利二区三区| 136国产福利精品导航| 亚洲美女少妇撒尿| 亚洲成人av电影在线| 美女脱光内衣内裤视频久久网站| 国产乱国产乱300精品| 97久久精品人人做人人爽50路| 欧美日韩成人激情| 国产调教视频一区| 亚洲一区二区三区在线| 国内外精品视频| gogogo免费视频观看亚洲一| 欧美三片在线视频观看 | 成人黄色小视频| 欧美午夜精品一区| 久久久99免费| 水野朝阳av一区二区三区| 高清成人在线观看| 日韩欧美在线网站| 伊人色综合久久天天| 久草热8精品视频在线观看| 色999日韩国产欧美一区二区| 日韩欧美在线影院| 亚洲成人在线网站| 色综合亚洲欧洲| 国产欧美一区二区精品秋霞影院| 日欧美一区二区| av高清不卡在线| 精品99一区二区| 香蕉加勒比综合久久| 国产成人在线观看| 日韩精品一区二区在线| 亚洲高清免费视频| 91视频xxxx| 国产精品欧美精品| 国产一区二区在线观看免费| 欧美日韩精品一区二区三区四区| 国产精品色在线| 丰满少妇在线播放bd日韩电影| 日韩欧美在线一区二区三区| 视频在线观看国产精品| 欧美在线你懂得| 亚洲激情图片qvod| 成人性生交大片免费看中文 | 成人av在线看| 中文字幕久久午夜不卡| 精品一区二区三区不卡| 日韩免费电影网站| 激情综合五月天| 欧美成人综合网站| 久久国产精品一区二区| 日韩免费看网站| 免费看精品久久片| 久久久久亚洲蜜桃| 成人午夜视频网站| 国产精品麻豆视频| 日本伦理一区二区| 午夜电影网一区| 日韩视频免费观看高清完整版| 美女久久久精品| 久久久美女毛片| 99久久777色| 亚洲综合在线观看视频| 欧美日本国产视频| 伦理电影国产精品| 国产三级精品三级在线专区| 国产成人精品三级麻豆| 亚洲乱码日产精品bd| 精品视频色一区| 极品少妇一区二区三区精品视频| 国产午夜精品一区二区三区视频| 成人小视频免费观看| 一二三区精品福利视频| 91精品国产综合久久精品| 久久99精品久久久久婷婷| 久久久一区二区三区| 91碰在线视频| 久久99热这里只有精品| 国产精品欧美一区二区三区| 欧美色综合网站| 国产呦精品一区二区三区网站| 最新国产精品久久精品| 欧美精品777| eeuss鲁片一区二区三区| 日韩电影一区二区三区四区| 欧美精品一区二| 欧美在线免费播放| 国产成人午夜视频| 亚洲一卡二卡三卡四卡无卡久久| 7777精品伊人久久久大香线蕉| 懂色av一区二区三区免费看| 亚洲一区二区四区蜜桃| 国产精品午夜在线| 欧美一级艳片视频免费观看| 99久久久无码国产精品| 久久9热精品视频| 亚洲成精国产精品女| 国产日韩欧美精品在线| 精品视频一区二区三区免费| 成人午夜大片免费观看| 九九热在线视频观看这里只有精品| 亚洲码国产岛国毛片在线| 久久久久久影视| 日韩一本二本av| 欧美日韩国产大片| 91啪九色porn原创视频在线观看| 激情综合色综合久久综合| 首页欧美精品中文字幕| 一区二区三区美女| 国产精品国产三级国产aⅴ中文 | 亚洲一线二线三线久久久| 国产日韩精品一区二区浪潮av| 欧美一级在线免费| 欧美乱妇23p| 欧美喷潮久久久xxxxx| 91首页免费视频| 成人不卡免费av| 成人久久18免费网站麻豆 | 99免费精品视频| 国v精品久久久网| 国产丶欧美丶日本不卡视频| 免费在线看成人av| 奇米影视一区二区三区小说| 亚洲gay无套男同| 亚洲午夜影视影院在线观看| 国产精品美女久久久久久| 欧美韩日一区二区三区| 国产精品蜜臀av| 中文字幕亚洲在| 亚洲精品视频一区| 一区二区三区美女视频| 亚洲成人www| 水野朝阳av一区二区三区| 日韩福利电影在线| 精品无人区卡一卡二卡三乱码免费卡| 麻豆国产精品一区二区三区| 久久国产欧美日韩精品| 国产精品一区免费在线观看| 成人小视频在线| 在线精品国精品国产尤物884a| 91福利在线播放| 91精品国产91久久久久久一区二区| 91精品欧美一区二区三区综合在| 日韩一区二区精品在线观看| 亚洲精品一区二区三区福利 | 色综合久久综合网| 538在线一区二区精品国产| 精品国内二区三区| 中文字幕电影一区| 香蕉成人啪国产精品视频综合网| 青青草成人在线观看| 国产激情一区二区三区| 色综合中文字幕国产 | 国产美女娇喘av呻吟久久| 国产+成+人+亚洲欧洲自线| 91国产免费看| 亚洲精品在线观| 亚洲欧美日韩国产综合在线| 青青国产91久久久久久| 99精品一区二区| 日韩一卡二卡三卡国产欧美| 国产精品久久久久天堂| 日韩高清欧美激情| 波多野结衣精品在线| 51精品视频一区二区三区| 国产精品三级久久久久三级| 亚洲午夜电影在线| jizz一区二区| 日韩欧美中文字幕公布| 亚洲制服欧美中文字幕中文字幕| 老色鬼精品视频在线观看播放| 色综合天天狠狠| 精品三级在线观看| 日韩一区精品视频| 91网址在线看| 中文在线免费一区三区高中清不卡| 日本人妖一区二区|