BaseObject->FromUserName; if($this->BaseObject->Event=='subscribe'){ $access_token_config=DB::name('config')->where(['name'=>'access_token',])->find(); $access_token=$access_token_config['value']; $WxPayConfig = new WxPayConfig(); $WxClient =new WxClient(); $WxClient->appID=$WxPayConfig->GetAppId(); $WxClient->appsecret=$WxPayConfig->GetAppSecret(); if(time()>$access_token_config['ctime']){ $AccessTokenRequest=new AccessTokenRequest(); $AccessTokenRequest->setAppId($WxClient->appID); $AccessTokenRequest->setSecret($WxClient->appsecret); $WxClient->setTypeCurl(WxClient::TYPE_CURL_GET); $AccessTokenRequest=$WxClient->execute($AccessTokenRequest); $access_token=$AccessTokenRequest->access_token; DB::name('config')->where(['name'=>'access_token',])->update(['value'=>$access_token,'ctime'=>time()+7200,]); } $UnionIDRequest=new UnionIDRequest(); $UnionIDRequest->setAccessToken($access_token); $UnionIDRequest->setOpenid($FromUserNameOpenID); $UnionIDRequestResult=$WxClient->execute($UnionIDRequest); //echo $FromUserNameOpenID; //print_r($UnionIDRequestResult); $openid = $UnionIDRequestResult->openid; $pass = '123456abc'; $nickname = $UnionIDRequestResult->nickname; $sex = $UnionIDRequestResult->sex; $headimgurl = $UnionIDRequestResult->headimgurl; $wx_unionId=$UnionIDRequestResult->unionid; $phone = time(); $birthday = date('Y-m-d',time()); $system = 'wx'; //系统,android或ios $channel = 'wx'; //渠道 $this->auth = Auth::instance(); $user = DB::name('users')->field('id,wx_openid,wx_unionId,temp_wx_openid')->where('wx_unionId',$wx_unionId)->find(); if(isset($user['id'])){ if(!strlen($user['temp_wx_openid'])){ $up=[]; $up['temp_wx_openid']=$openid; DB::name('users')->where('id',$user['id'])->update($up); } }else{ $ret = $this->auth->register($pass,$phone,$nickname,$sex,$headimgurl,$birthday,$system,$channel); if ($ret){ $getUserinfo = $this->auth->getUserinfo(); $up=[]; $tag_id=0; $users_tags=[]; if($sex==1){ $tag_id=1; } if($sex==2){ $tag_id=3; } if($tag_id){ $tagsInfo=DB::name('users_tags')->field('id,tag_name,tag_color,bg_color')->where(['id'=>$tag_id,])->find(); if(isset($tagsInfo['id'])){ $users_tags[]=$tagsInfo; $users_tags=array_values($users_tags); } } $up['users_tags']=json_encode($users_tags); $up['wx_unionId']=$wx_unionId; $up['phone']=$getUserinfo['id']; DB::name('users')->where('id',$getUserinfo['id'])->update($up); $img = $this->auth->setFilePath($headimgurl); $res = $this->ryHand(1,$getUserinfo['id'],$getUserinfo['id'],$img); if($res['code'] == 200){ DB::name('users')->where('id',$getUserinfo['id'])->update(['ry_uid'=>$res['userId'],'ry_token'=>$res['token'], ]); } } } } } protected function getConfig($name = null) { if (!$name) { return ''; } $val = DB::name('config')->where('name', $name)->where('status', 1)->value('value'); return $val; } //融云 protected function ryHand($type,$ry_uid,$nickname='',$headimg=''){ import('RongCloud/RongCloud', VENDOR_PATH); $AppKey = $this->getConfig('ry_app_key'); $AppSecret = $this->getConfig('ry_app_secret'); $RongSDK = new \RongCloud\RongCloud($AppKey,$AppSecret); $user = [ 'id'=> $ry_uid, 'name'=> $nickname,//用户名称 'portrait'=> $headimg //用户头像 ]; if($type == 1){ $res = $RongSDK->getUser()->register($user); }elseif($type == 2){ $res = $RongSDK->getUser()->register($user); }else{ return ['code'=>0,'info'=>'not found type']; } // $update = $RongSDK->getUser()->update($user); // $res = $RongSDK->getUser()->MuteGroups()->getList(['test1']); return $res; } }