DaoCloud + Local Server + Laravel + Laravel-Wechat 构建微信公众号测试平台

PHP Laravel Docker

DaoCloud 使用

  1. 注册DaoCloud账号

    • Github 账号登录
    • 微信账号登录
  2. 绑定支持的版本控制服务

  3. 添加自有主机/集群

从项目创建DaoCloud Docker镜像

  1. 在上述版本控制服务提供商处创建项目laravel-english

  2. DaoCloud 控制台–> 项目–>创建项目

    • 输入项目名称
    • 从上述版本控制服务提供商处选择代码源
    • 选择发布应用镜像

创建应用编排(Stack:PHP + MYSQL)

  1. 输入Stack名称
  2. 使用YML语法编写需要创建的容器的编排 Compose YML怎么写
  3. 保存并部署应用编排,如下图得到在运行中的应用
  4. 进去由 lravel-english 镜像创建的应用TestLaravel-TestLaravel—>云隧道
  5. 访问 http://testlaravel.daocloudapp.com 即可访问

Laravel-Wechat 配置

  1. 安装

    1
    $ composer require 'overtrue/laravel-wechat:~3.0'
  2. 修改 config\app.phpproviders 部分

    1
    2
    3
    4
    5
    6
    7
    8
    9
    'providers' => [

    /*
    * Laravel Framework Service Providers...
    */
    ...
    Overtrue\LaravelWechat\ServiceProvider::class,
    ...
    ],
  3. 发布 LaravelWechat 相关配置(生成 config\wechat.php

    1
    $ php artisan vendor:publish --provider="Overtrue\LaravelWechat\ServiceProvider"
  4. (可选)添加外观到 config/app.php 中的 aliases 部分:

    1
    2
    3
    4
    5
    'aliases' => [
    ...
    'EasyWeChat' => Overtrue\LaravelWeChat\Facade::class,
    ...
    ],
  5. 创建响应路由及Controller

    1
    Route::any('/wechat', 'WechatController@serve')
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    <?php

    namespace App\Http\Controllers;

    use Log;

    class WeChatController extends Controller
    {

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

    $wechat = app('wechat');
    $server = $wechat->server;
    $server->setMessageHandler(function ($message) {
    // $user_id = $message->FromUserName; // 用户的 openid
    // $type = $message->MsgType; // 消息类型:event, text....
    Log::debug('message is :', compact('message'));
    return "您好!欢迎关注我!";
    });
    return $server->serve();
    }
    ...
    }
  6. 修改app\Http\Middleware\VerifyCSRFToken.php

    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    <?php

    namespace App\Http\Middleware;

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

    class VerifyCsrfToken extends BaseVerifier
    {
    /**
    * The URIs that should be excluded from CSRF verification.
    *
    * @var array
    */
    protected $except = [
    // Add Urls you don't want to use CSRF protection
    '/wechat'
    ];
    }
  7. 微信开发者中心设置URL为 http://testlaravel.daocloudapp.com/wechat,其余参数设置与 config\wechat.php 相同即可

EasyWeChat 文档

搞定,收工!