微信公众号接入服务器代码

一、前言

前言:因为这里使用的我自己注册的公众号,不是企业版,且没有经过个人认证,因此很多功能,比如模板消息、支付、网页授权获取用户基本信息、自定义菜单等功能都不具备,因此我这里使用的是微信公众号的测试号,测试号拥有所有接口权限,这样就可以很方便的对公众号的各项功能进行全面开发测试。

在测试号测试通过后,只要一分钟在正式号照搬测试号的相应配置,就可以使公众号上线。

获取测试号

点进去之后,会有一些参数需要填写,先不用填写,我会在下面进行介绍并填写进去。

 

二、准备工作

1、配置composer
# 配置composer国内镜像
composer config -g repo.packagist composer https://mirrors.aliyun.com/composer/

# 将composer版本升级到2
composer self-update

配置中国镜像比不配置要快几十倍

2、创建服务器目录,并引入easywechat composer包

正常应该是使用yii2、laravel、thinkphp、easyswoole、swoft、hyperf等PHP框架来做,这里为了演示,直接使用原生代码。

# 创建项目目录
mkdir -p /data/wechat
cd /data/wechat
# 引入easywechat composer包
composer require overtrue/wechat:~4.0 -vvv
3、配置域名和Nginx

这里就不做讲解,自行配置。

我这里配置的项目域名是wechat.haveyb.com

4、创建和微信公众号消息确认的文件 server.php

这一步和下面在公众号后台配置的url参数有关,这一步仅用于微信确认你后面填写的服务器URL地址是否正确,配置后就基本用不到了。所以不用在这里纠结到底填哪个具体地址好,因为它并不是入口,我们指向具体的php文件或在框架中路由到具体的函数方法均可。

<?php

require __DIR__.'/vendor/autoload.php';
use EasyWeChat\Factory;

$config = [
    'app_id' => 'wx3985213fe939a31f',
    'secret' => '778ba9fab544d242dcf5029b2e8c1a98',
    'token' => 'haveTOKEN',
    'response_type' => 'array',
    //...
];

$app = Factory::officialAccount($config);

$response = $app->server->serve();

// 将响应输出
$response->send();exit;
5、微信公众号后台设置服务器url、token、EncodingAESKey、消息加解密方式
正式号需要填写的参数:

https://mp.weixin.qq.com/cgi-bin/home

测试号需要填写的参数:

这里的URL,主要是为了微信确认服务器配置正确,就是我们上面第4步写的文件,如果是使用框架,则将这里的url指向具体的路由即可,后面几乎用不到。

这里的Token,是我们自己填写的,可以是任意一个字符串,只要保证公众号后台和我们代码中填写的是一致的即可

这里的JS接口安全域名,就填写我们应用的域名,注意这里是不带协议的。

说明

可以看到,正式号和测试号需要填写的重要参数大同小异,也就是说,在测试号开发调试好后,可以在1分钟之内就将正式号配置完毕,并运营上线。

 

三、测试使用

为了确认easywechat可以正常使用,我们写一个小demo,输出当前关注公众号的用户列表

1、新建index.php

<?php

require __DIR__.'/vendor/autoload.php';

use EasyWeChat\Factory;

// 公众号配置
$officialAccountConfig = [
    'app_id' => 'wx3985213fe939a31f',
    'secret' => '778ba9fab544d242dcf5029b2e8c1a98',
    'token' => 'haveTOKEN',
    'response_type' => 'array',
];
// 公众号实例
$officialAccountApp = Factory::officialAccount($officialAccountConfig);

// 当前关注公众号的用户列表
$users = $officialAccountApp->user->list();

// 输出当前关注公众号的用户列表
echo "<pre />"; print_r($users);
2、输出结果

3、总结

到目前为止,我们就完成了微信公证号后台的相关配置,并通过easywechat可以成功和微信公众号进行请求通信了。

后面我们会使用yii2框架来对网页授权、接收回复消息、公众号素材管理、公众号用户管理、自定义菜单、消息转发到多客服、群发消息、模板消息、二维码的使用、JSSDK的使用、多客服系统的使用、支付订单的创建、处理支付结果 逐个进行分篇讲解。