<?phpnamespace wework;use wework\exception\QyApiError;use wework\exception\ParameterError;abstract class API{public $rspJson = null;public $rspRawStr = null;const USER_CREATE = '/cgi-bin/user/create?access_token=ACCESS_TOKEN';const USER_GET = '/cgi-bin/user/get?access_token=ACCESS_TOKEN';const USER_UPDATE = '/cgi-bin/user/update?access_token=ACCESS_TOKEN';const USER_DELETE = '/cgi-bin/user/delete?access_token=ACCESS_TOKEN';const USER_BATCH_DELETE = '/cgi-bin/user/batchdelete?access_token=ACCESS_TOKEN';const USER_SIMPLE_LIST = '/cgi-bin/user/simplelist?access_token=ACCESS_TOKEN';const USER_LIST = '/cgi-bin/user/list?access_token=ACCESS_TOKEN';const USERID_TO_OPENID = '/cgi-bin/user/convert_to_openid?access_token=ACCESS_TOKEN';const OPENID_TO_USERID = '/cgi-bin/user/convert_to_userid?access_token=ACCESS_TOKEN';const USER_AUTH_SUCCESS = '/cgi-bin/user/authsucc?access_token=ACCESS_TOKEN';const DEPARTMENT_CREATE = '/cgi-bin/department/create?access_token=ACCESS_TOKEN';const DEPARTMENT_UPDATE = '/cgi-bin/department/update?access_token=ACCESS_TOKEN';const DEPARTMENT_DELETE = '/cgi-bin/department/delete?access_token=ACCESS_TOKEN';const DEPARTMENT_LIST = '/cgi-bin/department/list?access_token=ACCESS_TOKEN';const TAG_CREATE = '/cgi-bin/tag/create?access_token=ACCESS_TOKEN';const TAG_UPDATE = '/cgi-bin/tag/update?access_token=ACCESS_TOKEN';const TAG_DELETE = '/cgi-bin/tag/delete?access_token=ACCESS_TOKEN';const TAG_GET_USER = '/cgi-bin/tag/get?access_token=ACCESS_TOKEN';const TAG_ADD_USER = '/cgi-bin/tag/addtagusers?access_token=ACCESS_TOKEN';const TAG_DELETE_USER = '/cgi-bin/tag/deltagusers?access_token=ACCESS_TOKEN';const TAG_GET_LIST = '/cgi-bin/tag/list?access_token=ACCESS_TOKEN';const BATCH_JOB_GET_RESULT = '/cgi-bin/batch/getresult?access_token=ACCESS_TOKEN';const BATCH_INVITE = '/cgi-bin/batch/invite?access_token=ACCESS_TOKEN';const AGENT_GET = '/cgi-bin/agent/get?access_token=ACCESS_TOKEN';const AGENT_SET = '/cgi-bin/agent/set?access_token=ACCESS_TOKEN';const AGENT_GET_LIST = '/cgi-bin/agent/list?access_token=ACCESS_TOKEN';const MENU_CREATE = '/cgi-bin/menu/create?access_token=ACCESS_TOKEN';const MENU_GET = '/cgi-bin/menu/get?access_token=ACCESS_TOKEN';const MENU_DELETE = '/cgi-bin/menu/delete?access_token=ACCESS_TOKEN';const MESSAGE_SEND = '/cgi-bin/message/send?access_token=ACCESS_TOKEN';const MEDIA_GET = '/cgi-bin/media/get?access_token=ACCESS_TOKEN';const GET_USER_INFO_BY_CODE = '/cgi-bin/user/getuserinfo?access_token=ACCESS_TOKEN';const GET_USER_DETAIL = '/cgi-bin/user/getuserdetail?access_token=ACCESS_TOKEN';const GET_TICKET = '/cgi-bin/ticket/get?access_token=ACCESS_TOKEN';const GET_JSAPI_TICKET = '/cgi-bin/get_jsapi_ticket?access_token=ACCESS_TOKEN';const GET_CHECKIN_OPTION = '/cgi-bin/checkin/getcheckinoption?access_token=ACCESS_TOKEN';const GET_CHECKIN_DATA = '/cgi-bin/checkin/getcheckindata?access_token=ACCESS_TOKEN';const GET_APPROVAL_DATA = '/cgi-bin/corp/getapprovaldata?access_token=ACCESS_TOKEN';const GET_INVOICE_INFO = '/cgi-bin/card/invoice/reimburse/getinvoiceinfo?access_token=ACCESS_TOKEN';const UPDATE_INVOICE_STATUS = '/cgi-bin/card/invoice/reimburse/updateinvoicestatus?access_token=ACCESS_TOKEN';const BATCH_UPDATE_INVOICE_STATUS = '/cgi-bin/card/invoice/reimburse/updatestatusbatch?access_token=ACCESS_TOKEN';const BATCH_GET_INVOICE_INFO = '/cgi-bin/card/invoice/reimburse/getinvoiceinfobatch?access_token=ACCESS_TOKEN';const GET_PRE_AUTH_CODE = '/cgi-bin/service/get_pre_auth_code?suite_access_token=SUITE_ACCESS_TOKEN';const SET_SESSION_INFO = '/cgi-bin/service/set_session_info?suite_access_token=SUITE_ACCESS_TOKEN';const GET_PERMANENT_CODE = '/cgi-bin/service/get_permanent_code?suite_access_token=SUITE_ACCESS_TOKEN';const GET_AUTH_INFO = '/cgi-bin/service/get_auth_info?suite_access_token=SUITE_ACCESS_TOKEN';const GET_ADMIN_LIST = '/cgi-bin/service/get_admin_list?suite_access_token=SUITE_ACCESS_TOKEN';const GET_USER_INFO_BY_3RD = '/cgi-bin/service/getuserinfo3rd?suite_access_token=SUITE_ACCESS_TOKEN';const GET_USER_DETAIL_BY_3RD = '/cgi-bin/service/getuserdetail3rd?suite_access_token=SUITE_ACCESS_TOKEN';const GET_LOGIN_INFO = '/cgi-bin/service/get_login_info?access_token=PROVIDER_ACCESS_TOKEN';const GET_REGISTER_CODE = '/cgi-bin/service/get_register_code?provider_access_token=PROVIDER_ACCESS_TOKEN';const GET_REGISTER_INFO = '/cgi-bin/service/get_register_info?provider_access_token=PROVIDER_ACCESS_TOKEN';const SET_AGENT_SCOPE = '/cgi-bin/agent/set_scope';const SET_CONTACT_SYNC_SUCCESS = '/cgi-bin/sync/contact_sync_success';/*** @return string*/protected function GetAccessToken(){}/*** @return string*/protected function RefreshAccessToken(){}/*** @return string*/protected function GetSuiteAccessToken(){}/*** @return string*/protected function RefreshSuiteAccessToken(){}/*** @return string*/protected function GetProviderAccessToken(){}/*** @return string*/protected function RefreshProviderAccessToken(){}protected function _HttpCall($url, $method, $args){if ('POST' == $method) {$url = HttpUtils::MakeUrl($url);$this->_HttpPostParseToJson($url, $args);$this->_CheckErrCode();} else {if ('GET' == $method) {if (count($args) > 0) {foreach ($args as $key => $value) {if ($value == null) {continue;}if (strpos($url, '?')) {$url .= ('&'.$key.'='.$value);} else {$url .= ('?'.$key.'='.$value);}}}$url = HttpUtils::MakeUrl($url);$this->_HttpGetParseToJson($url);$this->_CheckErrCode();} else {throw new QyApiError('wrong method');}}}protected function _HttpGetParseToJson($url, $refreshTokenWhenExpired = true){$retryCnt = 0;$this->rspJson = null;$this->rspRawStr = null;while ($retryCnt < 2) {$tokenType = null;$realUrl = $url;if (strpos($url, "SUITE_ACCESS_TOKEN")) {$token = $this->GetSuiteAccessToken();$realUrl = str_replace("SUITE_ACCESS_TOKEN", $token, $url);$tokenType = "SUITE_ACCESS_TOKEN";} else {if (strpos($url, "PROVIDER_ACCESS_TOKEN")) {$token = $this->GetProviderAccessToken();$realUrl = str_replace("PROVIDER_ACCESS_TOKEN", $token, $url);$tokenType = "PROVIDER_ACCESS_TOKEN";} else {if (strpos($url, "ACCESS_TOKEN")) {$token = $this->GetAccessToken();$realUrl = str_replace("ACCESS_TOKEN", $token, $url);$tokenType = "ACCESS_TOKEN";} else {$tokenType = "NO_TOKEN";}}}$this->rspRawStr = HttpUtils::httpGet($realUrl);if (!Utils::notEmptyStr($this->rspRawStr)) {throw new QyApiError("empty response");}//$this->rspJson = json_decode($this->rspRawStr, true/*to array*/);if (strpos($this->rspRawStr, "errcode") !== false) {$errCode = Utils::arrayGet($this->rspJson, "errcode");if ($errCode == 40014 || $errCode == 42001 || $errCode == 42007 || $errCode == 42009) { // token expiredif ("NO_TOKEN" != $tokenType && true == $refreshTokenWhenExpired) {if ("ACCESS_TOKEN" == $tokenType) {$this->RefreshAccessToken();} else {if ("SUITE_ACCESS_TOKEN" == $tokenType) {$this->RefreshSuiteAccessToken();} else {if ("PROVIDER_ACCESS_TOKEN" == $tokenType) {$this->RefreshProviderAccessToken();}}}$retryCnt += 1;continue;}}}return $this->rspRawStr;}}protected function _HttpPostParseToJson($url, $args, $refreshTokenWhenExpired = true, $isPostFile = false){$postData = $args;if (!$isPostFile) {if (!is_string($args)) {$postData = HttpUtils::Array2Json($args);}}$this->rspJson = null;$this->rspRawStr = null;$retryCnt = 0;while ($retryCnt < 2) {$tokenType = null;$realUrl = $url;if (strpos($url, "SUITE_ACCESS_TOKEN")) {$token = $this->GetSuiteAccessToken();$realUrl = str_replace("SUITE_ACCESS_TOKEN", $token, $url);$tokenType = "SUITE_ACCESS_TOKEN";} else {if (strpos($url, "PROVIDER_ACCESS_TOKEN")) {$token = $this->GetProviderAccessToken();$realUrl = str_replace("PROVIDER_ACCESS_TOKEN", $token, $url);$tokenType = "PROVIDER_ACCESS_TOKEN";} else {if (strpos($url, "ACCESS_TOKEN")) {$token = $this->GetAccessToken();$realUrl = str_replace("ACCESS_TOKEN", $token, $url);$tokenType = "ACCESS_TOKEN";} else {$tokenType = "NO_TOKEN";}}}$this->rspRawStr = HttpUtils::httpPost($realUrl, $postData);if (!Utils::notEmptyStr($this->rspRawStr)) {throw new QyApiError("empty response");}$json = json_decode($this->rspRawStr, true/*to array*/);$this->rspJson = $json;$errCode = Utils::arrayGet($this->rspJson, "errcode");if ($errCode == 40014 || $errCode == 42001 || $errCode == 42007 || $errCode == 42009) { // token expiredif ("NO_TOKEN" != $tokenType && true == $refreshTokenWhenExpired) {if ("ACCESS_TOKEN" == $tokenType) {$this->RefreshAccessToken();} else {if ("SUITE_ACCESS_TOKEN" == $tokenType) {$this->RefreshSuiteAccessToken();} else {if ("PROVIDER_ACCESS_TOKEN" == $tokenType) {$this->RefreshProviderAccessToken();}}}$retryCnt += 1;continue;}}return $json;}}protected function _CheckErrCode(){$rsp = $this->rspJson;$raw = $this->rspRawStr;if (is_null($rsp)) {return;}if (!is_array($rsp)) {throw new ParameterError("invalid type ".gettype($rsp));}if (!array_key_exists("errcode", $rsp)) {return;}$errCode = $rsp["errcode"];if (!is_int($errCode)) {throw new QyApiError("invalid errcode type ".gettype($errCode).":".$raw);}if ($errCode != 0) {throw new QyApiError("response error:".$raw);}}}
此处可能存在不合适展示的内容,页面不予展示。您可通过相关编辑功能自查并修改。
如您确认内容无涉及 不当用语 / 纯广告导流 / 暴力 / 低俗色情 / 侵权 / 盗版 / 虚假 / 无价值内容或违法国家有关法律法规的内容,可点击提交进行申诉,我们将尽快为您处理。