微信授权登录及存储用户信息(fastadmin开发项目)

最近做了一个微信投票系统,这是第一次开发微信项目,所以特此记录一下
微信投票系统,最优先想到的就是授权登录,以及获取用户信息
1.首先需要申请微信公众号(此次使用的是服务号)
2.在微信公众平台基本配置里面,获取appid和秘钥,以及填写白名单,按照要去填写即可
3.此次是使用自己开发的授权登录插件,直接将插件解压到addons目录下,然后找到application/extra/addons.php文件,然后在array里面添加一下代码

'get_weixin_auth' => 
    array (
      0 => 'weixin',
    ),
    'get_weixin_config' => 
    array (
      0 => 'weixin',
    ),
    'wx_login' => 
    array (
      0 => 'weixin',
    ),
    'get_weixin_upload_single' => 
    array (
      0 => 'weixin',
    ),
    'get_weixin_upload_multiple' => 
    array (
      0 => 'weixin',
    ),
    'get_weixin_location' => 
    array (
      0 => 'weixin',
    ),
    'get_weixin_share' => 
    array (
      0 => 'weixin',
    ),

3.前台调用方法为

public function wxlogin(){
        hook('get_weixin_auth',['backUrl'=>'此处填写回调地址']);
    }

4.在跳转到项目首页之前就应该执行存储用户信息的操作

public function saveinfo(){
        $data=input('');
        $res=db('voter')->where('openid',$data['openid'])->find();
        if($res){
            session('user',$res);
            $this->user=$res;
            $this->uid=$res['id'];
            $this->redirect(url("index/index"));
        }
        else{
            $udata['nickname']=$data['nickname'];
            $udata['openid']=$data['openid'];
            $udata['headimage']=$data['headimgurl'];
            $out=db('voter')->insert($udata);
            if($out){
                $res=db('voter')->where('openid',$data['openid'])->find();
                session('user',$res);
                $this->user=$res;
                $this->uid=$res['id'];
                $this->redirect(url("index/index"));
            }
            else{
                $this->error('保存信息出错');
            }
        }
    }

5.配置完成之后,在fastadmin后台找到放入的插件(微信开发),然后配置appid和appsecret
6.在微信公众平台的接口权限-》网页服务-》网页授权-》网页授权获取用户基本信息,点击修改,按照要求填写域名,每个都要填写。
本人在这一步遇到一个问题,而且至今没有解决。。。此项目最开始是放在西部数码的虚拟主机上进行编写的,但是到了这一步之后,始终不能成功,显示无法访问xxx指向的web服务器(或虚拟主机)的目录,请检查网络设置。域名是已备案的域名,也将他指定的文件下载放到目录下,通过直接访问可以成功访问文件,但是还是显示此错误,最后各种尝试都试过了,还是不行,只得联系西部数码的技术,他们让我联系微信客服解决,明明已经可以直接访问人家指定的文件了,肯定不是微信那边的问题,面对这种甩锅行为,我只能将项目重新放到另一台服务器上进行开发,分分钟搞定,完全没有出现此种问题。。虽然此次项目解决了,但是仍然存留这样一个问题无法解决。
7.此项目还犯了一个错误,因为是前台进行套数据,我提供接口,然而并没有将接口继承授权登录的这个基类,目录结构有点凌乱,所以造成后面修改bug的时候很是恼火
如果哪位大神能够解决文中问题,还望大神能够指点一二,感激不尽

猜你喜欢

转载自blog.csdn.net/qq_36129701/article/details/82842224