initializeOpenPayU($currency['iso_code'], $version); $cacheKey = OpenPayU_Configuration::getMerchantPosId() . '_' . $payTypeStringValue; $cachedValue = self::get($cacheKey); if ($noCache !== true && $cachedValue !== null && $cachedValue['valid_to'] > $currentTime) { $payTypeEnabled = $cachedValue['enabled']; } else { $payMethods = OpenPayU_Retrieve::payMethods(); foreach ($payMethods->getResponse()->payByLinks as $payType) { if ($payType->value === $payTypeStringValue) { $payTypeEnabled = $payType->status === "ENABLED"; } } $validityTime = $currentTime; $validityTime->add(new DateInterval('PT15M')); // paymethods are cached for 15m $toBeCached = array('enabled' => $payTypeEnabled, 'valid_to' => $validityTime); self::set($cacheKey, $toBeCached); } return $payTypeEnabled; } private static function get($key) { $cache = Configuration::get(self::PAYU_PAY_METHODS_CACHE_CONFIG_PREFIX . $key); return $cache === false ? null : unserialize($cache); } private static function set($key, $value) { return Configuration::updateValue(self::PAYU_PAY_METHODS_CACHE_CONFIG_PREFIX . $key, serialize($value)); } }