<ruby id="bdb3f"></ruby>

    <p id="bdb3f"><cite id="bdb3f"></cite></p>

      <p id="bdb3f"><cite id="bdb3f"><th id="bdb3f"></th></cite></p><p id="bdb3f"></p>
        <p id="bdb3f"><cite id="bdb3f"></cite></p>

          <pre id="bdb3f"></pre>
          <pre id="bdb3f"><del id="bdb3f"><thead id="bdb3f"></thead></del></pre>

          <ruby id="bdb3f"><mark id="bdb3f"></mark></ruby><ruby id="bdb3f"></ruby>
          <pre id="bdb3f"><pre id="bdb3f"><mark id="bdb3f"></mark></pre></pre><output id="bdb3f"></output><p id="bdb3f"></p><p id="bdb3f"></p>

          <pre id="bdb3f"><del id="bdb3f"><progress id="bdb3f"></progress></del></pre>

                <ruby id="bdb3f"></ruby>

                ThinkChat2.0新版上線,更智能更精彩,支持會話、畫圖、視頻、閱讀、搜索等,送10W Token,即刻開啟你的AI之旅 廣告
                ### 思路 1、以Get方式接受微信發送過來的數據 2、本地算法CheckSignature驗證微信發送過來的信息是否正確 3、如果正確告訴微信正確,否則告訴失敗 4、如果正確則表明微信接入成功 ```[flow] s=>start: 開始(微信發過來的參數) isget=>condition: 輸入是否是GET方式 tz=>operation: 通知微信成功或失敗 cs=>condition: 本地算法驗證微信信息是否正確 e=>end: 結束 s->isget isget(no)->tz->s isget(yes)->cs cs(no)->tz cs(yes)->tz tz->e ``` ### 文件路徑 ``` /weixin/wx.ashx ``` ``` using System; using System.Collections.Generic; using System.Linq; using System.Web; using Senparc.Weixin.MP; using Senparc.Weixin.MP.Entities; using Senparc.Weixin.MP.MessageHandlers; namespace NetWing.BPM.Admin.weixin { /// <summary> /// wx 的摘要說明 /// </summary> public class wx : IHttpHandler { public void ProcessRequest(HttpContext context) { string signature = context.Request["signature"]; string timestamp = context.Request["timestamp"]; string nonce = context.Request["nonce"]; string echostr = context.Request["echostr"]; string Token=NetWing.Common.ConfigHelper.GetValue("Token"); string appid = NetWing.Common.ConfigHelper.GetValue("AppID"); if (context.Request.HttpMethod == "GET") { //get method - 僅在微信后臺填寫URL驗證時觸發 if (CheckSignature.Check(signature, timestamp, nonce, Token)) { WriteContent(echostr,context); //返回隨機字符串則表示驗證通過 } else { WriteContent("failed:" + signature + "," + CheckSignature.GetSignature(timestamp, nonce, Token),context); } } else { //判斷Post或其他方式請求 if (!Senparc.Weixin.MP.CheckSignature.Check(signature, timestamp, nonce, Token)) { WriteContent("參數錯誤!",context); return; } //post method - 當有用戶想公眾賬號發送消息時觸發 var postModel = new Senparc.Weixin.MP.Entities.Request.PostModel() { Signature = context.Request.QueryString["signature"], Msg_Signature = context.Request.QueryString["msg_signature"], Timestamp = context.Request.QueryString["timestamp"], Nonce = context.Request.QueryString["nonce"], //以下保密信息不會(不應該)在網絡上傳播,請注意 Token = Token, //EncodingAESKey = model.aeskey, //根據自己后臺的設置保持一致 AppId = appid //根據自己后臺的設置保持一致 }; //v4.2.2之后的版本,可以設置每個人上下文消息儲存的最大數量,防止內存占用過多,如果該參數小于等于0,則不限制 //v4.2.2之后的版本,可以設置每個人上下文消息儲存的最大數量,防止內存占用過多,如果該參數小于等于0,則不限制 var maxRecordCount = 0; } context.Response.End(); } private void WriteContent(string str, HttpContext context) { context.Response.Output.Write(str); } public bool IsReusable { get { return false; } } } } ```
                  <ruby id="bdb3f"></ruby>

                  <p id="bdb3f"><cite id="bdb3f"></cite></p>

                    <p id="bdb3f"><cite id="bdb3f"><th id="bdb3f"></th></cite></p><p id="bdb3f"></p>
                      <p id="bdb3f"><cite id="bdb3f"></cite></p>

                        <pre id="bdb3f"></pre>
                        <pre id="bdb3f"><del id="bdb3f"><thead id="bdb3f"></thead></del></pre>

                        <ruby id="bdb3f"><mark id="bdb3f"></mark></ruby><ruby id="bdb3f"></ruby>
                        <pre id="bdb3f"><pre id="bdb3f"><mark id="bdb3f"></mark></pre></pre><output id="bdb3f"></output><p id="bdb3f"></p><p id="bdb3f"></p>

                        <pre id="bdb3f"><del id="bdb3f"><progress id="bdb3f"></progress></del></pre>

                              <ruby id="bdb3f"></ruby>

                              哎呀哎呀视频在线观看