微信公众号开发第一课(使用ThinkPHP5)(未完)

本文最终效果

由于官方文档一向符合TX的风格(永远是不尽如人意,永远是新手不友好),导致初次接触公众号时往往不知道该看什么,本文会同时给出操作的目标地址和教程地址,旨在引导读者去看官方文档中的重要部分。
在文章的最开始给出最终实现效果,是为了让读者有一个清晰的目标。

微信公众号开发第一课(使用ThinkPHP5)(未完)_第1张图片

首先能实现如何建立一个正常运行的公众号,并接入开发者的后台服务器。

微信公众号开发第一课(使用ThinkPHP5)(未完)_第2张图片

然后设置公众号的功能按钮和二级菜单。

微信公众号开发第一课(使用ThinkPHP5)(未完)_第3张图片

在点击功能按钮后,跳转到Web系统并实现在Web中的自动登录。

一、申请公众号

公众号申请地址: 微信公众平台
(接口测试号申请地址:申请接口测试号

公众号分为三种:服务号订阅号、接口测试号(小程序不属于公众号)。

服务号是用于企业为用户提供服务的(例如银行的查询系统、餐饮业的订餐系统),并且可以和小程序配合使用来实现更多效果。

订阅号更多的用于个人开发者发布文章或运营自媒体。订阅号最常用的功能就是“推文”,例如,学校的社团、各种组织就可以用订阅号来推送文章。

接口权限说明中给出了服务号和订阅号权限的区别。

值得一提的是,服务号需要进行企业认证才能拥有高级接口的使用权,而一般开发者没有能力也没有必要认证服务号。对于使用订阅号的开发者,如果想体验全部的接口,微信专门提供了一种接口测试号,它拥有全部接口权限,但不能正常运营,仅供测试。

按照正常流程注册即可,不在赘述。

二、接入开发者服务器

扫描登录后,出现了公众号的基本信息:
(使用接口测试号举例,服务号类似)
微信公众号开发第一课(使用ThinkPHP5)(未完)_第4张图片

在最醒目的地方给出了appID和appsecret
appID是公众号的唯一标识,secret是用于公众号身份验证的密钥。
微信公众号开发第一课(使用ThinkPHP5)(未完)_第5张图片

接下来是接口配置信息:
微信公众号开发第一课(使用ThinkPHP5)(未完)_第6张图片
接口配置信息是接入开发者服务器的重要步骤。

首先要有一台服务器。如果是接口测试号,URL处可以使用服务器的IP地址,否则要求服务器必须有域名,URL处使用域名。

URL的格式必须是http或https开头,因为我们使用ThinkPHP所以需要精确到具体的模块->控制器->方法即可。

Token也是一个用于身份验证的口令。当微信服务器开发者服务器发送信息时, 开发者服务器并不知道此消息是不是来自微信服务器,但如果微信服务器带着Token发送信息,开发者服务器就可以通过口令是否正确来判断消息是否来自微信。此处的Token可以自由填写,初学时用不到Token

填入完毕后,如果后台没有对应的服务,会发生保存失败。原因是保存接口信息时,微信会向填入的这个地址发送一条验证信息,信息中带有各种参数,其中一个参数是echostr。只要开发者服务器能把echostr原封不动的返回给微信服务器,即视为验证成功。

微信公众号开发第一课(使用ThinkPHP5)(未完)_第7张图片

接下来就是在服务器上部署一个可以接收验证信息并返回echostr的方法,为了便于理解,我们不进行校验,直接返回接受到的echostr:

$echoStr = $_GET["echostr"];
echo $echoStr;
exit;

方法的位置需要和刚才URL中的路由一致。

此时就保存成功了。

但是这样是不安全的,因为无论是谁来向开发者服务器发送数据,都会正常返回,实际开发时,可参考接入概述来增加验证。

三、增加公众号“自动回复”功能

由于时间原因无法全部写完,日后完善,可参考官方文档:
入门指引
微信公众号开发第一课(使用ThinkPHP5)(未完)_第8张图片

四、实现“自动登录”

所谓自动登录,就是用户在通过公众号进入我们开发的Web系统时,不需要再输入用户名密码,而是直接通过用户的微信号,来判断用户的身份进而实现自动登录。

请暂时参考我之前的文章:
图解微信”网页授权“自动登录(附ThinkPHP5.1代码)

还有另一篇学长编写的Angular前后端分离项目如何企业微信网页认证文中的一些思想值得我们借鉴。

总结

微信公众号的开发,主要是有选择有取舍的看文档,由于微信的开发文档对于新手不太友好,所以建议初学者在其他教程的引领下学习,这样可以避免没头苍蝇乱撞的情况。
此外,官方文档的另一个问题,是示例代码不太完整。因此需要从其他文章中找到合适的示例代码并进行研究,这样有助于理解的更深刻。

由于刚刚完成期末考试,没有足够的时间,来把这篇文章和之前的文章结合起来,日后会逐渐完善,在此向看了一半的读者们说一声抱歉。

版权声明

本文作者: 河北工业大学梦云智开发团队 - 刘宇轩
新人经验不足,有建议欢迎交流,有错误欢迎轻喷

你可能感兴趣的:(微信公众号thinkphp5)