jsapi签名

This commit is contained in:
2026-01-08 14:30:42 +08:00
parent 900254ac0b
commit ffed78f446
8 changed files with 376 additions and 3 deletions
+27 -2
View File
@@ -109,7 +109,7 @@ class Feishu
*/
public function tenantAccessToken()
{
$tenantAccessToken = Cache::get($this->abbr.'-tenantAccessToken');
$tenantAccessToken = Cache::get($this->appId.'-tenantAccessToken');
if (!$tenantAccessToken) {
$this->options["json"] = [
"app_id" => $this->appId,
@@ -118,7 +118,7 @@ class Feishu
$rst = $this->requestResult('auth/v3/tenant_access_token/internal', 'POST');
if ($rst) {
$tenantAccessToken = $rst['tenant_access_token'];
Cache::set($this->abbr.'-tenantAccessToken', $tenantAccessToken, $rst['expire']);
Cache::set($this->appId.'-tenantAccessToken', $tenantAccessToken, $rst['expire']);
} else {
throw new BusinessException('tenant_access_token 获取失败');
}
@@ -209,6 +209,31 @@ class Feishu
return $this->requestResult('authen/v1/user_info', "GET");
}
/**
* 获取 jsapi_ticket
*/
public function jsapiTicket()
{
$jsapiTicket = Cache::get($this->appId.'-jsapiTicket');
if (!$jsapiTicket) {
$this->options["headers"] = [
"Authorization" => "Bearer " . $this->tenantAccessToken(),
"Content-Type" => "application/json; charset=utf-8"
];
// 清除 json 选项,确保 GET 请求不发送 body
unset($this->options["json"]);
$rst = $this->requestResult('jssdk/ticket/get', 'GET');
if ($rst && isset($rst['data']['ticket'])) {
$jsapiTicket = $rst['data']['ticket'];
$expire = $rst['data']['expire_in'] ?? 7200;
Cache::set($this->appId.'-jsapiTicket', $jsapiTicket, $expire);
} else {
throw new BusinessException('jsapi_ticket 获取失败');
}
}
return $jsapiTicket;
}
// public function user_access_token($code = "")
// {
// $url = "";