public function get_jsapi_ticket()
{
$ticket = false;
if ($this->get_jsapi_ticket_diy !== false) {
// 调用用户自定义获取jsapi_ticket方法
$ticket = call_user_func($this->get_jsapi_ticket_diy);
if ($ticket) {
$ticket = json_decode($ticket);
}
} else {
// 异常处理: 获取jsapi_ticket方法未定义
@error_log('Not set getTicketDiy method, jsapi_ticket will be refreshed each time.', 0);
}
// 验证jsapi_ticket是否有效
if (!$this->valid_jsapi_ticket($ticket)) {
// 生成新的jsapi_ticket
$ticket = $this->new_jsapi_ticket();
if ($ticket === false) {
return false;
}
// 保存新生成的AccessToken
if ($this->save_jsapi_ticket_diy !== false) {
// 用户自定义保存AccessToken方法
call_user_func($this->save_jsapi_ticket_diy, json_encode($ticket));
} else {
// 异常处理: 保存access_token方法未定义
@error_log('Not set saveTokenDiy method, jsapi_ticket will be refreshed each time.', 0);
}
}
return $ticket->ticket;
}