王志新的博客

php第三方微信登陆

王志新 2018-06-13 16:15:00
正文点这评论(2 人参与)
php第三方微信登陆


1:去微信开放平台注册账号并创建网站应用。传送门


2:根据自己的项目流程自行配置配置文件

本demo采用tp3.x版本

'WEIXIN_AUTH' => array(
	'APP_ID'     => 'xxx', 
	'APP_SECRET' => 'xxxxxx',
	'CALLBACK'   => 'http://wangzhixin.top/Oauth/index/type/weixin/',
),


3:实例化

$headerUrl = $this->erWeiMaLogin();
if($headerUrl){
    header('Location:'.$headerUrl);
}

    /**
    * @desc 生成微信登录二维码
    * @date 2016-04-13
    * 
    */
    public function erWeiMaLogin(){
        //随机数我采用tp3.x版本内置函数生成,各位童鞋可以根据自己的项目而定
    	$rand 	= new \Org\Util\String();
    	$rand 	= $rand->randString(10,5);//随机字符串
    	session('weixin_state',$rand);
    	$imgUrl = "https://open.weixin.qq.com/connect/qrconnect?appid=".C('WEIXIN_AUTH.APP_ID');
    	$imgUrl .= "&redirect_uri=".urlencode(C('WEIXIN_AUTH.CALLBACK'));
    	$imgUrl .= "&response_type=code&scope=snsapi_login&state=".$rand."#wechat_redirect";
    	return $imgUrl;
    
    }


4:授权成功后,自动跳转到 CALLBACK 地址,获取用户的unionid 执行注册/登陆操作

//tp3.x写法
$getCode = I('get.code');
//原生写法
$getCode = isSet($_GET['code'])?$_GET['code']:'';

$weixin = new \WeixinConnect();
$acctoken = $weixin->get_accessToken($getCode,I('get.state'));
if($acctoken){
    $unionid 	  = $acctoken['unionid'];
    //登陆/注册相关操作。。
}


附件:

WeixinConnect.zip


打赏

评论

评论
魏淑鑫
2018-06-13 18:52:11 回复 收起回复
搜索
网站分类
最近发表
  • mac系统VirtualBox + Vagrant + 宝塔 Linux虚拟开发环境
  • Mac系统VirtualBox中CentOS启用共享文件夹
  • centos虚拟机配置静态IP网络
  • ssh远程连接服务器异常修复(WARNING: REMOTE HOST IDENTIFICATION HAS CHANGED!)
  • vsCode+Homestead开启xdebug调试
  • PHP Laravel Homestead安装
  • php+Xunsearch中文检索
  • array_filter()
  • array_fill_keys()
  • array_fill()
  • 常用工具
    软件下载
    友情链接

    X
    我知道了