日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程语言 > C# >内容正文

C#

用c#开发微信(1)服务号的服务器配置和企业号的回调模式 - url接入

發布時間:2025/6/15 C# 36 豆豆
生活随笔 收集整理的這篇文章主要介紹了 用c#开发微信(1)服务号的服务器配置和企业号的回调模式 - url接入 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

2019獨角獸企業重金招聘Python工程師標準>>>

閱讀目錄

  • 一、用法
  • 二、實現方法

最近研究了下服務號的服務器配置和企業號的回調模式。真正實現完后,覺得很簡單,但一開始還是走了點彎路,所以寫了個web程序,只用改下配置文件里的參數就可以直接用了。下面介紹下詳細的用法以及實現步驟。

?本文原文地址:用c#開發微信(1)服務號的服務器配置和企業號的回調模式 - url接入?

回到頂部

一、用法

1. 下載web程序

http://yunpan.cn/cjeTSAKwUVmv9? 訪問密碼 7ab3

?

2. 修改配置文件web.config

<appSettings> <!--微信的Token--> <add key="WeixinToken" value="dd"/> <add key="AppId" value="wxdbddd2bc"/> <add key="AppSecret" value="82f7ddd88e196"/> ? <!--企業號配置信息--> <add key="CorpToken" value="fddd"/> <add key="CorpId" value="wx1156d982ddda8"/> <add key="EncodingAESKey" value="aNvJOkGYddyGwf5Rg"/> ? </appSettings>

?

3. 發布到你的服務器上

4. 服務號和企業號里分別填上url及參數:

企業號:

?

服務號:

?

回到頂部

二、實現方法

1. 新建一個web程序

2. 添加二個ashx文件(這里不用aspx頁面,是為了更簡便),參考官方文檔,實現校驗流程

服務號:

完整源碼:

/// <summary> /// 處理微信服務器驗證消息 /// </summary> public void Auth() { string token = ConfigurationManager.AppSettings[Token].ToString(); string signature = HttpContext.Current.Request.QueryString["signature"]; string timestamp = HttpContext.Current.Request.QueryString["timestamp"]; string nonce = HttpContext.Current.Request.QueryString["nonce"]; string echostr = HttpContext.Current.Request.QueryString["echostr"]; ? if (HttpContext.Current.Request.HttpMethod.ToUpper() == "GET") { //get method - 僅在微信后臺填寫URL驗證時觸發 if (CheckSignature(signature, timestamp, nonce, token)) { WriteContent(echostr); //返回隨機字符串則表示驗證通過 } else { WriteContent("failed:" + signature + "," + GetSignature(timestamp, nonce, token) + "。" + "如果你在瀏覽器中看到這句話,說明此地址可以被作為微信公眾賬號后臺的Url,請注意保持Token一致。"); } HttpContext.Current.Response.End(); } } ? private void WriteContent(string str) { HttpContext.Current.Response.Output.Write(str); } ? /// <summary> /// 檢查簽名是否正確 /// </summary> /// <param name="signature"></param> /// <param name="timestamp"></param> /// <param name="nonce"></param> /// <param name="token"></param> /// <returns></returns> public static bool CheckSignature(string signature, string timestamp, string nonce, string token) { return signature == GetSignature(timestamp, nonce, token); } ? /// <summary> /// 返回正確的簽名 /// </summary> /// <param name="timestamp"></param> /// <param name="nonce"></param> /// <param name="token"></param> /// <returns></returns> public static string GetSignature(string timestamp, string nonce, string token) { string[] arr = new[] { token, timestamp, nonce }.OrderBy(z => z).ToArray(); string arrString = string.Join("", arr); System.Security.Cryptography.SHA1 sha1 = System.Security.Cryptography.SHA1.Create(); byte[] sha1Arr = sha1.ComputeHash(Encoding.UTF8.GetBytes(arrString)); StringBuilder enText = new StringBuilder(); foreach (var b in sha1Arr) { enText.AppendFormat("{0:x2}", b); } return enText.ToString(); }

?

官方接入文檔:?http://mp.weixin.qq.com/wiki/17/2d4265491f12608cd170a95559800f2d.html

?

企業號:

?

完整源碼:

public void ProcessRequest(HttpContext context) { string postString = string.Empty; if (HttpContext.Current.Request.HttpMethod.ToUpper() == "GET") { Auth(); } } ? /// <summary> /// 成為開發者的第一步,驗證并相應服務器的數據 /// </summary> private void Auth() { string token = ConfigurationManager.AppSettings["CorpToken"];//從配置文件獲取Token ? string encodingAESKey = ConfigurationManager.AppSettings["EncodingAESKey"];//從配置文件獲取EncodingAESKey ? string corpId = ConfigurationManager.AppSettings["CorpId"];//從配置文件獲取corpId ? string echoString = HttpContext.Current.Request.QueryString["echoStr"]; string signature = HttpContext.Current.Request.QueryString["msg_signature"];//企業號的 msg_signature string timestamp = HttpContext.Current.Request.QueryString["timestamp"]; string nonce = HttpContext.Current.Request.QueryString["nonce"]; ? string decryptEchoString = ""; if (CheckSignature(token, signature, timestamp, nonce, corpId, encodingAESKey, echoString, ref decryptEchoString)) { if (!string.IsNullOrEmpty(decryptEchoString)) { HttpContext.Current.Response.Write(decryptEchoString); HttpContext.Current.Response.End(); } } } ? /// <summary> /// 驗證企業號簽名 /// </summary> /// <param name="token">企業號配置的Token</param> /// <param name="signature">簽名內容</param> /// <param name="timestamp">時間戳</param> /// <param name="nonce">nonce參數</param> /// <param name="corpId">企業號ID標識</param> /// <param name="encodingAESKey">加密鍵</param> /// <param name="echostr">內容字符串</param> /// <param name="retEchostr">返回的字符串</param> /// <returns></returns> public bool CheckSignature(string token, string signature, string timestamp, string nonce, string corpId, string encodingAESKey, string echostr, ref string retEchostr) { WXBizMsgCrypt wxcpt = new WXBizMsgCrypt(token, encodingAESKey, corpId); int result = wxcpt.VerifyURL(signature, timestamp, nonce, echostr, ref retEchostr); if (result != 0) { //LogTextHelper.Error("ERR: VerifyURL fail, ret: " + result); return false; } ? return true; ? //ret==0表示驗證成功,retEchostr參數表示明文,用戶需要將retEchostr作為get請求的返回參數,返回給企業號。 // HttpUtils.SetResponse(retEchostr); }

?

官方接入文檔:??http://qydev.weixin.qq.com/wiki/index.php?title=%E5%9B%9E%E8%B0%83%E6%A8%A1%E5%BC%8F

?

3. 配置文件

<system.web> <compilation debug="true" targetFramework="4.0" /> <httpHandlers> <add verb="*" path="MPService.ashx" type="Wechat.Config.MPService,Wechat.Config" validate="true"/> <add verb="*" path="QYService.ashx" type="Wechat.Config.QYService,Wechat.Config" validate="true"/> <add verb="*" path="TestAccountService.ashx" type="Wechat.Config.TestAccountService,Wechat.Config" validate="true"/> </httpHandlers> </system.web>

?

?

如果直接用Senparc.Weixin微信開發框架來實現,就更簡單了:

?

? rotected void Page_Load(object sender, EventArgs e) ? private readonly string Token = ConfigurationManager.AppSettings["token"];//與微信公眾賬號后臺的Token設置保持一致,區分大小寫。 string signature = Request["signature"]; string timestamp = Request["timestamp"]; string nonce = Request["nonce"]; string echostr = Request["echostr"]; if (Request.HttpMethod == "GET") { //get method - 僅在微信后臺填寫URL驗證時觸發 if (CheckSignature.Check(signature, timestamp, nonce, Token)) { Response.Output.Write(echostr); //返回隨機字符串則表示驗證通過 } else { Response.Output.Write("failed:" + signature + "," + CheckSignature.GetSignature(timestamp, nonce, Token) + "。" + "如果你在瀏覽器中看到這句話,說明此地址可以被作為微信公眾賬號后臺的Url,請注意保持Token一致。"); } Response.End(); } }

?

用c#開發微信 系列匯總

?


如果您覺得閱讀本文對您有幫助,請點一下“推薦”按鈕,您的“推薦”將是我最大的寫作動力!歡迎各位轉載,但必須在文章頁面明顯位置給出作者和原文連接,否則保留追究法律責任的權利。

轉載于:https://my.oschina.net/airship/blog/3004698

總結

以上是生活随笔為你收集整理的用c#开发微信(1)服务号的服务器配置和企业号的回调模式 - url接入的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。

主站蜘蛛池模板: 超碰成人免费电影 | 免费在线一区二区三区 | 玩偶游戏在线观看免费 | 老熟妇一区二区 | 国产精品熟女一区二区不卡 | 天天色视频 | 女生张开腿给男生桶 | 欧美 日韩 国产 成人 在线 91 | 一级黄色影院 | 色中文字幕在线观看 | 亚洲蜜桃精久久久久久久久久久久 | 波多野结衣视频网址 | av在线成人| 午夜试看120秒 | 多男调教一女折磨高潮高h 国内毛片毛片毛片毛片毛片 | 久久免费片| 大奶子网站 | 瑟瑟视频在线观看 | 少妇光屁股影院 | 风间由美一区二区三区 | 男女午夜网站 | 狠狠爱婷婷 | 色黄网站| 亚洲最新色图 | 自拍偷拍20p | av最新版天堂资源在线 | 在线黄色大片 | 99久久综合国产精品二区 | 性淫影院 | 美女被啪羞羞粉色视频 | 欧美日韩三 | 91大片在线观看 | 99成人免费视频 | 极品探花在线 | 青青青国产在线 | 国产精品一区免费观看 | 国产a级大片 | 美女黄色影院 | 女生和男生一起插插插 | 美女扒开腿免费视频 | 蜜桃av网站 | 97人人超 | 91粉色视频 | 人人插人人爽 | 日本高清不卡一区 | 蜜桃一二三区 | 国产操女人 | 欧美男女交配视频 | 伊人网视频在线观看 | 亚洲精品大片www | 视频在线观看一区二区 | 亚洲精品成人久久 | 日本一区不卡在线观看 | 日日射日日干 | 狠狠躁天天躁夜夜躁婷婷 | 国产亚洲精品av | 国产黄色精品网站 | 免费在线观看av | 婷婷tv | 色狗网站 | 亚洲天天做| 久久九九久久九九 | 国产熟妇搡bbbb搡bbbb搡 | 女性向小h片资源在线观看 日本天天操 | xxxⅹ少妇少妇xxxx | 天天躁日日躁aaaaxxxx | 日本激情一区 | 明日花绮罗高潮无打码 | 国产富婆一级全黄大片 | 亚洲视频一二三四 | 爆乳熟妇一区二区三区 | 成人精品一区二区三区电影 | 美女色网站 | 国产精品三级在线 | 五月激情网站 | 疯狂做受xxxx高潮人妖 | 国产激情视频网站 | 无码精品一区二区免费 | 狠色综合 | 国产毛片自拍 | 欧美色xxxx| 国产成人久久77777精品 | 国产欧美日韩综合精品一区二区三区 | 久久精品www人人爽人人 | 亚洲视频欧洲视频 | 美国黄色一级视频 | 国产真实的和子乱拍在线观看 | 色欲av伊人久久大香线蕉影院 | 国产一区麻豆 | 无码人妻一区二区三区av | www色综合 | 成人黄性视频 | 日日鲁鲁鲁夜夜爽爽狠狠视频97 | 不卡中文字幕av | 国产精品福利一区二区 | 日韩电影一区 | 99国产精品久久久久久久久久久 | 日本在线免费观看视频 | 精品国产乱码久久久久久闺蜜 |