微信公众号开发

微信公众号开发

需求一

1. 明确三个页面

1.1 使用代码实现公众号页面(中间)

image.png 

 

 

 

 

 

 

 

 

2. 需求简图:

image.png 

 

3. 需求分析: 如何接收, 如何拼接, 如何返回?

3.1 根据需求, 简单画流程图

image.png 

 

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. 需求进一步流程图如下:

image.png 

 

 

 

 

7. 从代码角度分析, 实现逻辑(index.php)

7.1 接收XML数据包(文本消息)

a. XML数据包结构如下:

image.png 

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

image.png 

 

7.4 返回XML数据包给用户

a. echo 7.3步拼接好的XML字符串

 

代码实现和验证

1. 参照之前的需求分析步骤, 实现业务逻辑: index.php

1.1 完整需求流程:

image.png 

 

1.2 index.php关键代码:

image.png image.png

 

2. 验证:

2.1 上传index.php到新浪云

2.2 手机端: 输入文本消息, 查看是否返回正确的文本消息

 

 

需求二

1. 需求简图:

image.png 

 

2. 需求二分析:

2.1 如何判断用户发送消息类型(XML数据包)?

image.png 

2.2 如何获取用户发送图片URL地址?

image.png 

2.3 如何返回包含URL地址文本消息? à 需求一实现完

 

附录

复习

1. HTMLXML

1.1 HTML: Hyper Text Markup Language超文本标记语言; 特点: 由多个规定好的标签组成

1.2 XML: eXtensible Markup Language 可扩展的标记语言; 特点: 由多个可定制化的标签组成

1.3 HTMLXML语法结构类似(相似); 标签嵌套

<开始标签 标签属性>标签内容</结束标签>

1.4 XML标签解析样例, 使用XML标签描述下面语句: maggie3点钟开会

<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:

image.png 

2.2 已经默认被格式化成Form data(表单数据)形式

image.png 


最后编辑于:2019/12/29作者: 牛逼PHP

发表评论