Laravel6+overtrue/Laravel-wechat 开发微信公众号

1. 安装 laravel-wechat

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

2.配置 Laravel 应用

2.1.在 config/app.php 注册 ServiceProvider 和 Facade

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

2.2.创建配置文件:

php artisan vendor:publish --provider="Overtrue\LaravelWeChat\ServiceProvider"
  1. 修改应用根目录下的 config/wechat.php 中对应的参数即可。
  2. 每个模块基本都支持多账号,默认为 default

2.3 修改.env
添加:赋值

WECHAT_OFFICIAL_ACCOUNT_APPID = XXXXX
WECHAT_OFFICIAL_ACCOUNT_SECRET = XXXXX
WECHAT_OFFICIAL_ACCOUNT_TOKEN = XXXXX
WECHAT_OFFICIAL_ACCOUNT_AES_KEY = XXXXX

同时添加:.env.example 不赋值。

3.使用

在中间件 App\Http\Middleware\VerifyCsrfToken 排除微信相关的路由,

namespace App\Http\Middleware;

use Illuminate\Foundation\Http\Middleware\VerifyCsrfToken as Middleware;

class VerifyCsrfToken extends Middleware
{
    /**
     * Indicates whether the XSRF-TOKEN cookie should be set on the response.
     *
     * @var bool
     */
    protected $addHttpCookie = true;

    /**
     * The URIs that should be excluded from CSRF verification.
     *
     * @var array
     */
    protected $except = [
        // 跳过csrf
        'wechat',
    ];
}

微信公众平台配置:

假设您的域名为 overtrue.me 那么请登录微信公众平台 “开发者中心” 修改 “URL(服务器配置)” 为: http://overtrue.me/wechat

如果用测试公众号,用内网穿透的方法(Ngrok)本地调试,比如填URL为:http://49a412c56a2d.ngrok.io/wechat。 注意 一定要关闭底部调试,关闭底部 Debugbar 。否则,配置失败。

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

注意:一定是 Route::any, 因为微信服务端认证的时候是 GET, 接收用户消息时是 POST

创建控制器:
下面以接收普通消息为例写一个例子:

php artisan make:controller WeChatController
<?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 "欢迎关注 overtrue!";
        });

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

更多使用说明请看:github.com/overtrue/laravel-wechat

本作品采用《CC 协议》,转载必须注明作者和本文链接
《L05 电商实战》
从零开发一个电商项目,功能包括电商后台、商品 & SKU 管理、购物车、订单管理、支付宝支付、微信支付、订单退款流程、优惠券等
《L02 从零构建论坛系统》
以构建论坛项目 LaraBBS 为线索,展开对 Laravel 框架的全面学习。应用程序架构思路贴近 Laravel 框架的设计哲学。
讨论数量: 1

Laravel6 不能使用 Laravel-wechat composer 报错

  • don't install illuminate/container v5.8.9|don't install laravel/framework v6.18.20
  • Installation request for laravel/framework (locked at v6.18.20, required as ^6.2) -> satisfiable by laravel/framework[v6.18.20].
3年前 评论

讨论应以学习和精进为目的。请勿发布不友善或者负能量的内容,与人为善,比聪明更重要!