设为首页 加入收藏

TOP

微信公众号开发C#系列-6、消息管理-普通消息接受处理(二)
2019-09-17 19:08:20 】 浏览:141
Tags:公众 开发 系列 消息 管理 普通 接受 处理
text Content 文本消息内容 MsgId 消息id,64位整型

处理文本消息参考代码:

/// <summary>
/// 处理文字请求
/// </summary>
/// <returns></returns>
public override IResponseMessageBase OnTextRequest(RequestMessageText requestMessage)
{
    //注意:下面泛型ResponseMessageText即返回给客户端的类型,可以根据自己的需要填写ResponseMessageNews等不同类型。
    var responseMessage = CreateResponseMessage<ResponseMessageText>();
 
    var result = new StringBuilder();
    result.AppendFormat("您刚发送了文本信息:{0}\r\n\r\n", requestMessage.Content);
 
    if (CurrentMessageContext.RequestMessages.Count > 1)
    {
        result.AppendFormat("您刚还发送了如下消息({0}/{1}):\r\n", CurrentMessageContext.RequestMessages.Count, CurrentMessageContext.StorageData);
        for (int i = CurrentMessageContext.RequestMessages.Count - 2; i >= 0; i--)
        {
            var historyMessage = CurrentMessageContext.RequestMessages[i];
            result.AppendFormat("{0} 【{1}】{2}\r\n",
                                historyMessage.CreateTime.ToShortTimeString(),
                                historyMessage.MsgType.ToString(),
                                (historyMessage is RequestMessageText)
                                    ? (historyMessage as RequestMessageText).Content
                                    : "[非文字类型]"
                );
        }
        result.AppendLine("\r\n");
    }
    result.AppendFormat("如果您在{0}分钟内连续发送消息,记录将被自动保留(当前设置:最多记录{1}条)。过期后记录将会自动清除。\r\n", WeixinContext.ExpireMinutes, WeixinContext.MaxRecordCount);
    result.AppendLine("\r\n");
    result.AppendLine("您还可以发送【位置】【图片】【语音】【视频】等类型的信息(注意是这几种类型,不是这几个文字),查看不同格式的回复。");
    responseMessage.Content = result.ToString();
    return responseMessage;
}

文本消息调试状态展示

文本消息回复结果展示

4.2、图片消息的接收与回复

图片消息对应的数据包XML格式如下:

<xml>
  <ToUserName><![CDATA[toUser]]></ToUserName>
  <FromUserName><![CDATA[fromUser]]></FromUserName>
  <CreateTime>1348831860</CreateTime>
  <MsgType><![CDATA[image]]></MsgType>
  <PicUrl><![CDATA[this is a url]]></PicUrl>
  <MediaId><![CDATA[media_id]]></MediaId>
  <MsgId>1234567890123456</MsgId>
</xml>

参数说明:

参数              描述

ToUserName      开发者微信号
FromUserName    发送方帐号(一个OpenID)
CreateTime      消息创建时间 (整型)
MsgType         消息类型,图片为image
PicUrl          图片链接(由系统生成)
MediaId         图片消息媒体id,可以调用获取临时素材接口拉取数据。
MsgId           消息id,64位整型

处理图片消息参考代码:

/// <summary>
/// 处理图片请求
/// </summary>
/// <param name="requestMessage"></param>
/// <returns></returns>
public override IResponseMessageBase OnImageRequest(RequestMessageImage requestMessage)
{
    var responseMessage = CreateResponseMessage<ResponseMessageNews>();
    responseMessage.Articles.Add(new Article()
    {
        Title = "您刚才发送了图片信息",
        Description = "您发送的图片将会显示在边上",
        PicUrl = requestMessage.PicUrl,
        Url = "http://blog.rdiframework.net/"
    });
    responseMessage.Articles.Add(new Article()
    {
        Title = "第二条",
        Description = "第二条带连接的内容",
        PicUrl = requestMessage.PicUrl,
        Url = "http://blog.rdiframework.net/"
    });

    return responseMessage;
}

在上面代码中我们返回了用户发送的图片消息,同时加上了链接地址,用户单击消息会自动跳转到指定的URL地址。

图片消息调试状态展示

图片消息回复结果展示

4.3、语音消息的接收与回复

语音消息对应的数据包XML格式如下:

<xml>
  <ToUserName><![CDATA[toUser]]></ToUserName>
  <FromUserName><![CDATA[fromUser]]></FromUserName>
  <CreateTim
首页 上一页 1 2 3 4 5 下一页 尾页 2/5/5
】【打印繁体】【投稿】【收藏】 【推荐】【举报】【评论】 【关闭】 【返回顶部
上一篇参数验证一种方式 下一篇C# 创建含多层分类标签的Excel图表

最新文章

热门文章

Hot 文章

Python

C 语言

C++基础

大数据基础

linux编程基础

C/C++面试题目