<?php

namespace App\Http\Middleware;

use App\Exceptions\WapException;
use App\Servers\CommonServer;
use App\Servers\MemberServer;
use App\Servers\WeixinServer;
use Closure;

class WapAuthMiddleware
{
    /**
     * Handle an incoming request.
     *
     * @param \Illuminate\Http\Request $request
     * @param \Closure $next
     * @return mixed
     */
    public function handle($request, Closure $next)
    {
//        $request->session()->put('sadsads',['sadsa'=>'sasada']);
//        $request->session()->save();
//        dd( session()->all());
        //验证会员授权信息
        $clientRoute = request()->route()->getName();
        $is_wx=CommonServer::creatServer()->isWeixin();
        if (!in_array($clientRoute, ['member.wx_info','notify.shop_order']) && $is_wx) {
            $login_info=session('login_info');
            if(empty($login_info)){
                $wx_info = WeixinServer::creatServer()->authorize();
                if(!empty($wx_info)){
                    $login_info = MemberServer::creatServer()->setWxOpen($wx_info);
                    if(empty($login_info)){
                        throw new WapException('登陆信息错误');
                    }
                    session()->put('login_info',$login_info);
                    session()->save();
                }else{
                    throw new WapException('微信信息获取失败');
                }
            }

        }
        return $next($request);
    }
}