初始化代码
This commit is contained in:
154
application/api/wxapi/wxmsg/Subscribe.php
Normal file
154
application/api/wxapi/wxmsg/Subscribe.php
Normal file
@@ -0,0 +1,154 @@
|
||||
<?php
|
||||
namespace app\api\wxapi\wxmsg;
|
||||
|
||||
use app\api\wxapi\Base;
|
||||
use app\api\wxapi\request\UnionIDRequest;
|
||||
use app\api\wxapi\WxClient;
|
||||
use app\api\wxapi\pay\WxPayConfig;
|
||||
use app\api\wxapi\request\AccessTokenRequest;
|
||||
use think\Db;
|
||||
use app\common\library\Auth;
|
||||
|
||||
/* 扫二维码
|
||||
* */
|
||||
class Subscribe extends Base{
|
||||
|
||||
public $BaseObject;
|
||||
|
||||
protected $auth = null;
|
||||
|
||||
public function run(){
|
||||
/*查SQL*/
|
||||
$FromUserNameOpenID=$this->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;
|
||||
}
|
||||
|
||||
|
||||
}
|
||||
Reference in New Issue
Block a user