您现在的位置是:网站首页 > 心得笔记

PHP实现微信公众平台开发—基础篇

盛悦2019-02-15507人围观
简介这篇文章讲一下如何使用laravel接入微信接口,实现微信公众号二次开发

1、微信用户、微信应用与微信公众账号这三个概念

微信公众账号-自媒体

微信应用(app)- 平台角色

微信用户- 普通用户

三者联系与区别:(微信完整信息流的传递过程)

1、首先,作为微信应用,他给微信公众账号和微信用户提供了一个信息交互 获取咨讯的平台

2、作为微信用户而言,可以通过微信应用这个平台去订阅自己感兴趣的微信公众账号 从而获取到一些相关的资讯和服务
3、针对微信公众号而言,作为自媒体,他可以将自己网站应用,移动端应用 通过微信应用这个平台提供给微信用户来使用 同事推送一些相关的信息给微信用户


2、微信公众账号的分类

服务号:主要针对政府机构、组织以及企业,不适用于个人

订阅号:主要针对个人、组织的

企业号:主要针对企业,特别是大型企业

三者在微信应用中的存放位置


订阅号:所有订阅号都放在微信主页面的订阅号栏目下面
服务号:服务号就在微信首页里面直接展示的
企业号:单击通讯录,里面有企业号栏目


3、微信数据交互流程


1、微信用户在微信界面的输入框中输入内容 这一步骤是微信用户直接发送请求给服务器

2、微信服务器在接收到微信用户的请求之后 将信息传递给第三方服务器,第三方服务器也就是我们的公众账号

3、第三方服务器在接收到微信推送过来的请求之后,进行自身的业务逻辑处理

比如,微信用户输入关键词‘企业地址’  第三方服务器将‘企业地址’通过相应的形式传送给微信服务器  微信服务器再将第三方服务器传递过来的消息封装成特定的数据结构 重新响应给微信用户 微信用户此时就可以在微信对话界面上看到公众账号提供的企业地址


4、公众账号的使用模式分类

编辑模式:其实是微信公众平台提供给微信账号管理者一个简单的可视化操作界面 主要目的是方便公众账号管理者能够进行一些简单的微信运营

开发者模式:通过调用微信的一些公用接口 来完成自身业务

两者主要区别:在于编辑模式只能简单的完成开发者模式下的部分功能


两者如何操作:(登录微信开发者平台mp.weixin.qq.com)


1、使用编辑模式

在使用编辑模式时 必须把之前的一个开发者模式停用掉 停用后才能使用编辑模式

如何停用?
基本配置 —— 服务器配置 —— 点击停用

2、开发者模式

开发者模式所提供的接口比编辑模式要多得多


5、应用接入API接口步骤

1、配置(填写服务器的url和token)

 url:  这里的服务器url就是第三方服务器url 他的作用是用来接收微信推送的消息

   token:这里的token就是开发者与微信开发者约定的一个口令 主要是用来验证第三方服务器身份的合法性

注意:微信只支持80端口,也就是你的http服务必须在80端口打开 才能在第三方服务器接收到微信发送过来的消息

2、验证服务器地址的有效性,加密/校验流程如下:

2-1、将token、timestamp、nonce三个参数进行字典序排序

 $timestamp = $_GET['timestamp'];
 $nonce     = $_GET['nonce'];
 $token     = 'weixin';
 $sinature  = $_GET['signature'];
 $array = array( $timestamp, $nonce, $token );
 sort( $array );
 
2-2、将三个参数字符串拼接成一个字符串进行sha1加密

 $tmpstr = implode( '', $array );//join
 $tmpstr = sha1($tmpstr);

2-3、将加密后的字符串与signature对比,判断该请求是否来自微信

 if ( $tmpstr == $sinature ) {
         echo $_GET['echostr'];//输出的参数也是从微信服务器传过来的
         exit;
 }

token/timestamp/nonce/signature四个参数都是微信通过get方法传送过来的参数,通过这四个参数可以用来验证该请求是否来自微信