Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
8 changes: 5 additions & 3 deletions composer.json
Original file line number Diff line number Diff line change
Expand Up @@ -25,14 +25,16 @@
"ext-curl": "*",
"ext-mbstring": "*",
"ext-bcmath": "*",
"ext-gettext": "*",
"ingenico/ogone-sdk-php": "^3.1.0",
"monolog/monolog": "*",
"league/iso3166": "*",
"graylog2/gelf-php": "~1.5",
"symfony/translation": "~4.2",
"mobiledetect/mobiledetectlib": "~2.8.0",
"viison/address-splitter": "~0.3.4"
},
"require-dev": {
"phpunit/phpunit": "^9.5",
"phpunit/php-code-coverage": "^9.2"
},
"autoload": {
"psr-4": {
"IngenicoClient\\": "src/"
Expand Down
473 changes: 473 additions & 0 deletions error-codes.json

Large diffs are not rendered by default.

11 changes: 7 additions & 4 deletions phpunit.xml.dist
Original file line number Diff line number Diff line change
Expand Up @@ -5,14 +5,17 @@
xsi:noNamespaceSchemaLocation="http://schema.phpunit.de/6.5/phpunit.xsd"
backupGlobals="false"
colors="true"
bootstrap="vendor/autoload.php"
bootstrap="tests/bootstrap.php"
>
<php>
<ini name="error_reporting" value="-1"/>
<env name="SHELL_VERBOSITY" value="-1"/>

<env name="PSPID" value="xxxxx"/>
<!-- define your env variables for the test env here -->
<env name="PSPID" value="xxxxx"/>
<env name="SIGNATURE" value="xxxxx"/>
<env name="USER" value="xxxxx"/>
<env name="PASSWORD" value="xxxxx"/>
</php>

<testsuites>
Expand All @@ -27,7 +30,7 @@
</whitelist>
</filter>

<listeners>
<!-- <listeners>
<listener class="Symfony\Bridge\PhpUnit\SymfonyTestsListener"/>
</listeners>
</listeners> -->
</phpunit>
30 changes: 13 additions & 17 deletions src/Client.php
Original file line number Diff line number Diff line change
Expand Up @@ -2,22 +2,20 @@

namespace IngenicoClient;

use Psr\Log\LoggerInterface;

/**
* Class Client.
*/
class Client
{
/** @var LoggerInterface|null */
protected $logger;
/** @var Logger */
private $logger;

/**
* Request constructor.
*
* @param LoggerInterface $logger
* @param Logger $logger
*/
public function __construct(LoggerInterface $logger = null)
public function __construct(Logger $logger)
{
$this->logger = $logger;
}
Expand Down Expand Up @@ -61,17 +59,15 @@ public function post(array $params, $url, $shaSign)

curl_close($ch);

if ($this->logger) {
$this->logger->debug(sprintf('Post request to: %s', $url), [
'url' => $url,
'shasign' => $shaSign,
'params' => $body,
'response' => $response,
'http_code' => $info['http_code'],
'error' => $error,
'errno' => $errno
]);
}
$this->logger->debug(sprintf('Post request to: %s', $url), [
'url' => $url,
'shasign' => $shaSign,
'params' => $body,
'response' => $response,
'http_code' => $info['http_code'],
'error' => $error,
'errno' => $errno
]);

return $response;
}
Expand Down
17 changes: 3 additions & 14 deletions src/DirectLink.php
Original file line number Diff line number Diff line change
Expand Up @@ -2,7 +2,6 @@

namespace IngenicoClient;

use Psr\Log\LoggerInterface;
use Ogone\DirectLink\DirectLinkQueryRequest;
use Ogone\DirectLink\DirectLinkQueryResponse;
use Ogone\DirectLink\DirectLinkMaintenanceRequest;
Expand All @@ -19,32 +18,22 @@ class DirectLink
const ITEM_PRICE = 'itemprice';
const ITEM_VATCODE = 'itemvatcode';

/** @var LoggerInterface|null */
/** @var Logger */
private $logger;

/**
* Set Logger.
*
* @param LoggerInterface|null $logger
* @param Logger $logger
* @return $this
*/
public function setLogger(LoggerInterface $logger = null)
public function setLogger(Logger $logger)
{
$this->logger = $logger;

return $this;
}

/**
* Get Logger.
*
* @return LoggerInterface|null
*/
public function getLogger()
{
return $this->logger;
}

/**
* Create Refund Request.
*
Expand Down
2 changes: 1 addition & 1 deletion src/DirectLinkPayment.php
Original file line number Diff line number Diff line change
Expand Up @@ -26,7 +26,7 @@ public function executePayment($orderId, Alias $alias)

$dlPaymentRequest = $this->getDirectLinkPaymentRequest($order, $alias);

$client = new Client($this->getLogger());
$client = new Client($this->logger);
$response = $client->post(
$dlPaymentRequest->toArray(),
$dlPaymentRequest->getOgoneUri(),
Expand Down
656 changes: 122 additions & 534 deletions src/IngenicoCoreLibrary.php

Large diffs are not rendered by default.

13 changes: 3 additions & 10 deletions src/IngenicoCoreLibraryInterface.php
Original file line number Diff line number Diff line change
Expand Up @@ -2,8 +2,8 @@

namespace IngenicoClient;

use IngenicoClient\Logger\AdapterInterface;
use Ogone\Ecommerce\EcommercePaymentRequest;
use Psr\Log\LoggerInterface;

interface IngenicoCoreLibraryInterface
{
Expand Down Expand Up @@ -666,16 +666,9 @@ public function cronHandler();
/**
* Set Logger.
*
* @param LoggerInterface $logger
* @param Logger $logger
*
* @return $this
*/
public function setLogger(LoggerInterface $logger = null);

/**
* Gets Logger.
*
* @return LoggerInterface|null
*/
public function getLogger();
public function setLogger($logger);
}
130 changes: 130 additions & 0 deletions src/Logger.php
Original file line number Diff line number Diff line change
@@ -0,0 +1,130 @@
<?php

namespace IngenicoClient;

use IngenicoClient\Logger\AdapterInterface;

class Logger
{
const EMERGENCY = 'emergency';
const ALERT = 'alert';
const CRITICAL = 'critical';
const ERROR = 'error';
const WARNING = 'warning';
const NOTICE = 'notice';
const INFO = 'info';
const DEBUG = 'debug';

/**
* @var AdapterInterface
*/
private $adapter;

/**
* @param AdapterInterface $adapter
*/
public function __construct(AdapterInterface $adapter)
{
$this->adapter = $adapter;
}

/**
* Logs with emergency level.
*
* @param string $message
* @param array $context
*/
public function emergency($message, array $context = [])
{
$this->log(self::EMERGENCY, $message, $context);
}

/**
* Logs with error level.
*
* @param string $message
* @param array $context
*/
public function alert($message, array $context = [])
{
$this->log(self::ALERT, $message, $context);
}

/**
* Logs with critical level.
*
* @param string $message
* @param array $context
*/
public function critical($message, array $context = [])
{
$this->log(self::CRITICAL, $message, $context);
}

/**
* Logs with error level.
*
* @param string $message
* @param array $context
*/
public function error($message, array $context = [])
{
$this->log(self::ERROR, $message, $context);
}

/**
* Logs with warning level.
*
* @param string $message
* @param array $context
*/
public function warning($message, array $context = [])
{
$this->log(self::WARNING, $message, $context);
}

/**
* Logs with notice level.
*
* @param string $message
* @param array $context
*/
public function notice($message, array $context = [])
{
$this->log(self::NOTICE, $message, $context);
}

/**
* Logs with info level.
*
* @param string $message
* @param array $context
*/
public function info($message, array $context = [])
{
$this->log(self::INFO, $message, $context);
}

/**
* Logs with debug level.
*
* @param string $message
* @param array $context
*/
public function debug($message, array $context = [])
{
$this->log(self::DEBUG, $message, $context);
}

/**
* Logs with an arbitrary level.
*
* @param mixed $level
* @param string $message
* @param array $context
*/
public function log($level, $message, array $context = [])
{
$this->adapter->log($level, $message, $context);
}
}
15 changes: 15 additions & 0 deletions src/Logger/AdapterInterface.php
Original file line number Diff line number Diff line change
@@ -0,0 +1,15 @@
<?php

namespace IngenicoClient\Logger;

interface AdapterInterface
{
/**
* Logs with an arbitrary level.
*
* @param mixed $level
* @param string $message
* @param array $context
*/
public function log($level, $message, array $context = []);
}
44 changes: 44 additions & 0 deletions src/Logger/FileAdapter.php
Original file line number Diff line number Diff line change
@@ -0,0 +1,44 @@
<?php

namespace IngenicoClient\Logger;

class FileAdapter implements AdapterInterface
{
private $file;

/**
* Constructor.
*
* @param array $options
*/
public function __construct(array $options)
{
if (isset($options['file'])) {
$this->file = $options['file'];
} else {
$this->file = sys_get_temp_dir() . '/ingenico_core.log';
}
}

/**
* Logs with an arbitrary level.
*
* @param mixed $level
* @param string $message
* @param array $context
*/
public function log($level, $message, array $context = [])
{
if ($this->file) {
$message = sprintf(
'[%s] %s %s %s',
date('Y-m-d H:i:s'),
$level,
$message,
count($context) > 0 ? var_export($context, true) : ''
);

file_put_contents($this->file, $message . "\n", FILE_APPEND);
}
}
}
Loading