easyWechat 微信开发组件 (使用 EasyWecaht 为 3.0 版本)

  • 运行 composer require "overtrue/laravel-wechat:~3.0"
    • 在 laravel 中注册相关应用
    • 在 app/config.php 注册 ServiceProvider 和 Facade
    • 'providers' => [
      Overtrue\LaravelWeChat\ServiceProvider::class,
      ],
    • 'aliases' => [
      'wechat' => Overtrue\LaravelWeChat\Facade::class,
      ],
  • 生成 config 配置文件

    • 运行 php artisan vendor:publish 如有选项,请选择生成 wechat.php 这项

    • 在 wechat.php 中填写对应配置,在 env 文件中填写相关配置文件

    • 注册路由,路由定义方式一定要用 any,因为微信服务器发送过来的请求有 get 和 post

    • 在中间件中过滤掉该路由

    • 获取用户信息,首先你的公众号有获取用户的权限,在接口权限中可以查看

    • 可以用测试接口,测试接口基本拥有所有权限,下面代码都是用的测试接口。

    <?php

    namespace App\Http\Controllers;
    //该控制器对应的路由需用 any 方法,该路由就是你在微信服务器上的 url 地址
    class WechatController extends Controller
    {
        public function server()
        {
            $app = app('wechat'); 
            $user = $app->user; //调用组件中 user 服务
        /*
        setMessagehandler 中已经包含了用户返回的消息,也可能是事件,
        当 $message->MsgType 为 event 时为事件,$message->Event 为事件类型,
        常见的 subscribe,是用户关注公众号的事件类型,如果不是事件类型,则直接返回文字
        */
        $app->server->setMessagehandler(function($message) use ($user) {
            if ($message->MsgType == 'event' && $message->Event == 'SCAN') {
                return '绑定微信,你的昵称是' . $user->get($message->FromUserName)->nickname;
            } else {
                    return '欢迎关注楚楼网微信';
             }
            });
            return $app->server->serve();
        }
    }
   <?php

    namespace App\Http\Controllers;

    use EasyWeChat\Foundation\Application;

    class UserController extends Controller
    {
        private $wechat;

        //通过依赖注入,初始化配置,Application 引用了 EasyWecaht的Foundation\Application;
        public function __construct(Application $application)
        {
            $this->wechat = $application;
        }

        //获取公众号的用户列表
        public function index()
        {
            $user = $this->wechat->user->lists();

            return $user;
        }

        //获取单个用户的信息
        public function show($id)
        {
            $user = $this->wechat->user->get($id);

            return $user;
        }

        //修改某个用户的备注
        public function create($id)
        {
            $this->wechat->user->remark($id, '大神级人物');

            return 'ok';
        }

        //群发消息
        public function send()
        {
           $this->wechat->broadcast->sendText('内容', [$openid1, $openid2]);
           return 'ok';
        }

        //获取全部模板消息
        public function get()
        {
           $res = $this->wechat->notice->getPrivateTemplates();
           return $res;
        }

        //发送模板消息,如果需要发送给多个用户,可循环发送
        模板样例
        {{ first.DATA }}
        商品明细:
        名称:{{ name.DATA }}
        价格:{{ price.DATA }}
        {{ remark.DATA }}
        public function sms()
        {
           $url = 'www.baidu.com';
          $data = array(
         "first"  => "恭喜你购买成功!",
         "name"   => "巧克力",
         "price"  => "39.8元",
         "remark" => "欢迎再次购买!",
        );
           $notice  = $this->wechat->notice;
           $messageId = $notice->to($openid)->uses($templateId)->andUrl($url)->data($data)->send();
          return 'ok';
        }
    }
  • 生成二维码
    • $result = $this->wechat->qrcode->temporary(6 24 3600); 临时二维码
    • $result = $this->wechat->qrcode->forever(56); 生成永久二维码
    • 页面显示二维码 $url = $qrcode->url($result->ticket)
    • 获取二维码图片 file_get_contents($url);

EasyWecha 4.0版本和3.0用法基本相似,详情可以看官方文档

本作品采用《CC 协议》,转载必须注明作者和本文链接
《L02 从零构建论坛系统》
以构建论坛项目 LaraBBS 为线索,展开对 Laravel 框架的全面学习。应用程序架构思路贴近 Laravel 框架的设计哲学。
《L03 构架 API 服务器》
你将学到如 RESTFul 设计风格、PostMan 的使用、OAuth 流程,JWT 概念及使用 和 API 开发相关的进阶知识。
讨论数量: 0
(= ̄ω ̄=)··· 暂无内容!

请勿发布不友善或者负能量的内容。与人为善,比聪明更重要!