//版本號 ticketId nowtime 協議 (。。。) 用a分割
public static function makeTicketToken($params){
$salt = 'fxyy$&ticket';
$nowTime = time();
$ticketId = isset($params['ticket_id']) ? $params['ticket_id'] :0;
$ticketToken = '1a'.$ticketId.'a'.$nowTime;
$protocol = $params['protocol'];
if($protocol == 1){// 訂單
$orderTicketId = $params['order_ticket_id'];
$ticketToken .= 'a1a'.$orderTicketId;
}else if($protocol == 2){// 訂單分享票
$ticketAchieveId = $params['ticket_achieve_id'];
$ticketToken .= 'a2a'.$ticketAchieveId;
}else if($protocol == 3){// 授權票 invite_status 0 分配座位
$ticketGrantId = $params['ticket_grant_id'];
$ticketToken .= 'a3a'.$ticketGrantId;
}else if($protocol == 4) {// 無座驗票二維碼
$inviteUserRelId = $params['invite_user_rel_id'];
$ticketToken .= 'a4a' . $inviteUserRelId;
}else if($protocol == 5){// 授權票 2不用驗證入場
$ticketGrantId = $params['ticket_grant_id'];
$ticketToken .= 'a5a'.$ticketGrantId;
}
$ticketStrMd5 = md5($ticketToken.$salt);
$ticketToken = $ticketToken.$ticketStrMd5;
return base64_encode($ticketToken);
}
public static function getTicketByToken($ticketToken){
$salt = 'fxyy$&ticket';
$ticketToken = base64_decode($ticketToken);
$ticketTokenLen = mb_strlen($ticketToken);
$token = substr($ticketToken, $ticketTokenLen - 32);
$ticketStr = substr($ticketToken, 0, $ticketTokenLen - 32);
$tokenServer = md5($ticketStr.$salt);
if($token != $tokenServer){
return [];
}
$ticketArr = explode('a', $ticketStr);
if(empty($ticketArr)){
return [];
}
\Log::info('$ticketArr', ['$ticketArr'=>$ticketArr]);
$version = $ticketArr[0];
if($version == 1){
$ticketId = $ticketArr[1];
$makeTime = $ticketArr[2];
$protocol = $ticketArr[3];
$ret = [
'protocol'=>$protocol,
'ticket_id'=>$ticketId,
'make_time'=>$makeTime
];
if($protocol == 1){
$ret['order_ticket_id'] = $ticketArr[4];
$orderTicket = OrderTicket::getOrderTicketByWhere([
['th_order_ticket.id',$ret['order_ticket_id']]
]);
if(empty($orderTicket)){
return [];
}
return $ret;
}else if($protocol == 2){
$ticketAchieveId = $ticketArr[4];
$ret['ticket_achieve_id'] = $ticketAchieveId;
return $ret;
}else if($protocol == 3){
$ret['ticket_grant_id'] = $ticketArr[4];
return $ret;
}
}
return [];
}