微信公众号开发
需求一
1. 明确三个页面
1.1 使用代码实现公众号页面(中间)
2. 需求简图:
3. 需求分析: 如何接收, 如何拼接, 如何返回?
3.1 根据需求, 简单画流程图
4. 接收消息
4.1 官方链接:
https://mp.weixin.qq.com/wiki?t=resource/res_main&id=mp1421140453
4.2 用户可以发送给公众号消息类型(六种): 文本(输入框), 音频(语音输入), 图片(照片/相册), 视频(拍摄), 地理位置(位置)和链接(收藏);
ð 备注: 其中小括号里面是手机按钮名称
5. 拼接/返回消息
5.1 官方链接:
https://mp.weixin.qq.com/wiki?t=resource/res_main&id=mp1421140543
5.2 公众号可以返回给用户的消息类型(六种): 文本、图片、图文、语音、视频、音乐
6. 需求进一步流程图如下:
7. 从代码角度分析, 实现逻辑(index.php)
7.1 接收XML数据包(文本消息)
a. XML数据包结构如下:
b. 接收原始POST请求的XML数据包(字符串)
$xmlStr = file_get_contents(‘php://input’);
c. 将$xmlStr字符串转成对象; 对象属性名就是XML标签名
$xmlObj = simplexml_load_string($xmlStr, "SimpleXMLElement", LIBXML_NOCDATA);
7.2 获取用户发送消息内容(读取Content标签内容)
$content = $xmlObj->Content;
7.3 拼接XML数据包, 包含用户发送消息内容
a. ToUserName标签内容(???): $xmlObj->FromUserName
b. FromUserName标签内容(???): $xmlObj->ToUserName
c. CreateTime标签内容(???): time()
d. Content标签内容(???):您发送的是文本消息, 消息内容是: $xmlObj->Content
7.4 返回XML数据包给用户
a. echo 7.3步拼接好的XML字符串
代码实现和验证
1. 参照之前的需求分析步骤, 实现业务逻辑: index.php
1.1 完整需求流程:
1.2 index.php关键代码:
2. 验证:
2.1 上传index.php到新浪云
2.2 手机端: 输入文本消息, 查看是否返回正确的文本消息
需求二
1. 需求简图:
2. 需求二分析:
2.1 如何判断用户发送消息类型(XML数据包)?
2.2 如何获取用户发送图片URL地址?
2.3 如何返回包含URL地址文本消息? à 需求一实现完
附录
复习
1. HTML和XML
1.1 HTML: Hyper Text Markup Language超文本标记语言; 特点: 由多个规定好的标签组成
1.2 XML: eXtensible Markup Language 可扩展的标记语言; 特点: 由多个可定制化的标签组成
1.3 HTML和XML语法结构类似(相似); 标签嵌套
<开始标签 标签属性>标签内容</结束标签>
1.4 XML标签解析样例, 使用XML标签描述下面语句: 让maggie在3点钟开会
<message>
<name id=”test”>maggie</name>
<time>3</time>
<note>开会</note>
</message>
1.5 解析特殊情况: 如果标签内容包含特殊字符 < / >, 解析报错
<code>for(var i=0; i < 10/2; i++) { sum+= i;}</code>
1.6 特殊情况处理: 使用CDATA语法
<code><![CDATA[for(var i=0; i < 10/2; i++) { sum+= i;}]></code>
<ToUserName><![CDATA[toUser] ]></ToUserName>
2. 客户端(浏览器)添加form表单, 点击提交按钮, 发送POST请求, web服务器可以使用$_POST预定义变量(关联数组), 通过key获取value值, 因为提交数据已经被格式化成Form data形式
2.1 test.html:
2.2 已经默认被格式化成Form data(表单数据)形式
发表评论