本帖最后由 小江哥 于 2018-2-3 16:32 编辑
各位同学,大家好!欢迎关注我们杭州黑马PHP课程,接下来的一段时间我们将会有不同阶段的老师给同学们分享PHP的课程。这节课程主要是给大家分享Wechat微信公众平台开发第一天的后面部分。从部署一直到项目的完整架构,流程,希望能给大家的编程学习带来帮助,当然在学习中遇到了问题也可以回帖进行提问,我们还会不定时的在公众平台派送一些意想不到的惊喜呦!!!
五、微信消息的6大接收接口1、开发者模式2、6大消息接口的XML模板① 文本消息XML模板 由以上XML模板分析可知,如果MsgType节点,其值为text,则代表用户发送的是文本消息。 ② 图片消息XML模板 由以上XML模板分析可知,如果MsgType节点,其值为image,则代表用户发送的是图片消息。 ③ 语音消息XML模板 由以上XML模板分析可知,如果MsgType节点,其值为voice,则代表用户发送的是语音消息。 ④ 视频消息与小视频消息 视频: 小视频: 由以上XML模板分析可知,如果MsgType节点,其值为video或shortvideo,则代表用户发送的消息为视频消息。 ⑤ 地理位置消息XML模板 由以上XML模板分析可知,如果MsgType节点,其值为location,则代表用户发送的是地理位置消息。 ⑥ 链接消息接口XML模板 由以上XML模板分析可知,如果MsgType节点,其值为link,则代表用户发送的是链接消息。 3、使用php代码判断用户发送的消息类型① 简化api.php代码,分离所有的xml模板,放入指定的common.php页面中 ② 在api.php页面引入common.php ③ 调用$tmp_arr数组 ④ 获取MsgType节点,并判断其值,如下图所示: ⑤ 上传api.php代码到LAMP环境中,测试结果如下: 六、微信订阅回复接口1、订阅回复接口(关注回复接口)当用户关注我们的微信公众平台时,系统会自动调用订阅回复接口返回相应的信息,我们把这个过程就称之为“订阅回复功能“。 2、订阅回复XML模板由以上XML模板分析可知,如果MsgType节点为event且Event节点值为subscribe,则代表用户发送的消息为订阅回复消息。 3、编写php代码判断订阅回复4、上传代码到LAMP环境并测试七、微信消息的6大回复接口1、文本回复接口① 分析文本回复接口的XML模板,如下图所示: 特别注意:在回复接口中,其FromUserName、ToUserName与接收接口中的FromUserName、ToUserName正好相反。 ② 在api接口中,定义文本回复模板(封装到common.php文件中) ③ 定义回复时用到的相关变量 ④ 使用sprintf进行代码格式化(针对XML模板) 要用到的知识点: sprintf函数,案例如下: %s :把变量格式化成相应的字符串。 ⑤ 返回格式化后的XML数据到微信端 2、图片、语音、视频回复接口① 分析图片回复接口的XML模板 MediaId说明: ② 定义图片回复的XML模板 ③ 定义相关的变量 ④ 使用调试工具,获取mediaid,如下图所示: 第一步:获取access_token,如下图所示: 第二步:使用素材管理端口上传图片素材,获取MediaId 获取MediaId节点,如下图所示: 在api.php中填写$mediaid,如下图所示: ⑤ 格式化XML模板,使用sprintf函数,如下图所示: ⑥ 返回XML格式的数据到微信端,如下图所示: ⑦ 上传api.php与common.php到LAMP环境,测试结果如下: 3、音乐回复接口① 分析音乐回复接口的XML模板 Music节点内数据进行分析: ② 在common.php页面,定义music模板,如下图所示: ③ 在api.php页面调用音乐回复接口 ④ 使用sprintf函数对music模板进行格式化操作 ⑤ 返回格式化的XML数据到客户端 ⑥ 上传api.php与common.php到LAMP环境,测试结果如下: 4、图文回复接口(重点)① 分析图文回复接口的XML模板 特殊节点说明: ② 在common.php中定义news模板 ③ 在api.php代码中定义相关变量 ④ 使用sprintf函数对XML模板进行格式化 ⑤ 使用echo方法让XML数据返回到客户端 ⑥ 上传api.php与common.php到LAMP环境,测试结果如下: ⑦ 实现多图文功能 再次上传api.php代码到LAMP环境,测试结果如下: 八、微信开发中的代码调试1、语法错误解决方案:使用企业级的开发工具(如Zend Studio、PHPStorm、NetBeans),其内置了语法调试工具,可以快速的定位到代码异常。 2、微信接口错误解决方案:由微信开发可知,在微信传输过程中,其数据都是以XML格式进行传递的,在实际工作中,如果遇到接口异常,我们只需要捕获XML数据并对其分析即可找到解决方案。 ① 在系统中创建一个wx.log日志文件 ② 使用FlashFxp软件上传代码到服务器端 ③ wx.log文件权限问题 ④ 使用chmod指令更改文件权限(666) ⑤ 使用file_put_contents函数向日志文件中写入数据 ⑥ 上传api.php到LAMP服务器端 ⑦ 在手机端向微信公众平台发送信息,触发日志功能,然后更新wx.log到本地 |