2018年8月24日,沉迷于学习微信公众号开发。
本篇文章是传智播客课程“PHP微信公众平台开发”前十二节课的课程笔记。课程的视频链接http://yun.itheima.com/course/163.html ,视频可免费下载,我觉得老师讲得挺好的,采用的是百度云BAE。同时,推荐方倍工作室的博客园(微信公众平台开发入门教程),采用新浪云SAE。
本课程笔记和源码可供下载:https://download.csdn.net/download/luolan9611/10625215
本笔记目录
一,微信公众平台
1,什么是微信公众平台
2,微信与微信公众平台区别
3,微信公众平台开发
4,开发者模式原理图
二,自定义服务器(BAE)
1,登陆百度云平台
2,登陆BAE云引擎
3,单击添加部署按钮
5,管理BAE云平台
三,微信官方接口
①获取微信API接口
②下载API接口文件
解压后如下图所示:
③复制wx_sample.php文件到项目相关目录中,并更名为api.php,设置TOKEN密钥文件
④打开微信公众平台开发者中心,填写以下信息:
⑤通过微信手机端进行测试
⑥开启自动回复功能
⑦再次测试
四,微信官方接口详细分析
五,微信的6大接收接口
1. 文本消息接口
2,图片消息接口
….其它接口大同小异
六,微信文本回复接口
七,简易号码簿
八,音乐回复接口
九,微信的图文回复接口
十,LBS开发
十一,微信LBS案例
十二,微信的机器人开发
一,微信公众平台
1,什么是微信公众平台
微信公众平台是腾讯为了让用户申请和管理微信公众账号而推出的一个网络平台,而微信公众账号的操作管理在这个平台下进行所有用户都在腾讯提供的统一微信公众平台下进行相关操作:平台地址:https://mp.weixin.qq.com/
2,微信与微信公众平台区别
微信是基于点对点关系
微信公众平台是基于一对多关系
3,微信公众平台开发
开发者模式
1)微信公众平台账号(https://mp.weixin.qq.com)
订阅号:个人版用户,每天可以群发一条消息
服务号:企业版用户,每月可以群发四条消息
2)在线虚拟主机或服务器(SAE云引擎,BAE云引擎,阿里云服务器)
3)TortoiseSVN的(SVN客户端软件)
4,开发者模式原理图

解释一下这个开发者模式原理图:我们在微信手机端发送的消息,是被送入腾讯的web服务器,由腾讯的web服务器将消息转发到我们的自定义服务器中。自定义服务器中的代码就是我们写的PHP源代码,它处理接收的消息,并做出相应回应,该回应不会直接到达微信手机端,仍旧是以腾讯的web服务器为中介,进行处理转发才能到手机端。自定义服务器可以选择百度云BAE,新浪云SAE或者阿里云。本教程使用的是百度云BAE,若参考方倍工作室教程,可选择新浪云SAE。TortoiseSVN是一个代码版本库,用于将本地的代码上传或者提交更新到自定义服务器中。
二,自定义服务器(BAE)
1,登陆百度云平台
http://bce.baidu.com/index.html
2,登陆BAE云引擎

3,单击添加部署按钮

如图4所示,设置相关参数


单击确认即可。


单击域名,如出现如下图所示界面,代表创建成功

5,管理BAE云平台
在本地的Apache工作目录创建微信文件夹,然后使用SVN软件进行连接操作,然后输入用户名与密码(百度的账号与密码)即可下载服务端数据到本地。

如图6所示,可以修改的index.php文件
修改的index.php然后通过SVN软件提交到BAE云引擎,但是浏览器发现系统依然没有改变

原因:因为默认情况下,百度云引擎需要手工发布

如果不想每次都手工发布源代码,可以单击微信进入配置目录,进行发布设置

发布成功后,再次浏览器,效果如下:

三,微信官方接口
1,对接微信公众平台
①获取微信API接口

②下载API接口文件

解压后如下图所示:

以上文件就是我们的API文件
③复制wx_sample.php文件到项目相关目录中,并更名为api.php,设置TOKEN密钥文件

通过SVN软件上传api.php文件到BAE。
④打开微信公众平台开发者中心,填写以下信息:

确认无误后,单击提交按钮,效果如下图所示:

如果第一次提交失败,可以再次提交。
⑤通过微信手机端进行测试
第一次测试时,系统没有任何返回,因为api.php接口文件主要负责验证操作,并没有返回任何信息。
⑥开启自动回复功能

再次提交数据到BAE云引擎中。
⑦再次测试

如果出现以上提示代表接入成功!
四,微信官方接口详细分析
如图1所示,验证功能有效()
2,自定义回复功能responseMsg()
详细分析请参考api.php文件
五,微信的6大接收接口
1.文本消息接口

说明:如果用户发送过来的XML数据中,MSGTYPE节点为“文本”,就代表用户发送的是文本消息。
接口开发步骤:
①在接收时,接收MsgType节点

②在接收消息时对$ msgType进行相关判断

修改完成后,上传源代码到BAE引擎中
测试效果:

2,图片消息接口

编写代码如下:

测试结果:

六,微信文本回复接口
如图1所示,文本回复接口XML模板

2,文本回复开发步骤
①组装XML数据

②设置相关参数

③格式化字符串(重要)
string sprintf(string [,mixed
$format [,mixed
$args ]])
$...
功能:返回格式化后的字符串
参数说明:
$ format:要格式的话的模板信息
$ args:要格式化的变量
%s:把变量格式化为字符串

④返回格式化后的XML数据到微信客户端(用户端)

⑤微信公众平台如何判断用户发送的关键词

修改完成后,通过SVN软件上传源代码到BAE云引擎中,测试结果:

七,简易号码簿
1,项目需求
当用户在微信公众平台中输入问号时,自动弹出如下信息
【1】特种服务号码
【2】通讯服务号码
【3】银行服务号码
您可以通过输入【】方括号的编号获取内容哦!
回复1
常用特种服务号码:
匪警:110
火警:119
回复2
常用通讯服务号码:
中移动:10086
中电信:10000
回复3
常用银行服务号码:
工商银行:95588
建设银行:95533
2.开发步骤




修改完成后,提交到百度BAE,测试效果:

八,音乐回复接口
1,音乐回复接口中的XML模板


2,音乐回复接口开发步骤
①组装XML模板

②设定回复关键词

编写完成后,通过SVN上传到BAE中,测试结果如下:

九,微信的图文回复接口
1,微信的图文接口XML模板


2,图文消息接口开发
①组装XML文档

②设置相关参数

③格式化字符串

修改完成后,通过SVN软件提交源代码到BAE云引擎中,测试结果如下:

十,LBS开发
1,什么是LBS
基于位置的服务:基于地理位置的服务
2,接收地理位置信息


3,LBS开发步骤:
①判断$ msgType类型为“location”类型的数据

②几个关键词
$经度经度
$ latitude纬度
③通过以上两个变量接收用户传递的经纬度信息

④通过文本消息返回用户的经纬度信息

⑤上传代码到BAE,测试结果:

十一,微信LBS案例
1,项目需求
根据用户上传的地理位置,显示客户所在详细地理位置。
说明:在LBS接口中,我们可以获取用户的经纬度信息,那么在开发过程中如果通过LBS接口获取用户的详细信息呢?
2,百度LBS接口
http://developer.baidu.com/


进入接口说明:
反地理编码接口:把经纬度转化为详细的地址信息

说明:我们单击接口示例代码,发现可以直接获取到相关数据,代表当前接口使用的是的Http中的GET请求,在实际项目开发中,可以通过的file_get_contents函数来模拟GET请求

3,调用车联网LBS案例

4,在微信接口中调用车联网API

5,上传源代码到BAE中,测试结果:

十二,微信的机器人开发
1,为什么需要微信机器人
当用户输入的关键词与我们设定关键词不匹配时,系统不会返回任何,这样用户体验不是很好,那么如何解决这种问题?
答:可以通过微信聊天机器人对接用户消息
2,图灵机器人
网址:http://www.tuling123.com

3,通过微信对接图灵机器人
接口说明:

详细代码:

上传源代码到BAE,测试结果:






