Code

< 40 %
40-60 %
> 60 %
1
<?php
2
3
namespace PTS\Paysera;
4
5
use PTS\Paysera\Action\AuthorizeAction;
6
use PTS\Paysera\Action\CancelAction;
7
use PTS\Paysera\Action\ConvertPaymentAction;
8
use PTS\Paysera\Action\CaptureAction;
9
use PTS\Paysera\Action\NotifyAction;
10
use PTS\Paysera\Action\RefundAction;
11
use PTS\Paysera\Action\StatusAction;
12
use Payum\Core\Bridge\Spl\ArrayObject;
13
use Payum\Core\GatewayFactory;
14
15
class PayseraGatewayFactory extends GatewayFactory
16
{
17
    /**
18
     * {@inheritDoc}
19
     */
20 8
    protected function populateConfig(ArrayObject $config)
21
    {
22 8
        $config->defaults([
23 8
            'payum.factory_name' => 'paysera',
24 8
            'payum.factory_title' => 'paysera',
25 8
            'payum.action.capture' => new CaptureAction(),
26 8
            'payum.action.notify' => new NotifyAction(),
27 8
            'payum.action.status' => new StatusAction(),
28 8
            'payum.action.convert_payment' => new ConvertPaymentAction(),
29
        ]);
30
31 8
        if (false == $config['payum.api']) {
32 7
            $config['payum.default_options'] = array(
33
                'projectid' => '',
34
                'sign_password' => '',
35
                'test' => true,
36
            );
37 7
            $config->defaults($config['payum.default_options']);
38 7
            $config['payum.required_options'] = [
39
                'projectid', 'sign_password'
40
            ];
41
42
            $config['payum.api'] = function (ArrayObject $config) {
43 2
                $config->validateNotEmpty($config['payum.required_options']);
44
45 1
                return new Api((array)$config);
46
            };
47
        }
48 8
    }
49
}
50