最近では、それを記録し、公共の番号を上演しました。
目的は、構成内のマイクロチャネルパブリック数のサーバーを可能にすることです。マイクロチャネルのドキュメント
実際には、マイクロチャネルのドキュメントは非常に単純な、非常に明確に書かれています。(目的マイクロチャネルは、それはGETリクエストを送信していることですが、私は、マイクロ手紙にそれを伝えるバックデータに、その後、我々はそれを受け入れることができると思います)
方法の一つ:使用WEBAPI、MVCアーキテクチャ(このアクションコントローラでビューを追加行かないことに注意してください)
そのechostr文字列と、その後に分散マイクロ手紙を要求されたマイクロ文字の後に署名、タイムスタンプノンスechostrたちを:マイクロ手紙は、私たちに4つのパラメータが送られました。(最も簡単な方法は、このパラメータに直接戻る、echostrパラメータを受け取るために、結果的に我々はいたしません、です。ちょっとちょっとちょっと)
レーンも渡すことができ、コントローラーに書いています。APIアーキテクチャは、ルートを追加し、要求を取得します。あなたは郵便配達をテストする準備ができているときに使用できます(その結果、実際には書いていません)
要件に応じてマイクロチャネル:マイクロチャネルフローチャートの公式
我々はそれを処理するために必要なデータを取得する次のようなコードがあります
/// <summary> /// 验证微信签名 wuchen /// </summary> /// <returns></returns> /// * 将token、timestamp、nonce三个参数进行字典序排序 /// * 将三个参数字符串拼接成一个字符串进行sha1加密 /// * 开发者获得加密后的字符串可与signature对比,标识该请求来源于微信。 public bool CheckSignature() { var WeChat_Token = "TokenCrCool"; //从微信服务器接收传递过来的数据 string signature = VqiRequest.GetQueryString("signature"); //微信加密签名 string timestamp = VqiRequest.GetQueryString("timestamp");//时间戳 string nonce = VqiRequest.GetQueryString("nonce");//随机数 string[] ArrTmp = { WeChat_Token, timestamp, nonce }; Array.Sort(ArrTmp); //字典排序 string tmpStr = string.Join("", ArrTmp);//将三个字符串组成一个字符串 tmpStr = FormsAuthentication.HashPasswordForStoringInConfigFile(tmpStr, "SHA1");//进行sha1加密 tmpStr = tmpStr.ToLower(); //加过密的字符串与微信发送的signature进行比较,一样则通过微信验证,否则失败。 if (tmpStr == signature) { return true; } else { return false; } }
返回true,然后再返回echostr字符串。
方法二:三层架构的aspx页面(注意把前端页面删除干净,确保自己用postman测试的时候,只返回echostr)
就是这么简单粗暴。前端页面代码要删除干净的,像这样
方法三:一般处理程序 就两行代码。
三种方法都是可行的,完成之后发布在自己的云服务器上。使用80,443端口才可以。其他的微信文档有步骤的。