public function createSecurityToken(Customweb_Payment_ExternalCheckout_IContext $context) { if (!$context instanceof Customweb_SaferpayCw_Model_ExternalCheckoutContext) { throw new Customweb_Core_Exception_CastException('Customweb_SaferpayCw_Model_ExternalCheckoutContext'); } $token = Customweb_Core_Util_Rand::getUuid(); if ($context->getSecurityToken() == null) { $context->setSecurityToken($token); $context->setSecurityTokenExpiryDate(Customweb_Core_DateTime::_()->addHours(4)->format("Y-m-d H:i:s")); $context->save(); } return $context->getSecurityToken(); }
public function isSecurityTokenValid(Customweb_Payment_ExternalCheckout_IContext $context, $token) { if (!$context instanceof Customweb_Payment_ExternalCheckout_AbstractContext) { throw new Customweb_Core_Exception_CastException('Customweb_Payment_ExternalCheckout_AbstractContext'); } if ($context->getSecurityToken() !== null && $context->getSecurityToken() === $token) { $expiryDate = $context->getSecurityTokenExpiryDate(); if ($expiryDate instanceof DateTime) { $expiryDate = new Customweb_Core_DateTime($expiryDate); if ($expiryDate->getTimestamp() > time()) { return true; } } } return false; }