/** * @param Ip $customerIp * @param TokenExpiration $tokenExpiration * @param TokenChecksum $tokenChecksum */ public function __construct(Ip $customerIp, TokenExpiration $tokenExpiration, TokenChecksum $tokenChecksum) { $timeAsHexadecimal = $tokenExpiration->asHexadecimalTimestamp(); $firstTimeChars = substr($timeAsHexadecimal, 0, -1); $lastTimeChar = substr($timeAsHexadecimal, -1); $this->token = $lastTimeChar . $customerIp->getVersion() . $customerIp->tokenify() . $tokenChecksum . $firstTimeChars; }