> 백엔드 개발 > C#.Net 튜토리얼 > C# WeChat 공개 계정 개발 WeChat 이벤트 상호 작용

C# WeChat 공개 계정 개발 WeChat 이벤트 상호 작용

高洛峰
풀어 주다: 2017-01-17 10:42:51
원래의
1284명이 탐색했습니다.

서문

모든 준비가 완료되면 먼저 팔로우 공개 계정을 구현한 후 고객에게 메시지를 푸시하세요. 주의를 기울인 후 메시지를 푸시하려면 가져오기 요청과 게시 요청이 주로 필요합니다. 가져오기 요청은 주로 WeChat 서버에 확인하기 위한 것이고 게시 요청은 주로 WeChat 메시지를 처리하기 위한 것입니다. 인터페이스 조정 시 전달되는 appid, appsecret에는 공식 계정에 해당하는 매개변수를 전달해 주세요.

WeChat 이벤트 상호 작용

WeChat 이벤트 상호 작용은 주로 XML 데이터 패킷을 WeChat 서버에 푸시합니다.

C#微信公众号开发 微信事件交互

코드 보기

[HttpGet]
[ActionName("Index")]
public ActionResult Get(string signature,string timestamp,string nonce,string echostr)
{
  if (CheckSignature.Check(signature, timestamp, nonce, token))
  {
    return Content(echostr);
  }
  else
  {
    return Content("err");
  }
로그인 후 복사
[HttpPost]
[ActionName("Index")]
public ActionResult Get(string signature, string timestamp, string nonce)
{
   StreamReader sr = new StreamReader(Request.InputStream, Encoding.UTF8);
   XmlDocument doc = new XmlDocument();
   doc.Load(sr);
   sr.Close();
   sr.Dispose();
  
   WxMessage wxMessage = new WxMessage();
   wxMessage.ToUserName = doc.SelectSingleNode("xml").SelectSingleNode("ToUserName").InnerText;
   wxMessage.FromUserName = doc.SelectSingleNode("xml").SelectSingleNode("FromUserName").InnerText;
   wxMessage.MsgType = doc.SelectSingleNode("xml").SelectSingleNode("MsgType").InnerText;
   wxMessage.CreateTime = int.Parse(doc.SelectSingleNode("xml").SelectSingleNode("CreateTime").InnerText);
  
   if (wxMessage.MsgType == "event")
   {
     wxMessage.EventName = doc.SelectSingleNode("xml").SelectSingleNode("Event").InnerText;
     if (!string.IsNullOrEmpty(wxMessage.EventName) && wxMessage.EventName == "subscribe")
     {
       string content = "您好,欢迎访问garfieldzf8测试公众平台";
       content = SendTextMessage(wxMessage, content);
       return Content(content);
    }
  }
      return Content("");
}
  
  
private string SendTextMessage(WxMessage wxmessage,string content)
{
   string result = string.Format(Message, wxmessage.FromUserName,wxmessage.ToUserName,DateTime.Now.Ticks, content);
   return result;
}
  
  
 public string Message
 {
   get
   {
     return @"<xml>
           <ToUserName><![CDATA[{0}]]></ToUserName>
           <FromUserName><![CDATA[{1}]]></FromUserName>
           <CreateTime>{2}</CreateTime>
           <MsgType><![CDATA[text]]></MsgType>
           <Content><![CDATA[{3}]]></Content>
         </xml>";
      }
  }
로그인 후 복사
public class WxMessage
 {
    public string ToUserName { get; set; }
    public string FromUserName { get; set; }
    public long CreateTime { get; set; }
  
    public string Content { get; set; }
    public string MsgType { get; set; }
    public string EventName { get; set; }
    public string EventKey { get; set; }
 }
로그인 후 복사

요약

WeChat 인터페이스 개발 중에는 디버깅이 불가능합니다. 문제를 해결하는 유일한 방법은 주요 위치에 로그인하는 것입니다.

WeChat 이벤트 상호 작용은 주로 WeChat에서 보낸 xml 데이터 패킷을 분석하고 xml을 구문 분석한 후 메시지 지정된 형식에 따라 xml을 연결하여 응답으로 보냅니다. Get 메소드에 사용된 CheckSignature는 서명 검증을 위한 Shengpai WeChat SDK의 클래스입니다.

클라이언트에 메시지를 보낼 때 주로 ToUserName 및 FromUserName입니다. 처음에는 두 매개변수를 거꾸로 썼기 때문에 클라이언트가 메시지를 받지 못했습니다.

위 내용은 이 글의 전체 내용입니다. 모든 분들의 학습에 도움이 되기를 바랍니다.

C# WeChat 공개 계정 개발 및 WeChat 이벤트 상호작용에 관한 더 많은 기사를 보려면 PHP 중국어 웹사이트를 주목하세요!

관련 라벨:
원천:php.cn
본 웹사이트의 성명
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.
인기 튜토리얼
더>
최신 다운로드
더>
웹 효과
웹사이트 소스 코드
웹사이트 자료
프론트엔드 템플릿