Issues (1092)

Model/Api/Request/Getfile.php (2 issues)

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\Api\Request;
28
29
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...
30
use Payone\Core\Model\Methods\PayoneMethod;
31
32
/**
33
 * Class for the PAYONE Server API request "getfile"
34
 */
35
class Getfile extends Base
36
{
37
    /**
38
     * Send request "getfile" to PAYONE server API
39
     *
40
     * @param  Order        $oOrder
41
     * @param  PayoneMethod $oPayment
42
     * @return string
43
     */
44
    public function sendRequest(Order $oOrder, PayoneMethod $oPayment)
45
    {
46
        $sReturn = false;
47
        $sStatus = 'ERROR';
48
        $aResponse = [];
49
50
        $this->addParameter('request', 'getfile'); // Request method
51
        $this->addParameter('file_reference', $oOrder->getPayoneMandateId());
52
        $this->addParameter('file_type', 'SEPA_MANDATE');
53
        $this->addParameter('file_format', 'PDF');
54
55
        $this->addParameter('mode', $oOrder->getPayoneMode());
56
        if ($oOrder->getPayoneMode() == 'test') {
57
            $this->removeParameter('integrator_name');
58
            $this->removeParameter('integrator_version');
59
            $this->removeParameter('solution_name');
60
            $this->removeParameter('solution_version');
61
        }
62
63
        if ($oPayment->hasCustomConfig()) {// if payment type doesnt use the global settings
64
            $this->addCustomParameters($oPayment); // add custom connection settings
65
        }
66
67
        $aOptions = [
68
            'http' => [
69
                'header'  => "Content-type: application/x-www-form-urlencoded\r\n",
70
                'method'  => 'POST',
71
                'content' => http_build_query($this->aParameters),
72
            ],
73
        ];
74
        $oContext = stream_context_create($aOptions);
75
        $sMandate = file_get_contents($this->sApiUrl, false, $oContext);
76
        if ($sMandate !== false) {
77
            $sReturn = $sMandate;
78
            $sStatus = 'SUCCESS';
79
            $aResponse['file'] = $oOrder->getPayoneMandateId().'.pdf';
80
        }
81
82
        $this->apiLog->addApiLogEntry($this->getParameters(), $aResponse, $sStatus, $this->getOrderId()); // log request to db
83
        return $sReturn;
0 ignored issues
show
Bug Best Practice introduced by
The expression return $sReturn could also return false which is incompatible with the documented return type string. Did you maybe forget to handle an error condition?

If the returned type also contains false, it is an indicator that maybe an error condition leading to the specific return statement remains unhandled.

Loading history...
84
    }
85
}
86