C产品在市场上有哪些独特优势?

2026-05-20 10:291阅读0评论SEO基础
  • 内容介绍
  • 文章标签
  • 相关推荐

本文共计1344个文字,预计阅读时间需要6分钟。

C产品在市场上有哪些独特优势?

接收+/返回文本消息原理说明:当普通微信用户向公众号发送消息时,微信服务器将POST消息的XML数据包发送到开发者填写的URL上。开发者需在收到消息后,对消息进行处理,并返回相应的文本消息。

接收 / 返回文本消息

①接收/返回文本消息原理说明

当普通微信用户向公众账号发消息时,微信服务器将POST消息的XML数据包到开发者填写的URL上,着手开发之前先行阅读微信公众平台接收普通消息微信开发文档,对微信的这种消息处理机制有一定了解之后再着手开发(微信开发接收普通消息开发文档)

注意点:

1、关于重试的消息排重,推荐使用msgid排重。

2、微信服务器在五秒内收不到响应会断掉连接,并且重新发起请求,总共重试三次。假如服务器无法保证在五秒内处理并回复,可以直接回复空串,微信服务器不会对此作任何处理,并且不会发起重试。详情请见“发送消息-被动回复消息”。

3、为了保证更高的安全保障,开发者可以在公众平台官网的开发者中心处设置消息加密。开启加密后,用户发来的消息会被加密,公众号被动回复用户的消息也需要加密(但开发者通过客服接口等API调用形式向用户发送消息,则不受影响)。关于消息加解密的详细说明,请见“消息加解密说明”。

POST到开发者服务器上边的XML格式为:

<xml> <ToUserName><![CDATA[toUser]]></ToUserName> <FromUserName><![CDATA[fromUser]]></FromUserName> <CreateTime>1348831860</CreateTime> <MsgType><![CDATA[text]]></MsgType> <Content><![CDATA[this is a test]]></Content> <MsgId>1234567890123456</MsgId> </xml>

接收消息数据包参数说明:

C产品在市场上有哪些独特优势?

返回文本消息的XML格式:

<xml> <ToUserName><![CDATA[toUser]]></ToUserName> <FromUserName><![CDATA[fromUser]]></FromUserName> <CreateTime>12345678</CreateTime> <MsgType><![CDATA[text]]></MsgType> <Content><![CDATA[你好]]></Content> </xml>

返回文本消息数据包参数说明:

②接收/返回文本消息代码实现

开发者在自己服务器上边接收微信服务器POST过来的XML数据包接收代码如下:

if(IsPostBack) {  //*********************************自动应答代码块*********************************  string postString = string.Empty;  using (Stream stream = HttpContext.Current.Request.InputStream)  {    Byte[] postBytes = new Byte[stream.Length];    stream.Read(postBytes, 0, (Int32)stream.Length);     //接收的消息为GBK格式    postString = Encoding.GetEncoding("GBK").GetString(postBytes);     string responseContent = help.ReturnMessage(postString );     //返回的消息为UTF-8格式     HttpContext.Current.Response.ContentEncoding = Encoding.UTF8;     HttpContext.Current.Response.Write(responseContent);   }   //********************************自动应答代码块end******************************* }

注意:接收消息的时候要将消息格式转化为“GBK”格式,否则后边进行消息解析的时候没办法进行有效解析。

ReturnMessage()处理方法代码如下:

/// <summary> /// 统一全局返回消息处理方法 /// </summary> /// <param name="postStr"></param> /// <returns></returns> public string ReturnMessage(string postStr) {   string responseContent = "";   XmlDocument xmldoc = new XmlDocument();   xmldoc.Load(new System.IO.MemoryStream(System.Text.Encoding.GetEncoding("GB2312").GetBytes(postStr)));  XmlNode MsgType = xmldoc.SelectSingleNode("/xml/MsgType");   if (MsgType != null)   {     switch (MsgType.InnerText)     {       case "event":         responseContent = EventHandle(xmldoc);//菜单事件处理         break;       case "text":         responseContent = TextHandle(xmldoc);//文本消息处理         break;       default:         break;    }   }   return responseContent; }

TextHandle(xmldoc)处理方法代码如下:

/// <summary> /// 接受文本消息并回复自定义消息 /// </summary> /// <param name="xmldoc"></param> /// <returns></returns> public string TextHandle(XmlDocument xmldoc) {  string responseContent = "";  XmlNode ToUserName = xmldoc.SelectSingleNode("/xml/ToUserName");  XmlNode FromUserName = xmldoc.SelectSingleNode("/xml/FromUserName");  XmlNode Content = xmldoc.SelectSingleNode("/xml/Content");  if (Content != null)  {    if (Content.InnerText == "指定回复消息的自定义文本")    {      responseContent = string.Format(XMLTemplate.Message_Text,        FromUserName.InnerText,        ToUserName.InnerText,        DateTime.Now.Ticks,        "自定义回复消息内容");    }  }  return responseContent; }

到这里实现功能的代码演示已完毕,后边其他的消息处理模式也是根据这种方式在做交互,比如:接收/回复文本消息、图片消息、语音消息、视频消息、小视频消息、地理位置消息、链接消息等都可以参照以上代码进行功能实现。

以上就是本文的全部内容,希望本文的内容对大家的学习或者工作能带来一定的帮助,同时也希望多多支持易盾网络!

本文共计1344个文字,预计阅读时间需要6分钟。

C产品在市场上有哪些独特优势?

接收+/返回文本消息原理说明:当普通微信用户向公众号发送消息时,微信服务器将POST消息的XML数据包发送到开发者填写的URL上。开发者需在收到消息后,对消息进行处理,并返回相应的文本消息。

接收 / 返回文本消息

①接收/返回文本消息原理说明

当普通微信用户向公众账号发消息时,微信服务器将POST消息的XML数据包到开发者填写的URL上,着手开发之前先行阅读微信公众平台接收普通消息微信开发文档,对微信的这种消息处理机制有一定了解之后再着手开发(微信开发接收普通消息开发文档)

注意点:

1、关于重试的消息排重,推荐使用msgid排重。

2、微信服务器在五秒内收不到响应会断掉连接,并且重新发起请求,总共重试三次。假如服务器无法保证在五秒内处理并回复,可以直接回复空串,微信服务器不会对此作任何处理,并且不会发起重试。详情请见“发送消息-被动回复消息”。

3、为了保证更高的安全保障,开发者可以在公众平台官网的开发者中心处设置消息加密。开启加密后,用户发来的消息会被加密,公众号被动回复用户的消息也需要加密(但开发者通过客服接口等API调用形式向用户发送消息,则不受影响)。关于消息加解密的详细说明,请见“消息加解密说明”。

POST到开发者服务器上边的XML格式为:

<xml> <ToUserName><![CDATA[toUser]]></ToUserName> <FromUserName><![CDATA[fromUser]]></FromUserName> <CreateTime>1348831860</CreateTime> <MsgType><![CDATA[text]]></MsgType> <Content><![CDATA[this is a test]]></Content> <MsgId>1234567890123456</MsgId> </xml>

接收消息数据包参数说明:

C产品在市场上有哪些独特优势?

返回文本消息的XML格式:

<xml> <ToUserName><![CDATA[toUser]]></ToUserName> <FromUserName><![CDATA[fromUser]]></FromUserName> <CreateTime>12345678</CreateTime> <MsgType><![CDATA[text]]></MsgType> <Content><![CDATA[你好]]></Content> </xml>

返回文本消息数据包参数说明:

②接收/返回文本消息代码实现

开发者在自己服务器上边接收微信服务器POST过来的XML数据包接收代码如下:

if(IsPostBack) {  //*********************************自动应答代码块*********************************  string postString = string.Empty;  using (Stream stream = HttpContext.Current.Request.InputStream)  {    Byte[] postBytes = new Byte[stream.Length];    stream.Read(postBytes, 0, (Int32)stream.Length);     //接收的消息为GBK格式    postString = Encoding.GetEncoding("GBK").GetString(postBytes);     string responseContent = help.ReturnMessage(postString );     //返回的消息为UTF-8格式     HttpContext.Current.Response.ContentEncoding = Encoding.UTF8;     HttpContext.Current.Response.Write(responseContent);   }   //********************************自动应答代码块end******************************* }

注意:接收消息的时候要将消息格式转化为“GBK”格式,否则后边进行消息解析的时候没办法进行有效解析。

ReturnMessage()处理方法代码如下:

/// <summary> /// 统一全局返回消息处理方法 /// </summary> /// <param name="postStr"></param> /// <returns></returns> public string ReturnMessage(string postStr) {   string responseContent = "";   XmlDocument xmldoc = new XmlDocument();   xmldoc.Load(new System.IO.MemoryStream(System.Text.Encoding.GetEncoding("GB2312").GetBytes(postStr)));  XmlNode MsgType = xmldoc.SelectSingleNode("/xml/MsgType");   if (MsgType != null)   {     switch (MsgType.InnerText)     {       case "event":         responseContent = EventHandle(xmldoc);//菜单事件处理         break;       case "text":         responseContent = TextHandle(xmldoc);//文本消息处理         break;       default:         break;    }   }   return responseContent; }

TextHandle(xmldoc)处理方法代码如下:

/// <summary> /// 接受文本消息并回复自定义消息 /// </summary> /// <param name="xmldoc"></param> /// <returns></returns> public string TextHandle(XmlDocument xmldoc) {  string responseContent = "";  XmlNode ToUserName = xmldoc.SelectSingleNode("/xml/ToUserName");  XmlNode FromUserName = xmldoc.SelectSingleNode("/xml/FromUserName");  XmlNode Content = xmldoc.SelectSingleNode("/xml/Content");  if (Content != null)  {    if (Content.InnerText == "指定回复消息的自定义文本")    {      responseContent = string.Format(XMLTemplate.Message_Text,        FromUserName.InnerText,        ToUserName.InnerText,        DateTime.Now.Ticks,        "自定义回复消息内容");    }  }  return responseContent; }

到这里实现功能的代码演示已完毕,后边其他的消息处理模式也是根据这种方式在做交互,比如:接收/回复文本消息、图片消息、语音消息、视频消息、小视频消息、地理位置消息、链接消息等都可以参照以上代码进行功能实现。

以上就是本文的全部内容,希望本文的内容对大家的学习或者工作能带来一定的帮助,同时也希望多多支持易盾网络!