Issues (1092)

Model/Methods/Creditcard.php (2 issues)

Labels
Severity
1
<?php
2
3
/**
4
 * PAYONE Magento 2 Connector is free software: you can redistribute it and/or modify
5
 * it under the terms of the GNU Lesser General Public License as published by
6
 * the Free Software Foundation, either version 3 of the License, or
7
 * (at your option) any later version.
8
 *
9
 * PAYONE Magento 2 Connector is distributed in the hope that it will be useful,
10
 * but WITHOUT ANY WARRANTY; without even the implied warranty of
11
 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
12
 * GNU Lesser General Public License for more details.
13
 *
14
 * You should have received a copy of the GNU Lesser General Public License
15
 * along with PAYONE Magento 2 Connector. If not, see <http://www.gnu.org/licenses/>.
16
 *
17
 * PHP version 5
18
 *
19
 * @category  Payone
20
 * @package   Payone_Magento2_Plugin
21
 * @author    FATCHIP GmbH <[email protected]>
22
 * @copyright 2003 - 2016 Payone GmbH
23
 * @license   <http://www.gnu.org/licenses/> GNU Lesser General Public License
24
 * @link      http://www.payone.de
25
 */
26
27
namespace Payone\Core\Model\Methods;
28
29
use Payone\Core\Model\PayoneConfig;
30
use Magento\Sales\Model\Order;
0 ignored issues
show
The type Magento\Sales\Model\Order was not found. Maybe you did not declare it correctly or list all dependencies?

The issue could also be caused by a filter entry in the build configuration. If the path has been excluded in your configuration, e.g. excluded_paths: ["lib/*"], you can move it to the dependency path list as follows:

filter:
    dependency_paths: ["lib/*"]

For further information see https://scrutinizer-ci.com/docs/tools/php/php-scrutinizer/#list-dependency-paths

Loading history...
31
use Magento\Framework\DataObject;
0 ignored issues
show
The type Magento\Framework\DataObject was not found. Maybe you did not declare it correctly or list all dependencies?

The issue could also be caused by a filter entry in the build configuration. If the path has been excluded in your configuration, e.g. excluded_paths: ["lib/*"], you can move it to the dependency path list as follows:

filter:
    dependency_paths: ["lib/*"]

For further information see https://scrutinizer-ci.com/docs/tools/php/php-scrutinizer/#list-dependency-paths

Loading history...
32
33
/**
34
 * Model for creditcard payment method
35
 */
36
class Creditcard extends PayoneMethod
37
{
38
    /**
39
     * Payment method code
40
     *
41
     * @var string
42
     */
43
    protected $_code = PayoneConfig::METHOD_CREDITCARD;
44
45
    /**
46
     * Info instructions block path
47
     *
48
     * @var string
49
     */
50
    protected $_infoBlockType = 'Payone\Core\Block\Info\Creditcard';
51
52
    /**
53
     * Clearingtype for PAYONE authorization request
54
     *
55
     * @var string
56
     */
57
    protected $sClearingtype = 'cc';
58
59
    /**
60
     * Determines if the redirect-parameters have to be added
61
     * to the authorization-request
62
     *
63
     * @var bool
64
     */
65
    protected $blNeedsRedirectUrls = true;
66
67
    /**
68
     * Keys that need to be assigned to the additionalinformation fields
69
     *
70
     * @var array
71
     */
72
    protected $aAssignKeys = [
73
        'pseudocardpan',
74
        'truncatedcardpan',
75
        'cardtype',
76
        'cardexpiredate',
77
        'selectedData',
78
        'cardholder',
79
80
    ];
81
82
    /**
83
     * Return parameters specific to this payment type
84
     *
85
     * @param  Order $oOrder
86
     * @return array
87
     */
88
    public function getPaymentSpecificParameters(Order $oOrder)
89
    {
90
        $aReturn = ['pseudocardpan' => $this->getInfoInstance()->getAdditionalInformation('pseudocardpan')];
91
        $sSelectedData = $this->getInfoInstance()->getAdditionalInformation('selectedData');
92
        if (!empty($sSelectedData) && $sSelectedData != 'new') {
93
            $aReturn['pseudocardpan'] = $this->getInfoInstance()->getAdditionalInformation('selectedData');
94
        }
95
        $aReturn['cardholder'] = $this->getInfoInstance()->getAdditionalInformation('cardholder');
96
        return $aReturn;
97
    }
98
99
    /**
100
     * Add the checkout-form-data to the checkout session
101
     *
102
     * @param  DataObject $data
103
     * @return $this
104
     */
105
    public function assignData(DataObject $data)
106
    {
107
        parent::assignData($data);
108
109
        $oInfoInstance = $this->getInfoInstance();
110
        foreach ($this->aAssignKeys as $sKey) {
111
            $sData = $this->toolkitHelper->getAdditionalDataEntry($data, $sKey);
112
            if ($sData) {
113
                $oInfoInstance->setAdditionalInformation($sKey, $sData);
114
            }
115
        }
116
117
        $aAddData = $data->getAdditionalData();
118
        if (isset($aAddData['saveData']) && $aAddData['saveData'] == '1') {
119
            $this->handlePaymentDataStorage($data);
120
        }
121
122
        return $this;
123
    }
124
125
    /**
126
     * Add value to the payment storage data array
127
     *
128
     * @param  array  $aDest
129
     * @param  array  $aSource
130
     * @param  string $sDestField
131
     * @param  string $sSourceField
132
     * @return void
133
     */
134
    protected function addValueToArray(&$aDest, $aSource, $sDestField, $sSourceField)
135
    {
136
        if (isset($aSource[$sSourceField])) {
137
            $aDest[$sDestField] = $aSource[$sSourceField];
138
        }
139
    }
140
141
    /**
142
     * Convert DataObject to needed array format
143
     *
144
     * @param  DataObject $data
145
     * @return array
146
     */
147
    protected function getPaymentStorageData(DataObject $data)
148
    {
149
        $aReturn = parent::getPaymentStorageData($data);
150
        $aAdditionalData = $data->getAdditionalData();
151
152
        if (isset($aAdditionalData['pseudocardpan']) && isset($aAdditionalData['truncatedcardpan'])) {
153
            $this->addValueToArray($aReturn, $aAdditionalData, 'cardpan', 'pseudocardpan');
154
            $this->addValueToArray($aReturn, $aAdditionalData, 'masked', 'truncatedcardpan');
155
            $this->addValueToArray($aReturn, $aAdditionalData, 'cardholder', 'cardholder');
156
            $this->addValueToArray($aReturn, $aAdditionalData, 'cardtype', 'cardtype');
157
            $this->addValueToArray($aReturn, $aAdditionalData, 'cardexpiredate', 'cardexpiredate');
158
        }
159
        return $aReturn;
160
    }
161
}
162