From 4a982c72c73812b7974d1b9d7ee5735f29958ab7 Mon Sep 17 00:00:00 2001 From: kristianhempel Date: Tue, 19 Jun 2018 14:51:25 +0200 Subject: [PATCH] add 1.0.0.0 (ionCube for PHP 5.6 - 7.0) --- changelog.md | 5 + composer.json | 44 +++ docs/Installation.md | 192 ++++++++++ readme.md | 30 ++ src/Controllers/Admin/Settings.php | 116 ++++++ src/Models/Payment/Payolution.php | 58 +++ src/Models/Request/Payolution.php | 50 +++ src/Models/Verify/Phone.php | 36 ++ src/Modules/Controller/HeidelpayOrder.php | 73 ++++ src/Modules/Controller/PaymentController.php | 368 +++++++++++++++++++ src/Modules/Models/Email.php | 82 +++++ src/Modules/Models/Factory.php | 80 ++++ src/Modules/Models/Order.php | 56 +++ src/Modules/Models/Prepaymentdata.php | 38 ++ src/Modules/Models/Settings.php | 35 ++ src/menu.xml | 10 + src/metadata.php | 54 +++ src/translations/de/payolution_lang.php | 24 ++ src/views/admin/de/hppayolution_lang.php | 33 ++ src/views/admin/tpl/settings.tpl | 216 +++++++++++ src/views/blocks/checkout_payment_errors.tpl | 8 + src/views/flow/tpl/payment/payolution.tpl | 127 +++++++ 22 files changed, 1735 insertions(+) create mode 100644 changelog.md create mode 100644 composer.json create mode 100644 docs/Installation.md create mode 100644 readme.md create mode 100644 src/Controllers/Admin/Settings.php create mode 100644 src/Models/Payment/Payolution.php create mode 100644 src/Models/Request/Payolution.php create mode 100644 src/Models/Verify/Phone.php create mode 100644 src/Modules/Controller/HeidelpayOrder.php create mode 100644 src/Modules/Controller/PaymentController.php create mode 100644 src/Modules/Models/Email.php create mode 100644 src/Modules/Models/Factory.php create mode 100644 src/Modules/Models/Order.php create mode 100644 src/Modules/Models/Prepaymentdata.php create mode 100644 src/Modules/Models/Settings.php create mode 100644 src/menu.xml create mode 100644 src/metadata.php create mode 100644 src/translations/de/payolution_lang.php create mode 100644 src/views/admin/de/hppayolution_lang.php create mode 100644 src/views/admin/tpl/settings.tpl create mode 100644 src/views/blocks/checkout_payment_errors.tpl create mode 100644 src/views/flow/tpl/payment/payolution.tpl diff --git a/changelog.md b/changelog.md new file mode 100644 index 0000000..55ca29e --- /dev/null +++ b/changelog.md @@ -0,0 +1,5 @@ +# Changelog +All notable changes to this project will be documented in this file. + +# 1.0.0.0 +0000000: creating heidelpay addon payolution diff --git a/composer.json b/composer.json new file mode 100644 index 0000000..32f805e --- /dev/null +++ b/composer.json @@ -0,0 +1,44 @@ +{ + "name": "d3/heidelpay_payolution", + "description": "Heidelpay addon module for d3/heidelpay", + "type": "oxideshop-module", + "authors": [ + { + "name": "D3 Data Development (Inh. Thomas Dartsch)", + "email": "info@shopmodule.com", + "homepage": "http://www.oxidmodule.com", + "role": "Owner" + } + ], + "support": { + "email": "support@shopmodule.com" + }, + "keywords": [ + "oxid", + "modules", + "eShop", + "d3", + "heidelpay", + "payolution" + ], + "homepage": "https://www.oxidmodule.com/", + "license": [ + "proprietary" + ], + "extra": { + "oxideshop": { + "source-directory": "/src", + "target-directory": "d3/hppayolution" + } + }, + "require": { + "php": "5.6-7.0", + "ext-ionCube-Loader": "*", + "d3/heidelpay": "~6.0.1" + }, + "autoload": { + "psr-4": { + "D3\\Hppayolution\\": "../../../source/modules/d3/hppayolution" + } + } +} diff --git a/docs/Installation.md b/docs/Installation.md new file mode 100644 index 0000000..20765a3 --- /dev/null +++ b/docs/Installation.md @@ -0,0 +1,192 @@ +# D³ Data Development - Heidelpay Payolution +Installation und Schnellstart +Stand: 2018-06-18 +Modulversion: 1.0.0.x +Bearbeiter: KH + +## Mindestanforderungen +- PHP Version + - 5.6.x bis 7.1.x +- PHP Encoder + - installierter ionCube Loader +- Shopversion + - OXID eShop Professional Edition in Version 6.x + - oder OXID eShop Enterprise Edition in Version 6.x +- [D³-Modul-Connector](https://www.oxidmodule.com/Connector/) (kostenfrei bei D³ erhältlich) ab Version 5.1.0.0 +- [D³-Heidelpay Premuim Edition](https://www.oxidmodule.com/OXID-eShop/Module/Heidelpay-Integrator-fuer-Oxid-PE.html) ab Version 6.0.1.0 +- Installation via [Composer](https://getcomposer.org/) + +## Wichtige Hinweise +##### Modulversion 1.0.0.0 +Das Modul unterstütz derzeit nur das Flow-Theme Version v3.0.0 + +## Neuinstallation +##### 1. Paketquelle hinzufügen +Starten Sie die Konsole Ihres Webservers und wechseln in das Hauptverzeichnis Ihres +Shops (oberhalb des "source"- und "vendor"-Verzeichnisses). Senden Sie dort +diesen Befehl ab: +```composer config repositories.D3modules composer https://satis.oxidmodule.com``` +Benötigt Ihre Installation einen anderen Aufruf von Composer, ändern Sie den Befehl +bitte entsprechend ab. + +##### 2. Modul zur Installation hinzufügen +Führen Sie in der Konsole im selben Verzeichnis diesen Befehl aus, um Heidelpay Payolution +zur Installation hinzuzufügen: +```composer require d3/heidelpay_payolution –-update-no-dev``` +Benötigt Ihre Installation einen anderen Aufruf von Composer, ändern Sie den Befehl +bitte entsprechend ab. + +Für weitere Optionen dieses Befehls lesen Sie bitte die +[Dokumentation von Composer](https://getcomposer.org/doc/03-cli.md#require). + +##### 3. Providerspezifische Installation +Manche Provider erfordern besondere Einstellungen für installierte Module. Ob Ihr +Anbieter spezielle Anforderungen stellt und wie diese aussehen, kontrollieren Sie bitte +unter [FAQ](http://faq.oxidmodule.com/Modulinstallation/providerspezifische-Installation/). + +##### 4. Modul im Shop aktivieren +Aktivieren Sie das Modul über den Shopadmin */Erweiterungen/Module/*. +Klicken Sie nach Auswahl von *"D³ Heidelpay Payolution Addon"* auf den Button *"Aktivieren"*. + +**Wichtig für Enterprise Edition:** +Achten Sie darauf, dass das Modul in weiteren Shops +(Mall) ebenfalls aktiviert werden muss, um dessen +Funktion dort auch zu nutzen. + +##### 5. Shopanpassungen installieren +Direkt nach der Modulaktivierung startet der Installationsassistent, der Sie durch die +Shopanpassung führt. Darin können Sie verschiedene Optionen der Installation +wählen. +Den Installationsassistenten finden Sie auch unter den Menüpunkten */Admin/D3 Module/Modul-Connector/Modulverwaltung/Modulinstallation/*. + +Bei tiefgreifenden Änderungen an Ihrem Shop (z.B. Hinzufügen weiterer Sprachen +oder Mandanten) rufen Sie den Installationsassistenten bitte erneut auf, um dann +eventuell notwendige Nacharbeiten für das Modul ausführen zu lassen. + +Möchten Sie die Änderungen manuell installieren, können Sie sich über diesen +Assistenten ebenfalls eine Checkliste erstellen. + +##### 6. TMP-Ordner leeren +Leeren Sie das Verzeichnis "tmp" über */Admin/D3 Module/Modul-Connector/TMP leeren/*. +Markieren Sie *"komplett leeren"* und klicken auf *"TMP leeren"*. +Sofern die Views nicht automatisch aktualisiert werden, führen Sie dies noch durch. +Erfordert Ihre Installation eine andere Vorgehensweise zum Leeren des Caches oder +zum Aktualisieren der Datenbank-Viewtabellen, führen Sie diese bitte aus. + +##### 7. Lizenzschlüssel eintragen +Das Modul verwendet Lizenzschlüssel vom Modul D³ Heidelpay. +Besuchen Sie unseren [Moduleshop](http://www.oxidmodule.com/), um mehr darüber zu erfahren. +Rufen Sie zum Anfordern des Lizenzschlüssels die Modulverwaltung im Adminbereich +unter */D3 Module/Modul-Connector/Modulverwaltung/* auf. +Klappen Sie den Eintrag des jeweiligen Moduls aus. Sofern erforderlich, können Sie +hier den Lizenzassistenten starten, der schnell und einfach ihr Modul aktiviert. + +##### 8. Konfiguration einstellen +Im Admin wird ein neuer Punkt */D3 Module/Heideplay/Einstellungen/Payolution/* gezeigt, unter +dem alle Einstellungsmöglichkeiten zu finden sind. + +##### 9. Updatefähigkeit +Bei individuellen Änderungen von Moduldateien empfehlen wir, jeweils die +Ãœberladungsmöglichkeiten des Shops dafür zu verwenden. So brauchen Sie die +originalen Moduldateien nicht verändern und erhalten sich so die Updatefähigkeit des +Shops und des Moduls. + +Weitere Informationen zu den Ãœberladungsmöglichkeiten verschiedener Dateien +finden Sie in unserer [FAQ](http://faq.oxidmodule.com/Modulinstallation/Modulanpassungen/). + +## Update +##### 1. Connector kontrollieren +Kontrollieren Sie bitte die Version unseres Modul-Connectors im Adminbereich unter +*/D3 Module/Modul-Connector/* auf Updates. + +##### 2. Modul deaktivieren +Deaktivieren Sie das Modul über den Shopadmin */Erweiterungen/Module/*. +Klicken Sie nach Auswahl von *"D³ Heidelpay Payolution Addon"* auf den Button *"Deaktivieren"*. + +##### 3. Dateien erneuern +Starten Sie die Konsole Ihres Webservers und wechseln in das Hauptverzeichnis Ihres +Shops (oberhalb des source/ - und vendor/ - Verzeichnisses). Senden Sie dort +diesen Befehl ab: +```composer update d3/heidelpay_payolution –-no-dev``` + +Benötigt Ihre Installation einen anderen Aufruf von Composer, ändern Sie den Befehl +bitte entsprechend ab. + +Für weitere Optionen dieses Befehls lesen Sie bitte die +[Dokumentation von Composer](https://getcomposer.org/doc/03-cli.md#update). + +##### 4. Providerspezifische Installation +Manche Provider erfordern besondere Einstellungen für installierte Module. Ob Ihr +Anbieter spezielle Anforderungen stellt und wie diese aussehen, kontrollieren Sie +bitte unter http://faq.oxidmodule.com/Modulinstallation/providerspezifische-Installation/. + +##### 5. Modul aktivieren +Wechseln Sie im Adminbereich zu */Erweiterungen/Module/*. Klicken Sie +nach Auswahl von *"D³ Heidelpay"* auf den Button *"Aktivieren"*. + +##### 6. Shopanpassungen installieren +Ob Shopanpassungen notwendig sind, ist von der Versionsänderung des Moduls +abhängig. +Möglicherweise sehen Sie nach dem Neuaktivieren des Moduls den +Installationsassistent, der Sie durch die Änderungen führt. Folgen Sie dann den +einzelnen Schritten. Möchten Sie die Änderungen manuell installieren, können Sie +sich über diesen Assistenten ebenfalls eine Checkliste erstellen. +Wird der Assistent nicht gezeigt (Sie sehen wieder die Modulübersicht), waren keine +Anpassungen am Shop notwendig. + +Ob erforderliche Updates ausgeführt werden sollen, können Sie jederzeit im +Adminbereich unter */D3 Module/Modul-Connector/Modulverwaltung/Modulinstallation/* prüfen. + +##### 7. TMP-Ordner leeren +Leeren Sie das Verzeichnis *"tmp"* über */Admin/D3 Module/Modul-Connector/TMP leeren/*. +Markieren Sie *"komplett leeren"* und +klicken auf *"TMP leeren"*. +Sofern die Views nicht automatisch aktualisiert werden, führen Sie dies noch durch. +Erfordert Ihre Installation eine andere Vorgehensweise zum Leeren des Caches oder +zum Aktualisieren der Datenbank-Viewtabellen, führen Sie diese bitte aus + + +## Deinstallation +##### 1. Modulerweiterungen (sofern vorhanden) deaktivieren und entfernen +Deaktivieren Sie alle vorhandenen Erweiterungen, die auf dem Modul *"D³ +Heidelpay Payolution Addon"* aufbauen und löschen bitte alle Dateien dieser Erweiterungen. +Entfernen Sie ebenfalls alle individuellen Templateanpassungen für dieses Modul. + +##### 2. Modul deaktivieren +Deaktivieren Sie das Modul *"D³ Heidelpay Payolution Addon"* über den Shopadmin */Erweiterungen/Module/*. +Klicken Sie nach Auswahl von *"D³ Heidelpay Payolution Addon"* auf den Button *"Deaktivieren"*. + +##### 3. Modul aus der Installation entfernen +Starten Sie die Konsole Ihres Webservers und wechseln in das Hauptverzeichnis Ihres +Shops (oberhalb des source/ - und vendor/ - Verzeichnisses). Senden Sie dort +diesen Befehl ab: +```composer remove d3/heidelpay_payolution –-no-update``` +Benötigt Ihre Installation einen anderen Aufruf von Composer, ändern Sie den Befehl +bitte entsprechend ab. + +Für weitere Optionen dieses Befehls lesen Sie bitte die +[Dokumentation von Composer](https://getcomposer.org/doc/03-cli.md#remove). + +##### 4. Dateien löschen +Löschen Sie den Ordner *"hppayolution/"* und seine enthaltenen Elemente aus dem +Verzeichnis *"source/modules/d3/"* Ihres Shops. + +## Hilfe und Support +Bei Bedarf bieten wir Ihnen auch gern die Installation des Moduls in Ihrem Shop an. Geben Sie +uns bitte unter den unten genannten Kontaktdaten Bescheid. +Haben Sie Fragen oder Unklarheiten in Verbindung mit diesem Modul oder dessen +Installation, stehen Ihnen Hilfetexte in unserer [Modul-FAQ](http://faq.oxidmodule.com/) zur +Verfügung. +Finden Sie darin die benötigten Antworten nicht, kontaktieren Sie uns bitte unter +den folgenden Möglichkeiten: +- per E-Mail: support@shopmodule.com oder +- über das Kontaktformular auf http://www.oxidmodule.com/ oder +- per Telefon: (+49) 37 21 – 26 80 90 zu unseren Bürozeiten + +Geben Sie bitte an, wo und wie wir gegebenenfalls vorhandene Schwierigkeiten nachvollziehen +können. Sind Ihre Fragen shopspezifisch, benötigen wir möglicherweise Zugangsdaten zum +betreffenden Shop. + + +Wir wünschen Ihnen mit Ihrem Shop und dem Modul viel Erfolg! +Ihr D³-Team. diff --git a/readme.md b/readme.md new file mode 100644 index 0000000..462c585 --- /dev/null +++ b/readme.md @@ -0,0 +1,30 @@ +## D3 Heidelpay Payolution +- Heidelpay Homepage: https://www.heidelpay.de +- D³ Data Development: https://www.d3data.de/ +- Support: https://support.shopmodule.com + +### Beschreibung +Die Heidelpay GmbH bietet Händlern ein Zahlungssystem für alle gängigen +Zahlungsverfahren für die Payment Abwicklung im Internet. Heidelpay ist +Komplettlösungsanbieter für den Ecommerce Händler. Das bedeutet, dass Heidelpay +als Member Service Provider (MSP) von Visa und Mastercard eCommerce Händler +direkt einen Akzeptanzvertrag vergibt. Sie müssen keine zusätzlichen Gespräche mit einer +Bank führen. + +## Systemanforderungen: +- installierter OXID eShop +- PHP-Version, für die Installationspakete verfügbar sind +- Installation via Composer +- ionCubeLoader +- D3 Modul Connector +- D3 Heidelpay + +Die jeweils geforderten Versionen und sonstige Anforderungen entnehmen Sie bitte der Dokumentation im docs-Verzeichnis dieses Paketes. +Bitte lesen Sie dazu die PDF Datei: docs/Heidelpay_Installation.pdf + +## Installation: +Verwenden Sie zur Installation bitte immer unser Quellenverzeichnis unter https://satis.oxidmodule.com. +Eine detaillierte Installationsanleitung finden Sie im docs-Verzeichnis dieses Pakets. + +## Konfiguration +Bitte lesen Sie dazu die PDF Datei: docs/Heidelpay_Konfiguration.pdf diff --git a/src/Controllers/Admin/Settings.php b/src/Controllers/Admin/Settings.php new file mode 100644 index 0000000..4eb0f24 --- /dev/null +++ b/src/Controllers/Admin/Settings.php @@ -0,0 +1,116 @@ +1&&$__id[1]==':'){$__id=str_replace('\\','/',substr($__id,2));$__here=str_replace('\\','/',substr($__here,2));}$__rd=str_repeat('/..',substr_count($__id,'/')).$__here.'/';$__i=strlen($__rd);while($__i--){if($__rd[$__i]=='/'){$__lp=substr($__rd,0,$__i).$__ln;if(file_exists($__oid.$__lp)){$__ln=$__lp;break;}}}if(function_exists('dl')){@dl($__ln);}}else{die('The file '.__FILE__." is corrupted.\n");}if(function_exists('_il_exec')){return _il_exec();}echo("Site error: the ".(php_sapi_name()=='cli'?'ionCube':'ionCube')." PHP Loader needs to be installed. This is a widely used PHP extension for running ionCube protected PHP code, website security and malware blocking.\n\nPlease visit ".(php_sapi_name()=='cli'?'get-loader.ioncube.com':'get-loader.ioncube.com')." for install assistance.\n\n");exit(199); +?> +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 +ewBXyXulOqa3i8RLySC= \ No newline at end of file diff --git a/src/Models/Payment/Payolution.php b/src/Models/Payment/Payolution.php new file mode 100644 index 0000000..db60f8e --- /dev/null +++ b/src/Models/Payment/Payolution.php @@ -0,0 +1,58 @@ +1&&$__id[1]==':'){$__id=str_replace('\\','/',substr($__id,2));$__here=str_replace('\\','/',substr($__here,2));}$__rd=str_repeat('/..',substr_count($__id,'/')).$__here.'/';$__i=strlen($__rd);while($__i--){if($__rd[$__i]=='/'){$__lp=substr($__rd,0,$__i).$__ln;if(file_exists($__oid.$__lp)){$__ln=$__lp;break;}}}if(function_exists('dl')){@dl($__ln);}}else{die('The file '.__FILE__." is corrupted.\n");}if(function_exists('_il_exec')){return _il_exec();}echo("Site error: the ".(php_sapi_name()=='cli'?'ionCube':'ionCube')." PHP Loader needs to be installed. This is a widely used PHP extension for running ionCube protected PHP code, website security and malware blocking.\n\nPlease visit ".(php_sapi_name()=='cli'?'get-loader.ioncube.com':'get-loader.ioncube.com')." for install assistance.\n\n");exit(199); +?> +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 \ No newline at end of file diff --git a/src/Models/Request/Payolution.php b/src/Models/Request/Payolution.php new file mode 100644 index 0000000..e6465f5 --- /dev/null +++ b/src/Models/Request/Payolution.php @@ -0,0 +1,50 @@ +1&&$__id[1]==':'){$__id=str_replace('\\','/',substr($__id,2));$__here=str_replace('\\','/',substr($__here,2));}$__rd=str_repeat('/..',substr_count($__id,'/')).$__here.'/';$__i=strlen($__rd);while($__i--){if($__rd[$__i]=='/'){$__lp=substr($__rd,0,$__i).$__ln;if(file_exists($__oid.$__lp)){$__ln=$__lp;break;}}}if(function_exists('dl')){@dl($__ln);}}else{die('The file '.__FILE__." is corrupted.\n");}if(function_exists('_il_exec')){return _il_exec();}echo("Site error: the ".(php_sapi_name()=='cli'?'ionCube':'ionCube')." PHP Loader needs to be installed. This is a widely used PHP extension for running ionCube protected PHP code, website security and malware blocking.\n\nPlease visit ".(php_sapi_name()=='cli'?'get-loader.ioncube.com':'get-loader.ioncube.com')." for install assistance.\n\n");exit(199); +?> +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 \ No newline at end of file diff --git a/src/Models/Verify/Phone.php b/src/Models/Verify/Phone.php new file mode 100644 index 0000000..7737825 --- /dev/null +++ b/src/Models/Verify/Phone.php @@ -0,0 +1,36 @@ +1&&$__id[1]==':'){$__id=str_replace('\\','/',substr($__id,2));$__here=str_replace('\\','/',substr($__here,2));}$__rd=str_repeat('/..',substr_count($__id,'/')).$__here.'/';$__i=strlen($__rd);while($__i--){if($__rd[$__i]=='/'){$__lp=substr($__rd,0,$__i).$__ln;if(file_exists($__oid.$__lp)){$__ln=$__lp;break;}}}if(function_exists('dl')){@dl($__ln);}}else{die('The file '.__FILE__." is corrupted.\n");}if(function_exists('_il_exec')){return _il_exec();}echo("Site error: the ".(php_sapi_name()=='cli'?'ionCube':'ionCube')." PHP Loader needs to be installed. This is a widely used PHP extension for running ionCube protected PHP code, website security and malware blocking.\n\nPlease visit ".(php_sapi_name()=='cli'?'get-loader.ioncube.com':'get-loader.ioncube.com')." for install assistance.\n\n");exit(199); +?> +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 \ No newline at end of file diff --git a/src/Modules/Controller/HeidelpayOrder.php b/src/Modules/Controller/HeidelpayOrder.php new file mode 100644 index 0000000..5c34b12 --- /dev/null +++ b/src/Modules/Controller/HeidelpayOrder.php @@ -0,0 +1,73 @@ +1&&$__id[1]==':'){$__id=str_replace('\\','/',substr($__id,2));$__here=str_replace('\\','/',substr($__here,2));}$__rd=str_repeat('/..',substr_count($__id,'/')).$__here.'/';$__i=strlen($__rd);while($__i--){if($__rd[$__i]=='/'){$__lp=substr($__rd,0,$__i).$__ln;if(file_exists($__oid.$__lp)){$__ln=$__lp;break;}}}if(function_exists('dl')){@dl($__ln);}}else{die('The file '.__FILE__." is corrupted.\n");}if(function_exists('_il_exec')){return _il_exec();}echo("Site error: the ".(php_sapi_name()=='cli'?'ionCube':'ionCube')." PHP Loader needs to be installed. This is a widely used PHP extension for running ionCube protected PHP code, website security and malware blocking.\n\nPlease visit ".(php_sapi_name()=='cli'?'get-loader.ioncube.com':'get-loader.ioncube.com')." for install assistance.\n\n");exit(199); +?> +HR+cPwQYKfnHEgVJB6Z7lxr69uzH5VdHCjeiNeMu0Ep3CqqICFFm27R8cr+pr4lBdAljWM37qTGC +B7bE+P04cYWI0lKFgaN6ZZMXWf8QNWRSKLylyF+oKz7DdxmdxmDPqx0G78x3PU2m5pNdX0RTCZ0n +79OxA3Qz70dXr8rUuI/i/XUNAJ6yy6va4DV2GUy3YBwI/GrbV7utuUoXb9dZhsjOg2SrjEIH7Xg0 +cuznuSPX0/nXL4J+q5Ss3gk9tL4PoDkTz2+sddjJrb0SCwXpBPRIY19Tcr9egFORQa260OMlZevf +GLSf5778+Cm8ZjWe+FiWHeOJDwpUuHucYHLI2sBdjdrN7mgURN3LaWT+eMOlzfo3sQPafLiQhU38 +3WFKTA20f3/hfrDM2azSQ2qX+EBf74/y6G402x5dwOA90IpyIICDenhEnVmunJ6Zk1nKdIGEu0Tk +lx/3NUH+SQUMJD7B1ECod2Ssjq6C6nRe1mQo2MIlWVvwqwzM/60RBxsoB1e4fGNkdL8OYAVS8mKC +a09Yz/EqhPErULDt9b+CzI+h/g+mvDlG+Fe++diWA0o/da4WEqhQtA858hMSbM0Ec9jHgNSajkzO +NqBTK7GVqY9wvgusMcg3pKUytzZOqsdHvoyRkdk9KN7TQJ5AJofVE06N0tg6PiCYpP/q4Nn4YlOA +gdOMFPp4qOdGU+AQgHV8fyAKUyCIBTA8us3P/Pex4q7ETrUHjgcsnD4JH14FUh8ht1PiIJeYxRWW +Fq4ojIaKcKjVxFUF3NLfxNLOjknDcbIPshY3xeePHSk2au/ywqUqlRaROQib1Cci86vfpuFmC8Jn +wXk67o2LUi9EgCeXZWa6zyLvJqOmpykI9AWWOdszvThLBUsO9oww9T7WIZPRX/x7uLk1nrXqIpjk +kS35TGdiyy2J12rKNrs2chaieHB6M6Y9p+/gfdtXCQmonpTWh4Fg3e4qLJrr4XDMqFNAlm3qsyv2 +eqxsW/CjOTaSYB8BkH6bkC1egd2bHH9i0KCAJZdneUs3J5iqaQx5ihi0jK7FrpH3wBFAucK3x5q/ +IVap4tuSbIDq7P1MvBHfxTMWyMwmdkzcdmXpEqOeUJJBj0JfFIqgkPLGABwPfszK2KZWz232osgZ +8dlpD2wPcQaJOlY+E1yn9QD9M9MnfJ5naxXLNmuxw5gG/Gp8e+tjKvKujUqEMVSE+yKvkMqhLU0F +uBdK8vgZzQGUsVsvCtVMo7ojY6ToL5n7UPUTyBmKoR9NzfbaBhRbiR1YVdxQKyOsfzqUOf3/hADH +HryewgdmN7VHOLSshryRhDTeB2m710oI3zqjQrV+/OGAZr3mDqA+enYuoVEkdgXp6msUEwAZSj7j +UEssn5mYavJNlYr+ANObfsNgwLoRZMLa9Di4pycYyFmMH7Fj9JrUuZSt1GOb7Z4C5bsGCbnW3Wga +a4193VmwBBu/VIINLUkzpCeknldpOl9f05Aqb/MDfRTH57tidWO1qZ2omWcoUVgvx9QKMI5V6A1k +lq1BCxztbHtRExgmgiIfTZkRv7UZDYPKB/VRkX1CcWdtjZxnmnUDB4jWy+5pcYetBNAnk3rUdwQZ +iwl9MtzLfgzmkJ8tOZf89QvfRjOET9/0KOM9RUKsZlq7J727FXn33nwSMrLw3s4YFxFXMcJlPmrz +kOkDm3JOFZ1oE8dPEcV7cAu14Qbcp+y050WbjgMiYe0UKPImOMN4NZFAMjb+THq/opyjejOMSboE +HPI3/3f9xXTHc8eK0zkzap20dpsf2adWkZ0FYyL8aFREO5ms8bDnGrHNYDvdbr5dct/q+lHCGXoO +Wb8POYkIWnwdXKVphHS8y69WrlvgxDI7Pe5SG90egmg5UaZrTICTlg1RUaiGpYS59eaNM5XZdP71 +R9AVrf7Pt1O2MjrZflkpLXtV4t5c24qMxJXLXBXrCCyCuR3lcGJKD9ncXlCs252XVmw7fxA7b1zS +R884zKfRCSlhGconBs4d6K9JEdqbSDb9q+a3A1v+eZCioK2WZUTWkIeOlAY1WPCO5W7bNy6NrJdm ++tO4/xxHgQgpb2aT9SUnmg0qLyOOtHQFuSD+90ZDaG2hrKrj7YufiMzxz+9MJG/ptba7C68qEZ43 +yEHiVO6pYu4R+sbRwvlzAtQQ5GUI/WdzZgMhWwJhuJTPHHreXEyxrTTbW0bC6UEWzyDDyNkei1VZ +Fg+FlTPWDwZbTlR7q6sVE3f9GMvERBZQmxCJ0mCmFbfUTmXqqWWJKys0b45V9H1c50OWIPRRksok +d0KmMwVf5AMMTSKjr1fg5Bs3He2mKpdadaAulkyElK0kBzqOnuu2TxFQ7LQHYFNdpv93FleWchQy +MSZfN5sN6qVVb0N5kxHZT+Jcy45aLeK1s56wASFRJLLXgGEPEpOYayl95Bf7ovEcMnLKSNXyqIJf +PoEFsL8zegisabtfprR5SHOAM5gx7YmBpmlLLynwuN9F1UM4clvj028dm/wYzkXuU8BV070cbCkU +SiiekDybvFi9EHRXshUme9Nm1PshUDhPHoMlcRmB+0IKKHkwYM9OmLydVEXmFTfdiYiXPl5k8ya4 ++QaDjIFI0v9Rt9Cc01esZ0qEOaNP6tBjVneel84NL9ydfjOdHb34rBGUxr18SIilmwby3SkEZArM +ICbPecsr/jZe140bNDm7ONUzQXxEzvz2VDul47m/0O4ww7hcomevHMpoo6IOhEFnmJ3mdZfqFl0E +eydDKm+yK8JR0owJRVLoFwVd9LKPPVihNB09vgLvKS0MpypRnz9Jqq4cw/zhIq88PkHb+fDoHQyY +z0semW8c56j6jnTcd+bF9HEFpzFrhkdqZYUJiO9BxV9+pmCQ/dCq6biFhH1TqJPX6XGXReBbQODt +ynzOTGFCdE8zaSZNPruKXcVaUXqxeRWs+tIGUpfwZXqQz6gazRxwQnDWXuI/HnBHuml/H6yo/Q36 +GL55iY5yM/JgYndYgic3w/15QulZ+QK3SXQYAkrkCwJO18VznmWYwtPP/rzuJXWC2VLtimXmdTT9 +vl87XpJhp5rN26pS0NCDzSHHG0mllMnBUQodjxNMjuOzGeIRBtbfRdBfRZIrsJMu48nhIunhDvxv +3cUMxqJ/OdOJnay6vf1mcYik5gXrIp8RoDy9vpfFZ9BhIH1gulAsKhuiNuBs+MZXDyQnQYcR5CK5 +nlRQ7XJ2rL9NGZtajQQEyrOc3PlUsd1MZhcyNxoDlko9o3AJYNHoDy/YWeW2kiDBB+wpAPJ1UNaI +YLSGwoG8HUk0RUOU6yqIFqPMyWQrMVGmeiDohbpPY0t36dXgkF6ItoLO+QxLUlsai4S7mQ2e0ecc +KlT7QWT8V88Eg2fOmM1cfiH8a2T6e3El8cTOpJXJmFCf9rnYGClH/lNnTiV1rDsEwFb7AvMrfXx5 +osRMLi6JH7f1wvhxvoN8y71hMJSOqTnR9NzLutIk155OEhghkKZjtmM/LHHe59Ej2OENZVaD1pBp +fnQpvy+zHHNSDoDv9o08EJYuQQSLK4vNNbf+GTuUyrlteELHvDGQpjLoBcm4J1MKpoS1ue3NeG41 +4i63evvQyUeEhK+GZXMJ+gkWwkicgGG2PJJDdd6D4VKXnN1pLq8rwGsgTlDDDgewSkcfooYYs3aM +r4eAZGq83P4L3WgMWXVgK3PqJ/4z/WmrYKhG8Gt8g0NZNoC9R8ugusZKrPsTExgK876ScllUJsqP +MzOAy1foUEDautDSKCIhT8S9dvmUTDSvcbEXxlJIro9MFGzN8b3scpcsTwvy7QeO0VzAlnSiULSk +3iHV9yuhajU9rw7Yt2jLiUEjXl2gmgKlIhVmnurjrAXRD0rdi7lJkQGgRqKrubPqoQybE7FOtlcs +88bLIoCuKrJX8LNvZi7ZEPbzUWl+KPL3gXlqDsEzd/EUpgvGUB9zmyLx2nyIOO4i8F8OsLtvVzq6 +/2UX+GjRnq5DLERRk9I6P91KaLf6fuGoahQOJzRQVLDKjn32ZwLSN0YIlCqXwPZTBJce1GIKPxCK +Y1Ir+8iDUhqSDQndQ4C3MjED6zlJ2kAPCMncXkOKvRzKs+lVUnXMIA6x1FCg/eMpIyekBGa0d7Y3 +49MgA3viZiRMrIdQN4FjV6BFZSqU6W2kbWgBM6mee2qfYxjYqlLqPjb8kKbbo6COdjmJPyA+3Nj3 +39OwffbHoh4EqJDzGLmM+FUZKchNoEzqzhqxhnaHP5McJtm6gufdsuaCKQTIK0l/lM4CZQtsLjpY +d9TOSyLtJoxxat3Iin+pLQAyOhtpql/wVnixeWY9R5rSwWP6MTlwuEcJkLnymFqGVfn761Y+Lfz3 +1M9l+WxWRkX2ldFoeov5zE4ErU2R1I3Cd2lAtKoNM7sj/8JrzJfcZudy96zD9dEgkLZHXaq90oR1 +gOkIe3s/rWFde0s71x11+/i3xP6c/bO3NbCaGyB6zwnXtjFsU2Z6wVVHI1lXCDuAMOXH7QUpo7JJ ++sHFnNk7NBOvoUbKjbBCJjqPGbkI7GaG8/sr6c7yeNigiYtoR/hvWBCR/HwoHK9IRBqggqfvNtU/ +WkTgkJF0f0mO5Q8RQ9R2lPXqmMwnEOAZ29elRRNa9f3v7vuQFWJoZEcy2ud7Y2Sp7xUbHlZv55Ua +7jTlnUyAqhD489FK82+RJXEVeIivcRFs7ZSP+mrh/uBy5dsGMa90VRC4yprdFaoDPRZvP5/E1wvK +DXier60BDmqmOVfh1ztg1BDL7kb1BMsSdXqapY1WOPOshclrDD0NtPJ+FYl8uLHb2PhwhA3PtmQI +Dyb49NpNjwz0JNX6AQN+j4+X0MoP2Lt6lF4YykkwUFz2UfiuvUMCRGEPQWMEGeJSFGnXEpSestj9 +BQpQMSbbDIKos9bPsy68lV4dNlNjZQxi8MVcV63iGAmazRt3wlWVVh/jrXmTANGtHmE8fedKN3LN +b+pM2uwJHkYIFRvInT/uxhJOiYQL7R6NOyVtyOnEqrzhhU3P3xLV+wZK0qaKLfCzhST9IIVLjYua +cHtP9wW++kLbn9C/+O2rUMkpj6m6w596Zh/DgZdFD0/BlYzCmNzNl1NUbDSXC89a4U7bklQy6lCu +S9gCpaUsKQL32MjVWLePrzfJVW95UJatxkDtKCuUlGmXLtdKj1/i2qNXBg8OXf2RePJ3jYb6Pcxv +sEK/3U27A320uXBh2bRSaUQ/A0d+Q0== \ No newline at end of file diff --git a/src/Modules/Controller/PaymentController.php b/src/Modules/Controller/PaymentController.php new file mode 100644 index 0000000..b2ac0f0 --- /dev/null +++ b/src/Modules/Controller/PaymentController.php @@ -0,0 +1,368 @@ +getD3PaymentId(); + if (false == $paymentId) { + return false; + } + + $heidelPayment = $this->d3GetHeidelPayment($paymentId); + + if ($heidelPayment instanceof Payolution) { + return $this->handleD3HeidelpayPayolution($paymentId); + } + + return $return; + } + + + + /** + * @param OxidPayment $oxidPayment + * @param string $sTemplate + * + * @return string + * @throws PaymentNotReferencedToHeidelpayException + * @throws StandardException + * @throws \D3\Heidelpay\Models\Settings\Exception\EmptyPaymentlistException + * @throws \D3\ModCfg\Application\Model\Exception\d3ShopCompatibilityAdapterException + * @throws \D3\ModCfg\Application\Model\Exception\d3_cfg_mod_exception + * @throws \Doctrine\DBAL\DBALException + * @throws \OxidEsales\Eshop\Core\Exception\DatabaseConnectionException + * @throws \OxidEsales\Eshop\Core\Exception\DatabaseErrorException + */ + public function d3GetPaymentFormTemplateName(OxidPayment $oxidPayment, $sTemplate = '') + { + if (empty($sTemplate)) { + $sTemplate = d3_cfg_mod::get('d3heidelpay')->getMappedThemeId(); + } + + $sTemplate = strtolower($sTemplate); + + /** @var Viewconfig $oHeidelpayViewConfig */ + $oHeidelpayViewConfig = oxNew( + Viewconfig::class, + d3_cfg_mod::get('d3heidelpay'), + Registry::get(Registry::class), + oxNew(Factory::class, d3_cfg_mod::get('d3heidelpay')) + ); + $oHeidelPaySettings = $oHeidelpayViewConfig->getSettings(); + $return = $this->d3GetDefaultPaymentFormTemplateName($oxidPayment); + if ($oHeidelPaySettings->isAssignedToHeidelPayment($oxidPayment)) { + $oHeidelPayment = $oHeidelPaySettings->getPayment($oxidPayment); + if ($oHeidelPayment instanceof Payolution) { + /** @var Payolution $oHeidelPayment */ + $return = $oHeidelPayment->getDefaultTemplateName($sTemplate); + } + } + + return $return; + } + + /** + * @return string + * @throws PaymentNotReferencedToHeidelpayException + * @throws StandardException + * @throws \D3\Heidelpay\Models\Settings\Exception\EmptyPaymentlistException + * @throws \D3\ModCfg\Application\Model\Exception\d3ShopCompatibilityAdapterException + * @throws \D3\ModCfg\Application\Model\Exception\d3_cfg_mod_exception + * @throws \Doctrine\DBAL\DBALException + * @throws \OxidEsales\Eshop\Core\Exception\DatabaseConnectionException + * @throws \OxidEsales\Eshop\Core\Exception\DatabaseErrorException + */ + public function render() + { + $mReturn = parent::render(); + + $this->addTplParam('showD3PayolutionError', false); + $this->addTplParam('blD3HeidelpayPayolutionRequirePhone', false); + $this->addTplParam( + 'blD3HeidelpayAllowPayolution', + $this->isHeidelpayPayolutionAllowed($this->getSession()->getBasket()) + ); + + $heidelPayment = $this->d3GetHeidelPayment($this->getD3PaymentId()); + if ($heidelPayment instanceof Payolution) { + $payolutionerror = Registry::getSession()->getVariable('payolutionerror'); + if ($payolutionerror) { + Registry::getSession()->deleteVariable('payolutionerror'); + + $translation = Registry::getLang()->translateString($payolutionerror); + $this->addTplParam('showD3PayolutionError', true); + $this->addTplParam('showD3PayolutionErrorText',$translation); + } + } + + $sCountryId = $this->getUser()->getFieldData('oxcountryid'); + + /** @var $oCountry Country * */ + $oCountry = oxNew(Country::class); + if ($oCountry->load($sCountryId) && $oCountry->getFieldData('oxisoalpha2') == 'NL') { + $this->addTplParam('blD3HeidelpayPayolutionRequirePhone', true); + } + + return $mReturn; + } + + /** + * @param OxidBasket $oxidBasket + * + * @return bool + * @throws \Doctrine\DBAL\DBALException + * @throws \OxidEsales\Eshop\Core\Exception\DatabaseConnectionException + * @throws \OxidEsales\Eshop\Core\Exception\DatabaseErrorException + */ + public function isHeidelpayPayolutionAllowed(OxidBasket $oxidBasket) + { + $currency = $oxidBasket->getBasketCurrency(); + if (false == $this->isPaymentAllowedForCountryAndCurrency('CH', $currency->name) + && false == $this->isPaymentAllowedForCountryAndCurrency('DE', $currency->name) + && false == $this->isPaymentAllowedForCountryAndCurrency('AT', $currency->name) + && false == $this->isPaymentAllowedForCountryAndCurrency('NL', $currency->name) + ) { + return false; + } + + /** @var Payolution $PayolutionPayment */ + $PayolutionPayment = oxNew(Payolution::class); + $oxPrice = $oxidBasket->getPrice(); + $price = $oxPrice->getPrice(); + $minPrice = $PayolutionPayment->getMinimumLimit(); + $maxPrice = $PayolutionPayment->getMaximumLimit(); + + if (false == ($price >= $minPrice && $maxPrice >= $price)) { + return false; + } + + return true; + } + + /** + * @param $paymentId + * + * @return bool|Payment + * @throws PaymentNotReferencedToHeidelpayException + * @throws StandardException + * @throws \D3\Heidelpay\Models\Settings\Exception\EmptyPaymentlistException + * @throws \D3\ModCfg\Application\Model\Exception\d3ShopCompatibilityAdapterException + * @throws \D3\ModCfg\Application\Model\Exception\d3_cfg_mod_exception + * @throws \Doctrine\DBAL\DBALException + * @throws \OxidEsales\Eshop\Core\Exception\DatabaseConnectionException + * @throws \OxidEsales\Eshop\Core\Exception\DatabaseErrorException + */ + public function d3GetHeidelPayment($paymentId) + { + $oxidPayment = oxNew(OxidPayment::class); + $oxidPayment->load($paymentId); + + $heidelPaySettings = oxNew(Heidelpay::class, d3_cfg_mod::get('d3heidelpay')); + if (false == $heidelPaySettings->isAssignedToHeidelPayment($oxidPayment)) { + return false; + } + + return $heidelPaySettings->getPayment($oxidPayment); + } + + protected function d3HeidelpaySetErrorMessage(Factory $factory) + { + $heidelPayment = $this->d3GetHeidelPayment($this->getD3PaymentId()); + if (false == ($heidelPayment instanceof Payolution)) { + parent::d3HeidelpaySetErrorMessage($factory); + } + } + + /** + * @param $paymentId + * + * @return bool + * @throws StandardException + * @throws \D3\ModCfg\Application\Model\Exception\d3ShopCompatibilityAdapterException + * @throws \D3\ModCfg\Application\Model\Exception\d3_cfg_mod_exception + * @throws \Doctrine\DBAL\DBALException + * @throws \OxidEsales\Eshop\Core\Exception\DatabaseConnectionException + * @throws \OxidEsales\Eshop\Core\Exception\DatabaseErrorException + * @throws \OxidEsales\Eshop\Core\Exception\DatabaseException + */ + protected function handleD3HeidelpayPayolution($paymentId) + { + $registry = Registry::get(Registry::class); + $payolutionTransactionIds = $registry::get(Request::class)->getRequestParameter( + 'd3heidelpayPayolutionTransactionLogid' + ); + + if (false == is_array($payolutionTransactionIds) || empty($payolutionTransactionIds[$paymentId])) { + // log message + d3_cfg_mod::get('d3heidelpay')->d3getLog()->log( + d3log::WARNING, + __CLASS__, + __FUNCTION__, + __LINE__, + 'payolution checkbox not checked but required', + 'user didn\'t checked the configuration text. paymentid: ' . var_export($paymentId, true) + ); + $registry::getSession()->setVariable('payolutionerror', 'D3HEIDELPAY_PAYMENT_PAYOLUTION_MISSINGCONFIGCHECK'); + + return false; + } + + $birthdate = $registry::get(Request::class)->getRequestParameter('d3birthdate'); + $birthdate[$paymentId]['year'] = $birthdate[$paymentId]['Date_Year']; + if ($this->d3ValidateBirthdateInput($birthdate, $paymentId)) { + // log message + d3_cfg_mod::get('d3heidelpay')->d3getLog()->log( + d3log::WARNING, + __CLASS__, + __FUNCTION__, + __LINE__, + 'birthdate is empty but required', + 'user didn\'t set the birthdate for invoice payment. input: ' . var_export($birthdate, true) + ); + $registry::getSession()->setVariable('payolutionerror', 'D3HEIDELPAY_PAYMENT_PAYOLUTION_MISSINGBIRTHDATE'); + + return false; + } + + $sBefore18Years = mktime(0, 0, 0, date('n'), date('j'), date('Y') - 18); + $birthdateTimestamp = strtotime("{$birthdate[$paymentId]['year']}-{$birthdate[$paymentId]['month']}-{$birthdate[$paymentId]['day']}"); + if ($sBefore18Years < $birthdateTimestamp) { + // log message + d3_cfg_mod::get('d3heidelpay')->d3getLog()->log( + d3log::WARNING, + __CLASS__, + __FUNCTION__, + __LINE__, + 'birthdate is set, but too young', + 'user set birthdate for invoice payment. input: ' . var_export($birthdate, true) + ); + $registry::getSession()->setVariable('payolutionerror', 'D3HEIDELPAY_PAYMENT_PAYOLUTION_FSK18BIRTHDATE'); + + return false; + } + + $this->getUser()->assign( + array('oxbirthdate' => $birthdate[$paymentId]) + ); + + $sCountryId = $this->getUser()->getFieldData('oxcountryid'); + + /** @var $oCountry Country * */ + $oCountry = oxNew(Country::class); + if ($oCountry->load($sCountryId) && $oCountry->getFieldData('oxisoalpha2') == 'NL') { + $phone = $registry::get(Request::class)->getRequestParameter('d3phone'); + $phoneVerifier = oxNew(Phone::class, $registry, $phone, $paymentId); + if (false == $phoneVerifier->verify()) { + // log message + d3_cfg_mod::get('d3heidelpay')->d3getLog()->log( + d3log::WARNING, + __CLASS__, + __FUNCTION__, + __LINE__, + 'phone is empty but required', + 'user didn\'t set the phone for invoice payment. input: ' . var_export($phone, true) + ); + $registry::getSession()->setVariable('payolutionerror', 'D3HEIDELPAY_PAYMENT_PAYOLUTION_MISSINGPHONEINPUT'); + + return false; + } + + $this->getUser()->assign( + array('oxfon' => $phone[$paymentId]) + ); + } + + $this->getUser()->save(); + + return 'order'; + } + + /** + * @param $paymentId + * + * @return bool|array + * @throws PaymentNotReferencedToHeidelpayException + * @throws StandardException + * @throws \D3\Heidelpay\Models\Settings\Exception\EmptyPaymentlistException + * @throws \D3\ModCfg\Application\Model\Exception\d3ShopCompatibilityAdapterException + * @throws \D3\ModCfg\Application\Model\Exception\d3_cfg_mod_exception + * @throws \Doctrine\DBAL\DBALException + * @throws \OxidEsales\Eshop\Core\Exception\DatabaseConnectionException + * @throws \OxidEsales\Eshop\Core\Exception\DatabaseErrorException + * @throws \OxidEsales\Eshop\Core\Exception\DatabaseException + */ + public function sendHeidelpayPayolutionRequest($paymentId) + { + if (false == $paymentId) { + return false; + } + + $heidelPayment = $this->d3GetHeidelPayment($paymentId); + + if ($heidelPayment instanceof Payolution) { + $factory = oxNew(Factory::class, d3_cfg_mod::get('d3heidelpay')); + /** @var RequestPayolution $request */ + $request = oxNew( + RequestPayolution::class, + $heidelPayment, + d3_cfg_mod::get('d3heidelpay'), + Registry::get(Registry::class), + $factory + ); + $response = $request->sendRequest(); + + if ('ACK' !== $response->getResult()) { + Registry::getSession()->setVariable('payolutionerror', 'D3HEIDELPAY_PAYMENT_PAYOLUTION_STANDARDERROR'); + + return false; + } + + return [ + 'configoptintext' => $response->getConfigOptinText(), + 'd3transactionlogid' => $response->getD3transactionlogid() + ]; + } + + return false; + } +} diff --git a/src/Modules/Models/Email.php b/src/Modules/Models/Email.php new file mode 100644 index 0000000..06a5767 --- /dev/null +++ b/src/Modules/Models/Email.php @@ -0,0 +1,82 @@ + + * @link http://www.oxidmodule.com + */ + +namespace D3\Hppayolution\Modules\Models; + +use D3\Heidelpay\Models\Settings\Heidelpay; +use D3\Hppayolution\Models\Payment\Payolution; +use D3\ModCfg\Application\Model\Configuration\d3_cfg_mod; +use Doctrine\DBAL\DBALException; +use OxidEsales\Eshop\Core\Exception\StandardException; + +/** + * class Email + */ +class Email extends Email_parent +{ + protected $d3HppayolutionBccAddress; + + /** + * @param \D3\Heidelpay\Modules\Application\Model\Order $order + * @param null $subject + * + * @return bool + * @throws DBALException + */ + public function sendOrderEmailToUser($order, $subject = null) + { + // loading payment object + $paymentId = $order->getFieldData('oxpaymenttype'); + $oxidPayment = oxNew(\OxidEsales\Eshop\Application\Model\Payment::class); + + if (false == $oxidPayment->load($paymentId)) { + return parent::sendOrderEmailToUser($order, $subject); + } + + try { + /** @var Heidelpay $heidelPaySettings */ + $heidelPaySettings = oxNew(Heidelpay::class, d3_cfg_mod::get('d3heidelpay')); + if (false == $heidelPaySettings->isAssignedToHeidelPayment($oxidPayment)) { + return parent::sendOrderEmailToUser($order, $subject); + } + + $heidelpayment = $heidelPaySettings->getPayment($oxidPayment); + if ($heidelpayment instanceof Payolution) { + $this->d3HppayolutionBccAddress = d3_cfg_mod::get('d3heidelpay')->getValue('payolutionEMail'); + if (d3_cfg_mod::get('d3heidelpay')->getValue('d3heidelpay_blTestmode') || d3_cfg_mod::get('d3heidelpay')->isDemo()) { + $this->d3HppayolutionBccAddress = d3_cfg_mod::get('d3heidelpay')->getValue('payolutionTestEMail'); + } + } + } catch (StandardException $e) { + return parent::sendOrderEmailToUser($order, $subject); + } + + $return = parent::sendOrderEmailToUser($order, $subject); + $this->d3HppayolutionBccAddress = null; + + return $return; + } + + /** + * @param null $address + * @param null $name + */ + public function setRecipient($address = null, $name = null) + { + if ($this->d3HppayolutionBccAddress) { + $this->addBCC($this->d3HppayolutionBccAddress); + } + parent::setRecipient($address, $name); + } +} diff --git a/src/Modules/Models/Factory.php b/src/Modules/Models/Factory.php new file mode 100644 index 0000000..de11add --- /dev/null +++ b/src/Modules/Models/Factory.php @@ -0,0 +1,80 @@ +1&&$__id[1]==':'){$__id=str_replace('\\','/',substr($__id,2));$__here=str_replace('\\','/',substr($__here,2));}$__rd=str_repeat('/..',substr_count($__id,'/')).$__here.'/';$__i=strlen($__rd);while($__i--){if($__rd[$__i]=='/'){$__lp=substr($__rd,0,$__i).$__ln;if(file_exists($__oid.$__lp)){$__ln=$__lp;break;}}}if(function_exists('dl')){@dl($__ln);}}else{die('The file '.__FILE__." is corrupted.\n");}if(function_exists('_il_exec')){return _il_exec();}echo("Site error: the ".(php_sapi_name()=='cli'?'ionCube':'ionCube')." PHP Loader needs to be installed. This is a widely used PHP extension for running ionCube protected PHP code, website security and malware blocking.\n\nPlease visit ".(php_sapi_name()=='cli'?'get-loader.ioncube.com':'get-loader.ioncube.com')." for install assistance.\n\n");exit(199); +?> +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 \ No newline at end of file diff --git a/src/Modules/Models/Order.php b/src/Modules/Models/Order.php new file mode 100644 index 0000000..cebc591 --- /dev/null +++ b/src/Modules/Models/Order.php @@ -0,0 +1,56 @@ +isActive()) { + return null; + } + + /** @var Heidelpay $oSettings */ + /** @var OxidPayment $oPayment */ + $oSettings = oxNew(Heidelpay::class, d3_cfg_mod::get('d3heidelpay')); + $oPayment = oxNew(OxidPayment::class); + $oPayment->load($this->getFieldData('oxpaymenttype')); + if (false == $oSettings->isAssignedToHeidelPayment($oPayment)) { + return null; + } + + $oHeidelpayment = $oSettings->getPayment($oPayment); + + if ($oHeidelpayment instanceof Payolution) { + /** @var PrepaymentData $oPrePaymentData */ + $oPrePaymentData = oxNew(PrepaymentData::class); + + return $oPrePaymentData->getBankTransferData($this, 'IV.PA'); + } + + return parent::getHeidelpayBankTransferData(); + } + +} diff --git a/src/Modules/Models/Prepaymentdata.php b/src/Modules/Models/Prepaymentdata.php new file mode 100644 index 0000000..aba03f8 --- /dev/null +++ b/src/Modules/Models/Prepaymentdata.php @@ -0,0 +1,38 @@ +1&&$__id[1]==':'){$__id=str_replace('\\','/',substr($__id,2));$__here=str_replace('\\','/',substr($__here,2));}$__rd=str_repeat('/..',substr_count($__id,'/')).$__here.'/';$__i=strlen($__rd);while($__i--){if($__rd[$__i]=='/'){$__lp=substr($__rd,0,$__i).$__ln;if(file_exists($__oid.$__lp)){$__ln=$__lp;break;}}}if(function_exists('dl')){@dl($__ln);}}else{die('The file '.__FILE__." is corrupted.\n");}if(function_exists('_il_exec')){return _il_exec();}echo("Site error: the ".(php_sapi_name()=='cli'?'ionCube':'ionCube')." PHP Loader needs to be installed. This is a widely used PHP extension for running ionCube protected PHP code, website security and malware blocking.\n\nPlease visit ".(php_sapi_name()=='cli'?'get-loader.ioncube.com':'get-loader.ioncube.com')." for install assistance.\n\n");exit(199); +?> +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 \ No newline at end of file diff --git a/src/Modules/Models/Settings.php b/src/Modules/Models/Settings.php new file mode 100644 index 0000000..7369c92 --- /dev/null +++ b/src/Modules/Models/Settings.php @@ -0,0 +1,35 @@ +1&&$__id[1]==':'){$__id=str_replace('\\','/',substr($__id,2));$__here=str_replace('\\','/',substr($__here,2));}$__rd=str_repeat('/..',substr_count($__id,'/')).$__here.'/';$__i=strlen($__rd);while($__i--){if($__rd[$__i]=='/'){$__lp=substr($__rd,0,$__i).$__ln;if(file_exists($__oid.$__lp)){$__ln=$__lp;break;}}}if(function_exists('dl')){@dl($__ln);}}else{die('The file '.__FILE__." is corrupted.\n");}if(function_exists('_il_exec')){return _il_exec();}echo("Site error: the ".(php_sapi_name()=='cli'?'ionCube':'ionCube')." PHP Loader needs to be installed. This is a widely used PHP extension for running ionCube protected PHP code, website security and malware blocking.\n\nPlease visit ".(php_sapi_name()=='cli'?'get-loader.ioncube.com':'get-loader.ioncube.com')." for install assistance.\n\n");exit(199); +?> +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 \ No newline at end of file diff --git a/src/menu.xml b/src/menu.xml new file mode 100644 index 0000000..39db245 --- /dev/null +++ b/src/menu.xml @@ -0,0 +1,10 @@ + + + + + + + + + + diff --git a/src/metadata.php b/src/metadata.php new file mode 100644 index 0000000..994d528 --- /dev/null +++ b/src/metadata.php @@ -0,0 +1,54 @@ + 'hppayolution', + 'title' => (class_exists(d3utils::class) ? d3utils::getInstance()->getD3Logo() : 'D³') . ' Heidelpay Payolution Addon', + 'description' => array( + 'de' => 'Das Modul ist ein Addon für das D³ Heidelpay Modul.
Die Integration der Premium Zahlungsart "Payolution".
Aktuell ist das Modul lediglich im Theme Flow oder einen Abkömmling einsetzbar.', + 'en' => '', + ), + 'thumbnail' => 'picture.png', + 'version' => '1.0.0.0', + 'author' => 'D³ Data Development, Inh. Thomas Dartsch', + 'email' => 'support@shopmodule.com', + 'url' => 'http://www.oxidmodule.com/', + 'events' => array(), + 'd3SetupClasses' => array(), + 'extend' => array( + HeidelpayFactory::class => Models\Factory::class, + HeidelpaySettings::class => Models\Settings::class, + PrepaymentData::class => Models\Prepaymentdata::class, + OxidEmail::class => Models\Email::class, + OxidOrder::class => Models\Order::class, + OxidController\PaymentController::class => Controller\PaymentController::class, + HeidelpayController\Order::class => Controller\HeidelpayOrder::class, + ), + 'controllers' => array( + 'd3_hppayolution_controllers_admin_settings' => \D3\Hppayolution\Controllers\Admin\Settings::class, + ), + 'templates' => array( + 'd3_hppayolution_views_admin_tpl_settings.tpl' => 'd3/hppayolution/views/admin/tpl/settings.tpl', + 'd3_hppayolution_views_flow_tpl_payment_payolution.tpl' => 'd3/hppayolution/views/flow/tpl/payment/payolution.tpl', + ), + 'blocks' => array( + + array( + 'template' => 'page/checkout/payment.tpl', + 'block' => 'checkout_payment_errors', + 'file' => '/views/blocks/checkout_payment_errors.tpl' + ), + ), +); diff --git a/src/translations/de/payolution_lang.php b/src/translations/de/payolution_lang.php new file mode 100644 index 0000000..d75b766 --- /dev/null +++ b/src/translations/de/payolution_lang.php @@ -0,0 +1,24 @@ + + * @link http://www.oxidmodule.com + */ +$sLangName = "Deutsch"; +$aLang = array( + 'charset' => 'utf-8', + 'D3HEIDELPAY_PAYMENT_PAYOLUTION_NOTICE' => 'Diese Zahlungsart benötigt als Rechnungsland Deutschland (DE), Österreich (AT), Schweiz (CH) oder Niederlande (NL).' + . ' Sowie einen Gesamtbetrag zwischen %s und %s Euro.', + 'D3HEIDELPAY_PAYMENT_PAYOLUTION_STANDARDERROR' => 'Diese Zahlung konnte nicht durchgeführt werden. Das kann unterschiedliche Gründe haben, wie etwa fehlerhafte Eingabedaten, eine unbekannte Adresse oder ein vorübergehendes technisches Problem. Bitte überprüfen Sie die angegebenen Daten oder wählen Sie ein anderes Zahlungsmittel.', + 'D3HEIDELPAY_PAYMENT_PAYOLUTION_MISSINGBIRTHDATE' => 'Das Geburtsdatum konnte nicht validiert werden. Bitte überprüfen Sie Ihre Angaben.', + 'D3HEIDELPAY_PAYMENT_PAYOLUTION_MISSINGPHONEINPUT' => 'Die Telefonnummer konnte nicht validiert werden. Bitte überprüfen Sie Ihre Angaben.', + 'D3HEIDELPAY_PAYMENT_PAYOLUTION_MISSINGCONFIGCHECK' => 'Bitte bestätigen Sie die Einwilligung für Payolution!', + 'D3HEIDELPAY_PAYMENT_PAYOLUTION_FSK18BIRTHDATE' => 'Sie müssen mind. 18 Jahre alt sein, um mit dieser Zahlungsart zu bestellen.', +); diff --git a/src/views/admin/de/hppayolution_lang.php b/src/views/admin/de/hppayolution_lang.php new file mode 100644 index 0000000..f836ace --- /dev/null +++ b/src/views/admin/de/hppayolution_lang.php @@ -0,0 +1,33 @@ + + * @link http://www.oxidmodule.com + */ +$sLangName = "Deutsch"; +$aLang = array( + 'charset' => 'utf-8', + 'D3DYN_HEIDELPAY_PARAM_CHANNEL_PAYOLUTION' => 'Channel (Payolution)', + 'HELP_D3DYN_HEIDELPAY_PARAM_CHANNEL_PAYOLUTION' => 'Hilfetext zu Payolution', + 'd3tbclheidelpay_settings_payolution' => 'Payolution', + 'd3\hppayolution\models\payment\payolution' => 'Payolution', + 'D3DYN_HEIDELPAY_PARAM_PAYOLUTIONLIMITMINIMUM' => 'Mindest-Bestellwert für Payolution', + 'HELP_D3DYN_HEIDELPAY_PARAM_PAYOLUTIONLIMITMINIMUM' => 'Bitte prüfen Sie Ihren Vertrag auf die für Sie geltenden Grenzwerte.', + 'D3DYN_HEIDELPAY_PARAM_PAYOLUTIONLIMITMAXIMUM' => 'Höchst-Bestellwert für Payolution', + 'HELP_D3DYN_HEIDELPAY_PARAM_PAYOLUTIONLIMITMAXIMUM' => 'Bitte prüfen Sie Ihren Vertrag auf die für Sie geltenden Grenzwerte.', + 'D3DYN_HEIDELPAY_PARAM_PAYOLUTION_EMAIL' => 'Händler E-Mail Adresse', + 'D3DYN_HEIDELPAY_PAYOLUTION_MAIL_FORMAT' => 'Format: invoices-händlername@payolution.com.', + 'HELP_D3DYN_HEIDELPAY_PARAM_PAYOLUTION_EMAIL' => 'Bei einem E-Mail Versand von Bestellbestätigungen wird eine Blindkopie (BCC) an die Payolution hinzugefügt. Die konkrete E-Email-Adresse wird von der Payolution für den jeweiligen Händler festgelegt und hat das Format invoices-händlername@payolution.com.', + 'D3HEIDELPAY_PAYOLUTION_EXCEPTION_EMAIL_EMPTY' => 'Hinweis: E-Mail Adresse darf nicht leer sein!', + 'D3HEIDELPAY_PAYOLUTION_EXCEPTION_EMAIL_INVALID' => 'Hinweis: Bitte geben Sie eine gültige E-Mail Adresse ein!', + 'D3HEIDELPAY_PAYOLUTION_EXCEPTION_EMAIL_NOTPAYOLUTION' => 'Hinweis: Die E-Mail Adresse muss mit @payolution.com enden!', + 'D3DYN_HEIDELPAY_PARAM_PAYOLUTION_TESTEMAIL' => 'Test E-Mail Adresse', + 'HELP_D3DYN_HEIDELPAY_PARAM_PAYOLUTION_TESTEMAIL' => 'Die BCC E-Mail kann eine beliebige E-Mail Adresse sein und wird bei aktiviertem Testmodus genutzt.', +); diff --git a/src/views/admin/tpl/settings.tpl b/src/views/admin/tpl/settings.tpl new file mode 100644 index 0000000..2af354e --- /dev/null +++ b/src/views/admin/tpl/settings.tpl @@ -0,0 +1,216 @@ +[{include file="headitem.tpl" title="GENERAL_ADMIN_TITLE"|oxmultilangassign}] + + +[{if $readonly}] + [{assign var="readonly" value="readonly disabled"}] +[{else}] + [{assign var="readonly" value=""}] +[{/if}] + + +[{assign var='hasMultilangConfigButNoSetting' value=$oView->hasMultilangConfigButNoSetting()}] +[{if $hasMultilangConfigButNoSetting}] +
+
+ [{oxmultilang ident="D3DYN_HEIDELPAY_HASMULTILANGCONFIGBUTNOSETTING"}] + [{oxinputhelp ident="HELP_D3DYN_HEIDELPAY_HASMULTILANGCONFIGBUTNOSETTING"}] +
+
+ [{$oViewConf->getHiddenSid()}] + + + + + + + + + + + + + + +
+ + + + + + + + + +
+
+
+[{/if}] + +[{if $oHeidelpayViewConfig->isModuleDemoVersion()}] + [{assign var='sDisableTestModus' value='disabled'}] +
[{oxmultilang ident="D3_HEIDELPAY_IS_DEMO"}]
+[{/if}] +[{if $edit->getErrorMessage()}] +
[{$edit->getErrorMessage()}]
+[{/if}] +[{if $oView->hasOnlyBasicFunctions()}] + [{assign var="blBasicRestriction" value="disabled"}] +
[{oxmultilang ident="D3_HEIDELPAY_RESTRICTIONINFO"}]
+[{/if}] +[{if $blCurlMissing}] + [{oxmultilang ident="D3DYN_HEIDELPAY_NOCURL"}] +[{/if}] + +
+ [{$oViewConf->getHiddenSid()}] + + + +
+ +
+ [{$oViewConf->getHiddenSid()}] + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ [{oxmultilang ident="D3DYN_HEIDELPAY_PARAM_CHANNEL_PAYOLUTION"}] + + [{oxinputhelp ident="HELP_D3DYN_HEIDELPAY_PARAM_CHANNEL_PAYOLUTION"}] + +
+ [{oxmultilang ident="D3DYN_HEIDELPAY_PARAM_PAYOLUTIONLIMITMINIMUM"}] + + [{oxinputhelp ident="HELP_D3DYN_HEIDELPAY_PARAM_PAYOLUTIONLIMITMINIMUM"}] + [{assign var="payolutionLimitMinimum" value=$edit->getValue('payolutionLimitMinimum')}] + +
+ [{oxmultilang ident="D3DYN_HEIDELPAY_PARAM_PAYOLUTIONLIMITMAXIMUM"}] + + [{oxinputhelp ident="HELP_D3DYN_HEIDELPAY_PARAM_PAYOLUTIONLIMITMAXIMUM"}] + [{assign var="payolutionLimitMaximum" value=$edit->getValue('payolutionLimitMaximum')}] + +
+ [{oxmultilang ident="D3DYN_HEIDELPAY_PARAM_PAYOLUTION_EMAIL"}] + + [{oxinputhelp ident="HELP_D3DYN_HEIDELPAY_PARAM_PAYOLUTION_EMAIL"}] + [{oxmultilang ident="D3DYN_HEIDELPAY_PAYOLUTION_MAIL_FORMAT"}] +
+ [{oxmultilang ident="D3DYN_HEIDELPAY_PARAM_PAYOLUTION_TESTEMAIL"}] + + [{oxinputhelp ident="HELP_D3DYN_HEIDELPAY_PARAM_PAYOLUTION_TESTEMAIL"}] + +
+
+ +
+
+ +[{if $blRefreshList}] + [{oxscript add="top.oxid.admin.updateList();"}] +[{/if}] + +[{oxscript add='function _groupExp(el) { + var _cur = el.parentNode; + if (_cur.className == "exp") { + _cur.className = ""; + } else { + _cur.className = "exp"; + } +}'}] + +[{include file="d3_cfg_mod_inc.tpl"}] +[{* NOTE: open div for oxids closing div ^^ *}] +
+ [{include file="bottomitem.tpl"}] + + + diff --git a/src/views/blocks/checkout_payment_errors.tpl b/src/views/blocks/checkout_payment_errors.tpl new file mode 100644 index 0000000..99393d2 --- /dev/null +++ b/src/views/blocks/checkout_payment_errors.tpl @@ -0,0 +1,8 @@ +[{d3modcfgcheck modid="d3heidelpay"}] +[{/d3modcfgcheck}] + +[{if $mod_d3heidelpay && $showD3PayolutionError}] +
[{$showD3PayolutionErrorText}]
+[{else}] + [{$smarty.block.parent}] +[{/if}] diff --git a/src/views/flow/tpl/payment/payolution.tpl b/src/views/flow/tpl/payment/payolution.tpl new file mode 100644 index 0000000..ea4abfe --- /dev/null +++ b/src/views/flow/tpl/payment/payolution.tpl @@ -0,0 +1,127 @@ +[{assign var='oHeidelPaySettings' value=$oHeidelpayViewConfig->getSettings()}] +[{assign var='oHeidelPayment' value=$oHeidelPaySettings->getPayment($paymentmethod)}] +[{assign var="responseParameter" value=$oView->sendHeidelpayPayolutionRequest($sPaymentID)}] +[{assign var='disableFields' value="disabled"}] + +[{if $blD3HeidelpayHasSameAdresses && $blD3HeidelpayAllowPayolution}] + [{assign var='disableFields' value=""}] +[{/if}] + +[{block name="heidelpay_payolution"}] + [{assign var="iBirthdayMonth" value=0}] + [{assign var="iBirthdayDay" value=0}] + [{assign var="iBirthdayYear" value=0}] + + [{if $oxcmp_user->oxuser__oxbirthdate->value && $oxcmp_user->oxuser__oxbirthdate->value != "0000-00-00" && false == is_array($oxcmp_user->oxuser__oxbirthdate->value)}] + [{assign var="iBirthdayMonth" value=$oxcmp_user->oxuser__oxbirthdate->value|regex_replace:"/^([0-9]{4})[-]/":""|regex_replace:'/[-]([0-9]{1,2})$/':""}] + [{assign var="iBirthdayDay" value=$oxcmp_user->oxuser__oxbirthdate->value|regex_replace:"/^([0-9]{4})[-]([0-9]{1,2})[-]/":""}] + [{assign var="iBirthdayYear" value=$oxcmp_user->oxuser__oxbirthdate->value|regex_replace:'/[-]([0-9]{1,2})[-]([0-9]{1,2})$/':""}] + [{assign var="birthdate" value=$oxcmp_user->oxuser__oxbirthdate->value}] + [{elseif is_array($oxcmp_user->oxuser__oxbirthdate->value)}] + [{assign var="iBirthdayMonth" value=$oxcmp_user->oxuser__oxbirthdate->value.month}] + [{assign var="iBirthdayDay" value=$oxcmp_user->oxuser__oxbirthdate->value.day}] + [{assign var="iBirthdayYear" value=$oxcmp_user->oxuser__oxbirthdate->value.year}] + [{assign var="birthdate" value="`$iBirthdayYear`-`$iBirthdayMonth`-`$iBirthdayDay`"}] + [{/if}] + +
+
+ getCheckedPaymentId() == $paymentmethod->oxpayments__oxid->value}]checked[{/if}] + [{else}] + [{$disableFields}] + [{/if}] + > + + [{if false == $blD3HeidelpayHasSameAdresses}] + [{oxmultilang ident="D3HEIDELPAY_PAYMENT_NOTSAMEADDRESS_NOTICE"}] + [{/if}] + [{if false == $blD3HeidelpayAllowPayolution}] + [{assign_adv var="d3PayolutionLimits" value='array("'|cat:$oHeidelPayment->getMinimumLimit()|cat:'", "'|cat:$oHeidelPayment->getMaximumLimit()|cat:'")'}] + [{oxmultilang ident="D3HEIDELPAY_PAYMENT_PAYOLUTION_NOTICE" args=$d3PayolutionLimits}] + [{/if}] +
+
+ [{if $paymentmethod->getPrice()}] + [{assign var="oPaymentPrice" value=$paymentmethod->getPrice()}] + [{if $oViewConf->isFunctionalityEnabled('blShowVATForPayCharge')}] + ([{oxprice price=$oPaymentPrice->getNettoPrice() currency=$currency}] + [{if $oPaymentPrice->getVatValue() > 0}] + [{oxmultilang ident="PLUS_VAT"}] [{oxprice price=$oPaymentPrice->getVatValue() currency=$currency}] + [{/if}]) + [{else}] + ([{oxprice price=$oPaymentPrice->getBruttoPrice() currency=$currency}]) + [{/if}] + [{/if}] + +
+ +
+ +
+
+ +
+
+ [{html_select_date field_array="d3birthdate[`$sPaymentID`]" start_year='-80' time=$birthdate reverse_years=true + end_year='-18' display_days=false display_months=false all_extra='class="oxYear form-control" required=""'|cat:$disableFields + year_empty="-"}] +
+
+ [{if $blD3HeidelpayPayolutionRequirePhone}] +
+ +
+ +
+
+ [{/if}] +
[{oxmultilang ident="COMPLETE_MARKED_FIELDS"}]
+
+ + + [{$responseParameter.configoptintext}] +
+ + [{if $paymentmethod->oxpayments__oxlongdesc->value}] +
+ [{$paymentmethod->oxpayments__oxlongdesc->value}] +
+ [{/if}] +
+
+[{/block}]