getRow("SELECT * FROM pre_user WHERE alipay_uid='{$alipay_uid}' limit 1"); if($userrow){ $uid=$userrow['uid']; $key=$userrow['key']; if($islogin2==1){ exit('{"code":-1,"msg":"当前支付宝已绑定商户ID:'.$uid.',请勿重复绑定!"}'); } $session=md5($uid.$key.$password_hash); $expiretime=time()+604800; $token=authcode("{$uid}\t{$session}\t{$expiretime}", 'ENCODE', SYS_KEY); setcookie("user_token", $token, time() + 604800); $DB->exec("update `pre_user` set `lasttime`=NOW() where `uid`='$uid'"); $result=array("code"=>0,"msg"=>"登录成功!正在跳转到用户中心","url"=>"./"); }elseif($islogin2==1){ $sds=$DB->exec("update `pre_user` set `alipay_uid`='$alipay_uid' where `uid`='$uid'"); $result=array("code"=>0,"msg"=>"已成功绑定支付宝账号!","url"=>"./editinfo.php"); }else{ $_SESSION['Oauth_alipay_uid']=$alipay_uid; $result=array("code"=>0,"msg"=>"请输入商户ID和密钥完成绑定和登录","url"=>"./login.php?connect=true"); } unset($_SESSION['alipay_uid']); }else{ $result=array("code"=>1); } exit(json_encode($result)); } if(isset($_GET['auth_code'])){ $channel = \lib\Channel::get($conf['login_alipay']); if(!$channel)sysmsg('当前支付通道信息不存在'); $alipay_config = require(PLUGIN_ROOT.$channel['plugin'].'/inc/config.php'); try{ $oauth = new \Alipay\AlipayOauthService($alipay_config); $result = $oauth->getToken($_GET['auth_code']); }catch(Exception $e){ sysmsg('支付宝快捷登录失败!'.$e->getMessage()); } //支付宝用户号 if(!empty($result['user_id'])){ $user_id = $result['user_id']; $user_type = 'userid'; }else{ $user_id = $result['open_id']; $user_type = 'openid'; } if(isset($_GET['state'])){ $redirect_uri = authcode(str_replace(' ', '+', $_GET['state']), 'DECODE', SYS_KEY); if($redirect_uri && substr($redirect_uri, 0, 1) == '/'){ exit(""); } } $_SESSION['alipay_uid'] = $user_id; $userrow=$DB->getRow("SELECT * FROM pre_user WHERE alipay_uid='{$user_id}' limit 1"); if($userrow){ $uid=$userrow['uid']; $key=$userrow['key']; if($islogin2==1){ @header('Content-Type: text/html; charset=UTF-8'); exit(""); } $DB->insert('log', ['uid'=>$uid, 'type'=>'支付宝快捷登录', 'date'=>'NOW()', 'ip'=>$clientip, 'city'=>$city]); $session=md5($uid.$key.$password_hash); $expiretime=time()+604800; $token=authcode("{$uid}\t{$session}\t{$expiretime}", 'ENCODE', SYS_KEY); setcookie("user_token", $token, time() + 604800); @header('Content-Type: text/html; charset=UTF-8'); exit(""); }elseif($islogin2==1){ $sds=$DB->exec("update `pre_user` set `alipay_uid`='$user_id' where `uid`='$uid'"); @header('Content-Type: text/html; charset=UTF-8'); exit(""); }else{ $_SESSION['Oauth_alipay_uid']=$user_id; exit(""); } }elseif($islogin2==1 && isset($_GET['unbind'])){ $DB->exec("update `pre_user` set `alipay_uid`=NULL where `uid`='$uid'"); @header('Content-Type: text/html; charset=UTF-8'); exit(""); }elseif($islogin2==1 && !isset($_GET['bind']) && !isset($_GET['state'])){ exit(""); }elseif(checkmobile()==false || strpos($_SERVER['HTTP_USER_AGENT'], 'AlipayClient')){ $channel = \lib\Channel::get($conf['login_alipay']); if(!$channel)sysmsg('当前支付通道信息不存在'); $alipay_config = require(PLUGIN_ROOT.$channel['plugin'].'/inc/config.php'); $oauth = new \Alipay\AlipayOauthService($alipay_config); $redirect_uri = $siteurl.'user/oauth.php'; $oauth->oauth($redirect_uri, isset($_GET['state'])?trim($_GET['state']):null); }else{ $code_url = $siteurl.'user/oauth.php?sid='.session_id(); if(isset($_GET['bind'])){ $code_url .= '&bind=1'; } ?> 支付宝快捷登录 | <?php echo $conf['sitename']?>
支付宝快捷登录


© 2016~