• linkedu视频
  • 平面设计
  • 电脑入门
  • 操作系统
  • 办公应用
  • 电脑硬件
  • 动画设计
  • 3D设计
  • 网页设计
  • CAD设计
  • 影音处理
  • 数据库
  • 程序设计
  • 认证考试
  • 信息管理
  • 信息安全
菜单
linkedu.com
  • 网页制作
  • 数据库
  • 程序设计
  • 操作系统
  • CMS教程
  • 游戏攻略
  • 脚本语言
  • 平面设计
  • 软件教程
  • 网络安全
  • 电脑知识
  • 服务器
  • 视频教程
  • JavaScript
  • ASP.NET
  • PHP
  • 正则表达式
  • AJAX
  • JSP
  • ASP
  • Flex
  • XML
  • 编程技巧
  • Android
  • swift
  • C#教程
  • vb
  • vb.net
  • C语言
  • Java
  • Delphi
  • 易语言
  • vc/mfc
  • 嵌入式开发
  • 游戏开发
  • ios
  • 编程问答
  • 汇编语言
  • 微信小程序
  • 数据结构
  • OpenGL
  • 架构设计
  • qt
  • 微信公众号
您的位置:首页 > 程序设计 >微信公众号 > 微信公众平台开发消息回复总结介绍

微信公众平台开发消息回复总结介绍

作者:匿名 字体:[增加 减小] 来源:互联网

匿名通过本文主要向大家介绍了微信开发等相关知识,希望对您有所帮助,也希望大家支持linkedu.com www.linkedu.com
一、简介

微信公众平台提供了三种消息回复的格式,即文本回复、音乐回复和图文回复,在这一篇文章中,我们将对这三种消息回复的格式做一下简单讲解,然后封装成函数,以供读者使用。

二、思路分析

对于每一个POST请求,开发者在响应包中返回特定xml结构,对该消息进行响应(现支持回复文本、图文、语音、视频、音乐)。

三、文本回复

3.1 文本回复xml 结构

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

3.2 结构说明

微信公众平台开发消息回复总结介绍

3.3 具体实施

针对上面给出的xml 结构,我们只需要在对应的位置填上内容,然后格式化输出就可以了。

微信公众平台开发消息回复总结介绍

说明:

ToUserName 位置上填写的是$fromUsername = $postObj->FromUserName,就是把消息返回给发送信息过来的用户,即接收方账号。

FromUserName 位置上填写的是$toUsername = $postObj->ToUserName,既是开发者微信号。

这是官方的文本回复,只需实例化它的responseMsg() 方法就可以回复 “Welcome to wechat world!” 消息了。

这里我们稍做修改,返回fromUsername 和toUsername 消息,便于读者理解以上的说明。

微信公众平台开发消息回复总结介绍

3.4 测试结果

微信公众平台开发消息回复总结介绍

3.5 封装成可调用的函数

我们可以将上面的内容封装成函数,在需要回复文本的地方直接调用,方便简洁,responseText.func.inc.php 代码如下。

function _response_text($object,$content){
    $textTpl = "<xml>
                <ToUserName><![CDATA[%s]]></ToUserName>
                <FromUserName><![CDATA[%s]]></FromUserName>
                <CreateTime>%s</CreateTime>
                <MsgType><![CDATA[text]]></MsgType>
                <Content><![CDATA[%s]]></Content>
                <FuncFlag>%d</FuncFlag>
                </xml>";
    $resultStr = sprintf($textTpl, $object->FromUserName, $object->ToUserName, time(), $content, $flag);
    return $resultStr;
}

这样,只要传入$object 和$content,然后在需要回复文本的文件中引入该文件,然后调用 _response_text() 方法,就可以直接回复文本了。

3.6 测试代码

3.6.1 在主文件中引入回复文本的函数文件

require_once 'responseText.func.inc.php';

3.6.2 普通消息回复

public function handleText($postObj)
    {
        $keyword = trim($postObj->Content);

        if(!empty( $keyword ))
        {
            $contentStr = "微信公众平台-文本回复功能源代码";
            //$resultStr = sprintf($textTpl, $fromUsername, $toUsername, $time, $msgType, $contentStr);
            $resultStr = _response_text($postObj,$contentStr);
            echo $resultStr;
        }else{
            echo "Input something...";
        }
}

3.6.3 关注时回复

public function handleEvent($object)
    {
        $contentStr = "";
        switch ($object->Event)
        {
            case "subscribe":
                $contentStr = "感谢您关注【卓锦苏州】"."\n"."微信号:zhuojinsz";
                break;
            default :
                $contentStr = "Unknow Event: ".$object->Event;
                break;
        }
        $resultStr = _response_text($object, $contentStr);
        return $resultStr;
}

3.7 测试结果

微信公众平台开发消息回复总结介绍

回复文本成功。

四、图文回复

4.1 图文回复xml 结构

 <xml>
 <ToUserName><![CDATA[toUser]]></ToUserName>
 <FromUserName><![CDATA[fromUser]]></FromUserName>
 <CreateTime>12345678</CreateTime>
 <MsgType><![CDATA[news]]></MsgType>
 <ArticleCount>2</ArticleCount>
 <Articles>
 <item>
 <Title><![CDATA[title1]]></Title> 
 <Description><![CDATA[description1]]></Description>
 <PicUrl><![CDATA[picurl]]></PicUrl>
 <Url><![CDATA[url]]></Url>
 </item>
 <item>
 <Title><![CDATA[title]]></Title>
 <Description><![CDATA[description]]></Description>
 <PicUrl><![CDATA[picurl]]></PicUrl>
 <Url><![CDATA[url]]></Url>
 </item>
 </Articles>
 </xml>

4.2 结构说明

微信公众平台开发消息回复总结介绍

类似文本回复的格式,只需要在相应的位置填上对应的内容就可以回复图文信息了。

4.3 具体实施

图文回复可以是单图文,也可以是多图文,这里我们先以单图文的案例来引导读者,然后再引出多图文。

我们将回复图文的xml 结构分解成为以下三个结构,图文头,图文体,图文尾,图文体就是图文回复时看到的标题,描述,图片URL和原文URL。

$newsTplHead = "<xml>
                <ToUserName><![CDATA[%s]]></ToUserName>
                <FromUserName><![CDATA[%s]]></FromUserName>
                <CreateTime>%s</CreateTime>
                <MsgType><![CDATA[news]]></MsgType>
                <ArticleCount>1</ArticleCount>
                <Articles>";
$newsTplBody = "<item>
                <Title><![CDATA[%s]]></Title> 
                <Description><![CDATA[%s]]></Description>
                <PicUrl><![CDATA[%s]]></PicUrl>
                <Url><![CDATA[%s]]></Url>
                </item>";
$newsTplFoot = "</Articles>
                <FuncFlag>0</FuncFlag>
                </xml>";

接下来,我们对三段结构分别插入对应内容:

A. $newsTplHead

$header = sprintf($newsTplHead, $object->FromUserName, $object->ToUserName, time());

B. $newsTplBody

$title = $newsContent['title'];
$desc = $newsContent['description'];
$picUrl = $newsContent['picUrl'];
$url = $newsContent['url'];
$body = sprintf($newsTplBody, $title, $desc, $picUrl, $url);

说明:$newsContent 是从主文件传入函数的图文数组。

C. $newsTplFoot

$FuncFl



 
分享到:QQ空间新浪微博腾讯微博微信百度贴吧QQ好友复制网址打印

您可能想查找下面的文章:

相关文章

  • 推荐给初次接触微信开发的人
  • 微信硬件JS-Api开发不完全指南
  • 微信小程序 WXML、WXSS 和JS介绍及详解
  • 微信开发实现相机拍照和本地上传图片的功能
  • 微信小程序 实战小程序实例
  • 微信现金红包接口实现红包发放的示例代码分享
  • 写一份简洁明了的外包需求文档
  • nodejs微信公众号支付开发
  • 微信公众平台开发基本原理及消息接
  • 微信支付验证或签名失败是什么原因?附三种解决方案

文章分类

  • JavaScript
  • ASP.NET
  • PHP
  • 正则表达式
  • AJAX
  • JSP
  • ASP
  • Flex
  • XML
  • 编程技巧
  • Android
  • swift
  • C#教程
  • vb
  • vb.net
  • C语言
  • Java
  • Delphi
  • 易语言
  • vc/mfc
  • 嵌入式开发
  • 游戏开发
  • ios
  • 编程问答
  • 汇编语言
  • 微信小程序
  • 数据结构
  • OpenGL
  • 架构设计
  • qt
  • 微信公众号

最近更新的内容

    • 分享通过api接口将json数据展现出来的实例教程
    • 微信协议详解
    • 微信浏览器取消缓存的方法详细说明
    • 微信二维码登录中的JS代码分析
    • filter怎样全局使用
    • C#微信公众平台开发之access_token的获取存储与更新
    • nodejs微信公众号支付开发
    • 微信开发之微信jsapi选择图片,上传图片,预览和下载图片方法
    • c#开发微信实现jssdk签名生成
    • 二维码登录如何使用?总结二维码登录实例用法

关于我们 - 联系我们 - 免责声明 - 网站地图

©2020-2025 All Rights Reserved. linkedu.com 版权所有