1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
<?php
/**
* This file is part of the Klarna KP module
*
* (c) Klarna Bank AB (publ)
*
* For the full copyright and license information, please view the NOTICE
* and LICENSE files that were distributed with this source code.
*/
namespace Klarna\Kp\Gateway\Validator;
use Magento\Framework\App\Config\ScopeConfigInterface;
use Magento\Payment\Gateway\Validator\AbstractValidator;
use Magento\Payment\Gateway\Validator\ResultInterface;
use Magento\Payment\Gateway\Validator\ResultInterfaceFactory;
use Magento\Store\Api\Data\StoreInterface;
use Magento\Store\Model\ScopeInterface;
use Magento\Store\Model\StoreManagerInterface;
/**
* Class SessionValidator
*
* @SuppressWarnings(PHPMD.CouplingBetweenObjects)
*/
class SessionValidator extends AbstractValidator
{
/**
* @var StoreInterface
*/
private $store;
/**
* @var ScopeConfigInterface
*/
private $config;
/**
* Constructor
*
* @param ResultInterfaceFactory $resultFactory
* @param StoreManagerInterface $storeManager
* @param ScopeConfigInterface $config
*/
public function __construct(
ResultInterfaceFactory $resultFactory,
StoreManagerInterface $storeManager,
ScopeConfigInterface $config
) {
parent::__construct($resultFactory);
$this->store = $storeManager->getStore();
$this->config = $config;
}
/**
* Validate
*
* @param bool $isValid
* @param array $fails
* @return ResultInterface
* @SuppressWarnings(PMD.UnusedFormalParameter)
*/
public function validate(array $validationSubject)
{
$merchant_id = $this->config->getValue('klarna/api/merchant_id', ScopeInterface::SCOPE_STORES, $this->store);
$secret = $this->config->getValue('klarna/api/shared_secret', ScopeInterface::SCOPE_STORES, $this->store);
if (empty($merchant_id) || empty($secret)) {
return $this->createResult(false, [__('Klarna API Credentials are required')]);
}
return $this->createResult(true);
}
}