'jsapi', 'access_token' => $accessToken)); self::check($response); $jsticket = $response->ticket; Cache::setJsTicket('js_ticket_'.$corpId,$jsticket); } return $jsticket; } function curPageURL() { $pageURL = 'http'; if (array_key_exists('HTTPS',$_SERVER)&&$_SERVER["HTTPS"] == "on") { $pageURL .= "s"; } $pageURL .= "://"; if ($_SERVER["SERVER_PORT"] != "80") { $pageURL .= $_SERVER["SERVER_NAME"] . ":" . $_SERVER["SERVER_PORT"] . $_SERVER["REQUEST_URI"]; } else { $pageURL .= $_SERVER["SERVER_NAME"] . $_SERVER["REQUEST_URI"]; } return $pageURL; } public static function isvConfig($corpId) { $corpInfo = ISVClass::getCorpInfo($corpId); $corpId = $corpInfo['corp_id']; $agentId = ISVService::getCurAgentId($corpId,APPID); $nonceStr = 'abcdefg'; $timeStamp = time(); $url = self::curPageURL(); $ticket = self::getTicket($corpId,$corpInfo['corpAccessToken']); $signature = self::sign($ticket, $nonceStr, $timeStamp, $url); $arr = array(); $arr['ticket'] = $ticket; $arr['nonceStr'] = $nonceStr; $arr['timeStamp'] = $timeStamp; $arr['url'] = $url; $arr['signature'] = $signature; $config = array( 'url' => $url, 'nonceStr' => $nonceStr, 'agentId' => $agentId, 'timeStamp' => $timeStamp, 'corpId' => $corpId, 'suite_key' => SUITE_KEY, 'signature' => $signature); return json_encode($config, JSON_UNESCAPED_SLASHES); } public static function sign($ticket, $nonceStr, $timeStamp, $url) { $plain = 'jsapi_ticket=' . $ticket . '&noncestr=' . $nonceStr . '×tamp=' . $timeStamp . '&url=' . $url; return sha1($plain); } /** * @param $accessToken * @param $code * @return 个人授权信息 */ public static function getPerson($accessToken, $code) { $response = Http::get("/user/get_private_info", array("access_token" => $accessToken, "tmp_auth_code" => $code)); return json_encode($response); } static function check($res) { if ($res->errcode != 0) { Log::e("FAIL: " . json_encode($res)); exit("Failed: " . json_encode($res)); } } }