zoukankan      html  css  js  c++  java
  • laravel使用easywechat

    官方文档:https://www.easywechat.com/docs/4.x/overview

    安装插件

    # Laravel < 5.8
    composer require "overtrue/laravel-wechat:~4.0"
    
    # Laravel >= 5.8
    composer require "overtrue/laravel-wechat:~5.0"
    

     

    composer dump-autoload -o
    

      

    push配置

    php artisan vendor:publish --provider="OvertrueLaravelWeChatServiceProvider"
    

      

    增加.env配置公众号设置

    WECHAT_OFFICIAL_ACCOUNT_APPID=wx78ae5bb2XXXX
    WECHAT_OFFICIAL_ACCOUNT_SECRET=214f1ce332XXXX
    WECHAT_OFFICIAL_ACCOUNT_TOKEN=yishXXX
    WECHAT_OFFICIAL_ACCOUNT_AES_KEY=6lwDoXXXXXFDFEEEEEEEEE
    

      

    微信公众号接口配置信息

     需要注意的是URL只能是80端口,对应代码:

    路由:

    Route::any('/','WechatController@valid');//
    

    控制器方法

    //验证签名
        public static function valid()
        {
            // Log::info('request arrived');
            $app = app('wechat.official_account');
            $app->server->push(function($message){
                return "欢迎关注";
            });
    
            return $app->server->serve();
    
        }
    

     若要设置用户授权菜单等需要在公众号设置

    否则会出现

    控制器示例:

    <?php
    
    namespace AppHttpControllers;
    use IlluminateSupportFacadesLog;
    
    class WechatController extends Controller
    {
        /**获取openid
         * Author Allen
         * DateTime 2021-03-12
         * return [type] [description]
         */
        public static function getOpenid()
        {
            $request = request()->all();
            $validator = Validator::make($request,[
                'code' => 'required',
            ],[
                'code.required' => '缺少code',
            ]);
            if($validator->fails()){
                $error = $validator->errors()->all()[0];
                return response()->json(['code' => 600, 'msg' => $error]);
            }
            $app = app('wechat.official_account');
            $result = $app->oauth->getAccessToken($request['code']);
            if (!isset($result->openid)) {
                return response()->json(['code' => 600, 'msg' => '获取微信用户信息失败','result'=>$result]);
            }
            $openid=$user->openid;
            // dd($openid);
            // Log::info('request arrived');
            return $openid;
    
            
        }
        //验证签名
        public static function valid()
        {
            // Log::info('request arrived');
            $app = app('wechat.official_account');
            $app->server->push(function($message){
                return "欢迎关注";
            });
    
            return $app->server->serve();
    
        }
        /**菜单创建
         * Author Allen
         * DateTime 2021-03-12
         * return [type] [description]
         */
        public static function menuCreate()
        {
            $app = app('wechat.official_account');
            $buttons = [
                [
                    "name"       => "事务管理",
                    "sub_button" => [
                        [
                            "type" => "view",
                            "name" => "事务管理",
                            "url"  => "https://open.weixin.qq.com/connect/oauth2/authorize?appid=" . config('wechat.official_account.default.app_id') . "&redirect_uri=" . urlencode('http://127.0.0.1/wechat/index') . "&response_type=code&scope=snsapi_userinfo&state=1#wechat_redirect",
                        ],
                    ],
                ],
            ];
    
            $app->menu->create($buttons);
            // $app->menu->delete();
            // $list = $app->menu->list();
            // $current = $app->menu->current();
            // var_dump(json_encode($list,JSON_UNESCAPED_UNICODE|JSON_UNESCAPED_SLASHES) );
    
            // Log::info('request arrived');
            return "创建成功";
            
        }
    
    }
    

      

  • 相关阅读:
    在CentOS中配置DNS服务器
    CENTOS5.3 64位 VNC远程控制Centos 安装配置
    Windows Server 2003 FTP服务器配置详解 20091210 14:23:36| 分类: 服务器 | 标签: |字号大
    Centos 5.1 sendmail邮件服务器安装及配置
    DNS安装配置全过程
    tomcat多域名设置
    tomcat6 优化初步
    让CentOS自动备份mysql数据库 不指定
    开通企业邮箱之前,请登录您企业网站的域名注册服务商的域名管理平台,进行DNS配置及指向设置,谢谢您的配合
    18.3.2 在不同主机上使用 RMAN 备份建立物理备用数据库
  • 原文地址:https://www.cnblogs.com/blog-dyn/p/14524510.html
Copyright © 2011-2022 走看看