이 글은 주로 모든 사람들이 C#WeChat 개발 지침에 대한 자세한 소개를 사용하도록 작성되었습니다. 관심 있는 친구들이 참고할 수 있습니다.
헛소리 하기 싫으니 그냥 직접 가세요 글! 에세이는 여러분의 몫이니까 보시고 욕하진 말아주세요...
1. 위챗 공개계정이 있어야 합니다
2. 위챗 테스트 계정도 신청 가능합니다 , 링크가 제공됩니다http://mp.weixin.qq.com/debug/cgi-bin/sandbox?t=sandbox/login
그런 다음 mvc를 생성하세요. 몇 번의 클릭만으로 VS를 다운로드하면 완료됩니다. 말도 안되는 소리는 아니네요
다음은 일반 핸들러를 만들어서 아무렇게나 이름을 지어주고, 테스트 통과가 관건이니 서둘러주세요...
/// <summary> /// 验证微信签名 /// </summary> /// <returns></returns> /// * 将token、timestamp、nonce三个参数进行字典序排序 /// * 将三个参数字符串拼接成一个字符串进行sha1加密 /// * 开发者获得加密后的字符串可与signature对比,标识该请求来源于微信。 private bool CheckSignature() { var token = "token"; var signature = HttpContext.Current.Request.QueryString["signature"]; var timestamp = HttpContext.Current.Request.QueryString["timestamp"]; var nonce = HttpContext.Current.Request.QueryString["nonce"]; var echostr = HttpContext.Current.Request.QueryString["echostr"]; string[] ArrTmp = { token, timestamp, nonce }; Array.Sort(ArrTmp); //字典排序 var tmpStr = string.Join("", ArrTmp); tmpStr = FormsAuthentication.HashPasswordForStoringInConfigFile(tmpStr, "SHA1");//加密方式 if (tmpStr.ToLower() == signature) { return true; } return false; }
이 코드는 WeChat 공식 계정의 [개발] - [기본 구성]에서 작성한 토큰과 일대일 토큰 통신 핸드셰이크에 해당합니다. 끝났어!
마무리는 일은 나중에 할 일이니 계속해서 글을 써주세요!
어떻게 구성해야 할까요? 먼저 땅콩 껍질만 사용해 테스트하면 됩니다. 적어도 오랫동안 플레이한 후에는 작동하는지 알아야 합니다!
아래 사진을 보세요: 왼쪽 땅콩 껍질 구성 ----- 오른쪽 iis 웹사이트 퍼블리싱 바인딩
이 사진을 보세요. 또한 다음 단계의 플레이 방법도 이해합니다. 로컬 iis에는 도메인 이름이 장착되어 있습니다. 존나 짱이네...
아래. 코드를 추가합니다. 보내기 및 자동 응답 테스트를 설정하여
#region 接收消息 /// <summary> /// 接收微信发送的XML消息并且解析 /// </summary> private void ReceiveXml() { var requestStream = HttpContext.Current.Request.InputStream; var requestByte = new byte[requestStream.Length]; requestStream.Read(requestByte, 0, (int)requestStream.Length); var requestStr = Encoding.UTF8.GetString(requestByte); if (!string.IsNullOrEmpty(requestStr)) { //封装请求类 var requestDocXml = new XmlDocument(); requestDocXml.LoadXml(requestStr); var rootElement = requestDocXml.DocumentElement; if (rootElement == null) return; var wxXmlModel = new WxXmlModel { ToUserName = rootElement.SelectSingleNode("ToUserName").InnerText, FromUserName = rootElement.SelectSingleNode("FromUserName").InnerText, CreateTime = rootElement.SelectSingleNode("CreateTime").InnerText, MsgType = rootElement.SelectSingleNode("MsgType").InnerText }; switch (wxXmlModel.MsgType) { case "text"://文本 wxXmlModel.Content = rootElement.SelectSingleNode("Content").InnerText; break; case "image"://图片 wxXmlModel.PicUrl = rootElement.SelectSingleNode("PicUrl").InnerText; break; case "event"://事件 wxXmlModel.Event = rootElement.SelectSingleNode("Event").InnerText; if (wxXmlModel.Event != "TEMPLATESENDJOBFINISH")//关注类型 { wxXmlModel.EventKey = rootElement.SelectSingleNode("EventKey").InnerText; } break; default: break; } ResponseXML(wxXmlModel);//回复消息 } } #endregion #region 回复消息 private void ResponseXML(WxXmlModel WxXmlModel) { var QrCodeApi = new QrCodeApi(); var XML = ""; switch (WxXmlModel.MsgType) { case "text"://文本回复 XML = ResponseMessage.GetText(WxXmlModel.FromUserName, WxXmlModel.ToUserName, WxXmlModel.Content); break; case "event": switch (WxXmlModel.Event) { case "subscribe": if (string.IsNullOrEmpty(WxXmlModel.EventKey)) { XML = ResponseMessage.GetText(WxXmlModel.FromUserName, WxXmlModel.ToUserName, "关注成功"); } else { XML = ResponseMessage.SubScanQrcode(WxXmlModel.FromUserName, WxXmlModel.ToUserName, WxXmlModel.EventKey);//扫描带参数二维码先关注后推送事件 } break; case "SCAN": XML = ResponseMessage.ScanQrcode(WxXmlModel.FromUserName, WxXmlModel.ToUserName, WxXmlModel.EventKey);//扫描带参数二维码已关注 直接推送事件 break; } break; default://默认回复 break; } HttpContext.Current.Response.Write(XML); HttpContext.Current.Response.End(); } #endregion
를 재생할 수 있는지 확인하세요. 위의 항목은 전송 중이고 다른 하나는 수신 중이거나 WhApi에서 .ashx 처리기 파일 . 나는 단지 분명히 하고 싶다, 하하!
퍼블릭 플랫폼과의 악수가 성공했으니, 뭔가를 보내야겠죠~~
아래 그림은 수신 방법과 자동 매칭 응답 파일의 연관성을 보여줍니다. 아래 설명을업로드해 주세요!
아직 하나의 구성이 누락되었습니다. 즉, VS를 설정하는 것입니다. [디버그]----[프로세스에 연결] , 다음 항목만 추가하면 됩니다. [모든 사용자 프로세스 표시]를 선택하면 w3wp.exe를 찾을 수 있습니다. 이러한 프로세스가 여러 개인 경우에도 [사용자 이름] 열을 확인하고 동일한 항목을 선택해야 합니다. 프로그램 풀로 이름을 지정하고 확인을 클릭한 후 첨부를 확인하세요!
다음. 재밌네요…………………………………………………
WeChat의 테스트 공개 계정을 스캔하고 맞춤 메시지를 보내서 어떤 답글이 있는지 확인하세요. 지루한 구성은 중단점을 추가하여 디버깅할 수 있습니다. 그렇지 않으면 그렇게 많은 작업을 수행할 필요가 없습니다. 그렇죠? 전송 및 수신이 자신의 설정과 일치하는지 확인하면 괜찮습니다.
위 내용은 C# WeChat 개발 지침 사용 소개의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!