A股上市公司传智教育(股票代码 003032)旗下技术交流社区北京昌平校区

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

© 小江哥 黑马粉丝团   /  2018-2-3 16:00  /  1570 人查看  /  0 人回复  /   1 人收藏 转载请遵从CC协议 禁止商业使用本文

本帖最后由 小江哥 于 2018-2-3 16:32 编辑

各位同学,大家好!欢迎关注我们杭州黑马PHP课程,接下来的一段时间我们将会有不同阶段的老师给同学们分享PHP的课程。这节课程主要是给大家分享Wechat微信公众平台开发第一天的后面部分。从部署一直到项目的完整架构,流程,希望能给大家的编程学习带来帮助,当然在学习中遇到了问题也可以回帖进行提问,我们还会不定时的在公众平台派送一些意想不到的惊喜呦!!!

、微信消息的6接收接口1、开发者模式
226107.png
26消息接口的XML模板
① 文本消息XML模板
226136.png
由以上XML模板分析可知,如果MsgType节点,其值为text,则代表用户发送的是文本消息。
② 图片消息XML模板
226198.png
由以上XML模板分析可知,如果MsgType节点,其值为image则代表用户发送的是图片消息。
③ 语音消息XML模板
226261.png
由以上XML模板分析可知,如果MsgType节点,其值为voice则代表用户发送的是语音消息。
④ 视频消息与小视频消息
视频
226329.png
小视频
226336.png
由以上XML模板分析可知,如果MsgType节点,其值为videoshortvideo则代表用户发送的消息为视频消息。
⑤ 地理位置消息XML模板
226414.png
由以上XML模板分析可知,如果MsgType节点,其值为location则代表用户发送的是地理位置消息。
⑥ 链接消息接口XML模板
226484.png
由以上XML模板分析可知,如果MsgType节点,其值为link代表用户发送的是链接消息。
3、使用php代码判断用户发送的消息类型
简化api.php代码,分离所有的xml模板,放入指定的common.php页面中
226599.png
api.php页面引入common.php
226627.png
调用$tmp_arr数组
226645.png
获取MsgType节点,并判断其值,如下图所示:
226675.png
上传api.php代码到LAMP环境中,测试结果如下:
226708.png
六、微信订阅回复接口1、订阅回复接口(关注回复接口)
当用户关注我们的微信公众平台时,系统会自动调用订阅回复接口返回相应的信息,我们把这个过程就称之为订阅回复功能
2、订阅回复XML模板
226808.png
由以上XML模板分析可知,如果MsgType节点为eventEvent节点值为subscribe,则代表用户发送的消息为订阅回复消息。
3、编写php代码判断订阅回复
226895.png
4、上传代码到LAMP环境并测试
226914.png
七、微信消息的6大回复接口1、文本回复接口
分析文本回复接口的XML模板,如下图所示:
226963.png
特别注意:在回复接口中,其FromUserNameToUserName与接收接口中的FromUserNameToUserName正好相反。
api接口中,定义文本回复模板(封装到common.php文件中)
227074.png
定义回复时用到的相关变量
227091.png
使用sprintf进行代码格式化(针对XML模板)
227121.png
要用到的知识点:
sprintf函数,案例如下:
227148.png
%s :把变量格式化成相应的字符串。
返回格式化后的XML数据到微信端
227188.png
2、图片、语音、视频回复接口
分析图片回复接口的XML模板
227222.png
MediaId说明:
227235.png
定义图片回复的XML模板
227252.png
定义相关的变量
227264.png
使用调试工具,获取mediaid,如下图所示:
第一步:获取access_token,如下图所示:
227318.png
第二步:使用素材管理端口上传图片素材,获取MediaId
227349.png
获取MediaId节点,如下图所示:
227370.png
api.php中填写$mediaid,如下图所示:
227399.png
格式化XML模板,使用sprintf函数,如下图所示:
227431.png
返回XML格式的数据到微信端,如下图所示:
227457.png
上传api.phpcommon.phpLAMP环境,测试结果如下:
227497.png
3、音乐回复接口
① 分析音乐回复接口的XML模板
227525.png
Music节点内数据进行分析:
227543.png
② 在common.php页面,定义music模板,如下图所示:
227578.png
③ 在api.php页面调用音乐回复接口
227601.png
④ 使用sprintf函数对music模板进行格式化操作
227632.png
⑤ 返回格式化的XML数据到客户端
227652.png
⑥ 上传api.phpcommon.phpLAMP环境,测试结果如下:
227692.png
4、图文回复接口(重点
① 分析图文回复接口的XML模板
227724.png
特殊节点说明:
227734.png
② 在common.php定义news模板
227759.png
③ 在api.php代码中定义相关变量
227781.png
④ 使用sprintf函数XML模板进行格式化
227808.png
⑤ 使用echo方法XML数据返回到客户端
227833.png
⑥ 上传api.phpcommon.phpLAMP环境,测试结果如下:
227873.png
⑦ 实现多图文功能
227885.png
再次上传api.php代码LAMP环境,测试结果如下:
227916.png
微信开发中的代码调试1、语法错误
解决方案:使用企业级的开发工具(Zend StudioPHPStormNetBeans其内置了语法调试工具,可以快速的定位到代码异常。
228011.png
2、微信接口错误
解决方案:微信开发可知,在微信传输过程中,其数据都是以XML格式进行传递的,在实际工作中,如果遇到接口异常,我们只需要捕获XML数据并对其分析即可找到解决方案。
① 在系统中创建一个wx.log日志文件
228126.png
② 使用FlashFxp软件上传代码到服务器端
228152.png
wx.log文件权限问题
228169.png
④ 使用chmod指令更改文件权限(666
228194.png
⑤ 使用file_put_contents函数向日志文件中写入数据
228230.png
⑥ 上传api.phpLAMP服务器端
228253.png
⑦ 在手机端向微信公众平台发送信息,触发日志功能然后更新wx.log到本地
228294.png

0 个回复

您需要登录后才可以回帖 登录 | 加入黑马