Pārlūkot izejas kodu

新增APP新申请QQ登录的独立接口

齐博 2 gadi atpakaļ
vecāks
revīzija
635d3124d3

+ 2 - 1
application/common.php

@@ -2064,7 +2064,8 @@ if (!function_exists('set_cookie')) {
         }
         config('webdb.cookiePre') && $name = config('webdb.cookiePre') . $name;
         
-        if(!preg_match('/ Chrome/i', $_SERVER['HTTP_USER_AGENT'])){ //小程序中只能用setcookie 用header有时会清除不掉 
+        preg_match('/ Chrome\/([\d]+)\./i', $_SERVER['HTTP_USER_AGENT'],$array);        
+        if(!$array[1] || $array[1]<=63){ //小程序中只能用setcookie 用header有时会清除不掉  另外Chrome 63版本以上才可以
             cookie($name,$value,$option);
             return ;
         }        

+ 11 - 3
application/common/controller/member/Mysort.php

@@ -43,8 +43,14 @@ abstract class Mysort extends MemberBase
         ];
     }
     
-    
-    public function index($ext_id=0,$aid=0) {
+    /**
+     * 用户自定义的我分类
+     * @param number $ext_id 关联的圈子ID
+     * @param number $aid 圈子ID,这个暂时只是圈子货架分类用到
+     * @param string $ext_sys 关联的频道ID
+     * @return unknown|mixed|string
+     */
+    public function index($ext_id=0,$aid=0,$ext_sys='') {
         if ($this->request->isPost()) {
             //修改排序
             return $this->edit_order();
@@ -54,13 +60,15 @@ abstract class Mysort extends MemberBase
         if ($ext_id) {
             if (empty($ext_sys)) {
                 $ext_sys = modules_config('qun')['id'];
+            }else{
+                $ext_sys = modules_config($ext_sys)['id']?:0;
             }
             $map = [
                     'ext_id'=>$ext_id,
                     'ext_sys'=>$ext_sys,
             ];
         }
-        if ($aid) {
+        if ($aid && M('keyword')=='qun') {  //目前只有圈子用到
             $map = [
                 'aid'=>$aid,
             ];        

+ 4 - 0
application/common/upgrade/141.sql

@@ -0,0 +1,4 @@
+ALTER TABLE `qb_memberdata` ADD `qq_open_api` VARCHAR( 32 ) NOT NULL COMMENT '后期申请的APP专属QQ登录' AFTER `qq_api` ;
+INSERT INTO `qb_config` (`id`, `type`, `title`, `c_key`, `c_value`, `form_type`, `options`, `ifsys`, `htmlcode`, `c_descrip`, `list`, `sys_id`) VALUES(0, 20, 'APP专属QQ登录appid', 'qqopen_appid', '', 'text', '', 1, '', '前期申请的与网页QQ登录相同,就留空(后期申请的,都不相同)', 0, -9);
+INSERT INTO `qb_config` (`id`, `type`, `title`, `c_key`, `c_value`, `form_type`, `options`, `ifsys`, `htmlcode`, `c_descrip`, `list`, `sys_id`) VALUES(0, 20, 'APP专属QQ登录接口密钥', 'qqopen_appsecret', '', 'text', '', 1, '', '前期申请的与网页QQ登录相同,就留空(后期申请的,都不相同)', 0, -9);
+

+ 1 - 0
application/common/upgrade/log333.txt

@@ -0,0 +1 @@
+新增APP新申请QQ登录的独立接口

+ 6 - 0
application/install/sql/install.sql

@@ -1508,3 +1508,9 @@ ALTER TABLE `qb_rmb_infull` ADD `refund_money` DECIMAL( 8, 2 ) NOT NULL COMMENT
 ALTER TABLE `qb_rmb_consume` ADD `refund` TINYINT NOT NULL COMMENT '1支持退款,2已退款';
 
 ALTER TABLE `qb_rmb_getout` ADD `sign_img` VARCHAR( 150 ) NOT NULL COMMENT '签名图片';
+
+
+ALTER TABLE `qb_memberdata` ADD `qq_open_api` VARCHAR( 32 ) NOT NULL COMMENT '后期申请的APP专属QQ登录' AFTER `qq_api` ;
+INSERT INTO `qb_config` (`id`, `type`, `title`, `c_key`, `c_value`, `form_type`, `options`, `ifsys`, `htmlcode`, `c_descrip`, `list`, `sys_id`) VALUES(0, 20, 'APP专属QQ登录appid', 'qqopen_appid', '', 'text', '', 1, '', '前期申请的与网页QQ登录相同,就留空(后期申请的,都不相同)', 0, -9);
+INSERT INTO `qb_config` (`id`, `type`, `title`, `c_key`, `c_value`, `form_type`, `options`, `ifsys`, `htmlcode`, `c_descrip`, `list`, `sys_id`) VALUES(0, 20, 'APP专属QQ登录接口密钥', 'qqopen_appsecret', '', 'text', '', 1, '', '前期申请的与网页QQ登录相同,就留空(后期申请的,都不相同)', 0, -9);
+

+ 7 - 2
plugins/login/index/Qq.php

@@ -61,6 +61,11 @@ class Qq extends IndexBase
         }elseif(!$openid){
             $this->error('获取openid失败');
         }
+        if(config('webdb.qqopen_appid')&&config('webdb.qqopen_appsecret')&&config('webdb.qqopen_appid')!=config('webdb.qqlogin_appid')){
+            config('webdb.qqlogin_appid',config('webdb.qqopen_appid'));
+            config('webdb.qqlogin_appsecret',config('webdb.qqopen_appsecret'));
+            define('QQ_INAPP', true);
+        }
         $array = $this->get_user_info($access_token,$openid);
         if(!isset($array['nickname'])){
             $this->error_msg('出错了');
@@ -70,9 +75,9 @@ class Qq extends IndexBase
     
     protected function login_in($openid='',$access_token='',$type='',$fromurl=''){
         
-        $rs = UserModel::get_info(['qq_api'=>$openid]);
+        $rs = UserModel::get_info(defined('QQ_INAPP')?['qq_open_api'=>$openid]:['qq_api'=>$openid]);
         
-        if($type=='bind'){  //绑定帐号
+        if($type=='bind'){  //绑定帐号 只针对网页端
             
             if($rs){    //解绑以前的帐号
                 $array = [

+ 9 - 1
plugins/login/model/Qq.php

@@ -11,8 +11,11 @@ class Qq extends UserModel
             return 'nickname 或 openid 值不存在!';
         }
         
-        if( self::check_qqIdExists( $data['openid'] ) ){
+
+        if(!defined('QQ_INAPP') && self::check_qqIdExists( $data['openid'] ) ){
             return '当前QQ号已经注册过了!';
+        }elseif(defined('QQ_INAPP') && self::get_info( ['qq_open_api'=>$data['openid']]) ){
+            return '当前QQ号已经注册过了!!!';
         }
         
         $username = $nickname = str_replace(array('|',' ','',"'",'"','/','*',',','~',';','<','>','$',"\\","\r","\t","\n","`","!","?","%","^"),'',$data['nickname']);
@@ -62,6 +65,11 @@ class Qq extends UserModel
                 'bday'=>$bday,
         );
         
+        if(defined('QQ_INAPP')){
+            $array['qq_api'] = '';
+            $array['qq_open_api'] = $openid;
+        }
+        
         //入库
         $uid = self::register_user($array);
         if($uid<1){