getHeaderValue('openid'); if(empty($openid)){ //去登录 $code = isset($_GET['code']) ? $_GET['code'] : ''; $this->wxLogin($code); exit(); }else{ //已经有openid了,不用登录 $_SESSION['openid'] = $openid; } } $this->openid = $_SESSION['openid']; } /** * 获取请求头 * @param [string] $keyName [头名] * @return [string] [头值] */ public function getHeaderValue($keyName){ $headerValue = ''; if (function_exists('apache_request_headers') && $result = apache_request_headers()) { $headerValue = $result[$keyName]; } else { foreach ($_SERVER as $key => $val) { if (0 === strpos($key, 'HTTP_')) { $key = str_replace('_', '-', strtolower(substr($key, 5))); if($key == $keyName){ $headerValue = $val; break; } } } } return $headerValue; } /** * 调用微信登录 * @return [type] [description] */ public function wxLogin($code){ //登录过程 if(!$code){ //调取授权 $this->getAuth(); }else{ //获取openid,同时获取用户信息 $authInfo = $this->getOpenid($code,true); if(isset($authInfo['openid'])){ $_SESSION['openid'] = $authInfo['openid']; $this->openid = $_SESSION['openid']; echo "";exit(); } } } /** *第一步:用户同意授权,获取code *getAuth(); *第二步:通过code换取网页授权access_token *getOpenid($code,$type=false){ *第三步:拉取用户信息(需scope为 snsapi_userinfo) *微信用户信息 *第一种,直接在第二步获取openid时获取 *getOpenid($code,$type=true); *第二种 通过用户授权accress_token获取 *getUserInfo($userAuthAccessToken, $openid); *第三种 通过公众号accressToken获取 *getUserInfoByToken($accessToken, $openid) * * */ /** * 获取用户授权CODE,回调为当前地址,需要判断Code * */ public function getAuth(){ \WeChat\Core\User::code(); # 重载微信授权 } /** * 通过code获取openid,access_token或用户信息 * @param [string] $code [用户授权code] * @param [string] $type [true:同时获取用户信息 | false:只获取用户openid] * @return [string] [openid] */ public function getOpenid($code, $type=false){ return \WeChat\Core\User::openid($code, $type); } /** * 通过用户授权access_token获取用户信息 * @param [string] $userAuthAaccessToken [用户授权access_token] * @param [string] $openid [用户openid] * @return [array] [] */ public function getUserInfo($userAuthAccessToken, $openid){ return \WeChat\Core\User::userInfo($userAuthAccessToken, $openid); } /** * 通过公众号accessToken获取用户信息 * @param [string] $accessToken [公众号access_token] * @param [string] $openid [用户openid] * @return [array] [] */ public function getUserInfoByToken($openid){ return \WeChat\Core\User::newUserInfo($openid); } /** * 获取公众号下所有模板信息 * @return [array] [模板列表] */ public function getAllTemplateMsg(){ $accessToken = $this->getAccessToken(); return \WeChat\Core\Template::gain($accessToken); } /** * 获取用户accessToken * @return [string] accessToken */ public function getAccessToken(){ $accessToken = \WeChat\Core\Token::gain(); # 获取微信access_token $accessToken = $accessToken['access_token']; return $accessToken; } /** * 发送模板消息 * @param [string] $templateId [模板ID] * @param [string] $openid [用户openid] * @param [array] $data [消息数据] * @param [string] $url [点击跳转地址] * @param string $color [标题颜色] * @return [array] 消息是否成功发送 * errcode: 0成功,其他失败 * errmsg: 错误信息,ok成功,其他失败 * msgid: 消息id * */ public function sendTemplateMsg($templateId, $openid, $data, $url, $color = '#7B68EE'){ //\WeChat\Core\User::code($appID); # 重载微信授权 $accessToken = $this->getAccessToken(); return \WeChat\Core\Send::push($accessToken, $templateId, $openid, $data, $url, $color); } } // $templateId = 'ObkTv-txyqsv8Toie4HC8PnBFJmwygw9zPJbx8h0FcM'; // $openid = 'objYQuHNqKTi2sjSTzLTc7C7PjDo'; // $url = 'http://t.ect99.com'; // //模板消息 // $data = [ // 'first'=>['value'=>'您的活动已通过','color'=>"#FF0000"], // 'keyword1'=>['value'=>'测试文章标题'], //keyword需要与配置的模板消息对应 // 'keyword2'=>['value'=>date("Y-m-d H:i:s")], // 'keyword3'=>['value'=>'测试发布人'], // 'keyword4'=>['value'=>'测试状态'], // 'remark' =>['value'=>'备注:这是测试'] // ]; // var_dump(pptWX->sendTemplateMsg($templateId, $openid, $data, $url)); // //登录过程 // $code = isset($_GET['code']) ? $_GET['code'] : ''; // if(!$code){ // //调取授权 // pptWXBase::getAuth(); // }else{ // //获取授权信息,只获取openid // //$authInfo = pptWXBase::getOpenid($code); // // 返回代码示例 // // array(5) { // // ["access_token"]=> // // string(89) "22_HQ4kM7_gbUZ-fGP1TnFLeh-wxk-jWyjc_PzrbYpICXyuGCNKWEi_Yz5_qnStDGP56I8OD4xJvNRVS98U1TC6Zw" // // ["expires_in"]=> // // int(7200) // // ["refresh_token"]=> // // string(89) "22_bdxpWwS0wADfSNO1y6Sq7txoWBK3hG4x3vvx_WOe-sovDig-yWZ43MsBtzJlY2svcxmlvLxKwBughKbJL14b8A" // // ["openid"]=> // // string(28) "objYQuHNqKTi2sjSTzLTc7C7PjDo" // // ["scope"]=> // // string(15) "snsapi_userinfo" // // } // //获取用户信息 // //通过授权token,获取用户信息 // //$userInfo = pptWXBase::getUserInfo($authInfo['access_token'], $authInfo['openid']); // //获取openid,同时获取用户信息 // $authInfo = pptWXBase::getOpenid($code,true); // // 返回代码示例 // // array(9) { // // ["openid"]=> // // string(28) "objYQuHNqKTi2sjSTzLTc7C7PjDo" // // ["nickname"]=> // // string(12) "网事悠悠" // // ["sex"]=> // // int(1) // // ["language"]=> // // string(5) "zh_CN" // // ["city"]=> // // string(6) "枣庄" // // ["province"]=> // // string(6) "山东" // // ["country"]=> // // string(6) "中国" // // ["headimgurl"]=> // // string(130) "http://thirdwx.qlogo.cn/mmopen/vi_32/Q0j4TwGTfTJW7ghRsPm6dJReYJ97lUMicgjQLVdSaPr3SKBZ29riaZ3KOFaw1nmKyt4LtibvN2FkzFTTESgetm9QQ/132" // // ["privilege"]=> // // array(0) { // // } // // } // var_dump($authInfo); // }