_createOauthUrl($code); $res = self::curlGet($url); $data = json_decode($res, true); $openid = isset($data['openid']) ? $data['openid'] : ''; return $openid; } private function _createOauthUrl($code) { $data = [ 'appid' => WxPayConfig::APPID, 'secret' => WxPayConfig::APPSECRET, 'code' => $code, 'grant_type' => 'authorization_code' ]; $queryStr = $this->_buildUrlParam($data); return "https://api.weixin.qq.com/sns/oauth2/access_token?{$queryStr}"; } private function _buildUrlParam($data) { $buff = ''; foreach ( $data as $k => $v ) { if ( 'sign' != $k ) { $buff .= "{$k}={$v}&"; } } return trim($buff, '&'); } public static function curlGet($url = '', $options = []) { $ch = curl_init(); curl_setopt($ch, CURLOPT_URL, $url); curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1); curl_setopt($ch, CURLOPT_HEADER, 0); curl_setopt($ch, CURLOPT_TIMEOUT, 30); if ( !empty($options) ) { curl_setopt_array($ch, $options); } //https请求 不验证证书和host curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, false); curl_setopt($ch, CURLOPT_SSL_VERIFYHOST, false); $data = curl_exec($ch); curl_close($ch); return $data; } }