微信公众平台被动回复用户消息开发全步骤

一、微信开发模式

微信公众平台被动回复用户消息开发全步骤_第1张图片

二、自己的服务器和域名

1.可以购买阿里云的服务器和域名。

2.使用内网渗透软件NATAPP把自己的计算机打造成自定义服务器,会自动拥有一个域名。

缺点就是关掉后域名会变化,因为是免费的,可以购买付费的就不会变了。

① 地址:https://natapp.cn/

② 创建隧道:

微信公众平台被动回复用户消息开发全步骤_第2张图片

需要有phpstudy环境,如果更改过phpStudy端口号的,此位置设置为更改后的端口,比如8080

③ 在除C盘以外的任意盘符下,创建一个natapp文件夹

软件链接:https://pan.baidu.com/s/1lPYonGtMId8njJ21jnL02A   提取码:lx13 
 

微信公众平台被动回复用户消息开发全步骤_第3张图片

 

④ 获取隧道的authtoken(我的隧道里面,如下图所示)

⑤ 更改config.ini中的authtoken

微信公众平台被动回复用户消息开发全步骤_第4张图片

⑥ 打开cmd窗口,切换到natapp目录

⑦ 使用natapp.exe –authtoken=我们自己的authtoken打开软件

运行成功后,如下图所示:

微信公众平台被动回复用户消息开发全步骤_第5张图片

⑧然后就可以访问了。

三、微信的开发接口

① 下载微信的开发接口,wx_sample.php文件

文件链接:https://pan.baidu.com/s/1VwfJxEsxqM90M7IEuP6ywA  提取码:ncv5 

微信公众平台被动回复用户消息开发全步骤_第6张图片

② 把wx_sample.php文件更名为api.php文件

微信公众平台被动回复用户消息开发全步骤_第7张图片

③ 把api.php,放到phpStudy中的WWW目录下

微信公众平台被动回复用户消息开发全步骤_第8张图片

 

④ 查看api.php中的TOKEN密钥

微信公众平台被动回复用户消息开发全步骤_第9张图片

默认为weixin,再加上免费的域名

有了域名 + TOKEN密钥就可以让微信连接到我们自己的服务器了。

⑤ 在微信公众平台设置域名 + 接口文件 + TOKEN

填写关键信息:

微信公众平台被动回复用户消息开发全步骤_第10张图片

单击提交,启动启用按钮如下图所示:

微信公众平台被动回复用户消息开发全步骤_第11张图片

⑥ 打开微信,向我们的平台发送任意字符,如下图所示:

微信公众平台被动回复用户消息开发全步骤_第12张图片

问题:报错,说我们出现故障,但是到目前为止,我们没有更改为任何一行代码,为什么?

答:因为我们并没有在微信的接口中开启回复功能。

⑦ 开启自动回复功能(更改api.php接口)

1)当验证成功后,把以下代码注释掉!!!!!重要

2)在以上代码的下面,添加一行代码:!!!!!重要

保存,再次向平台发送任意字符,如下图所示:

四、微信的接口分析

1、微信对象分析

$对象 = new 类名称(),在PHP中,通过这种方式创建的都是一个对象。

2、访问对象中的方法

基本语法:

$对象 -> 方法名称(),如下图所示:

3、分析responseMsg方法

1)获取客户端APP发送过来的数据,格式XML

2)把XML数据转换为对象

3)发送过来的数据有哪些属性呢?(开发者工具->开发者手册->消息管理->接收普通消息)

微信公众平台被动回复用户消息开发全步骤_第13张图片

ToUserName :我们的注册的微信公众平台账号

FromUserName :微信的信息,一个微信有一个唯一的openid

CreateTime :时间戳

MsgType :消息类型,如果是text代表文本消息(字符串),如果是image代表图片消息,如果voice代表语音消息。

Content :发送的文本内容

4)使用PHP代码发送微信信息

更改一下:

微信公众平台被动回复用户消息开发全步骤_第14张图片

运行结果:

、微信的接收接口

1、什么叫接收接口

当我们通过微信APP向微信公众平台发送信息时,对于自定义服务器而言,这就是一个接收过程。

2、如何判断消息的类型

在微信开发中,如何判断微信发送给我们的平台的数据类型(文本、图片、语音)

3、使用MsgType属性判断接收数据的类型

① 接收MsgType这个属性,如下所示:

② 对$msgType进行判断,text=文本消息,image=图片消息,voice=语音消息

微信公众平台被动回复用户消息开发全步骤_第15张图片

 

4、api.php接口调试

① 检查域名是否正确,因为natapp域名会自动更新

② 如果域名没有问题,但是总是显示token认证失败,看valid方法是否开启

③ 如果api.php页面有语法错误,其也会验证失败,怎么查看语法是否有错误呢?

答:我们可以在浏览器中,直接运行api.php,如下图所示:

微信公众平台被动回复用户消息开发全步骤_第16张图片

出现以上提示,代表我们的api.php文件没有任何问题,肯定是问题①或问题②

如果api.php有错误显示如下:

六、微信的发送接口

1、实现目标

文本消息回复接口(默认,知道怎么执行的即可)

音乐消息回复接口

图文消息回复接口

2、分析文本消息回复接口

① 查看一下文本消息回复接口的XML模板(开发者文档->消息管理->被动回复用户消息)

微信公众平台被动回复用户消息开发全步骤_第17张图片

② 查看文本消息的文本,api.php中如下图所示:

微信公众平台被动回复用户消息开发全步骤_第18张图片

对比官方手册与api.php的文件内容,我们发现,api.php中的所有的CDATA中的方括号都是通过%s进行代替的,记住一个%s就是一个变量。

还要特别说明:并不是所有的%s变量都是未知的,有一些是已知的:

$fromUsername/$toUsername/$time

由此可知:如果想进行文本回复,我们只需要定义两个变量,一个是$msgType返回的数据类型,一个是$contentStr返回的文字内容。

 

③ 定义变量(缺几个%s就定义几个变量)

 

④ 把变量放在%s的位置,要用到的函数sprintf(),有几个参数:

$resultStr = sprintf(‘XML模板’,参数列表)

参数列表说明:在模板中,有几个%s,参数列表里面就有几个变量。

微信公众平台被动回复用户消息开发全步骤_第19张图片

⑤ 发送XML模板到微信APP进行显示

3、实现音乐回复接口

要求:要送一个关键词“音乐”,系统返回一条音乐信息

要想实现这个功能,要分步骤实现:

 

① 判断用户发送给我们的关键字是不是“音乐”两个字(接收)

微信公众平台被动回复用户消息开发全步骤_第20张图片

② 定义音乐的XML模板(到微信公众开发文档中去查看)

微信公众平台被动回复用户消息开发全步骤_第21张图片

③ 定义变量,默认情况下,模板的前三个都有变量,只需要定义8-3=5个变量即可

④ 把变量放在%s的位置,用到sprintf()函数

⑤ 返回数据到微信APP

微信公众平台被动回复用户消息开发全步骤_第22张图片

测试:

微信公众平台被动回复用户消息开发全步骤_第23张图片

4、实现图文消息接口

案例:当我们向平台发送“图文”关键词时,系统自动返回一条图文信息

① 先定义接收图文这个关键词

微信公众平台被动回复用户消息开发全步骤_第24张图片

如果$keyword == “图文”,返回图文消息接口。

 

② 定义XML模板

微信公众平台被动回复用户消息开发全步骤_第25张图片

由上图分析可知,一共有9个%s,所以系统中应该有9个变量,但是由于前3个变量已经定义,所以我们只需要定义9-3 = 6个变量即可。

 

③ 定义6个变量

$msgType :返回的类型,news代表图文消息

$count :返回的文章数量,暂时只能设置为1

$title :文章的标题

$description :针对标题的描述信息,不要太长

$picurl :封面图片的地址

$url :就是一点击图片,系统会自动跳转到指定的url页面

 

④ 把%s进行替换,替换为已定义的变量

⑤ 返回数据到微信APP

微信公众平台被动回复用户消息开发全步骤_第26张图片

测试:

微信公众平台被动回复用户消息开发全步骤_第27张图片

 

七、语音识别接口

1、先明确一个问题

语音识别接口是接收消息的还是发送消息的?答:语音识别代表接收消息接口,所以只要判断$msgType == ‘voice’就可以了。

2、判断$msgType

3、如何把语音转化为文字呢?

① 开启语音识别功能

微信公众平台被动回复用户消息开发全步骤_第28张图片

找到如下菜单,单击开启(默认是关闭的)

微信公众平台被动回复用户消息开发全步骤_第29张图片

设置完成后,我们的微信就具有语音识别功能了:

 

② 如何接收识别的结果呢?

微信公众平台被动回复用户消息开发全步骤_第30张图片

 

③ 向接收MsgType一样,接收Recognition,得到文字信息

④ 返回识别后的结果

测试一下:特别注意,语音识别接口生效时间比较慢,一般是24小时后生效。还可以通过取消关注并再次关注账号,实现这个功能。

微信公众平台被动回复用户消息开发全步骤_第31张图片

最后完整的代码链接:https://pan.baidu.com/s/1_21rfv2P0nMF9ti33fCfFQ

提取码:wokx 
 

你可能感兴趣的:(前端开发)