<?php

namespace App\Http\Middleware;

use Closure;
use Illuminate\Support\Facades\Auth;

/**
 * 公众号检查,获取支付openid
 * Class OfficialCheck
 * @package App\Http\Middleware
 * Auth Zhong
 * Date 2019/2/22
 */
class OfficialCheck
{

    /**
     * OfficialCheck constructor.
     */
    public function __construct()
    {
    }


    /**
     * Handle an incoming request.
     *
     * @param  \Illuminate\Http\Request  $request
     * @param  \Closure  $next
     * @return mixed
     */
    public function handle($request, Closure $next)
    {
        if (is_weixin() && config('aix.system.pay.wechat.is_on') == 1) {
            if (!$request->session()->has('wechat_pay_openid')) {
                if ($request->route()->getName() != 'mobile.auth.thirdlogin.official.openid') {
                    session(['wechat_pay_redirect_url' => $request->fullUrl()]);
                    session(['wechat_pay_state' => time()]);
                    $wechat_url = "https://open.weixin.qq.com/connect/oauth2/authorize?"
                        . "appid=" . config('aix.system.pay.wechat.appid')
                        . "&redirect_uri=" . urlencode(route('mobile.auth.thirdlogin.official.openid'))
                        . "&response_type=code&scope=snsapi_base&state=" . session('wechat_pay_state') . "#wechat_redirect";

                    return redirect($wechat_url);
                }
            }
        }

        return $next($request);
    }
}