Laravel5.8+esayWechat5.0实现公众号开发

环境选择

laravel版本 => 5.8
php => 7.3
esayWechat => 5.0

1. 安装EasyWechat

composer require "overtrue/laravel-wechat:~5.0"

2. 配置laravel应用

2.1 在config/app.php里面注册easywechat的provider和facade

'providers' => [
    // ...
    Overtrue\LaravelWeChat\ServiceProvider::class,
],
'aliases' => [
    // ...
    'EasyWeChat' => Overtrue\LaravelWeChat\Facade::class,
],

2.2 创建配置文件

php artisan vendor:publish --provider="Overtrue\LaravelWeChat\ServiceProvider"

创建完成后
使用修改config/wechat.php中对应的参数即可。
每个模块基本都支持多账号,默认为default

2.3 修改.env

对应到config/wechat.php中official_account当中去

#根据公众号配置获得
WECHAT_OFFICIAL_ACCOUNT_APPID = XXXXX
WECHAT_OFFICIAL_ACCOUNT_SECRET = XXXXX
WECHAT_OFFICIAL_ACCOUNT_TOKEN = XXXXX
WECHAT_OFFICIAL_ACCOUNT_AES_KEY = XXXXX

在这里插入图片描述
在这里插入图片描述
AES_KEY如果是个人测试公众号可以不需要,获取方式从公众号平台基本配置里面获得
EncodingAESKey

3. 使用easywechat

创建一个普通消息

php artisan make:controller WeChatController

路由:

Route::any(/wechat’, ‘WeChatController@serve’);

注意:这里一定要用any,因为微信认证是通过GET方式,接收用户消息而是POST。

路由注册完后,我们需要在中间件App\Http\Middleware\VerifyCsrfToken中排除该微信路由的csrf验证

  protected $except = [
        // 跳过csrf
        'wechat',
    ];

以上步骤完成后,对控制器进行编辑

<?php
namespace App\Http\Controllers;
use Log;
class WeChatController extends Controller
{

    /**
     * 处理微信的请求消息
     *
     * @return string
     */
    public function serve()
    {
        Log::info('request arrived.'); # 注意:Log 为 Laravel 组件,所以它记的日志去 Laravel 日志看,而不是 EasyWeChat 日志

        $app = app('wechat.official_account');
        $app->server->push(function($message){
            return "欢迎关注 鱼鱼鱼芙!";
        });

        return $app->server->serve();
    }
}

当当当!一个基本的公众号基本接收就搭建完成了,如果要实际运行需要在微信公众平台进行配置,以下用测试平台进行举例。

如果您的域名为XXXX.com那么请登录微信公众平台测试平台中的接口配置信息进行修改(本地内网穿透方式同样使用 )

在这里插入图片描述

4. 如要发送图文或者模板

将WeChatController中的server改为如下
message接收的类型有

		<xml>
          <ToUserName><![CDATA[toUser]]></ToUserName>
          <FromUserName><![CDATA[fromUser]]></FromUserName>
          <CreateTime>12345678</CreateTime>
          <MsgType><![CDATA[image]]></MsgType>
          <Image>
            <MediaId><![CDATA[media_id]]></MediaId>
          </Image>
        </xml>
  public function serve(){
        Log::info('request arrived.');
        $app = app('wechat.official_account');
        $app->server->push(function($message)use ($app){
            switch($message['MsgType']){
                case 'event':
                    //subscribe为订阅事件
                    if ($message['Event'] == 'subscribe') {
                        return '欢迎关注 caoxinxin公众号!';
                    }
                    break;
                case 'text':
                    //发送图文
                    return '这是文本';
                    break;
                case  'image':
                    return '这是图片';
                case  'voice':
                    return '这是语音';
            }
        });
        return $app->server->serve();
    }

基本的图文发送可以从文档中获取。
如要需要自动发送模板信息,可以通过定时任务进行

最后附上EaseWechat文档和git地址

https://easywechat.com/
https://github.com/w7corp/easywechat

  • 1
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值