Ejemplo n.º 1
0
 /**
  * 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);
 }
Ejemplo n.º 2
0
 /**
  * @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];
 }
Ejemplo n.º 3
0
 /**
  * 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;
 }
Ejemplo n.º 4
0
 /**
  * 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();
 }
Ejemplo n.º 5
0
 /**
  * Conveience method to get base url for requests
  * @return string
  */
 protected function getBaseUrl()
 {
     return $this->config->getBaseUrl();
 }
Ejemplo n.º 6
0
 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");
 }