欢迎您访问我的笔记本站旨在于记录一些平时工作中遇到的一些问题和解决方法,方便查阅,部分内容来源于网络,如有侵权请联系我删除
  • 微信微信
您现在的位置是:首页 > PHP后端

简单记录一下tp5集成EasyWeChat和基本使用-[原创]

日期:2019-05-23 18:17:52 作者:tanyi 来源:我的笔记 浏览:2133 次
以前开发微信用的是很早一个讲师自己封装的一个库,这几天准备研究下easywechat这个第三方库的使用

首先使用composer下载对应的合适easywechat,easywechat针对主流框架有对应的版本文件。我先直接继承的overtrue/wechat这个,在linux服务器会报500错误,具体原因暂不知,然后我重新继承官方列出的对应版本库,

image.png

在linux上运行正常,

使用的话基本是复制官方的例子简单测试了一下,具体代码如下

    protected $wx=''; //Factory::officialAccount 得到的实例

    public function __construct()
    {
        $config = [
            'app_id' => 'xxx',
            'secret' => 'xxx',
            'token' => 'xxx',
            'response_type' => 'array',
            'log' => [
                'default' => 'dev', // 默认使用的 channel,生产环境可以改为下面的 prod
                'channels' => [
                    // 测试环境
                    'dev' => [
                        'driver' => 'single',
                        'path' => '/tmp/easywechat.log',
                        'level' => 'debug',
                    ],
                    // 生产环境
                    'prod' => [
                        'driver' => 'daily',
                        'path' => '/tmp/easywechat.log',
                        'level' => 'info',
                    ],
                ],
            ],
            //...
        ];

        $this->wx= Factory::officialAccount($config);
    }

    /**
     * 全局消息处理
     * @throws \EasyWeChat\Kernel\Exceptions\BadRequestException
     * @throws \EasyWeChat\Kernel\Exceptions\InvalidArgumentException
     * @throws \EasyWeChat\Kernel\Exceptions\InvalidConfigException
     * @throws \ReflectionException
     */
    public function wx()
    {

        $this->wx->server->push(function ($message) {
            switch ($message['MsgType']) {
                case 'event':
                    return '收到事件消息';
                    break;
                case 'text':
                    return $this->send_msg();
                    break;
                case 'image':
                    return '收到图片消息';
                    break;
                case 'voice':
                    return '收到语音消息';
                    break;
                case 'video':
                    return '收到视频消息';
                    break;
                case 'location':
                    return '收到坐标消息';
                    break;
                case 'link':
                    return '收到链接消息';
                    break;
                case 'file':
                    return '收到文件消息';
                // ... 其它消息
                default:
                    return '收到其它消息';
                    break;
            }
        });

        $response = $this->wx->server->serve();

        // 将响应输出
        $response->send();exit; // Laravel 里请使用:return $response;
    }


    /**
     * 模板消息测试
     * @throws \EasyWeChat\Kernel\Exceptions\InvalidArgumentException
     */
    public function send_msg(){
        $this->wx->template_message->send([
            'touser' => '', //用户openid
            'template_id' => '', //模板消息ID
            'url' => 'https://www.mrtanyi.cn/', //模板消息点击跳转链接
            'data' => [
                'first'=>[
                    'value'=>'你好,恭喜购买成功',
                    'color'=>'#173177'
                ],
                'keynote1'=>[
                    'value'=>'闪电slr',
                    'color'=>'#173177'
                ],
                'keynote2'=>[
                    'value'=>'18000',
                    'color'=>'#173177'
                ]
        ],
    ]);
    }


测试结果

image.png

原创文章转载时请注明原始出处,作者等相关信息

提交评论
评论列表