/** * Calculate the HMAC * @return string; */ public function calculateMac() { $calculationString = ''; foreach ($this->calculationArray as $value) { $calculationString .= preg_replace('/\\s/', '', $value); } return self::hmac($this->config->getMerchantPassword(), $calculationString); }
/** * @param Config $config * @param $logLocation * @return LoggerInterface */ public static function getLogger(Config $config, $logLocation) { $log = new Blank(); if (array_key_exists($logLocation, self::$loggers)) { if ($config->getLogEnabled()) { $log = new Logger('payco'); $log->pushHandler(new StreamHandler($logLocation, $config->getLogLevel())); } } self::$loggers[$logLocation] = $log; return self::$loggers[$logLocation]; }
/** * T * @see AbstractRequest::getPreSerializerData * @return array */ public function getSerializerData() { $data = $this->getPreSerializerData(); $data['merchantID'] = $this->config->getMerchantID(); $data['storeID'] = $this->config->getStoreID(); if ($this->config->isSendRequestsWithSalt()) { /** * Set a salt with varying degrees of cryptographic entirety * depending on php environment this code is ran on */ $data['salt'] = $this->getSalt(); } if ($this->macValue) { /** * Set the mac on the serializer */ $data['mac'] = $this->macValue; } return $data; }
/** * This test shopuld return an API error * @expectedException Upg\Library\Api\Exception\ApiError */ public function testApiCallThatReturnsAnAPIError() { if (is_null($this->config)) { $this->markTestSkipped('Config is not set, please set up the required environment variables'); return false; } $configData = $this->config->getConfigData(); $configData['storeID'] = "WRONGSTOREID"; $config = new Config($configData); $request = new CreateTransactionRequest($config); //unique ID for the tests $orderId = hash('crc32b', microtime()); $userId = "GUEST:" . hash('md5', microtime()); $request->setOrderID($orderId)->setUserID($userId)->setIntegrationType(CreateTransactionRequest::INTEGRATION_TYPE_API)->setAutoCapture(true)->setContext(CreateTransactionRequest::CONTEXT_OFFLINE)->setMerchantReference("TEST")->setUserType(CreateTransactionRequest::USER_TYPE_PRIVATE)->setUserRiskClass(RiskClass::RISK_CLASS_DEFAULT)->setUserData($this->getUser())->setBillingAddress($this->getAddress())->setAmount($this->getAmount())->addBasketItem($this->getBasketItem())->setLocale(Codes::LOCALE_EN); $apiEndPoint = new CreateTransaction($config, $request); $apiEndPoint->sendRequest(); }
/** * Conveience method to get base url for requests * @return string */ protected function getBaseUrl() { return $this->config->getBaseUrl(); }
public function testSetData() { /** * ['merchantID'] string This is the merchantID assigned by PayCo. * ['storeID'] string This is the store ID of a merchant. * ['logEnabled'] string Should logging be enabled * ['logLevel'] int Log level * ['logLocationMain'] string Main log Location * ['logLocationRequest'] string Log location for API requests * ['logLocationMNS'] string Log for MNS asynchronous callbacks * ['logLocationCallbacks'] string Log location for synchronous callbacks * ['defaultRiskClass'] string Default risk class */ $config = array('merchantID' => $this->faker->randomNumber(8), 'storeID' => $this->faker->word, 'logEnabled' => $this->faker->boolean, 'logLevel' => Config::LOG_LEVEL_ERROR, 'logLocationMain' => $this->faker->word, 'logLocationRequest' => $this->faker->word, 'logLocationMNS' => $this->faker->word, 'logLocationCallbacks' => $this->faker->word, 'defaultRiskClass' => 2, 'defaultLocale' => strtoupper($this->faker->languageCode)); $configObject = new Config(); $configObject->setData($config); $this->assertEquals($config['merchantID'], $configObject->getMerchantID(), "Merchant ID was set incorrectly"); $this->assertEquals($config['storeID'], $configObject->getStoreID(), "Store ID was set incorrectly"); $this->assertEquals($config['logEnabled'], $configObject->getLogEnabled(), "Log Enabled was set incorrectly"); $this->assertEquals($config['logLevel'], $configObject->getLogLevel(), "Log Level was set incorrectly"); $this->assertEquals($config['logLocationMain'], $configObject->getLogLocationMain(), "Main Log location was set incorrectly"); $this->assertEquals($config['logLocationRequest'], $configObject->getLogLocationRequest(), "Request Log location was set incorrectly"); $this->assertEquals($config['logLocationMNS'], $configObject->getLogLocationMNS(), "MNS Log location was set incorrectly"); $this->assertEquals($config['logLocationCallbacks'], $configObject->getLogLocationCallbacks(), "Callback Log location was set incorrectly"); $this->assertEquals($config['defaultRiskClass'], $configObject->getDefaultRiskClass(), "Default Risk was set incorrectly"); $this->assertEquals($config['defaultLocale'], $configObject->getDefaultLocale(), "Default was set incorrectly"); }