assign('msg', 'appid未配置'); return $this->fetch('public/tips_error'); } // 回调地址 $redirect_uri = urlencode(PluginsHomeUrl('weixinwebauthorization', 'auth', 'callback')); // 授权方式 $auth_type = (isset($ret['data']['auth_type']) && $ret['data']['auth_type'] == 1) ? 'snsapi_userinfo' : 'snsapi_base'; // 授权code $url = 'https://open.weixin.qq.com/connect/oauth2/authorize?appid='.$ret['data']['appid'].'&redirect_uri='.$redirect_uri.'&response_type=code&scope='.$auth_type.'&state=login#wechat_redirect'; return redirect($url); } else { $this->assign('msg', $ret['msg']); return $this->fetch('public/tips_error'); } } /** * 回调 * @author Devil * @blog http://gong.gg/ * @version 1.0.0 * @datetime 2019-02-07T08:21:54+0800 * @param [array] $params [输入参数] */ public function Callback($params = []) { // 参数校验 if(empty($params['code'])) { $this->assign('msg', '授权code为空'); return $this->fetch('public/tips_error'); } // 本地获取access_token // 远程获取access_token $ret = $this->RemoteAccessToken($params); echo '
';
        print_r($ret);
    }

    /**
     * 获取access_token
     * @author  Devil
     * @blog    http://gong.gg/
     * @version 1.0.0
     * @date    2019-05-24
     * @desc    description
     * @param   array           $params [description]
     */
    private function AccessToken($params = [])
    {
        
        
    }

    /**
     * 远程获取access_token
     * @author  Devil
     * @blog    http://gong.gg/
     * @version 1.0.0
     * @date    2019-05-24
     * @desc    description
     * @param   array           $params [description]
     */
    private function RemoteAccessToken($params = [])
    {
        $ret = PluginsService::PluginsData('weixinwebauthorization');
        if($ret['code'] == 0)
        {
            // 参数校验
            if(empty($ret['data']['appid']))
            {
                return DataReturn('appid未配置', -1);
            }
            if(empty($ret['data']['secret']))
            {
                return DataReturn('secret未配置', -1);
            }
            if(empty($params['code']))
            {
                return DataReturn('code授权码为空', -1);
            }

            // 获取access_token
            $url = 'https://api.weixin.qq.com/sns/oauth2/access_token?appid='.$ret['data']['appid'].'&secret='.$ret['data']['secret'].'&code='.$params['code'].'&grant_type=authorization_code';
            $data = json_decode(file_get_contents($url), true);

            echo '
';
            print_r($data);die;

        } else {
            return DataReturn($ret['msg'], -1);
        }
    }

}
?>