>위챗 애플릿 >위챗 개발 >C# WeChat 개발을 시작하는 첫 번째 단계

C# WeChat 개발을 시작하는 첫 번째 단계

Y2J
Y2J원래의
2017-04-24 15:08:441450검색

쓸데없는 얘기는 하기 싫으니 그냥 쓰세요! 에세이 쓰는 건 본인 몫이니까 석사님들 보자마자 욕하지 마세요...

1. 위챗 공개 계정이 있어야 합니다
2. 할 수 있어요 또한 테스트 WeChat 계정을 신청하면 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;
 }

이 코드는 [ 개발] 위챗 공식 계정에서 - -》[기본 구성] 거기에 작성한 토큰은 1대1 토큰 통신 핸드셰이크입니다.

마무리는 일은 나중에 할 일이니 계속해서 글을 써주세요!
어떻게 구성해야 할까요? 이것이 문제입니다. 먼저 땅콩 껍질만 사용하여 오랫동안 플레이한 후에 작동하는지 확인해야 합니다.
아래 사진을 보세요 왼쪽이 땅콩껍질 구성------오른쪽이 iis 웹사이트 퍼블리싱 바인딩


이 사진을 보면 당신은 또한 다음 단계의 플레이 방법도 이해합니다. 로컬 iis에는 도메인 이름이 장착되어 있습니다. 존나 짱이네...
아래. 코드를 추가합니다. 보내기 및 자동 응답 테스트를 설정하여 여전히 WhApi.ashx 처리기 파일에 있는 한 번의 전송 및 한 번의 수신으로

 #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

를 재생할 수 있는지 확인하세요. 나는 단지 분명히 하고 싶다, 하하!
퍼블릭 플랫폼과의 악수가 성공했으니, 뭔가를 보내야겠죠~~
아래 사진은 수신 방식과 자동 매칭 답장 파일의 연관 관계입니다. 아래 문서를 업로드하세요!

아직 구성이 하나 누락되었습니다. 즉, VS에 대해 [디버그] ---- [프로세스에 연결]을 설정하려면 변경만 하면 됩니다. 다음 [모든 사용자 프로세스 표시] 항목 하나를 선택하면 w3wp.exe를 찾을 수 있습니다. 이러한 프로세스가 여러 개인 경우에도 [사용자 이름] 열을 확인해야 하며, 귀하의 이름과 동일한 항목을 선택하십시오. 프로그램 풀에서 확인을 클릭하고 첨부를 클릭한 후 첨부를 확인하세요!
다음. 재밌다............... 위의 내용입니다. 지루한 구성은 중단점을 추가하여 디버깅할 수 있습니다. 그렇지 않으면 그렇게 많은 작업을 수행할 필요가 없습니다. 그렇죠? 전송 및 수신이 자신의 설정과 일치하는지 확인하면 괜찮습니다.
그렇습니다........끝났습니다.

위 내용은 C# WeChat 개발을 시작하는 첫 번째 단계의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

성명:
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.