• 技术文章 >php框架 >YII

    yii2中如何自定义公共类

    VV2019-12-24 14:39:56原创802

    以微信企业号为例:

    1、在YII根目录新建一个文件夹wechat,新建Wechat.php文件

    代码如下:

    <? 
    namespace app\wechat;
    class Wechat
    {
    	const AGENTID = 3;//应用ID
    	const CORPID = "wx5d0183ad90c95d8b";//ID
    	const CORPSECRET = "KTHAkkVl4mX4Jr_g89d3PXajYupsUcJFvGWQ1K6ZMagTPOh4kiNMfBLFoDr12DVh";//秘钥
    	const SCOPE = "snsapi_base"; 
    	const STATE = "123"; 	
     
    	//自动登录跳转
    	public function wxauto($jumpurl){	
    		$corpid = self::CORPID; 
    		$scope = self::SCOPE; 
    		$state = self::STATE;  
    		$url='https://open.weixin.qq.com/connect/oauth2/authorize?appid='.$corpid.'
    		&redirect_uri='.urlencode($jumpurl).'
    		&response_type=code&scope='.$scope.'&state='.$state.'#wechat_redirect';
    		header("Location:".$url);
    		exit;
    	}
    	
    	//推送信息
    	public function getPush($userid , $agentid , $message){
    			$userinfo = $this->getToken();//获取access_token
    			$access_token = $userinfo['access_token'];
    			$sendmsg_url = "https://qyapi.weixin.qq.com/cgi-bin/message/send?access_token=".
    			$access_token;
    			$data="{\"touser\":\"$userid\",\"msgtype\":\"text\",\"agentid\":$agentid,\"text\":
    			{\"content\":\"$message\"},\"safe\":0}";
    			$res = $this->curlPost($sendmsg_url,$data);
    			$errmsg=json_decode($res)->errmsg;
    	}
    	
    	//获取token
    	public function getToken(){		
    		$corpid = self::CORPID; 
    		$corpsecret = self::CORPSECRET; 
    		$Url="https://qyapi.weixin.qq.com/cgi-bin/gettoken?corpid=".$corpid."&corpsecret=".$corpsecret;
    		$res = $this->curlPost($Url);
    		$access_token=json_decode($res)->access_token;
    		$userinfo = array();
    		$userinfo['access_token']=$access_token;
    		return $userinfo;
    	}
    	
    	//定义curl方法
    	public function curlPost($url,$data=""){
    		$ch = curl_init();
    		$opt = array(
    				CURLOPT_URL     => $url,
    				CURLOPT_HEADER  => 0,
    				CURLOPT_POST    => 1,
    				CURLOPT_POSTFIELDS      => $data,
    				CURLOPT_RETURNTRANSFER  => 1,
    				CURLOPT_TIMEOUT         => 20
    		);
    		$ssl = substr($url,0,8) == "https://" ? TRUE : FALSE;
    		if ($ssl){
    			$opt[CURLOPT_SSL_VERIFYHOST] = 2; //注意1已经弃用
    			$opt[CURLOPT_SSL_VERIFYPEER] = FALSE;
    		}
    		curl_setopt_array($ch,$opt);
    		$data = curl_exec($ch);
    		curl_close($ch);
    		return $data;
    	}
    ###########**********增加获取微信openid***********#########################
    }
    ?>

    2、控制器的调用:

    引入 use app\wechat\Wechat;

    	$chat = new Wechat();  //实例化类
    	$REDIRECT_URI= $_SERVER['HTTP_HOST'].'/test/back';//定义跳转URL
    	$chat->wxauto($REDIRECT_URI);//调用类的方法
            $chat->getToken();//调用类的方法
     
    	$corpid = Wechat::CORPID;//调用类的常量
    	$corpsecret = Wechat::CORPSECRET;//调用类的常量
    	$agentid=Wechat::AGENTID;//调用类的常量

    相关文章教程推荐:yii教程

    以上就是yii2中如何自定义公共类的详细内容,更多请关注php中文网其它相关文章!

    声明:本文原创发布php中文网,转载请注明出处,感谢您的尊重!如有疑问,请联系admin@php.cn处理
    专题推荐:yii2 自定义 公共类
    上一篇:yii中的datepicker日期组件的使用 下一篇:yii2.0实现隐藏form中的label标签
    大前端线上培训班

    相关文章推荐

    • yii2搜索框怎么做• yii输入正确验证码提示错误• yii实现不加载layout布局文件• yii2.0怎么打印sql语句

    全部评论我要评论

  • 取消发布评论发送
  • 1/1

    PHP中文网