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 - 2017 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\Payolution; |
28
|
|
|
|
29
|
|
|
use Locale; |
30
|
|
|
|
31
|
|
|
/** |
32
|
|
|
* Class for requesting the privacy declaration from payolution |
33
|
|
|
*/ |
34
|
|
|
class PrivacyDeclaration |
35
|
|
|
{ |
36
|
|
|
/** |
37
|
|
|
* URL to payolution privacy declaration API |
38
|
|
|
* |
39
|
|
|
* @var string |
40
|
|
|
*/ |
41
|
|
|
protected $sAcceptanceBaseUrl = 'https://payment.payolution.com/payolution-payment/infoport/dataprivacydeclaration'; |
42
|
|
|
|
43
|
|
|
/** |
44
|
|
|
* Fallback template for the case that payolution server is not reachable or it delivers an unexpected response |
45
|
|
|
* |
46
|
|
|
* @var string |
47
|
|
|
*/ |
48
|
|
|
protected $sFallback = " |
49
|
|
|
<header> |
50
|
|
|
<strong>Ergänzende Hinweise zur Datenschutzerklärung für Kauf auf Rechnung, per Ratenzahlung und direkter SEPA-Lastschrift von Test GmbH (im Folgenden: „wir“)</strong></br> |
51
|
|
|
<span><i>(Stand: 08.05.2018)</i></span> |
52
|
|
|
</header> |
53
|
|
|
<ol> |
54
|
|
|
<li><p>Durch die Auswahl eines Kaufs auf Rechnung, per Ratenzahlung oder direkter SEPA-Lastschrift, stimmen Sie den Datenschutzbestimmungen der payolution GmbH und der Weiterverarbeitung Ihrer persönlichen Daten zu. Diese Bestimmungen sind nachstehend ausschließlich zu Informationszwecken erneut aufgeführt.</p></li> |
55
|
|
|
<li><p>Wenn Sie die Zahlung auf Rechnung, per Ratenzahlung oder direkter SEPA-Lastschrift auswählen, werden Ihre für die Bearbeitung dieser Zahlungsmethode erforderlichen persönlichen Informationen (Vorname, Nachname, Anschrift, E-Mail-Adresse, Telefonnummer, Geburtsdatum, IP-Adresse, Geschlecht) zusammen mit den für die Ausführung der Transaktion erforderlichen Daten (Artikel, Rechnungsbetrag, Zinsen, Ratenzahlungen, Fälligkeitsdatum, Gesamtbetrag, Rechnungsnummer, Steuerbetrag, Währung, Bestelldatum und -uhrzeit) an die payolution GmbH zum Zwecke der Risikoeinschätzung im Rahmen seiner regulatorischen Verpflichten weitergeleitet.</p></li> |
56
|
|
|
<li> |
57
|
|
|
<p>Zur Identitäts- und/oder Solvenzprüfung des Kunden werden Abfragen und Auskunftsersuchen an öffentlich zugängliche Datenbanken und Kreditauskunfteien weitergeleitet. Es können Informationen, und falls erforderlich, Kreditauskünfte auf Grundlage statistischer Methoden bei den folgenden Anbietern abgefragt werden:</p> |
58
|
|
|
<ul> |
59
|
|
|
<li>CRIF GmbH, Diefenbachgasse 35, 11 50 Wien, Österreich</li> |
60
|
|
|
<li>CRIF AG, Hagenholzstrasse 81, 8050 Zürich, Schweiz</li> |
61
|
|
|
<li>CRIF Bürgel GmbH, Radlkoferstraße 2, 81373 München, Deutschland</li> |
62
|
|
|
<li>SCHUFA Holding AG, Kormoranweg 5, 65201 Wiesbaden, Deutschland</li> |
63
|
|
|
<li>KSV1870 Information GmbH, Wagenseilgasse 7, 1120 Wien, Österreich</li> |
64
|
|
|
<li>Creditreform Boniversum GmbH, Hellersbergstr. 11, 41460 Neuss, Deutschland</li> |
65
|
|
|
<li>infoscore Consumer Data GmbH, Rheinstrasse 99, 76532 Baden-Baden, Deutschland</li> |
66
|
|
|
<li>ProfileAddress Direktmarketing GmbH, Altmannsdorfer Strasse 311, 1230 Wien, Österreich</li> |
67
|
|
|
<li>Emailage LTD, 1 Fore Street Ave, London, EC2Y 5EJ, Vereinigtes Königreich</li> |
68
|
|
|
<li>ThreatMetrix, Inc.,160 W Santa Clara St., Suite 1400, San Jose, CA 95113, USA</li> |
69
|
|
|
<li>payolution GmbH, Am Euro Platz 2, 1120 Wien, Österreich</li> |
70
|
|
|
</ul> |
71
|
|
|
<p>Die payolution GmbH wird Ihre Angaben zur Bankverbindung (insbesondere Bankleitzahl und Kontonummer) zum Zwecke der Kontonummernprüfung an die SCHUFA Holding AG übermitteln. Die SCHUFA prüft anhand dieser Daten zunächst, ob die von Ihnen gemachten Angaben zur Bankverbindung plausibel sind. Die SCHUFA überprüft, ob die zur Prüfung verwendeten Daten ggf. in Ihrem Datenbestand gespeichert sind und übermittelt sodann das Ergebnis der Überprüfung an payolution zurück. Ein weiterer Datenaustausch wie die Bekanntgabe von Bonitätsinformationen oder eine Übermittlung abweichender Bankverbindungsdaten sowie Speicherung Ihrer Daten im SCHUFA-Datenbestand finden im Rahmen der Kontonummernprüfung nicht statt. Es wird aus Nachweisgründen allein die Tatsache der Überprüfung der Bankverbindungsdaten bei der SCHUFA gespeichert.</p> |
72
|
|
|
<p>Im Fall von vertragswidrigem Verhalten (z. B. Bestehen unstrittiger Forderungen) ist die payolution GmbH ebenfalls zur Speicherung, Verarbeitung, Verwendung von Daten und deren Übermittlung an die o. g. Kreditauskunfteien berechtigt.</p> |
73
|
|
|
</li> |
74
|
|
|
<li><p>Gemäß den Bestimmungen des Bürgerlichen Gesetzbuches über Finanzierungshilfen zwischen Händlern und Konsumenten sind wir gesetzlich zur Prüfung Ihrer Kreditwürdigkeit verpflichtet.</p></li> |
75
|
|
|
<li><p>Im Falle eines Kaufs auf Rechnung, per Ratenzahlung oder direkter SEPA-Lastschrift, werden wir Daten zu den Einzelheiten des entsprechenden Zahlungsvorgangs (Ihre Personendaten, Kaufpreis, Bedingungen des Zahlungsvorgangs, Beginn der Zahlung) und die Vertragsbedingungen (z. B. vorzeitige Zahlung, Verlängerung der Vertragslaufzeit, erfolgte Zahlungen) an die payolution GmbH übermitteln. Nach Zuweisung der Kaufpreisforderung wird das Bankinstitut, dem die Forderung zugewiesen wurde, die genannte Datenübermittlung vornehmen. Wir und/oder das Bankinstitut sind entsprechend der Zuweisung der Kaufpreisforderung ebenfalls zur Meldung von Daten über vertragswidriges Verhalten (z. B. Beendigung der Zahlungsvereinbarung, Zwangsvollstreckungsmaßnahmen) an die payolution GmbH angewiesen. Gemäß den Datenschutzbestimmungen erfolgen diese Meldungen ausschließlich, wenn diese zur Sicherstellung des rechtmäßigen Interesses der Vertragspartner der payolution GmbH oder der Allgemeinheit erforderlich sind und Ihre rechtmäßigen Interessen dadurch nicht beeinträchtigt werden. Die payolution GmbH wird die Daten speichern, um seinen Vertragspartnern, die Konsumenten Ratenzahlungen oder sonstige Kreditvereinbarungen im gewerblichen Rahmen gewähren, Informationen zur Einschätzung der Kreditwürdigkeit von Kunden zur Verfügung stellen zu können. Mit der payolution GmbH in einem Vertragsverhältnis stehende gewerbliche Inkassounternehmen können Adressinformationen zur Ermittlung von Debitoren zur Verfügung gestellt werden. Die payolution GmbH ist dazu angehalten, seinen Vertragspartnern nur dann Daten zu übermitteln, wenn ein glaubwürdiges und rechtmäßiges Interesse an der Datenübermittlung besteht. Die payolution GmbH ist dazu angehalten, ausschließlich objektive Daten ohne Spezifikation an das entsprechende Bankinstitut zu übermitteln. Informationen über subjektive Werteinschätzungen und persönliches Einkommen sind in den von der payolution GmbH zur Verfügung gestellten Informationen nicht enthalten.</p></li> |
76
|
|
|
<li><p>Sie können Ihre Zustimmung zur Datenverarbeitung zum Zwecke der Auftragsabwicklung jederzeit widerrufen. Die o. g. gesetzlichen Verpflichtungen zur Prüfung Ihrer Kreditwürdigkeit bleiben von solchen Widerrufen unberührt.</p></li> |
77
|
|
|
<li><p>Sie sind uns gegenüber zur Angabe von ausschließlich wahrheitsgemäßen und korrekten Informationen verpflichtet.</p></li> |
78
|
|
|
<li><p>Weitere Informationen über die Verarbeitung Ihrer persönlichen Daten finden Sie in der vollständigen Datenschutzrichtlinie hier: <a href=\"https://www.paysafe.com/legal-and-compliance/privacy-policy/\">https://www.paysafe.com/legal-and-compliance/privacy-policy/</a></p></li> |
79
|
|
|
<li><p>Sie können ebenfalls den Sachbearbeiter für Datenschutz der Paysafe Group unter der folgenden Adresse kontaktieren:</p></li> |
80
|
|
|
</ol> |
81
|
|
|
|
82
|
|
|
<footer> |
83
|
|
|
[email protected]<br /> |
84
|
|
|
payolution GmbH<br /> |
85
|
|
|
Am Euro Platz 2<br /> |
86
|
|
|
1120 Wien<br /> |
87
|
|
|
Registrierungscode – Datenverarbeitung (DVR): 4008655 |
88
|
|
|
</footer> |
89
|
|
|
"; |
90
|
|
|
|
91
|
|
|
/** |
92
|
|
|
* PAYONE shop helper |
93
|
|
|
* |
94
|
|
|
* @var \Payone\Core\Helper\Shop |
95
|
|
|
*/ |
96
|
|
|
protected $shopHelper; |
97
|
|
|
|
98
|
|
|
/** |
99
|
|
|
* Magento curl object |
100
|
|
|
* |
101
|
|
|
* @var \Magento\Framework\HTTP\Client\Curl |
|
|
|
|
102
|
|
|
*/ |
103
|
|
|
protected $curl; |
104
|
|
|
|
105
|
|
|
/** |
106
|
|
|
* @var \Magento\Framework\App\CacheInterface |
|
|
|
|
107
|
|
|
*/ |
108
|
|
|
protected $cache; |
109
|
|
|
|
110
|
|
|
/** |
111
|
|
|
* Constructor |
112
|
|
|
* |
113
|
|
|
* @param \Payone\Core\Helper\Shop $shopHelper |
114
|
|
|
* @param \Magento\Framework\HTTP\Client\Curl $curl |
115
|
|
|
* @param \Magento\Framework\App\CacheInterface $cache |
116
|
|
|
*/ |
117
|
|
|
public function __construct( |
118
|
|
|
\Payone\Core\Helper\Shop $shopHelper, |
119
|
|
|
\Magento\Framework\HTTP\Client\Curl $curl, |
120
|
|
|
\Magento\Framework\App\CacheInterface $cache |
121
|
|
|
) { |
122
|
|
|
$this->shopHelper = $shopHelper; |
123
|
|
|
$this->curl = $curl; |
124
|
|
|
$this->curl->setOption(CURLOPT_SSL_VERIFYPEER, false); |
125
|
|
|
$this->curl->setOption(CURLOPT_SSL_VERIFYHOST, false); |
126
|
|
|
$this->cache = $cache; |
127
|
|
|
} |
128
|
|
|
|
129
|
|
|
/** |
130
|
|
|
* Request acceptance text from payolution |
131
|
|
|
* |
132
|
|
|
* @param string $sCompany |
133
|
|
|
* @return string|false |
134
|
|
|
*/ |
135
|
|
|
protected function getAcceptanceTextFromPayolution($sCompany) |
136
|
|
|
{ |
137
|
|
|
$sUrl = $this->sAcceptanceBaseUrl.'?mId='.base64_encode($sCompany).'&lang='.$this->shopHelper->getLocale(); |
138
|
|
|
$cacheKey = 'PAYONE_ACCEPTANCE_TEXT_' . sha1($sUrl); |
139
|
|
|
$cache = $this->cache->load($cacheKey); |
140
|
|
|
|
141
|
|
|
if ($cache !== false) { |
142
|
|
|
return $cache; |
143
|
|
|
} |
144
|
|
|
|
145
|
|
|
$this->curl->get($sUrl); |
146
|
|
|
$sContent = $this->curl->getBody(); |
147
|
|
|
$sPage = false; |
148
|
|
|
if (!empty($sContent) && stripos($sContent, 'payolution') !== false && stripos($sContent, '<header>') !== false) { |
149
|
|
|
//Parse content from HTML-body-tag from the given page |
150
|
|
|
$sRegex = "#<\s*?body\b[^>]*>(.*?)</body\b[^>]*>#s"; |
151
|
|
|
preg_match($sRegex, $sContent, $aMatches); |
152
|
|
|
if (is_array($aMatches) && count($aMatches) > 1) { |
153
|
|
|
$sPage = $aMatches[1]; |
154
|
|
|
//remove everything before the <header> tag ( a window.close link which wouldn't work in the given context ) |
155
|
|
|
$sPage = substr($sPage, stripos($sPage, '<header>')); |
156
|
|
|
} |
157
|
|
|
$this->cache->save($sPage, $cacheKey, [], 86400); |
158
|
|
|
} |
159
|
|
|
return $sPage; |
160
|
|
|
} |
161
|
|
|
|
162
|
|
|
/** |
163
|
|
|
* Get acceptance text for the given payolution payment method |
164
|
|
|
* |
165
|
|
|
* @param string $sPaymentCode |
166
|
|
|
* @return string|false |
167
|
|
|
*/ |
168
|
|
|
public function getPayolutionAcceptanceText($sPaymentCode) |
169
|
|
|
{ |
170
|
|
|
if ((bool)$this->shopHelper->getConfigParam('active', $sPaymentCode, 'payment') === false) { |
171
|
|
|
return false; |
172
|
|
|
} |
173
|
|
|
|
174
|
|
|
$sCompany = $this->shopHelper->getConfigParam('company', $sPaymentCode, 'payone_payment'); |
175
|
|
|
try { |
176
|
|
|
$sPage = $this->getAcceptanceTextFromPayolution($sCompany); |
177
|
|
|
} catch (\Exception $exception) { |
178
|
|
|
$sPage = false; |
179
|
|
|
} |
180
|
|
|
if (!$sPage) { |
181
|
|
|
$sPage = $this->getFallbackText($sCompany); |
182
|
|
|
} |
183
|
|
|
|
184
|
|
|
if (!$this->isUtf8($sPage)) { |
185
|
|
|
$sPage = utf8_encode($sPage); |
186
|
|
|
} |
187
|
|
|
|
188
|
|
|
return $sPage; |
189
|
|
|
} |
190
|
|
|
|
191
|
|
|
/** |
192
|
|
|
* Get fallback template |
193
|
|
|
* |
194
|
|
|
* @param string $sCompany |
195
|
|
|
* @return mixed |
196
|
|
|
*/ |
197
|
|
|
protected function getFallbackText($sCompany) |
198
|
|
|
{ |
199
|
|
|
return str_replace('**company**', $sCompany, $this->sFallback); |
200
|
|
|
} |
201
|
|
|
|
202
|
|
|
/** |
203
|
|
|
* Determine if the string is utf8 encoded |
204
|
|
|
* |
205
|
|
|
* @param string $sString |
206
|
|
|
* @return bool |
207
|
|
|
*/ |
208
|
|
|
protected function isUtf8($sString) |
209
|
|
|
{ |
210
|
|
|
if (preg_match('!!u', $sString)) { // this is utf-8 |
211
|
|
|
return true; |
212
|
|
|
} |
213
|
|
|
return false; // definitely not utf-8 |
214
|
|
|
} |
215
|
|
|
} |
216
|
|
|
|
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:For further information see https://scrutinizer-ci.com/docs/tools/php/php-scrutinizer/#list-dependency-paths