C\#위 챗 개발 제1장

5994 단어 C#작은 편지
잔말 말고 바로 써 라!자신 에 게 수필 을 남 겨 두 었 기 때문에 신 들 은 뿌리 지 말 라 고................................................
 1.위 챗 공식 계 정 이 있어 야 합 니 다.
 2.당신 도 테스트 마이크로 신 호 를 신청 할 수 있 습 니 다.링크 는 당신 에 게http://mp.weixin.qq.com/debug/cgi-bin/sandbox?t=sandbox/login
그리고 뮤 직 비디오 를 만 들 려 면 몇 번 만 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;
 }
이 코드 는 위 챗 공식 번호 중[개발]-[기본 설정]에서 당신 이 쓴 Token 과 1 대 1 영패 통신 악 수 를 하 는 것 과 같 습 니 다.서로 통 하면 당신 은 해결 한 셈 입 니 다!
해결 은 뒷이야기 이 고,아직 일 을 다 하지 못 했 으 니,이어서 써 라!
어떻게 배치 하 느 냐 가 문제 입 니 다.아,땅콩 껍질 로 테스트 를 해 야 합 니 다.적어도 반나절 동안 놀 았 는데 통 하 는 지 알 아야 합 니 다!
아래 그림 보기:왼쪽 땅콩 껍질 설정-오른쪽 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 를 찾 을 수 있 습 니 다.이러한 프로 세 스 가 여러 개 있다 면[사용자 이름]열 을 확인 하 십시오.프로그램 풀 이름 과 같은 것 을 선택 하면 ok,추가 점 을 누 르 고 추가 확인 하 십시오! 
다음재 밌 다.
 위 챗 은 그 테스트 공중 번 호 를 청소 하고 사용자 정의 메 시 지 를 보 내 서 어떤 답장 이 있 는 지 보 세 요.위의 번 거 로 운 설정 은 정지점 디 버 깅 을 할 수 있 습 니 다.그렇지 않 으 면 그렇게 많은 것 을 하 는 것 도 의미 가 없 죠?발송 과 수신 이 당신 이 설정 한 것 과 일치 하 는 지 보 세 요.그러면 ok 입 니 다. 
이렇게...다 썼 습 니 다.
멋 진 주제 공유:ASP.NET 위 챗 개발 튜 토리 얼 집계여러분 의 공 부 를 환영 합 니 다.
이상 이 바로 본 고의 모든 내용 입 니 다.여러분 의 학습 에 도움 이 되 고 저 희 를 많이 응원 해 주 셨 으 면 좋 겠 습 니 다.

좋은 웹페이지 즐겨찾기