/**
  * @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;
 }