From 479d478172c63f3d0d9f06c83e9f61f82fb0bcb5 Mon Sep 17 00:00:00 2001 From: Ronja Wann Date: Thu, 2 Mar 2017 15:23:00 +0100 Subject: [PATCH] initial upload --- .gitignore | 1 + LICENSE.txt | 171 +++ README.md | 26 + admin/includes/modules/export/hpbs_check.php | 221 +++ admin/includes/modules/export/hpiv_check.php | 221 +++ admin/includes/modules/export/hppp_check.php | 221 +++ heidelpay_3dsecure.php | 24 + heidelpay_3dsecure_return.php | 43 + heidelpay_after_register.php | 24 + heidelpay_checkout_iframe.php | 30 + heidelpay_gm_checkout_iframe.php | 27 + heidelpay_iframe.php | 25 + heidelpay_redirect.php | 80 ++ heidelpay_reg_style.css | 129 ++ heidelpay_response.php | 139 ++ heidelpay_style.css | 144 ++ heidelpay_success.inc.php | 40 + heidelpay_success.php | 103 ++ images/BarPay.jpg | Bin 0 -> 50829 bytes images/ladebalken.gif | Bin 0 -> 5750 bytes includes/classes/class.heidelpay.php | 1276 ++++++++++++++++++ includes/modules/payment/hpbs.php | 341 +++++ includes/modules/payment/hpcc.php | 372 +++++ includes/modules/payment/hpdc.php | 367 +++++ includes/modules/payment/hpdd.php | 380 ++++++ includes/modules/payment/hpeps.php | 267 ++++ includes/modules/payment/hpgp.php | 309 +++++ includes/modules/payment/hpidl.php | 296 ++++ includes/modules/payment/hpiv.php | 267 ++++ includes/modules/payment/hppp.php | 267 ++++ includes/modules/payment/hpppal.php | 267 ++++ includes/modules/payment/hpsu.php | 304 +++++ lang/english/modules/payment/hpbp.php | 74 + lang/english/modules/payment/hpbs.php | 88 ++ lang/english/modules/payment/hpcc.php | 78 ++ lang/english/modules/payment/hpdc.php | 78 ++ lang/english/modules/payment/hpdd.php | 87 ++ lang/english/modules/payment/hpeps.php | 69 + lang/english/modules/payment/hperror.php | 19 + lang/english/modules/payment/hpgp.php | 75 + lang/english/modules/payment/hpidl.php | 74 + lang/english/modules/payment/hpiv.php | 86 ++ lang/english/modules/payment/hpmk.php | 69 + lang/english/modules/payment/hppp.php | 86 ++ lang/english/modules/payment/hpppal.php | 69 + lang/english/modules/payment/hpsu.php | 75 + lang/german/modules/payment/hpbp.php | 75 + lang/german/modules/payment/hpbs.php | 89 ++ lang/german/modules/payment/hpcc.php | 77 ++ lang/german/modules/payment/hpdc.php | 80 ++ lang/german/modules/payment/hpdd.php | 87 ++ lang/german/modules/payment/hpeps.php | 69 + lang/german/modules/payment/hperror.php | 19 + lang/german/modules/payment/hpgp.php | 75 + lang/german/modules/payment/hpidl.php | 74 + lang/german/modules/payment/hpiv.php | 85 ++ lang/german/modules/payment/hppp.php | 85 ++ lang/german/modules/payment/hpppal.php | 69 + lang/german/modules/payment/hpsu.php | 76 ++ 59 files changed, 8369 insertions(+) create mode 100644 .gitignore create mode 100644 LICENSE.txt create mode 100644 README.md create mode 100644 admin/includes/modules/export/hpbs_check.php create mode 100644 admin/includes/modules/export/hpiv_check.php create mode 100644 admin/includes/modules/export/hppp_check.php create mode 100644 heidelpay_3dsecure.php create mode 100644 heidelpay_3dsecure_return.php create mode 100644 heidelpay_after_register.php create mode 100644 heidelpay_checkout_iframe.php create mode 100644 heidelpay_gm_checkout_iframe.php create mode 100644 heidelpay_iframe.php create mode 100644 heidelpay_redirect.php create mode 100644 heidelpay_reg_style.css create mode 100644 heidelpay_response.php create mode 100644 heidelpay_style.css create mode 100644 heidelpay_success.inc.php create mode 100644 heidelpay_success.php create mode 100644 images/BarPay.jpg create mode 100644 images/ladebalken.gif create mode 100644 includes/classes/class.heidelpay.php create mode 100644 includes/modules/payment/hpbs.php create mode 100644 includes/modules/payment/hpcc.php create mode 100644 includes/modules/payment/hpdc.php create mode 100644 includes/modules/payment/hpdd.php create mode 100644 includes/modules/payment/hpeps.php create mode 100644 includes/modules/payment/hpgp.php create mode 100644 includes/modules/payment/hpidl.php create mode 100644 includes/modules/payment/hpiv.php create mode 100644 includes/modules/payment/hppp.php create mode 100644 includes/modules/payment/hpppal.php create mode 100644 includes/modules/payment/hpsu.php create mode 100644 lang/english/modules/payment/hpbp.php create mode 100644 lang/english/modules/payment/hpbs.php create mode 100644 lang/english/modules/payment/hpcc.php create mode 100644 lang/english/modules/payment/hpdc.php create mode 100644 lang/english/modules/payment/hpdd.php create mode 100644 lang/english/modules/payment/hpeps.php create mode 100644 lang/english/modules/payment/hperror.php create mode 100644 lang/english/modules/payment/hpgp.php create mode 100644 lang/english/modules/payment/hpidl.php create mode 100644 lang/english/modules/payment/hpiv.php create mode 100644 lang/english/modules/payment/hpmk.php create mode 100644 lang/english/modules/payment/hppp.php create mode 100644 lang/english/modules/payment/hpppal.php create mode 100644 lang/english/modules/payment/hpsu.php create mode 100644 lang/german/modules/payment/hpbp.php create mode 100644 lang/german/modules/payment/hpbs.php create mode 100644 lang/german/modules/payment/hpcc.php create mode 100644 lang/german/modules/payment/hpdc.php create mode 100644 lang/german/modules/payment/hpdd.php create mode 100644 lang/german/modules/payment/hpeps.php create mode 100644 lang/german/modules/payment/hperror.php create mode 100644 lang/german/modules/payment/hpgp.php create mode 100644 lang/german/modules/payment/hpidl.php create mode 100644 lang/german/modules/payment/hpiv.php create mode 100644 lang/german/modules/payment/hppp.php create mode 100644 lang/german/modules/payment/hpppal.php create mode 100644 lang/german/modules/payment/hpsu.php diff --git a/.gitignore b/.gitignore new file mode 100644 index 0000000..a09c56d --- /dev/null +++ b/.gitignore @@ -0,0 +1 @@ +/.idea diff --git a/LICENSE.txt b/LICENSE.txt new file mode 100644 index 0000000..ae1b3bd --- /dev/null +++ b/LICENSE.txt @@ -0,0 +1,171 @@ + +==== ENGLISH VERSION BELOW ==== + +Lizenzvereinbarung Plug-in + +I. Präambel + + Diese Lizenzvereinbarung Plug-in (nachfolgend – „Vereinbarung“) bildet einen Vertrag zwischen dem Nutzer des Plug-ins und der Heidelberger Payment GmbH (nachfolgend „heidelpay“). + + Das Plug-in von heidelpay ist ein Software-Programm, welches die Schnittstelle zum Payment-System von heidelpay mit einer Anwendung (zum Beispiel: Shopsystem, Warenwirtschaft, Debitorenmanagement etc.) verbindet. Das Plug-in dient dem Datenaustausch zwischen dem Payment-System von heidelpay und der Anwendung. Das Plug-in erweitert den Funktionsumfang der Anwendung hinsichtlich der mit heidelpay gesondert vertraglich vereinbarten Leistungen. + + Diese Vereinbarung regelt die Bestimmungen unter denen heidelpay die Nutzung des zur Verfügung gestellten Plug-in gestattet. + + Dies vorausgeschickt, treffen der Nutzer und heidelpay die folgende Vereinbarung: + +II. Begriffsbestimmungen + + Object Code Die maschinenlesbare, übersetzte Form des Plug-ins. + + Plug-in Das unter dieser Lizenzvereinbarung angebotene Programm, das von heidelpay nach den Bestim-mungen dieser Lizenzvereinbarung verbreitet oder öffentlich zugänglich gemacht hat. + + Source Code Die für Menschen lesbare, in Programmiersprache dargestellte Form des Plug-in. + + Verändern Jede Erweiterung, Kürzung und Bearbeitung des Plug-ins, insbesondere Weiterentwicklungen + + Verbreiten Die öffentliche Weitergabe des Plug-ins, biespielsweise das Bereitstellen zum Download auf öffent-lich zugänglichen Internetseiten. + +III. Geltenden Bestimmungen + + Im Falle eines zwischen dem Nutzer und heidelpay abgeschlossenen Händlervertrages für die Abwicklung der dort bestimmten Leistungen, gilt der Händlervertrag ab Vertragsschluss und gilt in diesem Fall zusätzlich zu dieser Ver-einbarung. Im Falle des Widerspruchs zwischen dieser Vereinbarung und dem Händlervertrag hat der Händlerver-trag Vorrang. + +IV. Lizenz + + 1. Diese Vereinbarung räumt nur solchen Nutzern Nutzungsrechte ein, die Unternehmer im Sinne des BGB sind. Eine Nutzung durch Verbraucher ist nicht gestattet. + 2. Die von heidelpay im Rahmen dieser Vereinbarung gewährte Lizenz, ist für den Nutzer unentgeltlich. + 3. Unter der Voraussetzung der Einhaltung der Bestimmungen dieser Vereinbarung, erteilt heidelpay dem Nut-zer das zeitlich unbefristete, widerrufliche, räumlich auf Europa begrenzte Recht, das Plug-in zu verändern, unverändert oder in veränderter Form zu dem in der Präambel dargestellten Zweck für geschäftliche Zwecke zu nutzen, d.h. das Plug-in zu speichern, ablaufen zu lassen, zu vervielfältigen, zu verbreiten und öffentlich zugänglich zu machen. + 4. Heidelpay kann neue Versionen/Updates des Plug-ins anbieten, die zum Beispiel Fehlerbehebungen und neue Funktionalitäten beinhalten können. Heidelpay empfiehlt daher die regelmässige Überprüfung der Ak-tualität des Plug-in, dies wird auf der Seite http://dev.heidelpay.de veröffentlicht. Auch diese neuen Versio-nen/Updates unterliegen den Bedingungen dieser Vereinbarung. + +V. Beschränkungen + + 1. Durch diese Vereinbarung erfolgt keine Übertragung jedweder Schutzrechte von heidelpay. + 2. Das Recht, das Plug-in zu verändern und diese veränderte Version zu vervielfältigen, zu verbreiten oder öf-fentlich zugänglich zu machen, setzt voraus, dass + a. die im Source Code bzw. Object Code enthaltenen Hinweise auf diese Lizenz erhalten bleiben; und + b. alle Hinweise und Vermerke im Source Code bzw. Object Code, hinsichtlich des Urhebers des Plug-in un-verändert bleiben; und + c. ein deutlicher Hinweis erteilt wird, dass es sich um eine veränderte Version des Plug-in handelt, eine Do-kumentation darüber, welche Teile verändert wurden, mitgeliefert wird; und + d. Heidelpay für sämtliche aus der Veränderung resultierende Ansprüche freigestellt wird und zudem das veränderte Plug-in mit einer Klarstellung versehen wird, dass heidelpay für das Plug-in in der veränderten Form keine Haftung übernimmt; und + e. das veränderte Plug-in unter einer Lizenzvereinbarung zur Verfügung gestellt wird, die das Interesse von heidelpay entsprechend den Bedingungen dieser Vereinbarung schützt; und + f. die im Zusammenhang mit dem Plug-in angezeigten rechtlichen Hinweise nicht entfernt, verdeckt oder abgeändert werden. + 3. Der Nutzer sichert zu, dass er bei der Nutzung des Plug-in von heidelpay die geltenden nationalen und inter-nationalen Gesetze einhält; + 4. Der Nutzer sichert zu, heidelpay unverzüglich zu informieren, wenn Dritte ihm gegenüber Ansprüche im Zu-sammenhang mit dem Plug-in anmelden und/oder behaupten, das Plug-in verletze Rechte Dritter, und hei-delpay alle Dokumente und/oder Informationen zur Verfügung zu stellen, die der Nutzer im Zusammenhang mit einem solchen Anspruch erhält. + +VI. Datenschutz + + Es gelten die Datenschutzbestimmugen, abrufbar unter https://dev.heidelpay.de/datenschutzerklaerung/ . + +VII. FREISTELLUNG + + Der Nutzer erklärt sich einverstanden, heidelpay, deren Tochtergesellschaften, angeschlossenen Unternehmen, Geschäftsführer, leitenden Angestellten, Mitarbeiter, Vertreter, Geschäftspartner und Lizenzgeber gegen alle An-sprüche oder Forderungen Dritter, einschließlich Gerichtskosten, angemessener Anwaltsgebühren und Sachver-ständigenkosten, freizustellen, die entstehen weil: + (a) die Nutzung des Plug-ins von heidelpay unter Verletzung der Bestimmungen dieser Vereinbarung erfolgt; oder + (b) der Nutzer gegen geltende Gesetze oder aufsichtsrechtliche Bestimmungen verstösst oder + (c) der Nutzer seine Identität in einer falschen, betrügerischen, böswilligen oder unzutreffenden Weise dar-stellt. + +VIII. TECHNISCHER SUPPORT + + Heidelpay kann dem Nutzer, welcher das Plug-in in unverändertem Zustand nutzt, Support zur Verfügung stellen. Hierzu bedarf es einer gesonderten Vereinbarung zwischen dem Nutzer und heidelpay. + +IX.LAUFZEIT UND KÜNDIGUNG + + 1. Diese Vereinbarung kann von den Parteien jederzeit fristlos gekündigt werden. + 2. Es steht heidelpay frei, das Downloadangebot jederzeit einzustellen. + 3. Alle Rechte des Nutzers aus dieser Vereinbarung erlöschen unmittelbar, sobald der Nutzer wesentliche Best-immungen dieser Vereinbarung verletzt. + 4. Sobald diese Vereinbarung beendet ist oder der Nutzer seine Rechte gemäss Ziffer 3 verliert, hat der Nutzer sämtliche Kopien des Plug-ins (und alle entsprechenden Sicherungen) zu löschen. + +X. HAFTUNG + + 1. Da die Lizenz unentgeltlich zur Verfügung gestellt wird, handelt es sich um einen Schenkungsvertrag, Daher haftet heidelpay für etwaige Schäden nur gem. § 524 BGB. + 2. Soweit ein Schaden - unmittelbar oder mittelbar - auf einem Datenverlust beruht und heidelpay nach Ziffer 1 hierfür haftbar gemacht werden kann, ist die Haftung von heidelpay auf den Wiederherstellungsaufwand be-schränkt, der bei regelmäßiger gefahrentsprechender Datensicherung eingetreten wäre. + 3. Ansprüche auf Schadensersatz, ausgenommen solche aus einer vorsätzlichen oder grob fahrlässigen Pflicht-verletzung, einer Verletzung des Lebens, des Körpers, der Gesundheit, unerlaubter Handlung oder aus dem Produkthaftungsgesetz, verjähren spätestens in einem Jahr von dem Zeitpunkt an, an dem die geschädigte Partei von dem Schaden und den Umständen, aus denen sich die Anspruchsberechtigung ergibt, Kenntnis er-langt, ohne Rücksicht auf Kenntnis drei Jahre ab dem schädigenden Ereignis. Kürzere gesetzliche Verjäh-rungsfristen bleiben unberührt. + +XI. Schlussbestimmungen + + 1. Diese Vereinbarung unterliegt den Gesetzen der Bundesrepublik Deutschland unter Ausschluss des UN-Kaufrechts. Der ausschließliche Gerichtsstand ist das Landgericht Heidelberg. + 2. In einige Länder, inklusive der Vereinigten Staaten von Amerika, gelten Exportbeschränkungen. Das Plug-in kann solchen Beschränkungen unterliegen. Diese sind insbesondere zu beachten, als das Plug-in in andere Länder exportiert wird. Wenn der Nutzer das Plug-in exportiert, ist allein er für die Einhaltung der maßgebli-chen Regelungen verantwortlich. In jedem Fall ist es untersagt, das Plug-in in ein Land zu exportieren, wel-ches einem Embargo der Vereinigten Staaten von Amerika oder der Europäischen Union unterliegt, oder ei-ner Person zu überlassen, an die eine Lieferung nach U.S. amerikanischen oder europäischen Regelung un-tersagt ist. + 3. Diese Bestimmungen oder die Nutzung des Plug-ins begründet kein Joint Venture, keine Teilhaberschaft, kei-ne Beschäftigung mit heidelpay und keine Befugnis zur Vertretung von heidelpay. + 4. Die Bestimmungen der Abschnitte IV, V, VI, VII, X, XI. überdauern die Beendigung dieser Bestimmungen, gleich aus welchem Grund. + +==== ENGLISH VERSION ==== + +Plug-in Licence Agreement + +I. Introduction + + This Plug-in Licence Agreement (hereinafter 'Agreement') constitutes a contract between the plug-in user and Heidelberger Payment GmbH (hereinafter 'heidelpay'). + + The plug-in from heidelpay is a software programme which links the heidelpay payment system interface to an application (for example, shop system, merchandise management, debtor management etc.). The plug-in is used to exchange data between the heidelpay payment system and the application. The plug-in expands the range of features in the application with regard to the services agreed separately with heidelpay. + + This Agreement sets out the terms and conditions under which heidelpay permits the use of the plug-in provided. + + This having been said, the user and heidelpay agree the following: + +II. Definitions + + Object code Machine-readable, translated form of the plug-in. + + Plug-in Programme offered under this Licence Agreement, which heidelpay has distributed or made availa-ble in the public domain in accordance with the terms and conditions of this Licence Agreement. + + Source code Human-readable form of the programme presented in programming language. + + Modify Any upgrade, reduction, adaptation of the plug-in, in particular enhancements + + Distribute Public distribution of the plug-in, for example, making available for download on websites accessible to the general public. + +III. Applicable terms and conditions + + In the event that a merchant agreement has been reached between the user and heidelpay regarding the execu-tion of services defined therein, the merchant agreement shall apply from the respective date on which the agreement was reached and in this case shall apply in addition to this Agreement. In the event of a contradiction between this Agreement and the merchant agreement, the merchant agreement shall have priority. + +IV. Licence + + 1. This Agreement shall only grant rights of use to users who are entrepreneurs within the meaning of the Ger-man Civil Code (BGB). Use by consumers shall not be permitted. + 2. The licence granted by heidelpay under the terms of this Agreement shall be free of charge to the user. + 3. Subject to compliance with the terms and conditions set out in this Agreement, heidelpay shall grant the user a revocable right for an unlimited period and exclusively in Europe to modify the plug-in, use it for business purposes in unmodified or modified form for the purpose indicated in the introduction, i.e. to save the plug-in, run it, copy it, distribute it and make it accessible to the general public. + 4. heidelpay may offer new versions/updates of the plug-in which may contain bug fixes and new features, for example. heidelpay therefore recommends regular checking to ensure the plug-in is up-to-date. Details are published on the website at http://dev.heidelpay.de. Said new versions/updates shall also be subject to the terms and conditions in this Agreement. + +V. Restrictions + + 1. This Agreement shall not confer industrial property rights of any kind from heidelpay. + 2. The right to modify the plug-in and to copy, distribute or make such modified version available to the general public requires that + a. the references to this licence in the source code or object code remain intact; and + b. all references and notes in the source code or object code regarding the author of the plug-in remain unchanged; and + c. a clear indication is given that it is a modified version of the plug-in and documentation regarding the parts that have been modified is provided; and + d. heidelpay is exempted from any claims resulting from modification and clarification is also provided with the modified plug-in that heidelpay shall not accept any liability for the plug-in in its modified form; and + e. the modified plug-in is provided under a licence agreement, which protects heidelpay's interests in ac-cordance with the terms and conditions in this Agreement; and + f. the legal information indicated in connection with the plug-in are not removed, hidden or altered. + 3. The user guarantees compliance with applicable national and international legislation when using the plug-in from heidelpay; + 4. The user undertakes to inform heidelpay immediately if third parties file and/or assert claims against the user in connection with the plug-in, the plug-in infringes third party rights, and to provide heidelpay with all docu-mentation and/or information that the user receives in connection with such claims. + +VI. Data protection + + The data protection regulations, which are available from https://dev.heidelpay.de/datenschutzerklaerung/ shall apply. + +VII. INDEMNITY + + The user agrees to exempt heidelpay, its subsidiary companies, affiliated companies, managing directors, senior executives, employees, representatives, business partners and franchising companies from any claims or de-mands by third parties, including legal costs, reasonable solicitors' fees and experts' fees, which are incurred be-cause: + (a) use of the plug-in from heidelpay breaches the terms and conditions of this Agreement; or + (b) the user breaches applicable legislation or regulatory provisions or + (c) the user falsifies their identity or presents it in a malicious or inappropriate manner. + +VIII. TECHNICAL SUPPORT + + heidelpay can make support available to users using the plug-in in an unmodified state. A separate agreement be-tween the user and heidelpay shall be required for this. + +IX. TERM AND TERMINATION + + 1. This Agreement may be terminated by the parties at any time without notice. + 2. heidelpay shall be at liberty to stop the download offer at any time. + 3. All rights on the part of the user arising from this Agreement shall expire immediately as soon as the user breaches essential provisions in this Agreement. + 4. As soon as this Agreement is terminated or the user loses their rights pursuant to 3, the user shall delete all copies of the plug-in (and all corresponding back-ups). + +X. LIABILITY + + 1. Since the licence is made available free of charge, it constitutes a deed of gift and therefore heidelpay shall only be liable for damages pursuant to Section 524 BGB. + 2. Insofar as damage is based, directly or indirectly, on a loss of data and heidelpay can be held liable for this pursuant to 1, liability on the part of heidelpay shall be limited to the costs of recovery that would have arisen from data backups made at regularly scheduled intervals in accordance with the risk involved. + 3. Claims for compensation with the exception of those arising from a deliberate or grossly negligent breach of obligations, injury to life, limb or health, unlawful act or arising from the Product Liability Act, shall expire by limitation no later than one year from the date on which the injured party becomes aware of the damage and the circumstances giving rise to entitlement to claim, and, regardless of awareness, three years from the re-spective damage-causing event. Shorter statutory periods of limitation shall remain unaffected. + +XI. Final provisions + + 1. This Agreement shall be subject to the laws of the Federal Republic of Germany, excluding the United Nations Convention on Contracts for the International Sale of Goods (CISG). The sole place of jurisdiction shall be the Heidelberg District Court. + 2. Export restrictions shall apply in some countries, including the United States of America. The plug-in may be subject to such restrictions. These must be considered in particular when the plug-in is exported to other countries. If a user exports the plug-in, they shall be solely responsible for compliance with the relevant regu-lations. It shall be prohibited in any case to export the plug-in to a country which is subject to an embargo by the United States of America or the European Union, or give it to a person to whom delivery is prohibited in accordance with US or European regulations. + 3. These terms and conditions or use of the plug-in shall not constitute a joint venture, partnership or employ-ment with heidelpay or authority to represent heidelpay. + 4. The terms and conditions in Sections IV, V, VI, VII, X, XI shall outlast the termination of these terms and condi-tions, regardless of the reason. + diff --git a/README.md b/README.md new file mode 100644 index 0000000..75bd342 --- /dev/null +++ b/README.md @@ -0,0 +1,26 @@ +![Logo](https://dev.heidelpay.de/devHeidelpay_400_180.jpg) + +# Welcome to the heidelpay payment extension for xtcommerce 3 / modified commerce + + + +## Currently supported payment methods: + +* credit card +* debit card +* prepayment +* Sofort +* PayPal +* direct debit +* iDeal +* Giropay +* EPS +* invoice + +### SYSTEM REQUIREMENTS + +The extension requires PHP 5.6; + +## LICENSE + +You can find a copy of this license in [LICENSE.txt](LICENSE.txt). \ No newline at end of file diff --git a/admin/includes/modules/export/hpbs_check.php b/admin/includes/modules/export/hpbs_check.php new file mode 100644 index 0000000..8f4c327 --- /dev/null +++ b/admin/includes/modules/export/hpbs_check.php @@ -0,0 +1,221 @@ +Abgleich der BillSAFE Zahlungen:'); + +if(file_exists(DIR_WS_CLASSES.'class.heidelpay.php')){ + include_once(DIR_WS_CLASSES.'class.heidelpay.php'); +}else{ + require_once(DIR_FS_CATALOG.DIR_WS_CLASSES.'class.heidelpay.php'); +} + +class hpbs_check +{ + var $code, $title, $description, $enabled; + + + function hpbs_check() + { + global $order; + + $this->code = 'hpbs_check'; + $this->title = MODULE_HPBS_CHECK_TEXT_TITLE; + $this->description = MODULE_HPBS_CHECK_TEXT_DESCRIPTION; + $this->sort_order = MODULE_HPBS_CHECK_SORT_ORDER; + $this->enabled = ((MODULE_HPBS_CHECK_STATUS == 'True') ? true : false); + $this->hp = new heidelpay(); + + } + + function process() + { + $payment_class = 'hpbs'; + $paystatus = MODULE_PAYMENT_HPBS_PROCESSED_STATUS_ID; + $finishstatus = MODULE_PAYMENT_HPBS_FINISHED_STATUS_ID; + $payName = $this->hp->getOrderStatusName($paystatus); + $finishName = $this->hp->getOrderStatusName($finishstatus); + + #echo '
'.print_r($_POST, 1).'
'; + + if(!empty($_POST['finalizeOrders'])){ + + $dat = $_POST['book']; + foreach($_POST['bookIds'] AS $k => $v){ + $orderId = $dat[$k]['orderId']; + $shortId = $dat[$k]['shortId']; + $uniqueId = $dat[$k]['uniqueId']; + $status = $dat[$k]['status']; + $amount = $dat[$k]['amount']; + $currency = $dat[$k]['currency']; + $this->finalizeOrder($orderId, $shortId, $uniqueId, $status, $amount, $currency); + } + } + + $ordersDate = $this->hp->getOpenOrdersDate($payment_class, $paystatus); + // Wenn kein Datum, dann von Heute + if(empty($ordersDate['min'])) $ordersDate['min'] = date('Y-m-d'); + if(empty($ordersDate['max'])) $ordersDate['max'] = date('Y-m-d'); + // Zeitraum auf max. 34 Tage begrenzen + $treeMonth = 34 * 24 * 60 * 60; + if(strtotime($ordersDate['max'])-strtotime($ordersDate['min']) > $treeMonth){ + $ordersDate['min'] = date('Y-m-d', strtotime($ordersDate['max']) - $treeMonth); + } + #echo '
'.print_r($ordersDate, 1).'
'; + + @xtc_set_time_limit(0); + $out = '
'; + $out.= '
'; + + //$opts = array('uniqueID' => '31HA07BC812393F2A6749615E17961E1'); + $opts = array(); + $xml = $this->hp->getQueryXML($ordersDate['min'], $ordersDate['max'], array('RC'), $opts, array('IV')); + //$out.= ''; + + $crlf = "\r\n"; + $uniqueIDs = array(); + $realAmounts = array(); + $res = $this->hp->doRequest(array(), $xml); + if(!empty($res)){ + $xmlObject = new SimpleXMLElement($res); + #echo '
'.print_r($xmlObject, 1).'
'; + //$out.= ''; + if(count($xmlObject->Result->Transaction) > 0){ + #$orders = $this->hp->getOpenOrders($payment_class, $paystatus); + #echo '
'.print_r($orders, 1).'
'; + $out.= '
'.$crlf; + $out.= ''.$crlf; + $out.= ''.$crlf; + $out.= ''.$crlf; + $out.= ''.$crlf; + $out.= ''.$crlf; + $out.= ''.$crlf; + $out.= ''.$crlf; + $out.= ''.$crlf; + $out.= ''.$crlf; + $out.= ''.$crlf; + $out.= ''.$crlf; + $i = 0; + + foreach($xmlObject->Result->Transaction AS $k => $v){ + $attribs = $v->Payment->attributes(); + if($v->Processing->Result != 'ACK') continue; // Nur erfolgreiche Zahlungen + + $uniqueId = (string)$v->Identification->ReferenceID; + $order = $this->hp->getOpenOrderByUniqueId($uniqueId, $payment_class); + #echo '
'.print_r($order, 1).'
'; + + if(empty($order)) continue; // Wenn keine Bestellung gefunden + if($order['orders_status'] == $finishstatus) continue; // Abgeschlossene Bestellungen ausblenden. + if($this->hp->checkOrderStatusHistory($order['orders_id'], $v->Identification->ShortID)) continue; // Schon verbuchte Zahlungen ausblenden + + $i++; + + $color = 'd00'; + $checked = ''; + $nochecked = 'checked'; + if($order['value'] == (string)$v->Payment->Clearing->Amount){ + $color = '0d0'; + $checked = 'checked'; + $nochecked = ''; + } + + $bgcol = $i%2==0?'fff':'eee'; + $out.= ''.$crlf; + #$out.= ''; + $out.= ''.$crlf; + $out.= ''.$crlf; + $out.= ''.$crlf; + $out.= ''.$crlf; + $out.= ''.$crlf; + $out.= ''.$crlf; + $out.= ''.$crlf; + $out.= ''.$crlf; + $out.= ''.$crlf; + $out.= ''.$crlf; + $out.= ''.$crlf; + $out.= ''.$crlf; + $out.= ''.$crlf; + $out.= ''.$crlf; + $out.= ''.$crlf; + } + $out.= '
 BestellNr.KundennameBestelldatum.Bezahldatum.ShortIdBestellwertZahlungseingang
'.$order['orders_id'].''.$order['customers_name'].''.$order['date_purchased'].''.(string)$v->Payment->Clearing->FxDate.''.$v->Identification->ShortID.''.$order['text'].''.(string)$v->Payment->Clearing->Amount.' '.(string)$v->Payment->Clearing->Currency.''.$crlf; + $out.= ' '.$finishName.'
'.$crlf; + $out.= ' '.$payName.$crlf; + $out.= '
'.$crlf; + if($i == 0){ + $out.= '

Es liegen keine weiteren Zahlungseingänge vor.

'.$crlf; + }else{ + $out.= ''.$crlf; + } + $out.= '
'.$crlf; + }else{ + $out .= '
'; + $out .= 'Es wurden keine Transaktionen gefunden.'; + $out .= '
'; + } + } + #echo '
'.print_r($uniqueIDs, 1).'
'; +# echo '
'.print_r($realAmounts, 1).'
'; + + $out.= '
'; + $out.= 'close
'; + + return $out; + } + + function finalizeOrder($orderId, $shortId, $uniqueId, $status, $amount, $currency) + { + $comment = 'ShortID: '.$shortId.' '.$amount.' '.$currency; + #$this->hp->saveShortId($orderId, $shortId); + $this->hp->saveIds($uniqueId, $orderId, $payment_class, $shortId); + $this->hp->addHistoryComment($orderId, $comment, $status); + $this->hp->setOrderStatus($orderId, $status); + } + + function display() + { + $out = array('text' => + HPBS_IMAGE_EXPORT_TYPE.'
'. + HPBS_IMAGE_EXPORT.'
' + #.'
' . xtc_button(BUTTON_REVIEW_APPROVE) . ' ' + .xtc_button_link(BUTTON_REVIEW_APPROVE, xtc_href_link(FILENAME_MODULE_EXPORT, 'set=' . $_GET['set'] . '&action=edit&dowork=1&module='.$this->code)) + .xtc_button_link(BUTTON_CANCEL, xtc_href_link(FILENAME_MODULE_EXPORT, 'set=' . $_GET['set'] . '&module='.$this->code)) + ); + if($_GET['dowork'] == 1){ + $out['text'].= $this->process(); + } + return $out; + } + + function check() + { + if(!isset($this->_check)){ + $check_query = xtc_db_query("select configuration_value from " . TABLE_CONFIGURATION . " where configuration_key = 'MODULE_HPBS_CHECK_STATUS'"); + $this->_check = xtc_db_num_rows($check_query); + } + return $this->_check; + } + + function install() + { + xtc_db_query("insert into " . TABLE_CONFIGURATION . " (configuration_key, configuration_value, configuration_group_id, sort_order, set_function, date_added) values ('MODULE_HPBS_CHECK_STATUS', 'True', '6', '1', 'xtc_cfg_select_option(array(\'True\', \'False\'), ', now())"); + } + + function remove() + { + xtc_db_query("delete from " . TABLE_CONFIGURATION . " where configuration_key in ('" . implode("', '", $this->keys()) . "')"); + } + + function keys() + { + return array(); + return array('MODULE_HPBS_CHECK_STATUS'); + } + +} +?> diff --git a/admin/includes/modules/export/hpiv_check.php b/admin/includes/modules/export/hpiv_check.php new file mode 100644 index 0000000..87f2d23 --- /dev/null +++ b/admin/includes/modules/export/hpiv_check.php @@ -0,0 +1,221 @@ +Abgleich der Rechnungszahlungen:'); + +if(file_exists(DIR_WS_CLASSES.'class.heidelpay.php')){ + include_once(DIR_WS_CLASSES.'class.heidelpay.php'); +}else{ + require_once(DIR_FS_CATALOG.DIR_WS_CLASSES.'class.heidelpay.php'); +} + +class hpiv_check +{ + var $code, $title, $description, $enabled; + + + function hpiv_check() + { + global $order; + + $this->code = 'hpiv_check'; + $this->title = MODULE_HPIV_CHECK_TEXT_TITLE; + $this->description = MODULE_HPIV_CHECK_TEXT_DESCRIPTION; + $this->sort_order = MODULE_HPIV_CHECK_SORT_ORDER; + $this->enabled = ((MODULE_HPIV_CHECK_STATUS == 'True') ? true : false); + $this->hp = new heidelpay(); + + } + + function process() + { + $payment_class = 'hpiv'; + $paystatus = MODULE_PAYMENT_HPIV_PROCESSED_STATUS_ID; + $finishstatus = MODULE_PAYMENT_HPIV_FINISHED_STATUS_ID; + $payName = $this->hp->getOrderStatusName($paystatus); + $finishName = $this->hp->getOrderStatusName($finishstatus); + + #echo '
'.print_r($_POST, 1).'
'; + + if(!empty($_POST['finalizeOrders'])){ + + $dat = $_POST['book']; + foreach($_POST['bookIds'] AS $k => $v){ + $orderId = $dat[$k]['orderId']; + $shortId = $dat[$k]['shortId']; + $uniqueId = $dat[$k]['uniqueId']; + $status = $dat[$k]['status']; + $amount = $dat[$k]['amount']; + $currency = $dat[$k]['currency']; + $this->finalizeOrder($orderId, $shortId, $uniqueId, $status, $amount, $currency); + } + } + + $ordersDate = $this->hp->getOpenOrdersDate($payment_class, $paystatus); + // Wenn kein Datum, dann von Heute + if(empty($ordersDate['min'])) $ordersDate['min'] = date('Y-m-d'); + if(empty($ordersDate['max'])) $ordersDate['max'] = date('Y-m-d'); + // Zeitraum auf max. 34 Tage begrenzen + $treeMonth = 34 * 24 * 60 * 60; + if(strtotime($ordersDate['max'])-strtotime($ordersDate['min']) > $treeMonth){ + $ordersDate['min'] = date('Y-m-d', strtotime($ordersDate['max']) - $treeMonth); + } + #echo '
'.print_r($ordersDate, 1).'
'; + + @xtc_set_time_limit(0); + $out = '
'; + $out.= '
'; + + //$opts = array('uniqueID' => '31HA07BC812393F2A6749615E17961E1'); + $opts = array(); + $xml = $this->hp->getQueryXML($ordersDate['min'], $ordersDate['max'], array('RC'), $opts, array('IV')); + //$out.= ''; + + $crlf = "\r\n"; + $uniqueIDs = array(); + $realAmounts = array(); + $res = $this->hp->doRequest(array(), $xml); + if(!empty($res)){ + $xmlObject = new SimpleXMLElement($res); + #echo '
'.print_r($xmlObject, 1).'
'; + //$out.= ''; + if(count($xmlObject->Result->Transaction) > 0){ + #$orders = $this->hp->getOpenOrders($payment_class, $paystatus); + #echo '
'.print_r($orders, 1).'
'; + $out.= '
'.$crlf; + $out.= ''.$crlf; + $out.= ''.$crlf; + $out.= ''.$crlf; + $out.= ''.$crlf; + $out.= ''.$crlf; + $out.= ''.$crlf; + $out.= ''.$crlf; + $out.= ''.$crlf; + $out.= ''.$crlf; + $out.= ''.$crlf; + $out.= ''.$crlf; + $i = 0; + + foreach($xmlObject->Result->Transaction AS $k => $v){ + $attribs = $v->Payment->attributes(); + if($v->Processing->Result != 'ACK') continue; // Nur erfolgreiche Zahlungen + + $uniqueId = (string)$v->Identification->ReferenceID; + $order = $this->hp->getOpenOrderByUniqueId($uniqueId, $payment_class); + #echo '
'.print_r($order, 1).'
'; + + if(empty($order)) continue; // Wenn keine Bestellung gefunden + if($order['orders_status'] == $finishstatus) continue; // Abgeschlossene Bestellungen ausblenden. + if($this->hp->checkOrderStatusHistory($order['orders_id'], $v->Identification->ShortID)) continue; // Schon verbuchte Zahlungen ausblenden + + $i++; + + $color = 'd00'; + $checked = ''; + $nochecked = 'checked'; + if($order['value'] == (string)$v->Payment->Clearing->Amount){ + $color = '0d0'; + $checked = 'checked'; + $nochecked = ''; + } + + $bgcol = $i%2==0?'fff':'eee'; + $out.= ''.$crlf; + #$out.= ''; + $out.= ''.$crlf; + $out.= ''.$crlf; + $out.= ''.$crlf; + $out.= ''.$crlf; + $out.= ''.$crlf; + $out.= ''.$crlf; + $out.= ''.$crlf; + $out.= ''.$crlf; + $out.= ''.$crlf; + $out.= ''.$crlf; + $out.= ''.$crlf; + $out.= ''.$crlf; + $out.= ''.$crlf; + $out.= ''.$crlf; + $out.= ''.$crlf; + } + $out.= '
 BestellNr.KundennameBestelldatum.Bezahldatum.ShortIdBestellwertZahlungseingang
'.$order['orders_id'].''.$order['customers_name'].''.$order['date_purchased'].''.(string)$v->Payment->Clearing->FxDate.''.$v->Identification->ShortID.''.$order['text'].''.(string)$v->Payment->Clearing->Amount.' '.(string)$v->Payment->Clearing->Currency.''.$crlf; + $out.= ' '.$finishName.'
'.$crlf; + $out.= ' '.$payName.$crlf; + $out.= '
'.$crlf; + if($i == 0){ + $out.= '

Es liegen keine weiteren Zahlungseingänge vor.

'.$crlf; + }else{ + $out.= ''.$crlf; + } + $out.= '
'.$crlf; + }else{ + $out .= '
'; + $out .= 'Es wurden keine Transaktionen gefunden.'; + $out .= '
'; + } + } + #echo '
'.print_r($uniqueIDs, 1).'
'; +# echo '
'.print_r($realAmounts, 1).'
'; + + $out.= '
'; + $out.= 'close
'; + + return $out; + } + + function finalizeOrder($orderId, $shortId, $uniqueId, $status, $amount, $currency) + { + $comment = 'ShortID: '.$shortId.' '.$amount.' '.$currency; + #$this->hp->saveShortId($orderId, $shortId); + $this->hp->saveIds($uniqueId, $orderId, $payment_class, $shortId); + $this->hp->addHistoryComment($orderId, $comment, $status); + $this->hp->setOrderStatus($orderId, $status); + } + + function display() + { + $out = array('text' => + HPIV_IMAGE_EXPORT_TYPE.'
'. + HPIV_IMAGE_EXPORT.'
' + #.'
' . xtc_button(BUTTON_REVIEW_APPROVE) . ' ' + .xtc_button_link(BUTTON_REVIEW_APPROVE, xtc_href_link(FILENAME_MODULE_EXPORT, 'set=' . $_GET['set'] . '&action=edit&dowork=1&module='.$this->code)) + .xtc_button_link(BUTTON_CANCEL, xtc_href_link(FILENAME_MODULE_EXPORT, 'set=' . $_GET['set'] . '&module='.$this->code)) + ); + if($_GET['dowork'] == 1){ + $out['text'].= $this->process(); + } + return $out; + } + + function check() + { + if(!isset($this->_check)){ + $check_query = xtc_db_query("select configuration_value from " . TABLE_CONFIGURATION . " where configuration_key = 'MODULE_HPIV_CHECK_STATUS'"); + $this->_check = xtc_db_num_rows($check_query); + } + return $this->_check; + } + + function install() + { + xtc_db_query("insert into " . TABLE_CONFIGURATION . " (configuration_key, configuration_value, configuration_group_id, sort_order, set_function, date_added) values ('MODULE_HPIV_CHECK_STATUS', 'True', '6', '1', 'xtc_cfg_select_option(array(\'True\', \'False\'), ', now())"); + } + + function remove() + { + xtc_db_query("delete from " . TABLE_CONFIGURATION . " where configuration_key in ('" . implode("', '", $this->keys()) . "')"); + } + + function keys() + { + return array(); + return array('MODULE_HPIV_CHECK_STATUS'); + } + +} +?> diff --git a/admin/includes/modules/export/hppp_check.php b/admin/includes/modules/export/hppp_check.php new file mode 100644 index 0000000..0cbc61b --- /dev/null +++ b/admin/includes/modules/export/hppp_check.php @@ -0,0 +1,221 @@ +Abgleich der Vorkassezahlungen:'); + +if(file_exists(DIR_WS_CLASSES.'class.heidelpay.php')){ + include_once(DIR_WS_CLASSES.'class.heidelpay.php'); +}else{ + require_once(DIR_FS_CATALOG.DIR_WS_CLASSES.'class.heidelpay.php'); +} + +class hppp_check +{ + var $code, $title, $description, $enabled; + + + function hppp_check() + { + global $order; + + $this->code = 'hppp_check'; + $this->title = MODULE_HPPP_CHECK_TEXT_TITLE; + $this->description = MODULE_HPPP_CHECK_TEXT_DESCRIPTION; + $this->sort_order = MODULE_HPPP_CHECK_SORT_ORDER; + $this->enabled = ((MODULE_HPPP_CHECK_STATUS == 'True') ? true : false); + $this->hp = new heidelpay(); + + } + + function process() + { + $payment_class = 'hppp'; + $paystatus = MODULE_PAYMENT_HPPP_PROCESSED_STATUS_ID; + $finishstatus = MODULE_PAYMENT_HPPP_FINISHED_STATUS_ID; + $payName = $this->hp->getOrderStatusName($paystatus); + $finishName = $this->hp->getOrderStatusName($finishstatus); + + #echo '
'.print_r($_POST, 1).'
'; + + if(!empty($_POST['finalizeOrders'])){ + + $dat = $_POST['book']; + foreach($_POST['bookIds'] AS $k => $v){ + $orderId = $dat[$k]['orderId']; + $shortId = $dat[$k]['shortId']; + $uniqueId = $dat[$k]['uniqueId']; + $status = $dat[$k]['status']; + $amount = $dat[$k]['amount']; + $currency = $dat[$k]['currency']; + $this->finalizeOrder($orderId, $shortId, $uniqueId, $status, $amount, $currency); + } + } + + $ordersDate = $this->hp->getOpenOrdersDate($payment_class, $paystatus); + // Wenn kein Datum, dann von Heute + if(empty($ordersDate['min'])) $ordersDate['min'] = date('Y-m-d'); + if(empty($ordersDate['max'])) $ordersDate['max'] = date('Y-m-d'); + // Zeitraum auf max. 34 Tage begrenzen + $treeMonth = 34 * 24 * 60 * 60; + if(strtotime($ordersDate['max'])-strtotime($ordersDate['min']) > $treeMonth){ + $ordersDate['min'] = date('Y-m-d', strtotime($ordersDate['max']) - $treeMonth); + } + #echo '
'.print_r($ordersDate, 1).'
'; + + @xtc_set_time_limit(0); + $out = '
'; + $out.= '
'; + + //$opts = array('uniqueID' => '31HA07BC812393F2A6749615E17961E1'); + $opts = array(); + $xml = $this->hp->getQueryXML($ordersDate['min'], $ordersDate['max'], array('RC'), $opts, array('PP')); + //$out.= ''; + + $crlf = "\r\n"; + $uniqueIDs = array(); + $realAmounts = array(); + $res = $this->hp->doRequest(array(), $xml); + if(!empty($res)){ + $xmlObject = new SimpleXMLElement($res); + #echo '
'.print_r($xmlObject, 1).'
'; + //$out.= ''; + if(count($xmlObject->Result->Transaction) > 0){ + #$orders = $this->hp->getOpenOrders($payment_class, $paystatus); + #echo '
'.print_r($orders, 1).'
'; + $out.= '
'.$crlf; + $out.= ''.$crlf; + $out.= ''.$crlf; + $out.= ''.$crlf; + $out.= ''.$crlf; + $out.= ''.$crlf; + $out.= ''.$crlf; + $out.= ''.$crlf; + $out.= ''.$crlf; + $out.= ''.$crlf; + $out.= ''.$crlf; + $out.= ''.$crlf; + $i = 0; + + foreach($xmlObject->Result->Transaction AS $k => $v){ + $attribs = $v->Payment->attributes(); + if($v->Processing->Result != 'ACK') continue; // Nur erfolgreiche Zahlungen + + $uniqueId = (string)$v->Identification->ReferenceID; + $order = $this->hp->getOpenOrderByUniqueId($uniqueId, $payment_class); + #echo '
'.print_r($order, 1).'
'; + + if(empty($order)) continue; // Wenn keine Bestellung gefunden + if($order['orders_status'] == $finishstatus) continue; // Abgeschlossene Bestellungen ausblenden. + if($this->hp->checkOrderStatusHistory($order['orders_id'], $v->Identification->ShortID)) continue; // Schon verbuchte Zahlungen ausblenden + + $i++; + + $color = 'd00'; + $checked = ''; + $nochecked = 'checked'; + if($order['value'] == (string)$v->Payment->Clearing->Amount){ + $color = '0d0'; + $checked = 'checked'; + $nochecked = ''; + } + + $bgcol = $i%2==0?'fff':'eee'; + $out.= ''.$crlf; + #$out.= ''; + $out.= ''.$crlf; + $out.= ''.$crlf; + $out.= ''.$crlf; + $out.= ''.$crlf; + $out.= ''.$crlf; + $out.= ''.$crlf; + $out.= ''.$crlf; + $out.= ''.$crlf; + $out.= ''.$crlf; + $out.= ''.$crlf; + $out.= ''.$crlf; + $out.= ''.$crlf; + $out.= ''.$crlf; + $out.= ''.$crlf; + $out.= ''.$crlf; + } + $out.= '
 BestellNr.KundennameBestelldatum.Bezahldatum.ShortIdBestellwertZahlungseingang
'.$order['orders_id'].''.$order['customers_name'].''.$order['date_purchased'].''.(string)$v->Payment->Clearing->FxDate.''.$v->Identification->ShortID.''.$order['text'].''.(string)$v->Payment->Clearing->Amount.' '.(string)$v->Payment->Clearing->Currency.''.$crlf; + $out.= ' '.$finishName.'
'.$crlf; + $out.= ' '.$payName.$crlf; + $out.= '
'.$crlf; + if($i == 0){ + $out.= '

Es liegen keine weiteren Zahlungseingänge vor.

'.$crlf; + }else{ + $out.= ''.$crlf; + } + $out.= '
'.$crlf; + }else{ + $out .= '
'; + $out .= 'Es wurden keine Transaktionen gefunden.'; + $out .= '
'; + } + } + #echo '
'.print_r($uniqueIDs, 1).'
'; +# echo '
'.print_r($realAmounts, 1).'
'; + + $out.= '
'; + $out.= 'close
'; + + return $out; + } + + function finalizeOrder($orderId, $shortId, $uniqueId, $status, $amount, $currency) + { + $comment = 'ShortID: '.$shortId.' '.$amount.' '.$currency; + #$this->hp->saveShortId($orderId, $shortId); + $this->hp->saveIds($uniqueId, $orderId, $payment_class, $shortId); + $this->hp->addHistoryComment($orderId, $comment, $status); + $this->hp->setOrderStatus($orderId, $status); + } + + function display() + { + $out = array('text' => + HPPP_IMAGE_EXPORT_TYPE.'
'. + HPPP_IMAGE_EXPORT.'
' + #.'
' . xtc_button(BUTTON_REVIEW_APPROVE) . ' ' + .xtc_button_link(BUTTON_REVIEW_APPROVE, xtc_href_link(FILENAME_MODULE_EXPORT, 'set=' . $_GET['set'] . '&action=edit&dowork=1&module='.$this->code)) + .xtc_button_link(BUTTON_CANCEL, xtc_href_link(FILENAME_MODULE_EXPORT, 'set=' . $_GET['set'] . '&module='.$this->code)) + ); + if($_GET['dowork'] == 1){ + $out['text'].= $this->process(); + } + return $out; + } + + function check() + { + if(!isset($this->_check)){ + $check_query = xtc_db_query("select configuration_value from " . TABLE_CONFIGURATION . " where configuration_key = 'MODULE_HPPP_CHECK_STATUS'"); + $this->_check = xtc_db_num_rows($check_query); + } + return $this->_check; + } + + function install() + { + xtc_db_query("insert into " . TABLE_CONFIGURATION . " (configuration_key, configuration_value, configuration_group_id, sort_order, set_function, date_added) values ('MODULE_HPPP_CHECK_STATUS', 'True', '6', '1', 'xtc_cfg_select_option(array(\'True\', \'False\'), ', now())"); + } + + function remove() + { + xtc_db_query("delete from " . TABLE_CONFIGURATION . " where configuration_key in ('" . implode("', '", $this->keys()) . "')"); + } + + function keys() + { + return array(); + return array('MODULE_HPPP_CHECK_STATUS'); + } + +} +?> diff --git a/heidelpay_3dsecure.php b/heidelpay_3dsecure.php new file mode 100644 index 0000000..c1e7031 --- /dev/null +++ b/heidelpay_3dsecure.php @@ -0,0 +1,24 @@ +add(NAVBAR_TITLE_1_CHECKOUT_SUCCESS); +$breadcrumb->add(NAVBAR_TITLE_2_CHECKOUT_SUCCESS); + +require (DIR_WS_INCLUDES.'header.php'); + +if(empty($_SESSION['language'])) $_SESSION['language'] = 'german'; +$smarty->caching = 0; +$main_content = $smarty->fetch(CURRENT_TEMPLATE.'/module/checkout_success.html'); + +$smarty->assign('language', $_SESSION['language']); +$smarty->assign('main_content', '
'.$_SESSION['HEIDELPAY_IFRAME'].'
'); +$smarty->caching = 0; +if(!defined(RM)) + $smarty->load_filter('output', 'note'); +$smarty->display(CURRENT_TEMPLATE.'/index.html'); +include ('includes/application_bottom.php'); +?> diff --git a/heidelpay_3dsecure_return.php b/heidelpay_3dsecure_return.php new file mode 100644 index 0000000..6b6f6bb --- /dev/null +++ b/heidelpay_3dsecure_return.php @@ -0,0 +1,43 @@ +saveSteps($filename); + $_SESSION['cart']->reset(true); + // unregister session variables used during checkout + unset ($_SESSION['sendto']); + unset ($_SESSION['billto']); + unset ($_SESSION['shipping']); + unset ($_SESSION['payment']); + unset ($_SESSION['comments']); + unset ($_SESSION['last_order']); + unset ($_SESSION['tmp_oID']); + unset ($_SESSION['cc']); + if(isset ($_SESSION['credit_covers'])) unset ($_SESSION['credit_covers']); + + $base = HTTPS_SERVER.DIR_WS_CATALOG; +?> + +Heidelpay Redirect +
+










+

Ihre Daten werden geprüft...


+ +
+ $v){?> + + + + + + +
+
+ + + diff --git a/heidelpay_after_register.php b/heidelpay_after_register.php new file mode 100644 index 0000000..aaf84b2 --- /dev/null +++ b/heidelpay_after_register.php @@ -0,0 +1,24 @@ + + + + + + + + + diff --git a/heidelpay_checkout_iframe.php b/heidelpay_checkout_iframe.php new file mode 100644 index 0000000..b4e7c48 --- /dev/null +++ b/heidelpay_checkout_iframe.php @@ -0,0 +1,30 @@ +add(NAVBAR_TITLE_1_CHECKOUT_PAYMENT, xtc_href_link(FILENAME_CHECKOUT_SHIPPING, '', 'SSL')); +$breadcrumb->add(NAVBAR_TITLE_2_CHECKOUT_PAYMENT, xtc_href_link(FILENAME_CHECKOUT_PAYMENT, '', 'SSL')); + +require (DIR_WS_INCLUDES.'header.php'); + +if(empty($_SESSION['language'])) $_SESSION['language'] = 'german'; +$smarty->assign('language', $_SESSION['language']); + +if(@constant('MODULE_PAYMENT_'.strtoupper($_SESSION['payment']).'_DIRECT_MODE') == 'GAMBIOLIGHTBOX'){ + $smarty->assign('LIGHTBOX', gm_get_conf('GM_LIGHTBOX_CHECKOUT')); + if($_SESSION['style_edit_mode'] == 'edit') $smarty->assign('STYLE_EDIT', 1); + else $smarty->assign('STYLE_EDIT', 0); +} + +$smarty->caching = 0; +$smarty->assign('main_content', $_SESSION['HEIDELPAY_IFRAME']); +$smarty->caching = 0; +if(!defined(RM)) + $smarty->load_filter('output', 'note'); +$smarty->display(CURRENT_TEMPLATE.'/index.html'); +include ('includes/application_bottom.php'); +?> diff --git a/heidelpay_gm_checkout_iframe.php b/heidelpay_gm_checkout_iframe.php new file mode 100644 index 0000000..d74ed43 --- /dev/null +++ b/heidelpay_gm_checkout_iframe.php @@ -0,0 +1,27 @@ +add(NAVBAR_TITLE_1_CHECKOUT_PAYMENT, xtc_href_link(FILENAME_CHECKOUT_SHIPPING, '', 'SSL')); +$breadcrumb->add(NAVBAR_TITLE_2_CHECKOUT_PAYMENT, xtc_href_link(FILENAME_CHECKOUT_PAYMENT, '', 'SSL')); + +require (DIR_WS_INCLUDES.'header.php'); + +$smarty->assign('LIGHTBOX', gm_get_conf('GM_LIGHTBOX_CHECKOUT')); +if($_SESSION['style_edit_mode'] == 'edit') $smarty->assign('STYLE_EDIT', 1); +else $smarty->assign('STYLE_EDIT', 0); +$smarty->assign('language', $_SESSION['language']); + +$smarty->caching = 0; +$main_content = $smarty->fetch(CURRENT_TEMPLATE.'/module/checkout_payment.html'); +$smarty->assign('main_content', $_SESSION['HEIDELPAY_IFRAME']); +$smarty->caching = 0; +if(!defined(RM)) + $smarty->load_filter('output', 'note'); +$smarty->display(CURRENT_TEMPLATE.'/index.html'); +include ('includes/application_bottom.php'); +?> diff --git a/heidelpay_iframe.php b/heidelpay_iframe.php new file mode 100644 index 0000000..2dcad75 --- /dev/null +++ b/heidelpay_iframe.php @@ -0,0 +1,25 @@ +add(NAVBAR_TITLE_1_CHECKOUT_PAYMENT, xtc_href_link(FILENAME_CHECKOUT_SHIPPING, '', 'SSL')); +$breadcrumb->add(NAVBAR_TITLE_2_CHECKOUT_PAYMENT, xtc_href_link(FILENAME_CHECKOUT_PAYMENT, '', 'SSL')); + +require (DIR_WS_INCLUDES.'header.php'); + +if(empty($_SESSION['language'])) $_SESSION['language'] = 'german'; +$smarty->caching = 0; +$main_content = $smarty->fetch(CURRENT_TEMPLATE.'/module/checkout_success.html'); + +$smarty->assign('language', $_SESSION['language']); +$smarty->assign('main_content', $_SESSION['HEIDELPAY_IFRAME']); +$smarty->caching = 0; +if(!defined(RM)) + $smarty->load_filter('output', 'note'); +$smarty->display(CURRENT_TEMPLATE.'/index.html'); +include ('includes/application_bottom.php'); +?> diff --git a/heidelpay_redirect.php b/heidelpay_redirect.php new file mode 100644 index 0000000..a4d365b --- /dev/null +++ b/heidelpay_redirect.php @@ -0,0 +1,80 @@ +'.print_r($_SESSION, 1).''; + +include_once(DIR_WS_CLASSES.'class.heidelpay.php'); +$hp = new heidelpay(); +$hp->trackStep('redirect', 'post', $_POST); +$hp->trackStep('redirect', 'session', $_SESSION); + +$_POST = $_SESSION['hpLastPost']; +$_POST['blabla'] = 1; // AGBs leer +if(isset($_SESSION['PHONE12CHECK_USE'])){ +unset($_SESSION['PHONE12CHECK_USE']); // 12check +$_SESSION['conditions'] = 1; // 12check +} +$_SESSION['hpUniqueID'] = $_GET['uniqueId']; +$next = 'checkout_confirmation.php?hp_go=1'; +if(empty($_GET['payment_error'])){ +$next = 'checkout_success.php?hp_go=1'; +$order_id = $_GET['order_id']; +$order_id = substr($order_id, (strpos($order_id, 'Order ')+6)); +$filename = 'order_'.$order_id.'_customer_'.$_SESSION['customer_id'].'.log'; +$hp->saveSteps($filename); +$_SESSION['cart']->reset(true); +// unregister session variables used during checkout +unset ($_SESSION['sendto']); +unset ($_SESSION['billto']); +unset ($_SESSION['shipping']); +unset ($_SESSION['payment']); +unset ($_SESSION['comments']); +unset ($_SESSION['last_order']); +unset ($_SESSION['tmp_oID']); +unset ($_SESSION['cc']); +if(isset ($_SESSION['credit_covers'])) unset ($_SESSION['credit_covers']); +} + +if($_GET['pcode'] == 'PP.PA'){ +$repl = array( + '{AMOUNT}' => $_GET['PRESENTATION_AMOUNT'], + '{CURRENCY}' => $_GET['PRESENTATION_CURRENCY'], + '{ACC_COUNTRY}' => $_GET['CONNECTOR_ACCOUNT_COUNTRY'], + '{ACC_OWNER}' => $_GET['CONNECTOR_ACCOUNT_HOLDER'], + '{ACC_NUMBER}' => $_GET['CONNECTOR_ACCOUNT_NUMBER'], + '{ACC_BANKCODE}' => $_GET['CONNECTOR_ACCOUNT_BANK'], + '{ACC_IBAN}' => $_GET['CONNECTOR_ACCOUNT_IBAN'], + '{ACC_BIC}' => $_GET['CONNECTOR_ACCOUNT_BIC'], + '{SHORTID}' => $_GET['IDENTIFICATION_SHORTID'], +); +$_SESSION['hpPrepaidData'] = $repl; +$next = 'heidelpay_success.php?hp_go=1'; +}else{ +$_SESSION['hpPrepaidData'] = false; +} + +if(!empty($_GET['payment_error'])) $next = 'checkout_payment.php?payment_error='.$_GET['payment_error'].'&error='.urlencode($_GET['error']); +if($debug) echo $next; +if($debug) exit(); +?>Heidelpay Redirect +
+




+

Ihre Daten werden übertragen...


+ +
+ $v){?> + + $vv){?> + + + + + + +
+
+ + diff --git a/heidelpay_reg_style.css b/heidelpay_reg_style.css new file mode 100644 index 0000000..58e0dc4 --- /dev/null +++ b/heidelpay_reg_style.css @@ -0,0 +1,129 @@ +html,body { + background-color: #ffffff +} +#defaultData{ +} +#frontendForm{ + width: 400px; + margin-left: auto; + margin-right: auto; +} +#send +{ + margin-left: 265px; + background: #4d4d4d; + background-image: -webkit-linear-gradient(top, #4d4d4d, #000000); + background-image: -moz-linear-gradient(top, #4d4d4d, #000000); + background-image: -ms-linear-gradient(top, #4d4d4d, #000000); + background-image: -o-linear-gradient(top, #4d4d4d, #000000); + background-image: linear-gradient(to bottom, #4d4d4d, #000000); + -webkit-border-radius: 4; + -moz-border-radius: 4; + border-radius: 4px; + font-family: Arial; + color: #ffffff; + font-size: 12px; + font-weight: bold; + padding: 4px 20px 4px 20px; + text-decoration: none; +} + +#send:hover +{ +text-decoration: none; +} + +#cancel +{ + display:none; +} + +#cancel:hover +{ +text-decoration: none; +} + +tr[id=notMandatoryRow] { + display: none; +} +tr[id=spacer1] { + display: none; +} +tr[id=spacer2] { + display: none; +} +tr[id=spacer3] { + display: none; +} +tr[id=spacer4] { + display: none; +} +tr[id=contactBlock] { + display: none; +} +tr[id=userInfoBlock] { + display: none; +} +tr[id=addressBlock] { + display: none; +} +tr#notMandatoryRow, tr#addressBlock, tr#userInfoBlock, tr#contactBlock, tr#spacer1, tr#spacer2, tr#spacer3, tr#spacer4 { + display: none; +} +td { + color: #000000; +} +input,select { + color: #000000; + background-color: #ffffff; +} +a:link { + color:#000000; +} +a:visited { + color:#000000; +} +a:hover { + color:#000000; +} +a:active { + color:#000000; +} +a:focus { + color:#000000; +} +.bar{ + display: none; +} +select#paymentMethod{ + display: none; +} +#paymentSelection{ + display: none; +} +a#send{ + float: right; + position: absolute; + right: 10px; +} +a#cancel{ + float: left; + position: absolute; + left: 10px; + display: none; +} + +html, body, .bar { + background:transparent; + font-family:Verdana,sans-serif; + color:#000 !important; + overflow:visible; +} +.frm_box { + background:transparent; + border:none; +} +form, tr, td { + border:none; + background:transparent; +} \ No newline at end of file diff --git a/heidelpay_response.php b/heidelpay_response.php new file mode 100644 index 0000000..a954fd6 --- /dev/null +++ b/heidelpay_response.php @@ -0,0 +1,139 @@ +trackStep('response', 'post', $_POST); + $hp->trackStep('response', 'session', $_SESSION); + $params = ''; + if($_POST['PAYMENT_CODE'] == 'PP.PA'){ + $params = '&pcode='.$_POST['PAYMENT_CODE'].'&'; + foreach($hp->importantPPFields AS $k => $v){ + $params.= $v.'='.$_POST[$v].'&'; + } + }else{ + $params.= '&code='.$_POST['PAYMENT_CODE']; + } + $payType = substr(strtolower($_POST['PAYMENT_CODE']), 0, 2); + if($payType == 'va') $payType = 'ppal'; // PayPal Special + if($payType == 'pc') $payType = 'mk'; // MangirKart Special + $payCode = strtoupper($payType); + if($payCode == 'OT') $payCode = $hp->getPayCodeByChannel($_POST['TRANSACTION_CHANNEL']); + $TID = str_replace(' ', '', $_POST['IDENTIFICATION_TRANSACTIONID']); + $orderID = (int)preg_replace('/User.*Order(\d*)/', '$1', $TID); + $customerID = $_POST['IDENTIFICATION_SHOPPERID']; + + #echo $_POST['IDENTIFICATION_TRANSACTIONID'].'
'; + #echo $orderID.'
'; + #echo $customerID.'
'; exit(); + + $comment = 'ShortID: '.$_POST['IDENTIFICATION_SHORTID']; + + if(isset($_POST['ACCOUNT_HOLDER']) && ($_POST['ACCOUNT_HOLDER'] != '')){ + $comment .= '; AccountHolder: '.$_POST['ACCOUNT_HOLDER']; + } + + + + $hp->saveIds($_POST['IDENTIFICATION_UNIQUEID'], $orderID, 'hp'.$payType, $_POST['IDENTIFICATION_SHORTID']); + $base = HTTPS_SERVER.DIR_WS_CATALOG; + if(strstr($returnvalue,"ACK")){ + if(strpos($_POST['PAYMENT_CODE'], 'RG') === false){ + if(!empty($_SESSION['heidel_last_coupon'])){ + unset($_SESSION['heidel_last_coupon']); // gemerkten Coupon im Erfolgsfall vergessen. + } + if(!empty($_SESSION['cc_id'])){ + unset($_SESSION['cc_id']); // letzten Coupon im Erfolgsfall vergessen. + } + } + if(strpos($_POST['PAYMENT_CODE'], 'RG') === false){ + $status = constant('MODULE_PAYMENT_HP'.$payCode.'_PROCESSED_STATUS_ID'); + $hp->addHistoryComment($orderID, $comment, $status); + $hp->setOrderStatus($orderID, $status); + }else{ + $status = constant('MODULE_PAYMENT_HP'.$payCode.'_PENDING_STATUS_ID'); + $hp->addHistoryComment($orderID, $comment, $status); + $hp->setOrderStatus($orderID, $status); + } + if(MODULE_PAYMENT_HPCC_SAVE_REGISTER == 'True' && $_POST['PAYMENT_CODE'] == 'CC.RG' && $_POST['ACCOUNT_NUMBER'] != ''){ + $hp->saveMEMO($customerID, 'heidelpay_last_ccard', $_POST['ACCOUNT_NUMBER']); + $hp->saveMEMO($customerID, 'heidelpay_last_ccard_reference', $_POST['IDENTIFICATION_UNIQUEID']); + } else if(MODULE_PAYMENT_HPDC_SAVE_REGISTER == 'True' && $_POST['PAYMENT_CODE'] == 'DC.RG' && $_POST['ACCOUNT_NUMBER'] != ''){ + $hp->saveMEMO($customerID, 'heidelpay_last_debitcard', $_POST['ACCOUNT_NUMBER']); + $hp->saveMEMO($customerID, 'heidelpay_last_debitcard_reference', $_POST['IDENTIFICATION_UNIQUEID']); + } else if($_POST['PAYMENT_CODE'] == 'OT.RC' && ($_POST['ACCOUNT_NUMBER'] != '' || $_POST['ACCOUNT_IBAN'] != '')){ + // LS Daten speichern + $paymentType = $hp->getPayment($orderID); + //echo '
'.print_r($paymentType, 1).'
'; + + if (isset($_POST['ACCOUNT_IBAN']) && isset($_POST['ACCOUNT_BIC'])) { + $values = array( + 'kto' => $_POST['ACCOUNT_IBAN'], + 'blz' => $_POST['ACCOUNT_BIC'], + 'own' => $_POST['ACCOUNT_HOLDER'], + ); + } else { + $values = array( + 'kto' => $_POST['ACCOUNT_NUMBER'], + 'blz' => $_POST['ACCOUNT_BANK'], + 'own' => $_POST['ACCOUNT_HOLDER'], + ); + } + + //echo '
'.print_r($values, 1).'
'; + $hp->saveBankData($customerID, $paymentType, $values); + } else if($_POST['PAYMENT_CODE'] == 'IV.PA' && $_POST['ACCOUNT_BRAND'] == 'BILLSAFE'){ + $status = constant('MODULE_PAYMENT_HPBS_PENDING_STATUS_ID'); + $repl = array( + '{AMOUNT}' => sprintf('%1.2f', $_POST['CRITERION_BILLSAFE_AMOUNT']), + '{CURRENCY}' => $_POST['CRITERION_BILLSAFE_CURRENCY'], + '{ACC_OWNER}' => $_POST['CRITERION_BILLSAFE_RECIPIENT'], + '{ACC_BANKNAME}' => $_POST['CRITERION_BILLSAFE_BANKNAME'], + '{ACC_NUMBER}' => $_POST['CRITERION_BILLSAFE_ACCOUNTNUMBER'], + '{ACC_BANKCODE}' => $_POST['CRITERION_BILLSAFE_BANKCODE'], + '{ACC_BIC}' => $_POST['CRITERION_BILLSAFE_BIC'], + '{ACC_IBAN}' => $_POST['CRITERION_BILLSAFE_IBAN'], + '{SHORTID}' => $_POST['CRITERION_BILLSAFE_REFERENCE'], + '{LEGALNOTE}' => $_POST['CRITERION_BILLSAFE_LEGALNOTE'], + '{NOTE}' => $_POST['CRITERION_BILLSAFE_NOTE'], + ); + include_once(DIR_WS_LANGUAGES.'german/modules/payment/hpbs.php'); + $bsData = strtr(MODULE_PAYMENT_HPBS_SUCCESS_BILLSAFE, $repl); + $bsData.= ' '.$_POST['CRITERION_BILLSAFE_LEGALNOTE'].' '; + //$bsData.= substr($post['CRITERION_BILLSAFE_NOTE'], 0, strlen($post['CRITERION_BILLSAFE_NOTE'])-11).' '.date('d.m.Y', mktime(0,0,0,date('m'),date('d')+$post['CRITERION_BILLSAFE_PERIOD'],date('Y'))).'.'; + $bsData.= preg_replace('/{DAYS}/', $_POST['CRITERION_BILLSAFE_PERIOD'], MODULE_PAYMENT_HPBS_LEGALNOTE_BILLSAFE); + $comment = 'Payment Info: '.(html_entity_decode($bsData).'
'); + $hp->addHistoryComment($orderID, $comment, $status); + } + if($_POST['PROCESSING_STATUS_CODE'] == '90' && $_POST['AUTHENTICATION_TYPE'] == '3DSecure'){ + print $base."heidelpay_3dsecure_return.php?order_id=".rawurlencode($_POST['IDENTIFICATION_TRANSACTIONID']).'&'.session_name().'='.session_id(); + } else if($_POST['PAYMENT_CODE'] == 'CC.RG' || $_POST['PAYMENT_CODE'] == 'DC.RG'){ + print $base."heidelpay_after_register.php?order_id=".rawurlencode($_POST['IDENTIFICATION_TRANSACTIONID']).'&uniqueId='.$_POST['IDENTIFICATION_UNIQUEID'].$params.'&'.session_name().'='.session_id(); + }else{ + print $base."heidelpay_redirect.php?order_id=".rawurlencode($_POST['IDENTIFICATION_TRANSACTIONID']).'&uniqueId='.$_POST['IDENTIFICATION_UNIQUEID'].$params.'&'.session_name().'='.session_id(); + } + } else if($_POST['FRONTEND_REQUEST_CANCELLED'] == 'true'){ + $status = constant('MODULE_PAYMENT_HP'.$payCode.'_CANCELED_STATUS_ID'); + $comment.= ' Cancelled by User'; + $hp->addHistoryComment($orderID, $comment, $status); + $hp->setOrderStatus($orderID, $status); + $hp->deleteCoupon($orderID); + print $base."heidelpay_redirect.php?payment_error=hp".$payType."&error=Cancelled by User".'&'.session_name().'='.session_id(); + }else{ + $status = constant('MODULE_PAYMENT_HP'.$payCode.'_CANCELED_STATUS_ID'); + $comment.= ' '.$_POST['PROCESSING_RETURN']; + $hp->addHistoryComment($orderID, $comment, $status); + $hp->setOrderStatus($orderID, $status); + $hp->deleteCoupon($orderID); + print $base."heidelpay_redirect.php?payment_error=hp".$payType."&error=".urlencode($_POST['PROCESSING_RETURN']).'&'.session_name().'='.session_id(); + } +}else{ + echo 'FAIL'; +} +?> \ No newline at end of file diff --git a/heidelpay_style.css b/heidelpay_style.css new file mode 100644 index 0000000..ec923dd --- /dev/null +++ b/heidelpay_style.css @@ -0,0 +1,144 @@ +html,body { + background-color: #ffffff +} +#defaultData{ +} +#frontendForm{ + width: 400px; + margin-left: auto; + margin-right: auto; +} + +#send +{ + margin-left: 125px; + background: #4d4d4d; + background-image: -webkit-linear-gradient(top, #4d4d4d, #000000); + background-image: -moz-linear-gradient(top, #4d4d4d, #000000); + background-image: -ms-linear-gradient(top, #4d4d4d, #000000); + background-image: -o-linear-gradient(top, #4d4d4d, #000000); + background-image: linear-gradient(to bottom, #4d4d4d, #000000); + -webkit-border-radius: 4; + -moz-border-radius: 4; + border-radius: 4px; + font-family: Arial; + color: #ffffff; + font-size: 12px; + font-weight: bold; + padding: 4px 20px 4px 20px; + text-decoration: none; +} + +#send:hover +{ +text-decoration: none; +} + +#cancel +{ + + background: #4d4d4d; + background-image: -webkit-linear-gradient(top, #4d4d4d, #000000); + background-image: -moz-linear-gradient(top, #4d4d4d, #000000); + background-image: -ms-linear-gradient(top, #4d4d4d, #000000); + background-image: -o-linear-gradient(top, #4d4d4d, #000000); + background-image: linear-gradient(to bottom, #4d4d4d, #000000); + -webkit-border-radius: 4; + -moz-border-radius: 4; + border-radius: 4px; + font-family: Arial; + color: #ffffff; + font-size: 12px; + font-weight: bold; + padding: 4px 20px 4px 20px; + text-decoration: none; +} + +#cancel:hover +{ +text-decoration: none; +} + +tr[id=notMandatoryRow] { + display: none; +} +tr[id=spacer1] { + display: none; +} +tr[id=spacer2] { + display: none; +} +tr[id=spacer3] { + display: none; +} +tr[id=spacer4] { + display: none; +} +tr[id=contactBlock] { + display: none; +} +tr[id=userInfoBlock] { + display: none; +} +tr[id=addressBlock] { + display: none; +} +tr#notMandatoryRow, tr#addressBlock, tr#userInfoBlock, tr#contactBlock, tr#spacer1, tr#spacer2, tr#spacer3, tr#spacer4 { + display: none; +} +td { + color: #000000; +} +input,select { + color: #000000; + background-color: #ffffff; +} +a:link { + color:#000000; +} +a:visited { + color:#000000; +} +a:hover { + color:#000000; +} +a:active { + color:#000000; +} +a:focus { + color:#000000; +} +.bar{ + display: none; +} +select#paymentMethod{ + display: none; +} +#paymentSelection{ + display: none; +} +a#send{ + float: right; + position: absolute; + right: 10px; +} +a#cancel{ + float: left; + position: absolute; + left: 10px; +} + +html, body, .bar { + background:transparent; + font-family:Verdana,sans-serif; + color:#000 !important; + overflow:visible; +} +.frm_box { + background:transparent; + border:none; +} +form, tr, td { + border:none; + background:transparent; +} diff --git a/heidelpay_success.inc.php b/heidelpay_success.inc.php new file mode 100644 index 0000000..2c8a170 --- /dev/null +++ b/heidelpay_success.inc.php @@ -0,0 +1,40 @@ +
BarPay '.$barpayComment); + include ('send_order.php'); + heidelpay::saveOrderComment($insert_id, $ori_comment); + }else if(in_array($orders['payment_class'], array('hpiv', 'hppp', 'hpbs', 'hpdd'))){ + require_once(DIR_WS_CLASSES.'class.heidelpay.php'); + $payComment = heidelpay::getHistoryComment($insert_id, 'Payment Info: '); + $HPOUTPUT = '

'.nl2br(preg_replace('/Payment Info: /', '', $payComment)); + //$ori_comment = $orders['comments']; + //heidelpay::saveOrderComment($insert_id, $orders['comments'].'

'.$payComment); + include ('send_order.php'); + //heidelpay::saveOrderComment($insert_id, $ori_comment); + $smarty->assign('NOTIFY_COMMENTS', $HPOUTPUT); + $smarty->assign('ORDER_STATUS', 'waiting'); + $html_mail = $smarty->fetch(CURRENT_TEMPLATE.'/admin/mail/'.$_SESSION['language'].'/change_order_mail.html'); + $txt_mail = $smarty->fetch(CURRENT_TEMPLATE.'/admin/mail/'.$_SESSION['language'].'/change_order_mail.txt'); + $order_subject = 'Zahlungsinformationen Bestellung '.$insert_id; + if($_SESSION['language'] != 'german') $order_subject = 'Paymentinformation Order '.$insert_id; + // send mail to admin + xtc_php_mail(EMAIL_BILLING_ADDRESS, EMAIL_BILLING_NAME, EMAIL_BILLING_ADDRESS, STORE_NAME, EMAIL_BILLING_FORWARDING_STRING, $order->customer['email_address'], $order->customer['firstname'], '', '', $order_subject, $html_mail, $txt_mail); + // send mail to customer + xtc_php_mail(EMAIL_BILLING_ADDRESS, EMAIL_BILLING_NAME, $order->customer['email_address'], $order->customer['firstname'].' '.$order->customer['lastname'], '', EMAIL_BILLING_REPLY_ADDRESS, EMAIL_BILLING_REPLY_ADDRESS_NAME, '', '', $order_subject, $html_mail, $txt_mail); + }else{ + include ('send_order.php'); + } +} +?> diff --git a/heidelpay_success.php b/heidelpay_success.php new file mode 100644 index 0000000..af57c54 --- /dev/null +++ b/heidelpay_success.php @@ -0,0 +1,103 @@ +add(NAVBAR_TITLE_1_CHECKOUT_SUCCESS); +$breadcrumb->add(NAVBAR_TITLE_2_CHECKOUT_SUCCESS); + +require (DIR_WS_INCLUDES.'header.php'); + +$orders_query = xtc_db_query("select orders_id, orders_status from ".TABLE_ORDERS." where customers_id = '".$_SESSION['customer_id']."' order by orders_id desc limit 1"); +$orders = xtc_db_fetch_array($orders_query); +$last_order = $orders['orders_id']; +$order_status = $orders['orders_status']; + +if($_SESSION['language'] == 'german'){ + define('HP_SUCCESS_PREPAID', 'Ihre Transaktion war erfolgreich! + +Überweisen Sie uns den Betrag von {CURRENCY} {AMOUNT} auf folgendes Konto +Land : {ACC_COUNTRY} +Kontoinhaber : {ACC_OWNER} +Konto-Nr. : {ACC_NUMBER} +Bankleitzahl: {ACC_BANKCODE} +IBAN: {ACC_IBAN} +BIC: {ACC_BIC} +Geben sie bitte im Verwendungszweck UNBEDINGT die Identifikationsnummer +{SHORTID} +und NICHTS ANDERES an.'); +}else{ + define('HP_SUCCESS_PREPAID', 'Your transaction was successfull! + +Transfer the amount of {CURRENCY} {AMOUNT} to the following account +Country : {ACC_COUNTRY} +Account holder : {ACC_OWNER} +Account No. : {ACC_NUMBER} +Bank Code: {ACC_BANKCODE} +IBAN: {ACC_IBAN} +BIC: {ACC_BIC} +When you transfer the money you HAVE TO use the identification number +{SHORTID} +as the descriptor and nothing else. Otherwise we cannot match your transaction!'); +} + +$text = ''; +if(!empty($_SESSION['hpPrepaidData'])){ + $text.= '

'.nl2br(strtr(HP_SUCCESS_PREPAID, $_SESSION['hpPrepaidData'])); +} + +$smarty->assign('FORM_ACTION', xtc_draw_form('order', xtc_href_link(FILENAME_CHECKOUT_SUCCESS, 'action=update', 'SSL'))); +$smarty->assign('BUTTON_CONTINUE', xtc_image_submit('button_continue.gif', IMAGE_BUTTON_CONTINUE)); +$smarty->assign('BUTTON_PRINT', ''.$text); +$smarty->assign('FORM_END', ''); +// GV Code Start +$gv_query = xtc_db_query("select amount from ".TABLE_COUPON_GV_CUSTOMER." where customer_id='".$_SESSION['customer_id']."'"); +if($gv_result = xtc_db_fetch_array($gv_query)){ + if($gv_result['amount'] > 0){ + $smarty->assign('GV_SEND_LINK', xtc_href_link(FILENAME_GV_SEND)); + } +} +// GV Code End +// Google Conversion tracking +if(GOOGLE_CONVERSION == 'true'){ + + $smarty->assign('google_tracking', 'true'); + $smarty->assign('tracking_code', ' + + '); + +} +if(DOWNLOAD_ENABLED == 'true') + include (DIR_WS_MODULES.'downloads.php'); +$smarty->assign('language', $_SESSION['language']); +$smarty->assign('PAYMENT_BLOCK', $payment_block); +$smarty->caching = 0; +$main_content = $smarty->fetch(CURRENT_TEMPLATE.'/module/checkout_success.html'); + +$smarty->assign('language', $_SESSION['language']); +$smarty->assign('main_content', $main_content); +$smarty->caching = 0; +if(!defined(RM)) + $smarty->load_filter('output', 'note'); +$smarty->display(CURRENT_TEMPLATE.'/index.html'); +include ('includes/application_bottom.php'); +?> diff --git a/images/BarPay.jpg b/images/BarPay.jpg new file mode 100644 index 0000000000000000000000000000000000000000..19868ba19efca4ed78d485baf04154d573ec9f06 GIT binary patch literal 50829 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 literal 0 HcmV?d00001 diff --git a/images/ladebalken.gif b/images/ladebalken.gif new file mode 100644 index 0000000000000000000000000000000000000000..3f6dfc861d938f77c1bd38be6d88f0038e02678e GIT binary patch literal 5750 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 literal 0 HcmV?d00001 diff --git a/includes/classes/class.heidelpay.php b/includes/classes/class.heidelpay.php new file mode 100644 index 0000000..d6e5205 --- /dev/null +++ b/includes/classes/class.heidelpay.php @@ -0,0 +1,1276 @@ +pageURL = HTTPS_SERVER . ''; + } + + + function handleRegister($order, $payCode) { + $this->trackStep ( 'handleRegister', 'order', $order ); + $debug = false; + if (constant ( 'MODULE_PAYMENT_HP' . $this->actualPaymethod . '_DEBUG' ) == 'True') + $debug = true; + $ACT_MOD_MODE = constant ( 'MODULE_PAYMENT_HP' . strtoupper ( $this->actualPaymethod ) . '_MODULE_MODE' ); + if ($ACT_MOD_MODE == 'AFTER') + return false; + // echo '

'.print_r($order, 1).'
'; + if ($_SESSION ['customers_status'] ['customers_status_show_price_tax'] == 0 && $_SESSION ['customers_status'] ['customers_status_add_tax_ot'] == 1) { + $total = $order->info ['total'] + $order->info ['tax']; + } else { + $total = $order->info ['total']; + } + $currency_value = $order->info ['currency_value']; + if (empty ( $currency_value )) + $currency_value = 1.0; + + $user_id = $_SESSION ['customer_id']; + $orderId = 'User ' . $user_id . '-' . date ( 'YmdHis' ); + $amount = $total; // * $currency_value; + $currency = $order->info ['currency']; + $language = strtoupper ( $_SESSION ['language_code'] ); + $userData = array ( + 'firstname' => $order->billing ['firstname'], + 'lastname' => $order->billing ['lastname'], + 'salutation' => ($order->customer ['gender'] == 'f' ? 'MRS' : 'MR'), + 'street' => $order->billing ['street_address'], + 'zip' => $order->billing ['postcode'], + 'city' => $order->billing ['city'], + 'country' => $order->billing ['country'] ['iso_code_2'], + 'email' => $order->customer ['email_address'], + 'ip' => $_SERVER ['REMOTE_ADDR'] + ); + $payMethod = 'RG'; + $data = $this->prepareData ( $orderId, $amount, $currency, $payCode, $userData, $language, $payMethod ); + $this->trackStep ( 'handleRegister', 'data', $data ); + if ($debug) + echo '
' . print_r ( $data, 1 ) . '
'; + $res = $this->doRequest ( $data ); + $this->trackStep ( 'handleRegister', 'result', $res ); + if ($debug) + echo 'System-URL: ' . $this->url; + if ($debug) + echo '
resp(' . print_r ( $this->response, 1 ) . ')
'; + if ($debug) + echo '
' . print_r ( $res, 1 ) . '
'; + $res = $this->parseResult ( $res ); + $this->trackStep ( 'handleRegister', 'parsedResult', $res ); + if ($debug) + echo '
' . print_r ( $res, 1 ) . '
'; + $processingresult = $res ['result']; + $redirectURL = $res ['url']; + $base = 'heidelpay_redirect.php?'; + $src = $base . "payment_error=hp" . strtolower ( $this->actualPaymethod ) . '&error=' . $res ['all'] ['PROCESSING.RETURN'] . '&' . session_name () . '=' . session_id (); + if ($processingresult == "ACK" && strstr ( $redirectURL, "http" )) { + $src = $redirectURL; + } + $this->trackStep ( 'handleRegister', 'src', $src ); + if ($debug) { + echo $src; + exit (); + } + return $src; + } + + + function handleDebit($order, $payCode, $insertId = false) { + $this->trackStep ( 'handleDebit', 'order', $order ); + $debug = false; + if (constant ( 'MODULE_PAYMENT_HP' . $this->actualPaymethod . '_DEBUG' ) == 'True') + $debug = true; + $loc = ''; + if (SEARCH_ENGINE_FRIENDLY_URLS == 'true') + $loc = DIR_WS_CATALOG; + $ACT_MOD_MODE = @constant ( 'MODULE_PAYMENT_HP' . strtoupper ( $this->actualPaymethod ) . '_MODULE_MODE' ); + if (! in_array ( $ACT_MOD_MODE, array ( + 'DIRECT', + 'AFTER', + 'NOWPF' + ) )) + $ACT_MOD_MODE = 'AFTER'; + $ACT_PAY_MODE = @constant ( 'MODULE_PAYMENT_HP' . strtoupper ( $this->actualPaymethod ) . '_PAY_MODE' ); + if (! in_array ( $ACT_PAY_MODE, array ( + 'DB', + 'PA' + ) )) + $ACT_PAY_MODE = 'DB'; + // echo '
'.print_r($order, 1).'
'; + + $user_id = $_SESSION ['hpLastData'] ['user_id']; + if ($user_id <= 0) + $user_id = $_SESSION ['customer_id']; // Fallback User Id + $orderId = 'User ' . $user_id . '-' . date ( 'YmdHis' ); + if (! empty ( $insertId )) + $orderId = 'User ' . $user_id . ' Order ' . $insertId; + $amount = $_SESSION ['hpLastData'] ['amount']; + $currency = $_SESSION ['hpLastData'] ['currency']; + $language = $_SESSION ['hpLastData'] ['language']; + $userData = $_SESSION ['hpLastData'] ['userData']; + if ($debug) + echo '
SESSION: ' . print_r ( $_SESSION ['hpLastData'], 1 ) . '
'; + $capture = false; + if (strtoupper ( $payCode ) == 'DD') { + $ACT_MOD_MODE = 'DIRECT'; + } + if ($ACT_MOD_MODE == 'DIRECT') { + $capture = true; + } + + // Special CC Reuse + if (! empty ( $_SESSION ['hpUseUniqueId'] ) && ((strtoupper ( $payCode ) == 'CC') || (strtoupper ( $payCode ) == 'DC'))) { + $capture = true; + $_SESSION ['hpUniqueID'] = $_SESSION ['hpUseUniqueId']; + } else { + unset ( $_SESSION ['hpUniqueID'] ); + } + + $payMethod = $ACT_PAY_MODE; + $changePayType = array ( + 'gp', + 'su', + 'tp', + 'idl', + 'eps' + ); + if (in_array ( $payCode, $changePayType )) + $payCode = 'OT'; + if ($payCode == 'ppal') + $payCode = 'VA'; + if (empty ( $payMethod )) + $payMethod = 'DB'; + if ($payCode == 'OT' && $payMethod == 'DB') + $payMethod = 'PA'; + // if(strtoupper($payCode) == 'PP' && $payMethod == 'DB') $payMethod = 'PA'; // Vorkasse immer PA + + if (in_array ( strtoupper ( $payCode ), array ( + 'OT', + 'PP', + 'IV' + ) )) { + if ($payMethod == 'DB') + $payMethod = 'PA'; // Rechnung und Vorkasse immer PA + if (in_array ( strtoupper ( $payCode ), array ( + 'PP', + 'IV' + ) )) + $capture = true; // Rechnung und Vorkasse immer ohne IFrame + unset ( $_SESSION ['hpUniqueID'] ); + } + + $data = $this->prepareData ( $orderId, $amount, $currency, $payCode, $userData, $language, $payMethod, $capture, $_SESSION ['hpUniqueID'] ); + $this->trackStep ( 'handleDebit', 'data', $data ); + + // echo '
'.print_r($_SESSION, 1).'
'; + if ($debug) + echo '
' . print_r ( $data, 1 ) . '
'; + $res = $this->doRequest ( $data ); + $this->trackStep ( 'handleDebit', 'result', $res ); + if ($debug) + echo '
resp(' . print_r ( $this->response, 1 ) . ')
'; + if ($debug) + echo '
' . print_r ( $res, 1 ) . '
'; + $res = $this->parseResult ( $res ); + $this->trackStep ( 'handleDebit', 'parsedResult', $res ); + if ($debug) + echo '
' . print_r ( $res, 1 ) . '
'; + $_SESSION ['HEIDELPAY_IFRAME'] = false; + + if (isset ( $res ['all'] ['ACCOUNT.HOLDER'] ) && ($res ['all'] ['ACCOUNT.HOLDER'] != '')) { + $holder = $res ['all'] ['ACCOUNT.HOLDER']; + } + + // 3D Secure + if ($res ['all'] ['PROCESSING.STATUS.CODE'] == '80' && $res ['all'] ['PROCESSING.RETURN.CODE'] == '000.200.000' && $res ['all'] ['PROCESSING.REASON.CODE'] == '00') { + $src = $res ['all'] ['PROCESSING.REDIRECT.URL']; + if ($this->actualPaymethod == 'BS') { + $hpIframe = '
' . '
'; + header ( 'Location: ' . $src ); + exit (); + } + $hpIframe = ''; + $hpIframe .= '
'; + $hpIframe .= ''; + $hpIframe .= ''; + $hpIframe .= ''; + $hpIframe .= '
'; + $hpIframe .= ''; + if (@constant ( 'MODULE_PAYMENT_HP' . strtoupper ( $this->actualPaymethod ) . '_DIRECT_MODE' ) == 'GAMBIOLIGHTBOX') { + GLOBAL $smarty; + $smarty->assign ( 'LIGHTBOX', gm_get_conf ( 'GM_LIGHTBOX_CHECKOUT' ) ); + if ($_SESSION ['style_edit_mode'] == 'edit') + $smarty->assign ( 'STYLE_EDIT', 1 ); + else + $smarty->assign ( 'STYLE_EDIT', 0 ); + $smarty->assign ( 'language', $_SESSION ['language'] ); + $smarty->assign ( 'content', '
' . $hpIframe . '
' ); + $content = $smarty->fetch ( CURRENT_TEMPLATE . '/module/checkout_payment_hp.html' ); + $_SESSION ['HEIDELPAY_IFRAME'] = $content; + if (! $debug) + header ( 'Location: ' . $loc . 'heidelpay_checkout_iframe.php?' . session_name () . '=' . session_id () ); + exit (); + } else if (@constant ( 'MODULE_PAYMENT_HP' . strtoupper ( $this->actualPaymethod ) . '_DIRECT_MODE' ) == 'LIGHTBOX') { + $hpIframeCode = '
'; + $hpIframeCode .= '
'; + $hpIframeCode .= $hpIframe; + $hpIframeCode .= '
close
'; + $_SESSION ['HEIDELPAY_IFRAME'] = $hpIframeCode; + } else { + $_SESSION ['HEIDELPAY_IFRAME'] = $hpIframe; + } + $_SESSION ['hpLastPost'] = $_POST; + if (empty ( $_SESSION ['hpLastPost'] )) + $_SESSION ['hpLastPost'] ['hp'] = 1; + if ($debug) + echo '
' . print_r ( $_SESSION ['hpLastPost'], 1 ) . '
'; + // if($debug) echo '
'.print_r($GLOBALS, 1).'
'; + $this->trackStep ( 'handleDebit', 'session', $_SESSION ); + if (! $debug) + header ( 'Location: ' . $loc . 'heidelpay_3dsecure.php?' . session_name () . '=' . session_id () ); + exit (); + } else if ($ACT_MOD_MODE == 'AFTER') { + // $_SESSION['hpLastPost'] = $_POST; + } + $processingresult = $res ['result']; + $redirectURL = $res ['url']; + $base = 'heidelpay_redirect.php?'; + $src = $base . 'payment_error=hp' . strtolower ( $this->actualPaymethod ); + if ($processingresult != "ACK") { + $src .= '&error=' . $res ['all'] ['PROCESSING.RETURN'] . '&' . session_name () . '=' . session_id (); + $comment = $res ['all'] ['PROCESSING.RETURN']; + $status = constant ( 'MODULE_PAYMENT_HP' . strtoupper ( $this->actualPaymethod ) . '_CANCELED_STATUS_ID' ); + $this->addHistoryComment ( $insertId, $comment, $status ); + $this->setOrderStatus ( $insertId, $status ); + $this->trackStep ( 'handleDebit', 'src', $src ); + if (! $debug) + header ( 'Location: ' . $loc . '' . $src ); + if ($debug) + echo $src; + exit (); + } else if ($processingresult == "ACK" && strstr ( $redirectURL, "http" )) { + $src = $redirectURL; + } else + // IDeal Best�tigungs Seite + if (! empty ( $res ['all'] ['PROCESSING.REDIRECT.URL'] )) { + // IDeal und OT Best�tigungs Seite + if ($this->actualPaymethod == 'SU') { + // $src = $res['all']['PROCESSING.REDIRECT.URL']; + $form = '
'; + foreach ( $res ['all'] as $k => $v ) { + if (strpos ( $k, 'PROCESSING_REDIRECT_PARAMETER_' ) !== false) { + $form .= ''; + } + } + // $form.= '
'; + $form .= '
'; + $_SESSION ['HEIDELPAY_IFRAME'] = $form; + // echo '
'.print_r($form, 1).'
'; exit(); + if (! $debug) + header ( 'Location: ' . $loc . 'heidelpay_checkout_iframe.php?' . session_name () . '=' . session_id () ); + if (! $debug) + exit (); + // if($debug) echo 'IFrame: '.$hpIframe.'
'; + } else { + // Giropay kann direkt angesprungen werden + $src = $res ['all'] ['PROCESSING.REDIRECT.URL']; + if (! $debug) + header ( 'Location: ' . $src . '' ); + if (! $debug) + exit (); + } + } + $this->trackStep ( 'handleDebit', 'src', $src ); + if ($debug) + echo 'Src: ' . $src . '
'; + $hpIframe = ''; + if (in_array ( $payCode, array ( + 'cc', + 'dc', + 'dd' + ) ) && ($ACT_MOD_MODE == 'DIRECT' || $ACT_MOD_MODE == 'NOWPF') && ($payMethod == 'DB' || $payMethod == 'PA')) { + // Bei DB fuer CC / DC / DD keinen IFrame anzeigen + if (! $_SESSION ['HEIDELPAY_IFRAME'] && $processingresult == "ACK" && $insertId > 0) { + $comment = 'ShortID: ' . $res ['all'] ['IDENTIFICATION.SHORTID']; + + // Coupon im Erfolgsfall vergessen + if (isset ( $_SESSION ['heidel_last_coupon'] )) { + unset ( $_SESSION ['heidel_last_coupon'] ); + } + // letzten Coupon im Erfolgsfall vergessen + if (isset ( $_SESSION ['cc_id'] )) { + unset ( $_SESSION ['cc_id'] ); + } + + if ($payCode == 'dd') { + $repl = array ( + '{ACC_IBAN}' => $res ['all'] ['ACCOUNT_IBAN'], + /*'{ACC_BIC}' => $res['all']['ACCOUNT_BIC'],*/ + '{ACC_IDENT}' => $res ['all'] ['ACCOUNT_IDENTIFICATION'], + '{IDENT_CRED_ID}' => $res ['all'] ['IDENTIFICATION_CREDITOR_ID'], + '
' => '' + ); + $prePaidData = strtr ( MODULE_PAYMENT_HPDD_SUCCESS, $repl ); + $comment .= ' | Payment Info: ' . $prePaidData; + } + + $status = constant ( 'MODULE_PAYMENT_HP' . strtoupper ( $payCode ) . '_PROCESSED_STATUS_ID' ); + $this->addHistoryComment ( $insertId, $comment, $status ); + $this->saveIds ( $res ['all'] ['IDENTIFICATION.UNIQUEID'], $insertId, 'hp' . $payCode, $res ['all'] ['IDENTIFICATION.SHORTID'] ); + // $this->saveUniqueId($insertId, $res['all']['IDENTIFICATION.UNIQUEID'], $holder); // Unique ID in CC_NUMBER speichern + // $this->saveShortId($insertId, $res['all']['IDENTIFICATION.SHORTID']); // ShortID speichern + $this->setOrderStatus ( $insertId, $status ); + if ($payCode == 'dd') { + $values = array ( + 'kto' => $res ['all'] ['ACCOUNT.NUMBER'], + 'blz' => $res ['all'] ['ACCOUNT.BANK'], + 'own' => $holder + ); + // $this->saveBankData($user_id, 'hpdd', $values); + } + } + } else if (in_array ( $payCode, array ( + 'pp', + 'iv' + ) ) && $ACT_MOD_MODE == 'AFTER') { + // Bei PP und IV keinen IFrame anzeigen + if ($processingresult == "ACK" && $insertId > 0) { + $comment = 'ShortID: ' . $res ['all'] ['IDENTIFICATION.SHORTID']; + $status = constant ( 'MODULE_PAYMENT_HP' . strtoupper ( $payCode ) . '_PROCESSED_STATUS_ID' ); + $this->addHistoryComment ( $insertId, $comment, $status ); + $this->saveIds ( $res ['all'] ['IDENTIFICATION.UNIQUEID'], $insertId, 'hp' . $payCode, $res ['all'] ['IDENTIFICATION.SHORTID'] ); + // $this->saveUniqueId($insertId, $res['all']['IDENTIFICATION.UNIQUEID'], $holder); // Unique ID in CC_NUMBER speichern + // $this->saveShortId($insertId, $res['all']['IDENTIFICATION.SHORTID']); // ShortID speichern + $this->setOrderStatus ( $insertId, $status ); + $hpPayinfos = array ( + 'CONNECTOR_ACCOUNT_BANK' => $res ['all'] ['CONNECTOR_ACCOUNT_BANK'], + 'CONNECTOR_ACCOUNT_BIC' => $res ['all'] ['CONNECTOR_ACCOUNT_BIC'], + 'CONNECTOR_ACCOUNT_COUNTRY' => $res ['all'] ['CONNECTOR_ACCOUNT_COUNTRY'], + 'CONNECTOR_ACCOUNT_HOLDER' => $res ['all'] ['CONNECTOR_ACCOUNT_HOLDER'], + 'CONNECTOR_ACCOUNT_IBAN' => $res ['all'] ['CONNECTOR_ACCOUNT_IBAN'], + 'CONNECTOR_ACCOUNT_NUMBER' => $res ['all'] ['CONNECTOR_ACCOUNT_NUMBER'], + 'PRESENTATION_AMOUNT' => $res ['all'] ['PRESENTATION_AMOUNT'], + 'PRESENTATION_CURRENCY' => $res ['all'] ['PRESENTATION_CURRENCY'], + 'IDENTIFICATION_SHORTID' => $res ['all'] ['IDENTIFICATION_SHORTID'] + ); + $repl = array ( + '{AMOUNT}' => $hpPayinfos ['PRESENTATION_AMOUNT'], + '{CURRENCY}' => $hpPayinfos ['PRESENTATION_CURRENCY'], + '{ACC_COUNTRY}' => $hpPayinfos ['CONNECTOR_ACCOUNT_COUNTRY'], + '{ACC_OWNER}' => $hpPayinfos ['CONNECTOR_ACCOUNT_HOLDER'], + '{ACC_NUMBER}' => $hpPayinfos ['CONNECTOR_ACCOUNT_NUMBER'], + '{ACC_BANKCODE}' => $hpPayinfos ['CONNECTOR_ACCOUNT_BANK'], + '{ACC_BIC}' => $hpPayinfos ['CONNECTOR_ACCOUNT_BIC'], + '{ACC_IBAN}' => $hpPayinfos ['CONNECTOR_ACCOUNT_IBAN'], + '{SHORTID}' => $hpPayinfos ['IDENTIFICATION_SHORTID'] + ); + + if ($payCode == 'pp') { + $prePaidData = strtr ( MODULE_PAYMENT_HPPP_SUCCESS, $repl ); + } else { + $prePaidData = strtr ( MODULE_PAYMENT_HPIV_SUCCESS, $repl ); + } + $comment = 'Payment Info: ' . $prePaidData . '
'; + $this->addHistoryComment ( $insertId, $comment, $status ); + } + // BarPay + } else if (! empty ( $res ['all'] ['CRITERION_BARPAY_PAYCODE_URL'] )) { + // $prePaidData = preg_replace('/{LINK}/', $res['all']['CRITERION_BARPAY_PAYCODE_URL'], MODULE_PAYMENT_HPBP_BARPAY_DOWNLOAD); + // $this->saveOrderComment($insertId, $res['all']['CRITERION_BARPAY_PAYCODE_URL']); + $comment = 'ShortID: ' . $res ['all'] ['IDENTIFICATION.SHORTID']; + $status = constant ( 'MODULE_PAYMENT_HP' . strtoupper ( $payCode ) . '_PROCESSED_STATUS_ID' ); + $this->addHistoryComment ( $insertId, $comment, $status ); + $comment = 'Download Link: ' . $res ['all'] ['CRITERION_BARPAY_PAYCODE_URL']; + $this->addHistoryComment ( $insertId, $comment, $status ); + $this->saveIds ( $res ['all'] ['IDENTIFICATION.UNIQUEID'], $insertId, 'hp' . $payCode, $res ['all'] ['IDENTIFICATION.SHORTID'] ); + // $this->saveUniqueId($insertId, $res['all']['IDENTIFICATION.UNIQUEID'], $holder); // Unique ID in CC_NUMBER speichern + // $this->saveShortId($insertId, $res['all']['IDENTIFICATION.SHORTID']); // ShortID speichern + $this->setOrderStatus ( $insertId, $status ); + // error_log($this->_getHelper('heidelpay')->__('HP_BARPAY_DOWNLOAD'), 3, 'd:\LOGS\magento.log'); + } else { + if ($this->actualPaymethod == 'TP' || $this->actualPaymethod == 'SU') { + if (@constant ( 'MODULE_PAYMENT_HP' . strtoupper ( $this->actualPaymethod ) . '_DIRECT_MODE' ) == 'LIGHTBOX') { + $hpIframe = '
'; + $hpIframe .= '
'; + $hpIframe .= '
'; + $hpIframe .= 'close
'; + } else { + $hpIframe = '
'; + } + } else { + $hpIframe = '
'; + } + $_SESSION ['HEIDELPAY_IFRAME'] = $hpIframe; + $this->trackStep ( 'handleDebit', 'session', $_SESSION ); + // $_SESSION['hpLastPost'] = $_POST; + if (! $debug) + header ( 'Location: ' . $loc . 'heidelpay_checkout_iframe.php?' . session_name () . '=' . session_id () ); + if ($debug) + echo 'IFrame: ' . $hpIframe . '
'; + exit (); + } + if ($debug) + exit (); + $this->trackStep ( 'handleDebit', 'session', $_SESSION ); + $this->trackStep ( 'handleDebit', 'hpIframe', $hpIframe ); + return $hpIframe; + } + + + function prepareData($orderId, $amount, $currency, $payCode, $userData, $lang, $mode = 'DB', $capture = false, $uniqueId = NULL) { + $payCode = strtoupper ( $payCode ); + $amount = sprintf ( '%1.2f', $amount ); + $currency = strtoupper ( $currency ); + $userData = $this->encodeData ( $userData ); + + $ACT_MOD_MODE = @constant ( 'MODULE_PAYMENT_HP' . strtoupper ( $this->actualPaymethod ) . '_MODULE_MODE' ); + if (! in_array ( $ACT_MOD_MODE, array ( + 'DIRECT', + 'AFTER', + 'NOWPF' + ) )) + $ACT_MOD_MODE = 'AFTER'; + + $parameters ['SECURITY.SENDER'] = constant ( 'MODULE_PAYMENT_HP' . $this->actualPaymethod . '_SECURITY_SENDER' ); + $parameters ['USER.LOGIN'] = constant ( 'MODULE_PAYMENT_HP' . $this->actualPaymethod . '_USER_LOGIN' ); + $parameters ['USER.PWD'] = constant ( 'MODULE_PAYMENT_HP' . $this->actualPaymethod . '_USER_PWD' ); + $parameters ['TRANSACTION.CHANNEL'] = constant ( 'MODULE_PAYMENT_HP' . $this->actualPaymethod . '_TRANSACTION_CHANNEL' ); + + if (constant ( 'MODULE_PAYMENT_HP' . $this->actualPaymethod . '_TRANSACTION_MODE' ) == 'LIVE') { + $txnMode = 'LIVE'; + } else { + $txnMode = 'CONNECTOR_TEST'; + } + $parameters ['TRANSACTION.MODE'] = $txnMode; + + $parameters ['REQUEST.VERSION'] = "1.0"; + $parameters ['IDENTIFICATION.TRANSACTIONID'] = $orderId; + $parameters ['IDENTIFICATION.SHOPPERID'] = $_SESSION ['customer_id']; + if ($capture) { + $parameters ['FRONTEND.ENABLED'] = "false"; + if (! empty ( $uniqueId )) { + $parameters ['ACCOUNT.REGISTRATION'] = $uniqueId; + } + } else { + $parameters ['FRONTEND.ENABLED'] = "true"; + } + $parameters ['FRONTEND.REDIRECT_TIME'] = "0"; + $parameters ['FRONTEND.POPUP'] = "false"; + $parameters ['FRONTEND.MODE'] = "DEFAULT"; + $parameters ['FRONTEND.LANGUAGE'] = $lang; + $parameters ['FRONTEND.LANGUAGE_SELECTOR'] = "true"; + $parameters ['FRONTEND.ONEPAGE'] = "true"; + $parameters ['FRONTEND.NEXTTARGET'] = "location.href"; + $parameters ['FRONTEND.CSS_PATH'] = $this->pageURL . DIR_WS_CATALOG . "heidelpay_style.css"; + if ($mode == 'RG') + $parameters ['FRONTEND.CSS_PATH'] = $this->pageURL . DIR_WS_CATALOG . "heidelpay_reg_style.css"; + $parameters ['FRONTEND.RETURN_ACCOUNT'] = "true"; + + if ($this->actualPaymethod == 'SU') { + if (is_numeric ( $_SESSION ['hpSUData'] ['AccountNumber'] ) && is_numeric ( $_SESSION ['hpSUData'] ['BankCode'] )) { + $parameters ['ACCOUNT.NUMBER'] = $_SESSION ['hpSUData'] ['AccountNumber']; + $parameters ['ACCOUNT.BANK'] = $_SESSION ['hpSUData'] ['BankCode']; + } else { + $parameters ['ACCOUNT.IBAN'] = strtoupper ( $_SESSION ['hpSUData'] ['AccountNumber'] ); + $parameters ['ACCOUNT.BIC'] = strtoupper ( $_SESSION ['hpSUData'] ['BankCode'] ); + } + $parameters ['ACCOUNT.HOLDER'] = $_SESSION ['hpSUData'] ['Holder']; + $parameters ['FRONTEND.ENABLED'] = "false"; + + } else if ($this->actualPaymethod == 'IDL' && $ACT_MOD_MODE == 'NOWPF') { + $parameters ['ACCOUNT.NUMBER'] = $_SESSION ['hpIdealData'] ['otAccountNumber']; + $parameters ['ACCOUNT.BANK'] = $_SESSION ['hpIdealData'] ['otBankCode']; + $parameters ['ACCOUNT.HOLDER'] = $_SESSION ['hpIdealData'] ['onlineTransferHolder']; + $parameters ['ACCOUNT.COUNTRY'] = $_SESSION ['hpIdealData'] ['onlineTransferCountry']; + $parameters ['ACCOUNT.BANKNAME'] = $_SESSION ['hpIdealData'] ['onlineTransferInstitute']; + $parameters ['FRONTEND.ENABLED'] = "false"; + } else if ($this->actualPaymethod == 'DD') { + + $parameters ['ACCOUNT.HOLDER'] = $_SESSION ['hpDDData'] ['Holder']; + if ($_SESSION ['hpDDData'] ['AccountNumber'] != '') { + $parameters ['ACCOUNT.NUMBER'] = $_SESSION ['hpDDData'] ['AccountNumber']; + } + if ($_SESSION ['hpDDData'] ['BankCode'] != '') { + $parameters ['ACCOUNT.BANK'] = $_SESSION ['hpDDData'] ['BankCode']; + } + $parameters ['ACCOUNT.IBAN'] = strtoupper ( $_SESSION ['hpDDData'] ['AccountIBAN'] ); + /* $parameters['ACCOUNT.BIC'] = strtoupper($_SESSION['hpDDData']['AccountBIC']); */ + } else if ($this->actualPaymethod == 'GP') { + $parameters ['ACCOUNT.IBAN'] = strtoupper ( $_SESSION ['hpGPData'] ['AccountIBAN'] ); + $parameters ['ACCOUNT.BIC'] = strtoupper ( $_SESSION ['hpGPData'] ['AccountBIC'] ); + $parameters ['ACCOUNT.HOLDER'] = utf8_encode ( $_SESSION ['hpGPData'] ['Holder'] ); + $parameters ['FRONTEND.ENABLED'] = "false"; + + } else if ($this->actualPaymethod == 'PPAL') { + $parameters ['ACCOUNT.BRAND'] = 'PAYPAL'; + + } else if ($this->actualPaymethod == 'BS') { + $parameters ['PAYMENT.CODE'] = "IV.PA"; + $parameters ['ACCOUNT.BRAND'] = "BILLSAFE"; + $parameters ['FRONTEND.ENABLED'] = "false"; + $oId = preg_replace ( '/.*Order /', '', $orderId ); + $order = $order = new order ( $oId ); + $bsParams = $this->getBillsafeBasket ( $order ); + $parameters = array_merge ( $parameters, $bsParams ); + + } else if ($this->actualPaymethod == 'BP') { + $parameters ['PAYMENT.CODE'] = "PP.PA"; + $parameters ['ACCOUNT.BRAND'] = "BARPAY"; + $parameters ['FRONTEND.ENABLED'] = "false"; + + } else if ($this->actualPaymethod == 'MK') { + $parameters ['PAYMENT.CODE'] = "PC.PA"; + $parameters ['ACCOUNT.BRAND'] = "MANGIRKART"; + $parameters ['FRONTEND.ENABLED'] = "false"; + } + + foreach ( $this->availablePayments as $key => $value ) { + if ($value != $payCode) { + $parameters ["FRONTEND.PM." . ( string ) ($key + 1) . ".METHOD"] = $value; + $parameters ["FRONTEND.PM." . ( string ) ($key + 1) . ".ENABLED"] = "false"; + } + } + // Wenn der Payment Code noch nicht gesetzt wurde + if (empty ( $parameters ['PAYMENT.CODE'] )) { + $parameters ['PAYMENT.CODE'] = $payCode . "." . $mode; + } + $parameters ['FRONTEND.RESPONSE_URL'] = $this->pageURL . DIR_WS_CATALOG . "heidelpay_response.php" . '?' . session_name () . '=' . session_id (); + if (strpos ( $_SERVER ['REMOTE_ADDR'], '127.0.0' ) !== false) + $parameters ['FRONTEND.RESPONSE_URL'] = "http://demoshops.heidelpay.de/resp/xtc/heidelpay_response.php" . '?' . session_name () . '=' . session_id (); + $parameters ['NAME.GIVEN'] = trim ( $userData ['firstname'] ); + $parameters ['NAME.FAMILY'] = trim ( $userData ['lastname'] ); + $parameters ['NAME.SALUTATION'] = $userData ['salutation']; + $parameters ['NAME.COMPANY'] = $userData ['company']; + $parameters ['ADDRESS.STREET'] = $userData ['street']; + $parameters ['ADDRESS.ZIP'] = $userData ['zip']; + $parameters ['ADDRESS.CITY'] = $userData ['city']; + $parameters ['ADDRESS.COUNTRY'] = $userData ['country']; + $parameters ['ADDRESS.STATE'] = $userData ['state']; + $parameters ['CONTACT.EMAIL'] = $userData ['email']; + $parameters ['CONTACT.IP'] = $userData ['ip']; + $parameters ['PRESENTATION.AMOUNT'] = $amount; // 99.00 + $parameters ['PRESENTATION.CURRENCY'] = $currency; // EUR + $parameters ['ACCOUNT.COUNTRY'] = $userData ['country']; + + $parameters ['FRONTEND.BUTTON.1.NAME'] = 'PAY'; + $parameters ['FRONTEND.BUTTON.1.TYPE'] = 'BUTTON'; + $parameters ['FRONTEND.BUTTON.1.LABEL'] = constant ( 'MODULE_PAYMENT_HP' . $this->actualPaymethod . '_FRONTEND_BUTTON_CONTINUE' ); + $parameters ['FRONTEND.BUTTON.2.NAME'] = 'CANCEL'; + $parameters ['FRONTEND.BUTTON.2.TYPE'] = 'BUTTON'; + $parameters ['FRONTEND.BUTTON.2.LABEL'] = constant ( 'MODULE_PAYMENT_HP' . $this->actualPaymethod . '_FRONTEND_BUTTON_CANCEL' ); + + $parameters ['SHOP.TYPE'] = "XTC 3.4"; + $parameters ['SHOPMODULE.VERSION'] = "Premium " . $this->version; + return $parameters; + } + + + function getBillsafeBasket($order) { + global $xtPrice; + $order->cart (); + // echo '
'.print_r($order, 1).'
'; + + $items = $order->products; + $i = 0; + if ($items) { + foreach ( $items as $id => $item ) { + $i ++; + $prefix = 'CRITERION.POS_' . sprintf ( '%02d', $i ); + $parameters [$prefix . '.POSITION'] = $i; + $parameters [$prefix . '.QUANTITY'] = ( int ) $item ['qty']; + $parameters [$prefix . '.UNIT'] = 'Stk.'; // Liter oder so + if ($_SESSION ['customers_status'] ['customers_status_show_price_tax'] == '0') { + $parameters [$prefix . '.AMOUNT_UNIT'] = round ( $item ['price'] * 100 ); + $parameters [$prefix . '.AMOUNT'] = round ( $item ['final_price'] * 100 ); + } else { + $parameters [$prefix . '.AMOUNT_UNIT_GROSS'] = round ( $item ['price'] * 100 ); + $parameters [$prefix . '.AMOUNT_GROSS'] = round ( $item ['price'] * 100 ); + } + // $parameters[$prefix.'.AMOUNT_UNIT_GROSS'] = round($item['price']*100) + round($item['price']*$item['tax']); + // $parameters[$prefix.'.AMOUNT_GROSS'] = round($item['final_price']*100) + round($item['final_price']*$item['tax']); + $parameters [$prefix . '.TEXT'] = $item ['name']; + // $parameters[$prefix.'.COL1'] = 'SKU:'.$item->getSku(); + // $parameters[$prefix.'.COL2'] = ''; + // $parameters[$prefix.'.COL3'] = ''; + // $parameters[$prefix.'.COL4'] = ''; + $parameters [$prefix . '.ARTICLE_NUMBER'] = $item ['id']; + $parameters [$prefix . '.PERCENT_VAT'] = sprintf ( '%1.2f', $item ['tax'] ); + $parameters [$prefix . '.ARTICLE_TYPE'] = 'goods'; // "goods" (Versandartikel), "shipment" (Versandkosten) oder "voucher" (Gutschein/Rabatt) + } + } + if ($order->info ['shipping_cost'] > 0) { + $shipping_id = explode ( '_', $order->info ['shipping_class'] ); + $shipping_id = $shipping_id [0]; + $shipping_tax_rate = $this->get_shipping_tax_rate ( $shipping_id ); + $shipping_cost = round ( $order->info ['shipping_cost'] * $xtPrice->currencies [$currency] ['value'], $xtPrice->get_decimal_places ( $currency ) ); + $shipping_cost = xtc_add_tax ( $shipping_cost, $shipping_tax_rate ); + $i ++; + $prefix = 'CRITERION.POS_' . sprintf ( '%02d', $i ); + $parameters [$prefix . '.POSITION'] = $i; + $parameters [$prefix . '.QUANTITY'] = '1'; + $parameters [$prefix . '.UNIT'] = 'Stk.'; // Liter oder so + if ($_SESSION ['customers_status'] ['customers_status_show_price_tax'] == '0') { + $parameters [$prefix . '.AMOUNT_UNIT'] = round ( $order->info ['shipping_cost'] * 100 ); + $parameters [$prefix . '.AMOUNT'] = round ( $order->info ['shipping_cost'] * 100 ); + } else { + $parameters [$prefix . '.AMOUNT_UNIT_GROSS'] = round ( $order->info ['shipping_cost'] * 100 ) + round ( $order->info ['shipping_cost'] * $item ['tax'] ); + $parameters [$prefix . '.AMOUNT_GROSS'] = round ( $order->info ['shipping_cost'] * 100 ) + round ( $order->info ['shipping_cost'] * $item ['tax'] ); + } + // $parameters[$prefix.'.AMOUNT_UNIT_GROSS'] = round($order->info['shipping_cost']*100); + // $parameters[$prefix.'.AMOUNT_GROSS'] = round($order->info['shipping_cost']*100); + $parameters [$prefix . '.TEXT'] = $order->info ['shipping_method']; + // $parameters[$prefix.'.COL1'] = $order->info['shipping_method']; + // $parameters[$prefix.'.COL2'] = ''; + // $parameters[$prefix.'.COL3'] = ''; + // $parameters[$prefix.'.COL4'] = ''; + $parameters [$prefix . '.ARTICLE_NUMBER'] = '0'; + $parameters [$prefix . '.PERCENT_VAT'] = sprintf ( '%1.2f', $shipping_tax_rate ); + $parameters [$prefix . '.ARTICLE_TYPE'] = 'shipment'; // "goods" (Versandartikel), "shipment" (Versandkosten) oder "voucher" (Gutschein/Rabatt) + } + $items = $order->totals; + if ($items) { + foreach ( $items as $id => $item ) { + if ($item ['value'] >= 0) + continue; + $i ++; + $prefix = 'CRITERION.POS_' . sprintf ( '%02d', $i ); + $parameters [$prefix . '.POSITION'] = $i; + $parameters [$prefix . '.QUANTITY'] = 1; + $parameters [$prefix . '.UNIT'] = 'Stk.'; // Einheit + if ($_SESSION ['customers_status'] ['customers_status_show_price_tax'] == '0') { + $parameters [$prefix . '.AMOUNT_UNIT'] = round ( $item ['value'] * 100 ); + $parameters [$prefix . '.AMOUNT'] = round ( $item ['value'] * 100 ); + } else { + $parameters [$prefix . '.AMOUNT_UNIT'] = round ( $item ['value'] * 100 ) + round ( $item ['value'] * $item ['tax'] ); + $parameters [$prefix . '.AMOUNT'] = round ( $item ['value'] * 100 ) + round ( $item ['value'] * $item ['tax'] ); + } + // $parameters[$prefix.'.AMOUNT_UNIT_GROSS'] = round($item['value']*100)*-1; + // $parameters[$prefix.'.AMOUNT_GROSS'] = round($item['value']*100)*-1; + $parameters [$prefix . '.TEXT'] = $item ['title']; + // $parameters[$prefix.'.COL1'] = 'SKU:'.$item->getSku(); + // $parameters[$prefix.'.COL2'] = ''; + // $parameters[$prefix.'.COL3'] = ''; + // $parameters[$prefix.'.COL4'] = ''; + $parameters [$prefix . '.ARTICLE_NUMBER'] = '0'; + $parameters [$prefix . '.PERCENT_VAT'] = sprintf ( '%1.2f', 0 ); + $parameters [$prefix . '.ARTICLE_TYPE'] = 'voucher'; // "goods" (Versandartikel), "shipment" (Versandkosten) oder "voucher" (Gutschein/Rabatt) + } + } + + // echo '
'.print_r($parameters, 1).'
'; + // exit(); + + return $parameters; + } + + + function get_shipping_tax_rate($shipping_id) { + $check_query = xtc_db_query ( 'SELECT configuration_value FROM ' . TABLE_CONFIGURATION . ' WHERE configuration_key = "MODULE_SHIPPING_' . $shipping_id . '_TAX_CLASS"' ); + $configuration = xtc_db_fetch_array ( $check_query ); + $tax_class_id = $configuration ['configuration_value']; + $shipping_tax_rate = xtc_get_tax_rate ( $tax_class_id ); + return $shipping_tax_rate; + } + + + + + function encodeData($data) { + $tmp = array (); + foreach ( $data as $k => $v ) { + $tmp [$k] = $v; + if (! $this->isUTF8 ( $v )) + $tmp [$k] = utf8_encode ( $v ); + } + return $tmp; + } + + + function isUTF8($string) { + if (is_array ( $string )) { + $enc = implode ( '', $string ); + return @! ((ord ( $enc [0] ) != 239) && (ord ( $enc [1] ) != 187) && (ord ( $enc [2] ) != 191)); + } else { + return (utf8_encode ( utf8_decode ( $string ) ) == $string); + } + } + + + function isHTTPS() { + if (strpos ( $_SERVER ['HTTP_HOST'], '.local' ) === false) { + if (! isset ( $_SERVER ['HTTPS'] ) || (strtolower ( $_SERVER ['HTTPS'] ) != 'on' && $_SERVER ['HTTPS'] != '1')) { + return false; + } + } else { + // Local + return false; + } + return true; + } + + + function doRequest($data, $xml = NULL) { + $url = $this->demo_url_new; + if (! empty ( $xml )) + $url = 'https://test-heidelpay.hpcgw.net/TransactionCore/xml'; // XML + if (constant ( 'MODULE_PAYMENT_HP' . $this->actualPaymethod . '_TRANSACTION_MODE' ) == 'LIVE') { + $url = $this->live_url_new; + if (! empty ( $xml )) + $url = 'https://heidelpay.hpcgw.net/TransactionCore/xml'; // XML + } + $this->url = $url; + + // Erstellen des Strings f�r die Daten�bermittlung + foreach ( array_keys ( $data ) as $key ) { + $data [$key] = utf8_decode ( $data [$key] ); + $$key .= $data [$key]; + $$key = urlencode ( $$key ); + $$key .= "&"; + $var = strtoupper ( $key ); + $value = $$key; + $result .= "$var=$value"; + } + $strPOST = stripslashes ( $result ); + if (! empty ( $xml )) + $strPOST = 'load=' . urlencode ( $xml ); + + // pr�fen ob CURL existiert + if (function_exists ( 'curl_init' )) { + $ch = curl_init (); + curl_setopt ( $ch, CURLOPT_URL, $url ); + curl_setopt ( $ch, CURLOPT_HEADER, 0 ); + curl_setopt ( $ch, CURLOPT_FAILONERROR, 1 ); + curl_setopt ( $ch, CURLOPT_TIMEOUT, 60 ); + curl_setopt ( $ch, CURLOPT_CONNECTTIMEOUT, 60 ); + curl_setopt ( $ch, CURLOPT_POST, 1 ); + curl_setopt ( $ch, CURLOPT_POSTFIELDS, $strPOST ); + curl_setopt ( $ch, CURLOPT_RETURNTRANSFER, 1 ); + curl_setopt ( $ch, CURLOPT_SSL_VERIFYPEER, 0 ); + curl_setopt ( $ch, CURLOPT_SSL_VERIFYHOST, 0 ); + curl_setopt ( $ch, CURLOPT_USERAGENT, "Heidelpay Request" ); + + $this->response = curl_exec ( $ch ); + $this->error = curl_error ( $ch ); + curl_close ( $ch ); + + $res = $this->response; + if (! $this->response && $this->error) { + $res = 'PROCESSING.RESULT=NOK&PROCESSING.RETURN=' . $this->error; + } + } else { + $msg = urlencode ( 'Curl Fehler' ); + $res = 'PROCESSING.RESULT=NOK&PROCESSING.RETURN=' . $msg; + } + + return $res; + } + + + function parseResult($curlresultURL) { + $r_arr = explode ( "&", $curlresultURL ); + foreach ( $r_arr as $buf ) { + $temp = urldecode ( $buf ); + list ( $postatt, $postvar ) = explode ( '=', $temp, 2 ); // �nderung da Split ab PHP 5.3 nicht mehr unterst�tzt wird + $returnvalue [$postatt] = $postvar; + } + $processingresult = $returnvalue ['PROCESSING.RESULT']; + if (empty ( $processingresult )) + $processingresult = $returnvalue ['POST.VALIDATION']; + $redirectURL = $returnvalue ['FRONTEND.REDIRECT_URL']; + if (! isset ( $returnvalue ['PROCESSING.RETURN'] ) && $returnvalue ['POST.VALIDATION'] > 0) { + $returnvalue ['PROCESSING.RETURN'] = 'Errorcode: ' . $returnvalue ['POST.VALIDATION']; + } + ksort ( $returnvalue ); + return array ( + 'result' => $processingresult, + 'url' => $redirectURL, + 'all' => $returnvalue + ); + } + + /* + * $dateFrom 2011-05-01 + * $dateUntil 2011-05-31 + * $identification (uniqueID | shortID | transactionID) + */ + function getQueryXML($dateFrom, $dateUntil, $types = array('RC'), $identification = array(), $methods = array()) { + $parameters = array (); + $parameters ['SECURITY.SENDER'] = constant ( 'MODULE_PAYMENT_HP' . $this->actualPaymethod . '_SECURITY_SENDER' ); + $parameters ['USER.LOGIN'] = constant ( 'MODULE_PAYMENT_HP' . $this->actualPaymethod . '_USER_LOGIN' ); + $parameters ['USER.PWD'] = constant ( 'MODULE_PAYMENT_HP' . $this->actualPaymethod . '_USER_PWD' ); + $parameters ['TRANSACTION.CHANNEL'] = constant ( 'MODULE_PAYMENT_HP' . $this->actualPaymethod . '_TRANSACTION_CHANNEL' ); + $parameters ['TRANSACTION.MODE'] = constant ( 'MODULE_PAYMENT_HP' . $this->actualPaymethod . '_TRANSACTION_MODE' ); + + $type = 'STANDARD'; + if (! empty ( $identification )) { + $type = 'LINKED_TRANSACTIONS'; + } + + $xml = ' +
+ + + '; + + if (! empty ( $identification )) { + $xml .= ''; + if (! empty ( $identification ['uniqueIDs'] )) { + $xml .= ''; + foreach ( $identification ['uniqueIDs'] as $k => $v ) { + $xml .= '' . $v . ''; + } + $xml .= ''; + } + if (! empty ( $identification ['uniqueID'] )) + $xml .= '' . $identification ['uniqueID'] . ''; + if (! empty ( $identification ['shortID'] )) + $xml .= '' . $identification ['shortID'] . ''; + if (! empty ( $identification ['transactionID'] )) + $xml .= '' . $identification ['transactionID'] . ''; + $xml .= ''; + } + + if (! empty ( $methods )) { + $xml .= ''; + foreach ( $methods as $k => $v ) { + $xml .= ''; + } + $xml .= ''; + } + + if (! empty ( $types )) { + $xml .= ''; + foreach ( $types as $k => $v ) { + $xml .= ''; + } + $xml .= ''; + } + + $xml .= '
'; + return $xml; + } + + + function addHistoryComment($order_id, $comment, $status = '', $customer_notified = '0') { + if (empty ( $order_id ) || empty ( $comment )) + return false; + // Alten Eintrag laden + $orderHistory = $this->getLastHistoryComment ( $order_id ); + // Kunde benachrichtigt + $orderHistory ['customer_notified'] = $customer_notified; + // Timestamp korrekt erneuern + $orderHistory ['date_added'] = date ( 'Y-m-d H:i:s' ); + // Kommentar setzen + $orderHistory ['comments'] = urldecode ( $comment ); + // Neuer Status eintragen + if (! empty ( $status )) + $orderHistory ['orders_status_id'] = addslashes ( $status ); + // Alte History ID entfernen + unset ( $orderHistory ['orders_status_history_id'] ); + // Neue History eintragen + return xtc_db_perform ( TABLE_ORDERS_STATUS_HISTORY, $orderHistory ); + } + + + function getHistoryComment($order_id, $search) { + if (empty ( $order_id ) || empty ( $search )) + return false; + $sql = 'SELECT * FROM `' . TABLE_ORDERS_STATUS_HISTORY . '` + WHERE `orders_id` = "' . addslashes ( $order_id ) . '" + AND `comments` LIKE "%' . addslashes ( $search ) . '%" + '; + $orderHistoryArray = xtc_db_query ( $sql ); + $ordersHistory = xtc_db_fetch_array ( $orderHistoryArray ); + return $ordersHistory ['comments']; + } + + + function hasHistoryComment($order_id, $status, $customer_notified) { + if (empty ( $order_id ) || empty ( $status ) || empty ( $customer_notified )) + return false; + $sql = 'SELECT * FROM `' . TABLE_ORDERS_STATUS_HISTORY . '` + WHERE `orders_id` = "' . addslashes ( $order_id ) . '" + AND `orders_status_id` = "' . addslashes ( $status ) . '" + AND `customer_notified` = "' . addslashes ( $customer_notified ) . '" + '; + $orderHistoryArray = xtc_db_query ( $sql ); + while ( $ordersHistoryTMP = xtc_db_fetch_array ( $orderHistoryArray ) ) { + $ordersHistory [] = $ordersHistoryTMP; + } + return count ( $ordersHistory ) > 0; + } + + + function getLastHistoryComment($order_id) { + if (empty ( $order_id )) + return array (); + $sql = 'SELECT * FROM `' . TABLE_ORDERS_STATUS_HISTORY . '` + WHERE `orders_id` = "' . addslashes ( $order_id ) . '" + ORDER BY `orders_status_history_id` DESC + '; + $orderHistoryArray = xtc_db_query ( $sql ); + return xtc_db_fetch_array ( $orderHistoryArray ); + } + + + function getOrderHistory($order_id) { + if (empty ( $order_id )) + return array (); + $sql = 'SELECT * FROM `' . TABLE_ORDERS_STATUS_HISTORY . '` + WHERE `orders_id` = "' . addslashes ( $order_id ) . '" + ORDER BY `orders_status_history_id` DESC + '; + $orderHistoryArray = xtc_db_query ( $sql ); + $ordersHistory = array (); + while ( $ordersHistoryTMP = xtc_db_fetch_array ( $orderHistoryArray ) ) { + $ordersHistory [] = $ordersHistoryTMP; + } + return $ordersHistory; + } + + + function setOrderStatus($order_id, $status, $doubleCheck = false) { + GLOBAL $db_link; + // Status History laden + $orderHistory = $this->getOrderHistory ( $order_id ); + if ($doubleCheck) { + // Pr�fen ob Status schon mal gesetzt + $found = false; + foreach ( $orderHistory as $k => $v ) { + if ($v ['orders_status_id'] == $status) + $found = true; + } + // Wenn Status schon mal gesetzt dann nichts tun + if ($found) + return false; + } + // Bestellstatus setzen + $res = xtc_db_query ( "UPDATE `" . TABLE_ORDERS . "` SET `orders_status` = '" . addslashes ( $status ) . "' WHERE `orders_id` = '" . addslashes ( $order_id ) . "'" ); + $stat = mysql_affected_rows ( $db_link ); + return $stat > 0; + } + + + function saveIds($uniqueId, $order_id, $paymeth, $shortId) { + $create = "CREATE TABLE IF NOT EXISTS `heidelpay_transaction_data` ( + `uniqueID` varchar(32) COLLATE latin1_german1_ci NOT NULL, + `orderId` int(11) NOT NULL, + `paymentmethod` varchar(6) COLLATE latin1_german1_ci NOT NULL, + `shortID` varchar(14) COLLATE latin1_german1_ci NOT NULL, + PRIMARY KEY (`uniqueID`), + KEY `orderId` (`orderId`))"; + + $insert = 'INSERT INTO `heidelpay_transaction_data` SET `uniqueID`="' . addslashes ( $uniqueId ) . '", `orderId`="' . addslashes ( $order_id ) . '", `paymentmethod`="' . addslashes ( $paymeth ) . '", `shortID`="' . addslashes ( $shortId ) . '"'; + + xtc_db_query ( $create ); + + return xtc_db_query ( $insert ); + } + + + function saveOrderComment($order_id, $comment) { + return xtc_db_query ( "UPDATE `" . TABLE_ORDERS . "` SET `comments` = '" . addslashes ( $comment ) . "' WHERE `orders_id` = '" . addslashes ( $order_id ) . "'" ); + } + + + function install_db($tablename, $fieldname, $add_fieldspec, $setindex = false) { + $q = xtc_db_query ( 'SHOW COLUMNS FROM ' . $tablename ); + while ( $values = xtc_db_fetch_array ( $q ) ) { + if ($values ['Field'] == $fieldname) { + return true; + } + } + xtc_db_query ( $add_fieldspec ); + if ($setindex) + xtc_db_query ( 'ALTER TABLE `' . $tablename . '` ADD INDEX (`' . $fieldname . '`)' ); + $q = xtc_db_query ( 'SHOW COLUMNS FROM ' . $tablename ); + while ( $values = xtc_db_fetch_array ( $q ) ) { + if ($values ['Field'] == $fieldname) { + return true; + } + } + return false; + } + + + function saveMEMO($customerId, $key, $value) { + $data = $this->loadMEMO ( $customerId, $key ); + if (! empty ( $data )) { + return xtc_db_query ( 'UPDATE `customers_memo` SET `memo_text` = "' . addslashes ( $value ) . '", `memo_date` = NOW(), `poster_id` = 1 WHERE `customers_id` = "' . addslashes ( $customerId ) . '" AND `memo_title` = "' . addslashes ( $key ) . '"' ); + } else { + return xtc_db_query ( 'INSERT INTO `customers_memo` SET `memo_text` = "' . addslashes ( $value ) . '", `customers_id` = "' . addslashes ( $customerId ) . '", `memo_title` = "' . addslashes ( $key ) . '", `memo_date` = NOW(), `poster_id` = 1' ); + } + } + + + function loadMEMO($customerId, $key) { + $res = xtc_db_query ( 'SELECT * FROM `customers_memo` WHERE `customers_id` = "' . addslashes ( $customerId ) . '" AND `memo_title` = "' . addslashes ( $key ) . '"' ); + $res = xtc_db_fetch_array ( $res ); + return $res ['memo_text']; + } + + + function getPayment($orderId) { + $sql = 'SELECT `payment_class` FROM `' . TABLE_ORDERS . '` WHERE `orders_id` = "' . ( int ) $orderId . '" '; + $res = xtc_db_query ( $sql ); + $res = xtc_db_fetch_array ( $res ); + return $res ['payment_class']; + } + + + function getOpenOrdersDate($payment_class, $paystatus) { + $this->actualPaymethod = strtoupper ( substr ( $payment_class, 2, 2 ) ); // Setzen f�r Abgleich XML + $sql = 'SELECT min(date(`date_purchased`)) AS `min`, max(date(`date_purchased`)) AS `max` FROM `' . TABLE_ORDERS . '` WHERE `payment_class` = "' . $payment_class . '" AND `orders_status` = "' . $paystatus . '" '; + // echo $sql; exit(); + $res = xtc_db_query ( $sql ); + return xtc_db_fetch_array ( $res ); + } + + + function getOpenOrders($payment_class, $paystatus) { + $sql = 'SELECT * FROM `' . TABLE_ORDERS . '` WHERE `payment_class` = "' . $payment_class . '" AND `orders_status` = "' . $paystatus . '" '; + // echo $sql; + $res = xtc_db_query ( $sql ); + $tmp = array (); + while ( $row = xtc_db_fetch_array ( $res ) ) { + $tmp [$row ['orders_id']] = $row; + } + return $tmp; + } + + + function getOpenOrderByUniqueId($uniqueId, $payment_class) { + $sql = 'SELECT * FROM `orders` JOIN `heidelpay_transaction_data` ON orders.orders_id = heidelpay_transaction_data.orderID JOIN `orders_total` ON heidelpay_transaction_data.orderID=orders_total.orders_id +WHERE heidelpay_transaction_data.uniqueID = "' . $uniqueId . '" + AND orders.payment_class= "' . $payment_class . '" + AND orders_total.class = "ot_total"'; + + /* + * SELECT * FROM `orders`, `orders_total` LEFT JOIN `heidelpay_transaction_data` ON orders.orders_id=heidelpay_transaction_data.orderID WHERE heidelpay_transaction_data.uniqueID = "'.$uniqueId.'" + * AND orders.payment_class= "'.$payment_class.'" + * AND orders_total.class = "ot_total" + * orders_total.orders_id = orders.orders_id' ; + * + * SELECT * FROM `'.TABLE_ORDERS.'` o, `'.TABLE_ORDERS_TOTAL.'` ot + * WHERE o.`payment_class` = "'.$payment_class.'" + * AND o.`'.$field.'` = "'.$uniqueId.'" + * AND ot.`class` = "ot_total" + * AND ot.`orders_id` = o.`orders_id` + * '; + */ + // echo $sql; + $res = xtc_db_query ( $sql ); + $tmp = array (); + return xtc_db_fetch_array ( $res ); + } + + + function getLangId($code) { + $sql = 'SELECT `languages_id` FROM `' . TABLE_LANGUAGES . '` WHERE `code` = "' . addslashes ( $code ) . '" '; + // echo $sql; + $res = xtc_db_query ( $sql ); + $res = xtc_db_fetch_array ( $res ); + return $res ['languages_id']; + } + + + function getOrderStatusName($statusId) { + $langId = $this->getLangId ( 'de' ); + if ($langId <= 0) + $langId = $this->getLangId ( 'en' ); + $sql = 'SELECT `orders_status_name` FROM `' . TABLE_ORDERS_STATUS . '` WHERE `orders_status_id` = "' . ( int ) $statusId . '" AND `language_id` = "' . ( int ) $langId . '" '; + $res = xtc_db_query ( $sql ); + $res = xtc_db_fetch_array ( $res ); + return $res ['orders_status_name']; + } + + + function checkOrderStatusHistory($orderId, $shortId) { + $sql = 'SELECT * FROM `' . TABLE_ORDERS_STATUS_HISTORY . '` WHERE `orders_id` = "' . ( int ) $orderId . '" AND `comments` LIKE "%' . $shortId . '%" '; + // echo $sql; + $res = xtc_db_query ( $sql ); + $res = xtc_db_fetch_array ( $res ); + // echo '
'.print_r($res, 1).'
'; + return ! empty ( $res ); + } + + + function saveBankData($customerId, $payType, $values) { + // $data = $this->loadBankData($customerId, $payType); + $query = 'UPDATE `' . TABLE_CUSTOMERS . '` + SET + `' . $payType . '_kto` = "' . $values ['kto'] . '", + `' . $payType . '_blz` = "' . $values ['blz'] . '", + `' . $payType . '_own` = "' . utf8_decode ( $values ['own'] ) . '" + WHERE `customers_id` = "' . addslashes ( $customerId ) . '" '; + + return xtc_db_query ( $query ); + } + + + function loadBankData($customerId, $payType) { + $res = xtc_db_query ( 'SELECT * FROM `' . TABLE_CUSTOMERS . '` WHERE `customers_id` = "' . addslashes ( $customerId ) . '" ' ); + $res = xtc_db_fetch_array ( $res ); + $tmp = array ( + 'kto' => $res [$payType . '_kto'], + 'blz' => $res [$payType . '_blz'], + 'own' => $res [$payType . '_own'] + ); + return $tmp; + } + + + function getPayCodeByChannel($TRANSACTION_CHANNEL) { + $otPayTypes = array ( + 'gp', + 'su', + 'tp', + 'idl', + 'eps' + ); + $keys = array (); + foreach ( $otPayTypes as $k => $v ) { + $keys [] = 'MODULE_PAYMENT_HP' . strtoupper ( $v ) . '_TRANSACTION_CHANNEL'; + } + $sql = 'SELECT * FROM `configuration` WHERE `configuration_value` = "' . addslashes ( $TRANSACTION_CHANNEL ) . '" AND `configuration_key` IN ("' . implode ( '","', $keys ) . '") '; + // echo $sql; + $res = xtc_db_query ( $sql ); + $res = xtc_db_fetch_array ( $res ); + return str_replace ( array ( + 'MODULE_PAYMENT_HP', + '_TRANSACTION_CHANNEL' + ), '', $res ['configuration_key'] ); + } + + + function getCustomerState($state) { + $customer_state = xtc_db_query ( 'SELECT `zone_code` FROM `' . TABLE_ZONES . '` WHERE `zone_name` = "' . $state . '" OR `zone_code` = "' . $state . '"' ); + $attributes_values = xtc_db_fetch_array ( $customer_state ); + $cus_state = $attributes_values ['zone_code']; + return $cus_state; + } + + + function getCustomerStateByZoneId($zoneId) { + $customer_state = xtc_db_query ( 'SELECT `zone_code` FROM `' . TABLE_ZONES . '` WHERE `zone_id` = "' . $zoneId . '"' ); + $attributes_values = xtc_db_fetch_array ( $customer_state ); + $cus_state = $attributes_values ['zone_code']; + return $cus_state; + } + + + function getCustomerCountry($country) { + $country_query = xtc_db_query ( 'SELECT `countries_iso_code_2` FROM `' . TABLE_COUNTRIES . '` WHERE `countries_id` = "' . $country . '"' ); + $country_res = xtc_db_fetch_array ( $country_query ); + $cus_country = $country_res ['countries_iso_code_2']; + return $cus_country; + } + + + function rememberOrderData($order) { + if ($_SESSION ['customers_status'] ['customers_status_show_price_tax'] == 0 && $_SESSION ['customers_status'] ['customers_status_add_tax_ot'] == 1) { + $total = $order->info ['total'] + $order->info ['tax']; + } else { + $total = $order->info ['total']; + } + $currency_value = $order->info ['currency_value']; + if (empty ( $currency_value )) + $currency_value = 1.0; + + $amount = $total; // * $currency_value; + // $user_id = $_SESSION['customer_id']; // interne Kunden ID + $user_id = $order->customer ['csID']; // Kunden ID + $currency = $order->info ['currency']; + $language = strtoupper ( $_SESSION ['language_code'] ); + + $userData = array ( + 'company' => $order->customer ['company'], + 'firstname' => $order->billing ['firstname'], + 'lastname' => $order->billing ['lastname'], + 'salutation' => ($order->customer ['gender'] == 'f' ? 'MRS' : 'MR'), + 'street' => $order->billing ['street_address'], + 'zip' => $order->billing ['postcode'], + 'city' => $order->billing ['city'], + 'country' => $order->billing ['country'] ['iso_code_2'], + 'email' => $order->customer ['email_address'], + 'state' => $this->getCustomerStateByZoneId ( $order->billing ['zone_id'] ), + 'ip' => $_SERVER ['REMOTE_ADDR'] + ); + if (empty ( $userData ['state'] )) + $userData ['state'] = $userData ['country']; // Wenn Bundesstaat leer dann nimm Land + $_SESSION ['hpLastData'] ['user_id'] = $user_id; + $_SESSION ['hpLastData'] ['amount'] = $amount; + $_SESSION ['hpLastData'] ['currency'] = $currency; + $_SESSION ['hpLastData'] ['language'] = $language; + $_SESSION ['hpLastData'] ['userData'] = $userData; + + $this->trackStep ( 'process_button', 'order', $order ); + $this->trackStep ( 'process_button', 'session', $_SESSION ); + } + + + function trackStep($point, $var, $val) { + if (! empty ( $this->hpdebug )) { + $tmp ['hpTracking'] [$point] [$var] = $val; + $filename = DIR_FS_CATALOG . 'cache/customer_' . $_SESSION ['customer_id'] . '.log'; + if ($handle = fopen ( $filename, 'a' )) { + fwrite ( $handle, date ( 'Y.m.d H:i:s' ) . "\n" . print_r ( $tmp ['hpTracking'], 1 ) ); + fclose ( $handle ); + } + } + } + + + function saveSteps($filename) { + if (! empty ( $this->hpdebug )) { + $path = DIR_FS_CATALOG . 'cache/'; + $filename_old = 'customer_' . $_SESSION ['customer_id'] . '.log'; + rename ( $path . $filename_old, $path . $filename ); + } + } + + + function setConf($key, $value) { + GLOBAL $db_link; + $sql = 'UPDATE `' . TABLE_CONFIGURATION . '` SET `configuration_value` = "' . addslashes ( $value ) . '" WHERE `configuration_key` = "MODULE_PAYMENT_HP' . addslashes ( strtoupper ( $key ) ) . '" '; + $res = xtc_db_query ( $sql ); + return mysql_affected_rows ( $db_link ); + } + + + function deleteCoupon($order_id) { + return xtc_db_query ( "DELETE FROM `" . TABLE_COUPON_REDEEM_TRACK . "` WHERE `order_id` = '" . addslashes ( $order_id ) . "'" ); + } +} +?> \ No newline at end of file diff --git a/includes/modules/payment/hpbs.php b/includes/modules/payment/hpbs.php new file mode 100644 index 0000000..d4762e2 --- /dev/null +++ b/includes/modules/payment/hpbs.php @@ -0,0 +1,341 @@ +payCode = 'bs'; + $this->code = 'hp' . $this->payCode; + $this->title = MODULE_PAYMENT_HPBS_TEXT_TITLE; + $this->description = MODULE_PAYMENT_HPBS_TEXT_DESC; + $this->sort_order = MODULE_PAYMENT_HPBS_SORT_ORDER; + $this->enabled = ((MODULE_PAYMENT_HPBS_STATUS == 'True') ? true : false); + $this->info = MODULE_PAYMENT_HPBS_TEXT_INFO; + // $this->form_action_url = 'checkout_bsccess.php'; + $this->tmpOrders = false; + $this->tmpStatus = MODULE_PAYMENT_HPBS_NEWORDER_STATUS_ID; + $this->order_status = MODULE_PAYMENT_HPBS_NEWORDER_STATUS_ID; + $this->hp = new heidelpay (); + $this->hp->actualPaymethod = strtoupper ( $this->payCode ); + $this->version = $hp->version; + + if (is_object ( $order )) + $this->update_status (); + + // OT FIX + if ($_GET ['payment_error'] == 'hpot') { + GLOBAL $smarty; + $error = $this->get_error (); + $smarty->assign ( 'error', htmlspecialchars ( $error ['error'] ) ); + } + } + function update_status() { + global $order; + + if (($this->enabled == true) && (( int ) MODULE_PAYMENT_HPBS_ZONE > 0)) { + $check_flag = false; + $check_query = xtc_db_query ( "select zone_id from " . TABLE_ZONES_TO_GEO_ZONES . " where geo_zone_id = '" . MODULE_PAYMENT_HPBS_ZONE . "' and zone_country_id = '" . $order->billing ['country'] ['id'] . "' order by zone_id" ); + while ( $check = xtc_db_fetch_array ( $check_query ) ) { + if ($check ['zone_id'] < 1) { + $check_flag = true; + break; + } elseif ($check ['zone_id'] == $order->billing ['zone_id']) { + $check_flag = true; + break; + } + } + + if ($check_flag == false) { + $this->enabled = false; + } + } + } + function javascript_validation() { + return false; + } + function selection() { + $info = ' +'; + + GLOBAL $order; + + if (! $this->equalAddress ( $order )) { + $content = array ( + array ( + 'title' => '', + 'field' => MODULE_PAYMENT_HPBS_ADDRESSCHECK + ) + ); + return array ( + 'id' => $this->code, + 'module' => $this->title, + 'fields' => $content, + 'description' => $this->info + ); + } + + if (strpos ( $_SERVER ['SCRIPT_FILENAME'], 'checkout_payment' ) !== false) { + unset ( $_SESSION ['hpLastData'] ); + unset ( $_SESSION ['hpBSData'] ); + } + if ($_SESSION ['customers_status'] ['customers_status_show_price_tax'] == 0 && $_SESSION ['customers_status'] ['customers_status_add_tax_ot'] == 1) { + $total = $order->info ['total'] + $order->info ['tax']; + } else { + $total = $order->info ['total']; + } + $total = $total * 100; + if (MODULE_PAYMENT_HPBS_MIN_AMOUNT > 0 && MODULE_PAYMENT_HPBS_MIN_AMOUNT > $total) + return false; + if (MODULE_PAYMENT_HPBS_MAX_AMOUNT > 0 && MODULE_PAYMENT_HPBS_MAX_AMOUNT < $total) + return false; + + if (MODULE_PAYMENT_HPBS_TRANSACTION_MODE == 'LIVE' || strpos ( MODULE_PAYMENT_HPBS_TEST_ACCOUNT, $order->customer ['email_address'] ) !== false) { + $sql = 'SELECT * FROM `' . TABLE_CUSTOMERS . '` WHERE `customers_id` = "' . $_SESSION ['customer_id'] . '" '; + $tmp = xtc_db_fetch_array ( xtc_db_query ( $sql ) ); + + $content = array ( + array ( + 'title' => MODULE_PAYMENT_HPBS_INFO, + 'field' => $info + ) + ); + } else { + $content = array ( + array ( + 'title' => '', + 'field' => MODULE_PAYMENT_HPBS_DEBUGTEXT + ) + ); + } + + return array ( + 'id' => $this->code, + 'module' => $this->title, + 'fields' => $content, + 'description' => $this->info + ); + } + function equalAddress($order) { + $diffs = 0; + foreach ( $order->delivery as $k => $v ) { + if ($order->billing [$k] != $v) { + $diffs ++; + } + } + return $diffs == 0; + } + function pre_confirmation_check() { + GLOBAL $order; + // echo 'HPBS: '.__FUNCTION__; exit(); + if (! $this->equalAddress ( $order )) { + $payment_error_return = 'payment_error=hpbs&error=' . urlencode ( MODULE_PAYMENT_HPBS_ADDRESSCHECK ); + xtc_redirect ( xtc_href_link ( FILENAME_CHECKOUT_PAYMENT, $payment_error_return, 'SSL', true, false ) ); + } else if (MODULE_PAYMENT_HPBS_TRANSACTION_MODE == 'LIVE' || strpos ( MODULE_PAYMENT_HPBS_TEST_ACCOUNT, $order->customer ['email_address'] ) !== false) { + $_SESSION ['hpModuleMode'] = 'AFTER'; + $_SESSION ['hpLastPost'] = $_POST; + $_SESSION ['hpBSData'] = $_POST ['hpbs']; + } else { + $payment_error_return = 'payment_error=hpbs&error=' . urlencode ( MODULE_PAYMENT_HPBS_DEBUGTEXT ); + xtc_redirect ( xtc_href_link ( FILENAME_CHECKOUT_PAYMENT, $payment_error_return, 'SSL', true, false ) ); + } + } + function confirmation() { + $_SESSION ['discount_value'] = $GLOBALS ['ot_discount']->output [0] ['value']; + $_SESSION ['discount_name'] = $GLOBALS ['ot_discount']->output [0] ['title']; + $_SESSION ['voucher_value'] = $GLOBALS ['ot_gv']->output [0] ['value']; + $_SESSION ['voucher_name'] = $GLOBALS ['ot_gv']->output [0] ['title']; + $_SESSION ['coupon_value'] = $GLOBALS ['ot_coupon']->output [0] ['value']; + $_SESSION ['coupon_name'] = $GLOBALS ['ot_coupon']->output [0] ['title']; + $_SESSION ['schg_value'] = $GLOBALS ['ot_billsafe']->output [0] ['value']; + $_SESSION ['schg_name'] = $GLOBALS ['ot_billsafe']->output [0] ['title']; + $_SESSION ['lofee_value'] = $GLOBALS ['ot_loworderfee']->output [0] ['value']; + $_SESSION ['lofee_name'] = $GLOBALS ['ot_loworderfee']->output [0] ['title']; + return false; + } + function process_button() { + global $order; + $this->hp->rememberOrderData ( $order ); + return false; + } + function payment_action() { + return true; + } + function before_process() { + return false; + } + function after_process() { + global $order, $xtPrice, $insert_id; + $this->hp->setOrderStatus ( $insert_id, $this->order_status ); + $comment = ' '; + $this->hp->addHistoryComment ( $insert_id, $comment, $this->order_status ); + $hpIframe = $this->hp->handleDebit ( $order, $this->payCode, $insert_id ); + unset ( $_SESSION ['discount_value'] ); + unset ( $_SESSION ['discount_name'] ); + unset ( $_SESSION ['voucher_value'] ); + unset ( $_SESSION ['voucher_name'] ); + unset ( $_SESSION ['coupon_value'] ); + unset ( $_SESSION ['coupon_name'] ); + unset ( $_SESSION ['schg_value'] ); + unset ( $_SESSION ['schg_name'] ); + unset ( $_SESSION ['lofee_value'] ); + unset ( $_SESSION ['lofee_name'] ); + return true; + } + function admin_order($oID) { + return false; + } + function get_error() { + global $_GET; + + $error = array ( + 'title' => MODULE_PAYMENT_HPBS_TEXT_ERROR, + 'error' => stripslashes ( urldecode ( $_GET ['error'] ) ) + ); + + return $error; + } + function check() { + if (! isset ( $this->_check )) { + $check_query = xtc_db_query ( "select configuration_value from " . TABLE_CONFIGURATION . " where configuration_key = 'MODULE_PAYMENT_HPBS_STATUS'" ); + $this->_check = xtc_db_num_rows ( $check_query ); + } + return $this->_check; + } + function install() { + $this->remove ( true ); + + $groupId = 6; + $sqlBase = 'INSERT INTO `' . TABLE_CONFIGURATION . '` SET '; + $prefix = 'MODULE_PAYMENT_HPBS_'; + $inst = array (); + $inst [] = array ( + 'configuration_key' => $prefix . 'STATUS', + 'configuration_value' => 'True', + 'set_function' => 'xtc_cfg_select_option(array(\'True\', \'False\'), ' + ); + $inst [] = array ( + 'configuration_key' => $prefix . 'SECURITY_SENDER', + 'configuration_value' => '31HA07BC8142C5A171745D00AD63D182' + ); + $inst [] = array ( + 'configuration_key' => $prefix . 'USER_LOGIN', + 'configuration_value' => '31ha07bc8142c5a171744e5aef11ffd3' + ); + $inst [] = array ( + 'configuration_key' => $prefix . 'USER_PWD', + 'configuration_value' => '93167DE7' + ); + $inst [] = array ( + 'configuration_key' => $prefix . 'TRANSACTION_CHANNEL', + 'configuration_value' => '31HA07BC8142EE6D02715F4CA97DDD8B' + ); + $inst [] = array ( + 'configuration_key' => $prefix . 'TRANSACTION_MODE', + 'configuration_value' => 'TEST', + 'set_function' => 'xtc_cfg_select_option(array(\'LIVE\', \'TEST\'), ' + ); + $inst [] = array ( + 'configuration_key' => $prefix . 'TEST_ACCOUNT', + 'configuration_value' => '' + ); + $inst [] = array ( + 'configuration_key' => $prefix . 'SORT_ORDER', + 'configuration_value' => '1.11' + ); + $inst [] = array ( + 'configuration_key' => $prefix . 'ZONE', + 'configuration_value' => '', + 'set_function' => 'xtc_cfg_pull_down_zone_classes(', + 'use_function' => 'xtc_get_zone_class_title' + ); + $inst [] = array ( + 'configuration_key' => $prefix . 'ALLOWED', + 'configuration_value' => '' + ); + $inst [] = array ( + 'configuration_key' => $prefix . 'MIN_AMOUNT', + 'configuration_value' => '' + ); + $inst [] = array ( + 'configuration_key' => $prefix . 'MAX_AMOUNT', + 'configuration_value' => '' + ); + $inst [] = array ( + 'configuration_key' => $prefix . 'FINISHED_STATUS_ID', + 'configuration_value' => '0', + 'set_function' => 'xtc_cfg_pull_down_order_statuses(', + 'use_function' => 'xtc_get_order_status_name' + ); + $inst [] = array ( + 'configuration_key' => $prefix . 'PROCESSED_STATUS_ID', + 'configuration_value' => '0', + 'set_function' => 'xtc_cfg_pull_down_order_statuses(', + 'use_function' => 'xtc_get_order_status_name' + ); + $inst [] = array ( + 'configuration_key' => $prefix . 'CANCELED_STATUS_ID', + 'configuration_value' => '0', + 'set_function' => 'xtc_cfg_pull_down_order_statuses(', + 'use_function' => 'xtc_get_order_status_name' + ); + $inst [] = array ( + 'configuration_key' => $prefix . 'NEWORDER_STATUS_ID', + 'configuration_value' => '0', + 'set_function' => 'xtc_cfg_pull_down_order_statuses(', + 'use_function' => 'xtc_get_order_status_name' + ); + $inst [] = array ( + 'configuration_key' => $prefix . 'DEBUG', + 'configuration_value' => 'False', + 'set_function' => 'xtc_cfg_select_option(array(\'True\', \'False\'), ' + ); + + foreach ( $inst as $k => $v ) { + $sql = $sqlBase . ' '; + foreach ( $v as $key => $val ) { + $sql .= '`' . addslashes ( $key ) . '` = "' . $val . '", '; + } + $sql .= '`sort_order` = "' . $k . '", '; + $sql .= '`configuration_group_id` = "' . addslashes ( $groupId ) . '", '; + $sql .= '`date_added` = NOW() '; + // echo $sql.'
'; + xtc_db_query ( $sql ); + } + } + function remove($install = false) { + xtc_db_query ( "delete from " . TABLE_CONFIGURATION . " where configuration_key in ('" . implode ( "', '", $this->keys () ) . "')" ); + } + function keys() { + $prefix = 'MODULE_PAYMENT_HPBS_'; + return array ( + $prefix . 'STATUS', + $prefix . 'SECURITY_SENDER', + $prefix . 'USER_LOGIN', + $prefix . 'USER_PWD', + $prefix . 'TRANSACTION_CHANNEL', + $prefix . 'TRANSACTION_MODE', + $prefix . 'TEST_ACCOUNT', + $prefix . 'MIN_AMOUNT', + $prefix . 'MAX_AMOUNT', + $prefix . 'FINISHED_STATUS_ID', + $prefix . 'PROCESSED_STATUS_ID', + $prefix . 'CANCELED_STATUS_ID', + $prefix . 'NEWORDER_STATUS_ID', + $prefix . 'SORT_ORDER', + $prefix . 'ALLOWED', + $prefix . 'ZONE' + ) + // $prefix.'', + ; + } +} +?> diff --git a/includes/modules/payment/hpcc.php b/includes/modules/payment/hpcc.php new file mode 100644 index 0000000..79f29b3 --- /dev/null +++ b/includes/modules/payment/hpcc.php @@ -0,0 +1,372 @@ +payCode = 'cc'; + $this->code = 'hp' . $this->payCode; + $this->title = MODULE_PAYMENT_HPCC_TEXT_TITLE; + $this->description = MODULE_PAYMENT_HPCC_TEXT_DESC; + $this->sort_order = MODULE_PAYMENT_HPCC_SORT_ORDER; + $this->enabled = ((MODULE_PAYMENT_HPCC_STATUS == 'True') ? true : false); + $this->info = MODULE_PAYMENT_HPCC_TEXT_INFO; + // $this->form_action_url = 'checkout_success.php'; + $this->tmpOrders = false; + $this->tmpStatus = MODULE_PAYMENT_HPCC_NEWORDER_STATUS_ID; + $this->order_status = MODULE_PAYMENT_HPCC_NEWORDER_STATUS_ID; + $this->hp = new heidelpay (); + $this->hp->actualPaymethod = strtoupper ( $this->payCode ); + $this->version = $hp->version; + + if (is_object ( $order )) + $this->update_status (); + } + function update_status() { + global $order; + + if (($this->enabled == true) && (( int ) MODULE_PAYMENT_HPCC_ZONE > 0)) { + $check_flag = false; + $check_query = xtc_db_query ( "select zone_id from " . TABLE_ZONES_TO_GEO_ZONES . " where geo_zone_id = '" . MODULE_PAYMENT_HPCC_ZONE . "' and zone_country_id = '" . $order->billing ['country'] ['id'] . "' order by zone_id" ); + while ( $check = xtc_db_fetch_array ( $check_query ) ) { + if ($check ['zone_id'] < 1) { + $check_flag = true; + break; + } elseif ($check ['zone_id'] == $order->billing ['zone_id']) { + $check_flag = true; + break; + } + } + + if ($check_flag == false) { + $this->enabled = false; + } + } + } + function javascript_validation() { + return false; + } + function selection() { + GLOBAL $order; + if (strpos ( $_SERVER ['SCRIPT_FILENAME'], 'checkout_payment' ) !== false) { + // Coupon Wiederherstellung + if (! empty ( $_SESSION ['cc_id'] )) { + $_SESSION ['heidel_last_coupon'] = $_SESSION ['cc_id']; + } else if (! empty ( $_SESSION ['heidel_last_coupon'] )) { + $_SESSION ['cc_id'] = $_SESSION ['heidel_last_coupon']; + } + unset ( $_SESSION ['hpLastData'] ); + unset ( $_SESSION ['hpUseUniqueId'] ); + } + if ($_SESSION ['customers_status'] ['customers_status_show_price_tax'] == 0 && $_SESSION ['customers_status'] ['customers_status_add_tax_ot'] == 1) { + $total = $order->info ['total'] + $order->info ['tax']; + } else { + $total = $order->info ['total']; + } + $total = $total * 100; + if (MODULE_PAYMENT_HPCC_MIN_AMOUNT > 0 && MODULE_PAYMENT_HPCC_MIN_AMOUNT > $total) + return false; + if (MODULE_PAYMENT_HPCC_MAX_AMOUNT > 0 && MODULE_PAYMENT_HPCC_MAX_AMOUNT < $total) + return false; + + $src = ''; + // if(isset($_GET['hpccreg'])){ + $src = $this->hp->handleRegister ( $order, $this->payCode ); + // } + $hpIframe = ''; + if (! empty ( $src )) { + $hpIframe = ''; + $hpIframe .= ''; + } + + if (MODULE_PAYMENT_HPCC_TRANSACTION_MODE == 'LIVE' || strpos ( MODULE_PAYMENT_HPCC_TEST_ACCOUNT, $order->customer ['email_address'] ) !== false) { + $content = array (); + if (MODULE_PAYMENT_HPCC_MODULE_MODE == 'DIRECT') { + // Special CC Reuse + $lastCCard = $this->hp->loadMEMO ( $_SESSION ['customer_id'], 'heidelpay_last_ccard' ); + // if(!empty($lastCCard)){ + $gender = $_SESSION ['customer_gender'] == 'f' ? FEMALE : MALE; + $name = $_SESSION ['customer_last_name']; + if (! empty ( $lastCCard )) { + $title = $gender . ' ' . $name . ', ' . MODULE_PAYMENT_HPCC_REUSE_CARD . '
' . '
' . MODULE_PAYMENT_HPCC_REUSE_CARD_NUMBER . $lastCCard . '
' . '' . '' . MODULE_PAYMENT_HPCC_REUSE_CARD_TEXT . ''; + } else { + $title = '
' . $hpIframe . '
' . ''; + } + $content [] = array ( + 'title' => $title, + 'field' => '' + ); + // } + } + } else { + $content = array ( + array ( + 'title' => '', + 'field' => MODULE_PAYMENT_HPCC_DEBUGTEXT + ) + ); + } + + return array ( + 'id' => $this->code, + 'module' => $this->title, + 'fields' => $content, + 'description' => $this->info + ); + } + function pre_confirmation_check() { + GLOBAL $order; + // echo 'HPCC: '.__FUNCTION__; exit(); + if (MODULE_PAYMENT_HPCC_TRANSACTION_MODE == 'LIVE' || strpos ( MODULE_PAYMENT_HPCC_TEST_ACCOUNT, $order->customer ['email_address'] ) !== false) { + $_SESSION ['hpModuleMode'] = MODULE_PAYMENT_HPCC_MODULE_MODE; + if ($_POST ['hpccReuseCard'] == 1) { + $uniqueID = $this->hp->loadMEMO ( $_SESSION ['customer_id'], 'heidelpay_last_ccard_reference' ); + if (! empty ( $uniqueID )) + $_SESSION ['hpUseUniqueId'] = $uniqueID; + } else if ($_POST ['hpccUniqueId'] != '') { + $uniqueID = $_POST ['hpccUniqueId']; + if (! empty ( $uniqueID )) + $_SESSION ['hpUseUniqueId'] = $uniqueID; + } else if (MODULE_PAYMENT_HPCC_MODULE_MODE == 'DIRECT') { + $payment_error_return = 'payment_error=hpcc&error=' . MODULE_PAYMENT_HPCC_ERROR_NO_PAYDATA; + xtc_redirect ( xtc_href_link ( FILENAME_CHECKOUT_PAYMENT, $payment_error_return, 'SSL', true, false ) ); + } + if (! isset ( $_SESSION ['hpUseUniqueId'] ) && $_POST ['hpccFirstStep'] == 1 && MODULE_PAYMENT_HPCC_MODULE_MODE == 'DIRECT') { + unset ( $_POST ['hpccFirstStep'] ); + $_SESSION ['hpLastPost'] = $_POST; + $payment_error_return = 'hpccreg=1'; + xtc_redirect ( xtc_href_link ( FILENAME_CHECKOUT_PAYMENT, $payment_error_return, 'SSL', true, false ) ); + } else { + $_SESSION ['hpLastPost'] = $_POST; + } + } else { + $payment_error_return = 'payment_error=hpcc&error=' . urlencode ( MODULE_PAYMENT_HPCC_DEBUGTEXT ); + xtc_redirect ( xtc_href_link ( FILENAME_CHECKOUT_PAYMENT, $payment_error_return, 'SSL', true, false ) ); + } + } + function confirmation() { + if (! isset ( $_SESSION ['hpUseUniqueId'] )) + return false; + // Special CC Reuse + $lastCCard = $this->hp->loadMEMO ( $_SESSION ['customer_id'], 'heidelpay_last_ccard' ); + $content = array (); + if (! empty ( $lastCCard )) { + $gender = $_SESSION ['customer_gender'] == 'f' ? FEMALE : MALE; + $name = $_SESSION ['customer_last_name']; + $content [] = array ( + 'title' => MODULE_PAYMENT_HPCC_WILLUSE_CARD . $lastCCard, + 'field' => '' + ); + } else { + return false; + } + return array ( + 'title' => $gender . ' ' . $name . ', ', + 'fields' => $content + ); + } + function process_button() { + global $order; + $this->hp->rememberOrderData ( $order ); + return false; + } + function payment_action() { + return true; + } + function before_process() { + return false; + } + function after_process() { + global $order, $xtPrice, $insert_id; + $this->hp->setOrderStatus ( $insert_id, $this->order_status ); + $comment = ' '; + $this->hp->addHistoryComment ( $insert_id, $comment, $this->order_status ); + $hpIframe = $this->hp->handleDebit ( $order, $this->payCode, $insert_id ); + return true; + } + function admin_order($oID) { + return false; + } + function get_error() { + global $_GET; + + $error = array ( + 'title' => MODULE_PAYMENT_HPCC_TEXT_ERROR, + 'error' => stripslashes ( urldecode ( $_GET ['error'] ) ) + ); + + return $error; + } + function check() { + if (! isset ( $this->_check )) { + $check_query = xtc_db_query ( "select configuration_value from " . TABLE_CONFIGURATION . " where configuration_key = 'MODULE_PAYMENT_HPCC_STATUS'" ); + $this->_check = xtc_db_num_rows ( $check_query ); + } + return $this->_check; + } + function install() { + $this->remove ( true ); + + $groupId = 6; + $sqlBase = 'INSERT INTO `' . TABLE_CONFIGURATION . '` SET '; + $prefix = 'MODULE_PAYMENT_HPCC_'; + $inst = array (); + $inst [] = array ( + 'configuration_key' => $prefix . 'STATUS', + 'configuration_value' => 'True', + 'set_function' => 'xtc_cfg_select_option(array(\'True\', \'False\'), ' + ); + $inst [] = array ( + 'configuration_key' => $prefix . 'SECURITY_SENDER', + 'configuration_value' => '31HA07BC8142C5A171745D00AD63D182' + ); + $inst [] = array ( + 'configuration_key' => $prefix . 'USER_LOGIN', + 'configuration_value' => '31ha07bc8142c5a171744e5aef11ffd3' + ); + $inst [] = array ( + 'configuration_key' => $prefix . 'USER_PWD', + 'configuration_value' => '93167DE7' + ); + $inst [] = array ( + 'configuration_key' => $prefix . 'TRANSACTION_CHANNEL', + 'configuration_value' => '31HA07BC8142C5A171744F3D6D155865' + ); + $inst [] = array ( + 'configuration_key' => $prefix . 'TRANSACTION_MODE', + 'configuration_value' => 'TEST', + 'set_function' => 'xtc_cfg_select_option(array(\'LIVE\', \'TEST\'), ' + ); + $inst [] = array ( + 'configuration_key' => $prefix . 'MODULE_MODE', + 'configuration_value' => 'DIRECT', + 'set_function' => 'xtc_cfg_select_option(array(\'DIRECT\', \'AFTER\'), ' + ); + $inst [] = array ( + 'configuration_key' => $prefix . 'PAY_MODE', + 'configuration_value' => 'DB', + 'set_function' => 'xtc_cfg_select_option(array(\'DB\', \'PA\'), ' + ); + $inst [] = array ( + 'configuration_key' => $prefix . 'SAVE_REGISTER', + 'configuration_value' => 'True', + 'set_function' => 'xtc_cfg_select_option(array(\'True\', \'False\'), ' + ); + $inst [] = array ( + 'configuration_key' => $prefix . 'TEST_ACCOUNT', + 'configuration_value' => '' + ); + $inst [] = array ( + 'configuration_key' => $prefix . 'SORT_ORDER', + 'configuration_value' => '1.1' + ); + $inst [] = array ( + 'configuration_key' => $prefix . 'ZONE', + 'configuration_value' => '', + 'set_function' => 'xtc_cfg_pull_down_zone_classes(', + 'use_function' => 'xtc_get_zone_class_title' + ); + $inst [] = array ( + 'configuration_key' => $prefix . 'ALLOWED', + 'configuration_value' => '' + ); + $inst [] = array ( + 'configuration_key' => $prefix . 'MIN_AMOUNT', + 'configuration_value' => '' + ); + $inst [] = array ( + 'configuration_key' => $prefix . 'MAX_AMOUNT', + 'configuration_value' => '' + ); + $inst [] = array ( + 'configuration_key' => $prefix . 'PROCESSED_STATUS_ID', + 'configuration_value' => '0', + 'set_function' => 'xtc_cfg_pull_down_order_statuses(', + 'use_function' => 'xtc_get_order_status_name' + ); + $inst [] = array ( + 'configuration_key' => $prefix . 'PENDING_STATUS_ID', + 'configuration_value' => '0', + 'set_function' => 'xtc_cfg_pull_down_order_statuses(', + 'use_function' => 'xtc_get_order_status_name' + ); + $inst [] = array ( + 'configuration_key' => $prefix . 'CANCELED_STATUS_ID', + 'configuration_value' => '0', + 'set_function' => 'xtc_cfg_pull_down_order_statuses(', + 'use_function' => 'xtc_get_order_status_name' + ); + $inst [] = array ( + 'configuration_key' => $prefix . 'NEWORDER_STATUS_ID', + 'configuration_value' => '0', + 'set_function' => 'xtc_cfg_pull_down_order_statuses(', + 'use_function' => 'xtc_get_order_status_name' + ); + $inst [] = array ( + 'configuration_key' => $prefix . 'DEBUG', + 'configuration_value' => 'False', + 'set_function' => 'xtc_cfg_select_option(array(\'True\', \'False\'), ' + ); + + foreach ( $inst as $k => $v ) { + $sql = $sqlBase . ' '; + foreach ( $v as $key => $val ) { + $sql .= '`' . addslashes ( $key ) . '` = "' . $val . '", '; + } + $sql .= '`sort_order` = "' . $k . '", '; + $sql .= '`configuration_group_id` = "' . addslashes ( $groupId ) . '", '; + $sql .= '`date_added` = NOW() '; + // echo $sql.'
'; + xtc_db_query ( $sql ); + } + } + function remove($install = false) { + xtc_db_query ( "delete from " . TABLE_CONFIGURATION . " where configuration_key in ('" . implode ( "', '", $this->keys () ) . "')" ); + } + function keys() { + $prefix = 'MODULE_PAYMENT_HPCC_'; + return array ( + $prefix . 'STATUS', + $prefix . 'SECURITY_SENDER', + $prefix . 'USER_LOGIN', + $prefix . 'USER_PWD', + $prefix . 'TRANSACTION_CHANNEL', + $prefix . 'TRANSACTION_MODE', + $prefix . 'MODULE_MODE', + $prefix . 'SAVE_REGISTER', + $prefix . 'PAY_MODE', + $prefix . 'TEST_ACCOUNT', + $prefix . 'MIN_AMOUNT', + $prefix . 'MAX_AMOUNT', + $prefix . 'PROCESSED_STATUS_ID', + $prefix . 'PENDING_STATUS_ID', + $prefix . 'CANCELED_STATUS_ID', + $prefix . 'NEWORDER_STATUS_ID', + $prefix . 'SORT_ORDER', + $prefix . 'ALLOWED', + $prefix . 'ZONE', + $prefix . 'DEBUG' + ); + } +} +?> diff --git a/includes/modules/payment/hpdc.php b/includes/modules/payment/hpdc.php new file mode 100644 index 0000000..9e654d3 --- /dev/null +++ b/includes/modules/payment/hpdc.php @@ -0,0 +1,367 @@ +payCode = 'dc'; + $this->code = 'hp' . $this->payCode; + $this->title = MODULE_PAYMENT_HPDC_TEXT_TITLE; + $this->description = MODULE_PAYMENT_HPDC_TEXT_DESC; + $this->sort_order = MODULE_PAYMENT_HPDC_SORT_ORDER; + $this->enabled = ((MODULE_PAYMENT_HPDC_STATUS == 'True') ? true : false); + $this->info = MODULE_PAYMENT_HPDC_TEXT_INFO; + // $this->form_action_url = 'checkout_success.php'; + $this->tmpOrders = false; + $this->tmpStatus = MODULE_PAYMENT_HPDC_NEWORDER_STATUS_ID; + $this->order_status = MODULE_PAYMENT_HPDC_NEWORDER_STATUS_ID; + $this->hp = new heidelpay (); + $this->hp->actualPaymethod = strtoupper ( $this->payCode ); + $this->version = $hp->version; + + if (is_object ( $order )) + $this->update_status (); + } + function update_status() { + global $order; + + if (($this->enabled == true) && (( int ) MODULE_PAYMENT_HPDC_ZONE > 0)) { + $check_flag = false; + $check_query = xtc_db_query ( "select zone_id from " . TABLE_ZONES_TO_GEO_ZONES . " where geo_zone_id = '" . MODULE_PAYMENT_HPDC_ZONE . "' and zone_country_id = '" . $order->billing ['country'] ['id'] . "' order by zone_id" ); + while ( $check = xtc_db_fetch_array ( $check_query ) ) { + if ($check ['zone_id'] < 1) { + $check_flag = true; + break; + } elseif ($check ['zone_id'] == $order->billing ['zone_id']) { + $check_flag = true; + break; + } + } + + if ($check_flag == false) { + $this->enabled = false; + } + } + } + function javascript_validation() { + return false; + } + function selection() { + GLOBAL $order; + if (strpos ( $_SERVER ['SCRIPT_FILENAME'], 'checkout_payment' ) !== false) { + unset ( $_SESSION ['hpLastData'] ); + unset ( $_SESSION ['hpUseUniqueId'] ); + } + if ($_SESSION ['customers_status'] ['customers_status_show_price_tax'] == 0 && $_SESSION ['customers_status'] ['customers_status_add_tax_ot'] == 1) { + $total = $order->info ['total'] + $order->info ['tax']; + } else { + $total = $order->info ['total']; + } + $total = $total * 100; + if (MODULE_PAYMENT_HPDC_MIN_AMOUNT > 0 && MODULE_PAYMENT_HPDC_MIN_AMOUNT > $total) + return false; + if (MODULE_PAYMENT_HPDC_MAX_AMOUNT > 0 && MODULE_PAYMENT_HPDC_MAX_AMOUNT < $total) + return false; + + $src = ''; + $src = $this->hp->handleRegister ( $order, $this->payCode ); + + $hpIframe = ''; + if (! empty ( $src )) { + $hpIframe = ''; + $hpIframe .= ''; + } + + if (MODULE_PAYMENT_HPDC_TRANSACTION_MODE == 'LIVE' || strpos ( MODULE_PAYMENT_HPDC_TEST_ACCOUNT, $order->customer ['email_address'] ) !== false) { + $content = array (); + if (MODULE_PAYMENT_HPDC_MODULE_MODE == 'DIRECT') { + // Special DC Reuse + $lastDCard = $this->hp->loadMEMO ( $_SESSION ['customer_id'], 'heidelpay_last_debitcard' ); + // if(!empty($lastDCard)){ + $gender = $_SESSION ['customer_gender'] == 'f' ? FEMALE : MALE; + $name = $_SESSION ['customer_last_name']; + if (! empty ( $lastDCard )) { + $title = $gender . ' ' . $name . ', ' . MODULE_PAYMENT_HPDC_REUSE_CARD . '
' . '
' . MODULE_PAYMENT_HPDC_REUSE_CARD_NUMBER . $lastDCard . '
' . '' . '' . MODULE_PAYMENT_HPDC_REUSE_CARD_TEXT . ''; + } else { + $title = '
' . $hpIframe . '
' . ''; + } + $content [] = array ( + 'title' => $title, + 'field' => '' + ); + // } + } + } else { + $content = array ( + array ( + 'title' => '', + 'field' => MODULE_PAYMENT_HPDC_DEBUGTEXT + ) + ); + } + + return array ( + 'id' => $this->code, + 'module' => $this->title, + 'fields' => $content, + 'description' => $this->info + ); + } + function pre_confirmation_check() { + GLOBAL $order; + // echo 'HPDC: '.__FUNCTION__; exit(); + if (MODULE_PAYMENT_HPDC_TRANSACTION_MODE == 'LIVE' || strpos ( MODULE_PAYMENT_HPDC_TEST_ACCOUNT, $order->customer ['email_address'] ) !== false) { + $_SESSION ['hpModuleMode'] = MODULE_PAYMENT_HPDC_MODULE_MODE; + if ($_POST ['hpdcReuseCard'] == 1) { + $uniqueID = $this->hp->loadMEMO ( $_SESSION ['customer_id'], 'heidelpay_last_debitcard_reference' ); + if (! empty ( $uniqueID )) + $_SESSION ['hpUseUniqueId'] = $uniqueID; + } else if ($_POST ['hpdcUniqueId'] != '') { + $uniqueID = $_POST ['hpdcUniqueId']; + if (! empty ( $uniqueID )) + $_SESSION ['hpUseUniqueId'] = $uniqueID; + } else if (MODULE_PAYMENT_HPDC_MODULE_MODE == 'DIRECT') { + $payment_error_return = 'payment_error=hpdc&error=' . MODULE_PAYMENT_HPDC_ERROR_NO_PAYDATA; + xtc_redirect ( xtc_href_link ( FILENAME_CHECKOUT_PAYMENT, $payment_error_return, 'SSL', true, false ) ); + } + if (! isset ( $_SESSION ['hpUseUniqueId'] ) && $_POST ['hpdcFirstStep'] == 1 && MODULE_PAYMENT_HPDC_MODULE_MODE == 'DIRECT') { + unset ( $_POST ['hpdcFirstStep'] ); + $_SESSION ['hpLastPost'] = $_POST; + $payment_error_return = 'hpdcreg=1'; + xtc_redirect ( xtc_href_link ( FILENAME_CHECKOUT_PAYMENT, $payment_error_return, 'SSL', true, false ) ); + } else { + $_SESSION ['hpLastPost'] = $_POST; + } + } else { + $payment_error_return = 'payment_error=hpdc&error=' . urlencode ( MODULE_PAYMENT_HPDC_DEBUGTEXT ); + xtc_redirect ( xtc_href_link ( FILENAME_CHECKOUT_PAYMENT, $payment_error_return, 'SSL', true, false ) ); + } + } + function confirmation() { + if (! isset ( $_SESSION ['hpUseUniqueId'] )) + return false; + // Special DC Reuse + $lastDCard = $this->hp->loadMEMO ( $_SESSION ['customer_id'], 'heidelpay_last_debitcard' ); + $content = array (); + if (! empty ( $lastDCard )) { + $gender = $_SESSION ['customer_gender'] == 'f' ? FEMALE : MALE; + $name = $_SESSION ['customer_last_name']; + $content [] = array ( + 'title' => MODULE_PAYMENT_HPDC_WILLUSE_CARD . $lastDCard, + 'field' => '' + ); + } else { + return false; + } + return array ( + 'title' => $gender . ' ' . $name . ', ', + 'fields' => $content + ); + } + function process_button() { + global $order; + $this->hp->rememberOrderData ( $order ); + return false; + } + function payment_action() { + return true; + } + function before_process() { + return false; + } + function after_process() { + global $order, $xtPrice, $insert_id; + $this->hp->setOrderStatus ( $insert_id, $this->order_status ); + $comment = ' '; + $this->hp->addHistoryComment ( $insert_id, $comment, $this->order_status ); + $hpIframe = $this->hp->handleDebit ( $order, $this->payCode, $insert_id ); + return true; + } + function admin_order($oID) { + return false; + } + function get_error() { + global $_GET; + + $error = array ( + 'title' => MODULE_PAYMENT_HPDC_TEXT_ERROR, + 'error' => stripslashes ( urldecode ( $_GET ['error'] ) ) + ); + + return $error; + } + function check() { + if (! isset ( $this->_check )) { + $check_query = xtc_db_query ( "select configuration_value from " . TABLE_CONFIGURATION . " where configuration_key = 'MODULE_PAYMENT_HPDC_STATUS'" ); + $this->_check = xtc_db_num_rows ( $check_query ); + } + return $this->_check; + } + function install() { + $this->remove ( true ); + + $groupId = 6; + $sqlBase = 'INSERT INTO `' . TABLE_CONFIGURATION . '` SET '; + $prefix = 'MODULE_PAYMENT_HPDC_'; + $inst = array (); + $inst [] = array ( + 'configuration_key' => $prefix . 'STATUS', + 'configuration_value' => 'True', + 'set_function' => 'xtc_cfg_select_option(array(\'True\', \'False\'), ' + ); + $inst [] = array ( + 'configuration_key' => $prefix . 'SECURITY_SENDER', + 'configuration_value' => '31HA07BC8142C5A171745D00AD63D182' + ); + $inst [] = array ( + 'configuration_key' => $prefix . 'USER_LOGIN', + 'configuration_value' => '31ha07bc8142c5a171744e5aef11ffd3' + ); + $inst [] = array ( + 'configuration_key' => $prefix . 'USER_PWD', + 'configuration_value' => '93167DE7' + ); + $inst [] = array ( + 'configuration_key' => $prefix . 'TRANSACTION_CHANNEL', + 'configuration_value' => '31HA07BC8142C5A171744F3D6D155865' + ); + $inst [] = array ( + 'configuration_key' => $prefix . 'TRANSACTION_MODE', + 'configuration_value' => 'TEST', + 'set_function' => 'xtc_cfg_select_option(array(\'LIVE\', \'TEST\'), ' + ); + + $inst [] = array ( + 'configuration_key' => $prefix . 'MODULE_MODE', + 'configuration_value' => 'DIRECT', + 'set_function' => 'xtc_cfg_select_option(array(\'DIRECT\', \'AFTER\'), ' + ); + $inst [] = array ( + 'configuration_key' => $prefix . 'PAY_MODE', + 'configuration_value' => 'DB', + 'set_function' => 'xtc_cfg_select_option(array(\'DB\', \'PA\'), ' + ); + $inst [] = array ( + 'configuration_key' => $prefix . 'SAVE_REGISTER', + 'configuration_value' => 'True', + 'set_function' => 'xtc_cfg_select_option(array(\'True\', \'False\'), ' + ); + $inst [] = array ( + 'configuration_key' => $prefix . 'TEST_ACCOUNT', + 'configuration_value' => '' + ); + $inst [] = array ( + 'configuration_key' => $prefix . 'SORT_ORDER', + 'configuration_value' => '1.2' + ); + $inst [] = array ( + 'configuration_key' => $prefix . 'ZONE', + 'configuration_value' => '', + 'set_function' => 'xtc_cfg_pull_down_zone_classes(', + 'use_function' => 'xtc_get_zone_class_title' + ); + $inst [] = array ( + 'configuration_key' => $prefix . 'ALLOWED', + 'configuration_value' => '' + ); + $inst [] = array ( + 'configuration_key' => $prefix . 'MIN_AMOUNT', + 'configuration_value' => '' + ); + $inst [] = array ( + 'configuration_key' => $prefix . 'MAX_AMOUNT', + 'configuration_value' => '' + ); + $inst [] = array ( + 'configuration_key' => $prefix . 'PROCESSED_STATUS_ID', + 'configuration_value' => '0', + 'set_function' => 'xtc_cfg_pull_down_order_statuses(', + 'use_function' => 'xtc_get_order_status_name' + ); + $inst [] = array ( + 'configuration_key' => $prefix . 'PENDING_STATUS_ID', + 'configuration_value' => '0', + 'set_function' => 'xtc_cfg_pull_down_order_statuses(', + 'use_function' => 'xtc_get_order_status_name' + ); + $inst [] = array ( + 'configuration_key' => $prefix . 'CANCELED_STATUS_ID', + 'configuration_value' => '0', + 'set_function' => 'xtc_cfg_pull_down_order_statuses(', + 'use_function' => 'xtc_get_order_status_name' + ); + $inst [] = array ( + 'configuration_key' => $prefix . 'NEWORDER_STATUS_ID', + 'configuration_value' => '0', + 'set_function' => 'xtc_cfg_pull_down_order_statuses(', + 'use_function' => 'xtc_get_order_status_name' + ); + $inst [] = array ( + 'configuration_key' => $prefix . 'DEBUG', + 'configuration_value' => 'False', + 'set_function' => 'xtc_cfg_select_option(array(\'True\', \'False\'), ' + ); + + foreach ( $inst as $k => $v ) { + $sql = $sqlBase . ' '; + foreach ( $v as $key => $val ) { + $sql .= '`' . addslashes ( $key ) . '` = "' . $val . '", '; + } + $sql .= '`sort_order` = "' . $k . '", '; + $sql .= '`configuration_group_id` = "' . addslashes ( $groupId ) . '", '; + $sql .= '`date_added` = NOW() '; + // echo $sql.'
'; + xtc_db_query ( $sql ); + } + } + function remove($install = false) { + xtc_db_query ( "delete from " . TABLE_CONFIGURATION . " where configuration_key in ('" . implode ( "', '", $this->keys () ) . "')" ); + } + function keys() { + $prefix = 'MODULE_PAYMENT_HPDC_'; + return array ( + $prefix . 'STATUS', + $prefix . 'SECURITY_SENDER', + $prefix . 'USER_LOGIN', + $prefix . 'USER_PWD', + $prefix . 'TRANSACTION_CHANNEL', + $prefix . 'TRANSACTION_MODE', + $prefix . 'MODULE_MODE', + $prefix . 'SAVE_REGISTER', + $prefix . 'PAY_MODE', + $prefix . 'TEST_ACCOUNT', + $prefix . 'MIN_AMOUNT', + $prefix . 'MAX_AMOUNT', + $prefix . 'PROCESSED_STATUS_ID', + $prefix . 'PENDING_STATUS_ID', + $prefix . 'CANCELED_STATUS_ID', + $prefix . 'NEWORDER_STATUS_ID', + $prefix . 'SORT_ORDER', + $prefix . 'ALLOWED', + $prefix . 'ZONE' + ) + // $prefix.'', + ; + } +} +?> diff --git a/includes/modules/payment/hpdd.php b/includes/modules/payment/hpdd.php new file mode 100644 index 0000000..0711efe --- /dev/null +++ b/includes/modules/payment/hpdd.php @@ -0,0 +1,380 @@ +payCode = 'dd'; + $this->code = 'hp' . $this->payCode; + $this->title = MODULE_PAYMENT_HPDD_TEXT_TITLE; + $this->description = MODULE_PAYMENT_HPDD_TEXT_DESC; + $this->sort_order = MODULE_PAYMENT_HPDD_SORT_ORDER; + $this->enabled = ((MODULE_PAYMENT_HPDD_STATUS == 'True') ? true : false); + $this->info = MODULE_PAYMENT_HPDD_TEXT_INFO; + // $this->form_action_url = 'checkout_success.php'; + $this->tmpOrders = false; + $this->tmpStatus = MODULE_PAYMENT_HPDD_NEWORDER_STATUS_ID; + $this->order_status = MODULE_PAYMENT_HPDD_NEWORDER_STATUS_ID; + $this->hp = new heidelpay (); + $this->hp->actualPaymethod = strtoupper ( $this->payCode ); + $this->version = $hp->version; + + if (is_object ( $order )) + $this->update_status (); + } + function update_status() { + global $order; + + if (($this->enabled == true) && (( int ) MODULE_PAYMENT_HPDD_ZONE > 0)) { + $check_flag = false; + $check_query = xtc_db_query ( "select zone_id from " . TABLE_ZONES_TO_GEO_ZONES . " where geo_zone_id = '" . MODULE_PAYMENT_HPDD_ZONE . "' and zone_country_id = '" . $order->billing ['country'] ['id'] . "' order by zone_id" ); + while ( $check = xtc_db_fetch_array ( $check_query ) ) { + if ($check ['zone_id'] < 1) { + $check_flag = true; + break; + } elseif ($check ['zone_id'] == $order->billing ['zone_id']) { + $check_flag = true; + break; + } + } + + if ($check_flag == false) { + $this->enabled = false; + } + } + } + function javascript_validation() { + return false; + } + function selection() { + GLOBAL $order; + if (strpos ( $_SERVER ['SCRIPT_FILENAME'], 'checkout_payment' ) !== false) { + unset ( $_SESSION ['hpLastData'] ); + unset ( $_SESSION ['hpDDData'] ); + } + if ($_SESSION ['customers_status'] ['customers_status_show_price_tax'] == 0 && $_SESSION ['customers_status'] ['customers_status_add_tax_ot'] == 1) { + $total = $order->info ['total'] + $order->info ['tax']; + } else { + $total = $order->info ['total']; + } + $total = $total * 100; + if (MODULE_PAYMENT_HPDD_MIN_AMOUNT > 0 && MODULE_PAYMENT_HPDD_MIN_AMOUNT > $total) + return false; + if (MODULE_PAYMENT_HPDD_MAX_AMOUNT > 0 && MODULE_PAYMENT_HPDD_MAX_AMOUNT < $total) + return false; + + $sql = 'SELECT * FROM `' . TABLE_CUSTOMERS . '` WHERE `customers_id` = "' . $_SESSION ['customer_id'] . '" '; + $tmp = xtc_db_fetch_array ( xtc_db_query ( $sql ) ); + // echo '
'.print_r($tmp, 1).'
'; + // echo '
'.print_r($_SESSION, 1).'
'; + + if (MODULE_PAYMENT_HPDD_TRANSACTION_MODE == 'LIVE' || strpos ( MODULE_PAYMENT_HPDD_TEST_ACCOUNT, $order->customer ['email_address'] ) !== false) { + + $sepamode = strtolower ( MODULE_PAYMENT_HPDD_SEPA_MODE ); + + if (is_int ( strpos ( $sepamode, 'both' ) )) { + print ""; + + $content [] = array ( + 'title' => MODULE_PAYMENT_HPDD_ACCOUNT_SWITCH, + 'field' => '' + ); + } + if (is_int ( strpos ( $sepamode, 'account' ) ) || is_int ( strpos ( $sepamode, 'konton' ) ) || is_int ( strpos ( $sepamode, 'both' ) )) { + $content [] = array ( + 'title' => MODULE_PAYMENT_HPDD_ACCOUNT_NUMBER, + 'field' => '' + ); + $content [] = array ( + 'title' => MODULE_PAYMENT_HPDD_ACCOUNT_BANK, + 'field' => '' + ); + } + if (is_int ( strpos ( $sepamode, 'iban' ) ) || is_int ( strpos ( $sepamode, 'both' ) )) { + $content [] = array ( + 'title' => MODULE_PAYMENT_HPDD_ACCOUNT_IBAN, + 'field' => '' + ); + /* + * $content[] = array ( + * 'title' => MODULE_PAYMENT_HPDD_ACCOUNT_BIC, + * 'field' => '', + * ); + */ + } + + $content [] = array ( + 'title' => MODULE_PAYMENT_HPDD_ACCOUNT_HOLDER, + 'field' => '' + ); + } else { + $content = array ( + array ( + 'title' => '', + 'field' => MODULE_PAYMENT_HPDD_DEBUGTEXT + ) + ); + } + + return array ( + 'id' => $this->code, + 'module' => $this->title, + 'fields' => $content, + 'description' => $this->info + ); + } + function pre_confirmation_check() { + + /* + * $_SESSION['hpModuleMode'] = MODULE_PAYMENT_HPDD_MODULE_MODE; + * if(empty($_POST['hpdd']['AccountNumber']) || empty($_POST['hpdd']['BankCode']) || empty($_POST['hpdd']['Holder'])){ + * $payment_error_return = 'payment_error=hpdd&error='.MODULE_PAYMENT_HPDD_ERROR_NO_PAYDATA; + * xtc_redirect(xtc_href_link(FILENAME_CHECKOUT_PAYMENT, $payment_error_return, 'SSL', true, false)); + * } else if($_POST['hpddFirstStep'] == 1 && MODULE_PAYMENT_HPDD_MODULE_MODE == 'DIRECT'){ + * unset($_POST['hpddFirstStep']); + * $_SESSION['hpLastPost'] = $_POST; + * $payment_error_return = 'hpddreg=1'; + * xtc_redirect(xtc_href_link(FILENAME_CHECKOUT_PAYMENT, $payment_error_return, 'SSL', true, false)); + * }else{ + * $_SESSION['hpLastPost'] = $_POST; + * $_SESSION['hpDDData'] = $_POST['hpdd']; + * } + */ + GLOBAL $order; + if (MODULE_PAYMENT_HPDD_TRANSACTION_MODE == 'LIVE' || strpos ( MODULE_PAYMENT_HPDD_TEST_ACCOUNT, $order->customer ['email_address'] ) !== false) { + if (count ( $_POST ['hpdd'] ) > 3) { + if (($_POST ['hpdd'] ['sepaSwitch'] == 'iban' && (($_POST ['hpdd'] ['AccountIBAN'] == ''))) || ($_POST ['hpdd'] ['sepaSwitch'] == 'noiban' && (($_POST ['hpdd'] ['AccountNumber'] == '') || ($_POST ['hpdd'] ['BankCode'] == ''))) || ($_POST ['hpdd'] ['Holder'] == '')) { + $payment_error_return = 'payment_error=hpdd&error=' . urlencode ( MODULE_PAYMENT_HPDD_PAYMENT_DATA ); + xtc_redirect ( xtc_href_link ( FILENAME_CHECKOUT_PAYMENT, $payment_error_return, 'SSL', true, false ) ); + } + } else { + foreach ( $_POST ['hpdd'] as $key => $value ) { + if ($value == '') { + $payment_error_return = 'payment_error=hpdd&error=' . urlencode ( MODULE_PAYMENT_HPDD_PAYMENT_DATA ); + xtc_redirect ( xtc_href_link ( FILENAME_CHECKOUT_PAYMENT, $payment_error_return, 'SSL', true, false ) ); + break; + } + } + } + if ($payment_error_return == '') { + $_SESSION ['hpLastPost'] = $_POST; + $_SESSION ['hpDDData'] = $_POST ['hpdd']; + } + } else { + $payment_error_return = 'payment_error=hpdd&error=' . urlencode ( MODULE_PAYMENT_HPDD_DEBUGTEXT ); + xtc_redirect ( xtc_href_link ( FILENAME_CHECKOUT_PAYMENT, $payment_error_return, 'SSL', true, false ) ); + } + } + function confirmation() { + return false; + } + function process_button() { + global $order; + $this->hp->rememberOrderData ( $order ); + return false; + } + function payment_action() { + return true; + } + function before_process() { + return false; + } + function after_process() { + global $order, $xtPrice, $insert_id; + $this->hp->setOrderStatus ( $insert_id, $this->order_status ); + $comment = ' '; + $this->hp->addHistoryComment ( $insert_id, $comment, $this->order_status ); + $hpIframe = $this->hp->handleDebit ( $order, $this->payCode, $insert_id ); + return true; + } + function admin_order($oID) { + return false; + } + function get_error() { + global $_GET; + + $error = array ( + 'title' => MODULE_PAYMENT_HPDD_TEXT_ERROR, + 'error' => stripslashes ( urldecode ( $_GET ['error'] ) ) + ); + + return $error; + } + function check() { + if (! isset ( $this->_check )) { + $check_query = xtc_db_query ( "select configuration_value from " . TABLE_CONFIGURATION . " where configuration_key = 'MODULE_PAYMENT_HPDD_STATUS'" ); + $this->_check = xtc_db_num_rows ( $check_query ); + } + return $this->_check; + } + function install() { + if (! $this->hp->install_db ( TABLE_CUSTOMERS, 'hpdd_kto', 'ALTER TABLE `' . TABLE_CUSTOMERS . '` ADD `hpdd_kto` VARCHAR(50) NOT NULL' ) || ! $this->hp->install_db ( TABLE_CUSTOMERS, 'hpdd_blz', 'ALTER TABLE `' . TABLE_CUSTOMERS . '` ADD `hpdd_blz` VARCHAR(50) NOT NULL' ) || ! $this->hp->install_db ( TABLE_CUSTOMERS, 'hpdd_own', 'ALTER TABLE `' . TABLE_CUSTOMERS . '` ADD `hpdd_own` VARCHAR(50) NOT NULL' )) + die ( 'Es gab ein Problem bei der Installation des Moduls.' ); + + $this->remove ( true ); + + $groupId = 6; + $sqlBase = 'INSERT INTO `' . TABLE_CONFIGURATION . '` SET '; + $prefix = 'MODULE_PAYMENT_HPDD_'; + $inst = array (); + $inst [] = array ( + 'configuration_key' => $prefix . 'STATUS', + 'configuration_value' => 'True', + 'set_function' => 'xtc_cfg_select_option(array(\'True\', \'False\'), ' + ); + $inst [] = array ( + 'configuration_key' => $prefix . 'SECURITY_SENDER', + 'configuration_value' => '31HA07BC8142C5A171745D00AD63D182' + ); + $inst [] = array ( + 'configuration_key' => $prefix . 'USER_LOGIN', + 'configuration_value' => '31ha07bc8142c5a171744e5aef11ffd3' + ); + $inst [] = array ( + 'configuration_key' => $prefix . 'USER_PWD', + 'configuration_value' => '93167DE7' + ); + $inst [] = array ( + 'configuration_key' => $prefix . 'TRANSACTION_CHANNEL', + 'configuration_value' => '31HA07BC8142C5A171744F3D6D155865' + ); + $inst [] = array ( + 'configuration_key' => $prefix . 'TRANSACTION_MODE', + 'configuration_value' => 'TEST', + 'set_function' => 'xtc_cfg_select_option(array(\'LIVE\', \'TEST\'), ' + ); + $inst [] = array ( + 'configuration_key' => $prefix . 'SEPA_MODE', + 'configuration_value' => 'both with selector', + 'set_function' => 'xtc_cfg_select_option(array(\'Account and bank no.\', \'IBAN\', \'both with selector\'), ' + ); + $inst [] = array ( + 'configuration_key' => $prefix . 'TEST_ACCOUNT', + 'configuration_value' => '' + ); + $inst [] = array ( + 'configuration_key' => $prefix . 'SORT_ORDER', + 'configuration_value' => '1.3' + ); + $inst [] = array ( + 'configuration_key' => $prefix . 'ZONE', + 'configuration_value' => '', + 'set_function' => 'xtc_cfg_pull_down_zone_classes(', + 'use_function' => 'xtc_get_zone_class_title' + ); + $inst [] = array ( + 'configuration_key' => $prefix . 'ALLOWED', + 'configuration_value' => '' + ); + $inst [] = array ( + 'configuration_key' => $prefix . 'MIN_AMOUNT', + 'configuration_value' => '' + ); + $inst [] = array ( + 'configuration_key' => $prefix . 'MAX_AMOUNT', + 'configuration_value' => '' + ); + $inst [] = array ( + 'configuration_key' => $prefix . 'PROCESSED_STATUS_ID', + 'configuration_value' => '0', + 'set_function' => 'xtc_cfg_pull_down_order_statuses(', + 'use_function' => 'xtc_get_order_status_name' + ); + $inst [] = array ( + 'configuration_key' => $prefix . 'PENDING_STATUS_ID', + 'configuration_value' => '0', + 'set_function' => 'xtc_cfg_pull_down_order_statuses(', + 'use_function' => 'xtc_get_order_status_name' + ); + $inst [] = array ( + 'configuration_key' => $prefix . 'CANCELED_STATUS_ID', + 'configuration_value' => '0', + 'set_function' => 'xtc_cfg_pull_down_order_statuses(', + 'use_function' => 'xtc_get_order_status_name' + ); + $inst [] = array ( + 'configuration_key' => $prefix . 'NEWORDER_STATUS_ID', + 'configuration_value' => '0', + 'set_function' => 'xtc_cfg_pull_down_order_statuses(', + 'use_function' => 'xtc_get_order_status_name' + ); + $inst [] = array ( + 'configuration_key' => $prefix . 'DEBUG', + 'configuration_value' => 'False', + 'set_function' => 'xtc_cfg_select_option(array(\'True\', \'False\'), ' + ); + + foreach ( $inst as $k => $v ) { + $sql = $sqlBase . ' '; + foreach ( $v as $key => $val ) { + $sql .= '`' . addslashes ( $key ) . '` = "' . $val . '", '; + } + $sql .= '`sort_order` = "' . $k . '", '; + $sql .= '`configuration_group_id` = "' . addslashes ( $groupId ) . '", '; + $sql .= '`date_added` = NOW() '; + xtc_db_query ( $sql ); + } + } + function remove($install = false) { + xtc_db_query ( "delete from " . TABLE_CONFIGURATION . " where configuration_key in ('" . implode ( "', '", $this->keys () ) . "')" ); + } + function keys() { + $prefix = 'MODULE_PAYMENT_HPDD_'; + return array ( + $prefix . 'STATUS', + $prefix . 'SECURITY_SENDER', + $prefix . 'USER_LOGIN', + $prefix . 'USER_PWD', + $prefix . 'TRANSACTION_CHANNEL', + $prefix . 'TRANSACTION_MODE', + $prefix . 'SEPA_MODE', + $prefix . 'TEST_ACCOUNT', + $prefix . 'MIN_AMOUNT', + $prefix . 'MAX_AMOUNT', + $prefix . 'PROCESSED_STATUS_ID', + $prefix . 'CANCELED_STATUS_ID', + $prefix . 'NEWORDER_STATUS_ID', + $prefix . 'SORT_ORDER', + $prefix . 'ALLOWED', + $prefix . 'ZONE' + ); + } +} +?> diff --git a/includes/modules/payment/hpeps.php b/includes/modules/payment/hpeps.php new file mode 100644 index 0000000..2a86494 --- /dev/null +++ b/includes/modules/payment/hpeps.php @@ -0,0 +1,267 @@ +payCode = 'eps'; + $this->code = 'hp' . $this->payCode; + $this->title = MODULE_PAYMENT_HPEPS_TEXT_TITLE; + $this->description = MODULE_PAYMENT_HPEPS_TEXT_DESC; + $this->sort_order = MODULE_PAYMENT_HPEPS_SORT_ORDER; + $this->enabled = ((MODULE_PAYMENT_HPEPS_STATUS == 'True') ? true : false); + $this->info = MODULE_PAYMENT_HPEPS_TEXT_INFO; + // $this->form_action_url = 'checkout_success.php'; + $this->tmpOrders = false; + $this->tmpStatus = MODULE_PAYMENT_HPEPS_NEWORDER_STATUS_ID; + $this->order_status = MODULE_PAYMENT_HPEPS_NEWORDER_STATUS_ID; + $this->hp = new heidelpay (); + $this->hp->actualPaymethod = strtoupper ( $this->payCode ); + $this->version = $hp->version; + + if (is_object ( $order )) + $this->update_status (); + + // OT FIX + if ($_GET ['payment_error'] == 'hpot') { + GLOBAL $smarty; + $error = $this->get_error (); + $smarty->assign ( 'error', htmlspecialchars ( $error ['error'] ) ); + } + } + function update_status() { + global $order; + + if (($this->enabled == true) && (( int ) MODULE_PAYMENT_HPEPS_ZONE > 0)) { + $check_flag = false; + $check_query = xtc_db_query ( "select zone_id from " . TABLE_ZONES_TO_GEO_ZONES . " where geo_zone_id = '" . MODULE_PAYMENT_HPEPS_ZONE . "' and zone_country_id = '" . $order->billing ['country'] ['id'] . "' order by zone_id" ); + while ( $check = xtc_db_fetch_array ( $check_query ) ) { + if ($check ['zone_id'] < 1) { + $check_flag = true; + break; + } elseif ($check ['zone_id'] == $order->billing ['zone_id']) { + $check_flag = true; + break; + } + } + + if ($check_flag == false) { + $this->enabled = false; + } + } + } + function javascript_validation() { + return false; + } + function selection() { + GLOBAL $order; + if (strpos ( $_SERVER ['SCRIPT_FILENAME'], 'checkout_payment' ) !== false) { + unset ( $_SESSION ['hpLastData'] ); + } + // $_SESSION['hpModuleMode'] = 'AFTER'; + + if (MODULE_PAYMENT_HPEPS_TRANSACTION_MODE == 'LIVE' || strpos ( MODULE_PAYMENT_HPEPS_TEST_ACCOUNT, $order->customer ['email_address'] ) !== false) { + $content = array ( + array ( + 'title' => '', + 'field' => '' + ) + ); + } else { + $content = array ( + array ( + 'title' => '', + 'field' => MODULE_PAYMENT_HPEPS_DEBUGTEXT + ) + ); + } + + return array ( + 'id' => $this->code, + 'module' => $this->title, + 'fields' => $content, + 'description' => $this->info + ); + } + function pre_confirmation_check() { + GLOBAL $order; + // echo 'HPEPS: '.__FUNCTION__; exit(); + if (MODULE_PAYMENT_HPEPS_TRANSACTION_MODE == 'LIVE' || strpos ( MODULE_PAYMENT_HPEPS_TEST_ACCOUNT, $order->customer ['email_address'] ) !== false) { + $_SESSION ['hpModuleMode'] = 'AFTER'; + $_SESSION ['hpLastPost'] = $_POST; + } else { + $payment_error_return = 'payment_error=hpeps&error=' . urlencode ( MODULE_PAYMENT_HPEPS_DEBUGTEXT ); + xtc_redirect ( xtc_href_link ( FILENAME_CHECKOUT_PAYMENT, $payment_error_return, 'SSL', true, false ) ); + } + } + function confirmation() { + return false; + } + function process_button() { + global $order; + $this->hp->rememberOrderData ( $order ); + return false; + } + function payment_action() { + return true; + } + function before_process() { + return false; + } + function after_process() { + global $order, $xtPrice, $insert_id; + $this->hp->setOrderStatus ( $insert_id, $this->order_status ); + $comment = ' '; + $this->hp->addHistoryComment ( $insert_id, $comment, $this->order_status ); + $hpIframe = $this->hp->handleDebit ( $order, $this->payCode, $insert_id ); + return true; + } + function admin_order($oID) { + return false; + } + function get_error() { + global $_GET; + + $error = array ( + 'title' => MODULE_PAYMENT_HPEPS_TEXT_ERROR, + 'error' => stripslashes ( urldecode ( $_GET ['error'] ) ) + ); + + return $error; + } + function check() { + if (! isset ( $this->_check )) { + $check_query = xtc_db_query ( "select configuration_value from " . TABLE_CONFIGURATION . " where configuration_key = 'MODULE_PAYMENT_HPEPS_STATUS'" ); + $this->_check = xtc_db_num_rows ( $check_query ); + } + return $this->_check; + } + function install() { + $this->remove ( true ); + + $groupId = 6; + $sqlBase = 'INSERT INTO `' . TABLE_CONFIGURATION . '` SET '; + $prefix = 'MODULE_PAYMENT_HPEPS_'; + $inst = array (); + $inst [] = array ( + 'configuration_key' => $prefix . 'STATUS', + 'configuration_value' => 'True', + 'set_function' => 'xtc_cfg_select_option(array(\'True\', \'False\'), ' + ); + $inst [] = array ( + 'configuration_key' => $prefix . 'SECURITY_SENDER', + 'configuration_value' => '31HA07BC8142C5A171745D00AD63D182' + ); + $inst [] = array ( + 'configuration_key' => $prefix . 'USER_LOGIN', + 'configuration_value' => '31ha07bc8142c5a171744e5aef11ffd3' + ); + $inst [] = array ( + 'configuration_key' => $prefix . 'USER_PWD', + 'configuration_value' => '93167DE7' + ); + $inst [] = array ( + 'configuration_key' => $prefix . 'TRANSACTION_CHANNEL', + 'configuration_value' => '' + ); + $inst [] = array ( + 'configuration_key' => $prefix . 'TRANSACTION_MODE', + 'configuration_value' => 'TEST', + 'set_function' => 'xtc_cfg_select_option(array(\'LIVE\', \'TEST\'), ' + ); + $inst [] = array ( + 'configuration_key' => $prefix . 'TEST_ACCOUNT', + 'configuration_value' => '' + ); + $inst [] = array ( + 'configuration_key' => $prefix . 'SORT_ORDER', + 'configuration_value' => '1.8' + ); + $inst [] = array ( + 'configuration_key' => $prefix . 'ZONE', + 'configuration_value' => '', + 'set_function' => 'xtc_cfg_pull_down_zone_classes(', + 'use_function' => 'xtc_get_zone_class_title' + ); + $inst [] = array ( + 'configuration_key' => $prefix . 'ALLOWED', + 'configuration_value' => '' + ); + $inst [] = array ( + 'configuration_key' => $prefix . 'MIN_AMOUNT', + 'configuration_value' => '' + ); + $inst [] = array ( + 'configuration_key' => $prefix . 'MAX_AMOUNT', + 'configuration_value' => '' + ); + $inst [] = array ( + 'configuration_key' => $prefix . 'PROCESSED_STATUS_ID', + 'configuration_value' => '0', + 'set_function' => 'xtc_cfg_pull_down_order_statuses(', + 'use_function' => 'xtc_get_order_status_name' + ); + $inst [] = array ( + 'configuration_key' => $prefix . 'CANCELED_STATUS_ID', + 'configuration_value' => '0', + 'set_function' => 'xtc_cfg_pull_down_order_statuses(', + 'use_function' => 'xtc_get_order_status_name' + ); + $inst [] = array ( + 'configuration_key' => $prefix . 'NEWORDER_STATUS_ID', + 'configuration_value' => '0', + 'set_function' => 'xtc_cfg_pull_down_order_statuses(', + 'use_function' => 'xtc_get_order_status_name' + ); + $inst [] = array ( + 'configuration_key' => $prefix . 'DEBUG', + 'configuration_value' => 'False', + 'set_function' => 'xtc_cfg_select_option(array(\'True\', \'False\'), ' + ); + + foreach ( $inst as $k => $v ) { + $sql = $sqlBase . ' '; + foreach ( $v as $key => $val ) { + $sql .= '`' . addslashes ( $key ) . '` = "' . $val . '", '; + } + $sql .= '`sort_order` = "' . $k . '", '; + $sql .= '`configuration_group_id` = "' . addslashes ( $groupId ) . '", '; + $sql .= '`date_added` = NOW() '; + // echo $sql.'
'; + xtc_db_query ( $sql ); + } + } + function remove($install = false) { + xtc_db_query ( "delete from " . TABLE_CONFIGURATION . " where configuration_key in ('" . implode ( "', '", $this->keys () ) . "')" ); + } + function keys() { + $prefix = 'MODULE_PAYMENT_HPEPS_'; + return array ( + $prefix . 'STATUS', + $prefix . 'SECURITY_SENDER', + $prefix . 'USER_LOGIN', + $prefix . 'USER_PWD', + $prefix . 'TRANSACTION_CHANNEL', + $prefix . 'TRANSACTION_MODE', + $prefix . 'TEST_ACCOUNT', + $prefix . 'MIN_AMOUNT', + $prefix . 'MAX_AMOUNT', + $prefix . 'PROCESSED_STATUS_ID', + $prefix . 'CANCELED_STATUS_ID', + $prefix . 'NEWORDER_STATUS_ID', + $prefix . 'SORT_ORDER', + $prefix . 'ALLOWED', + $prefix . 'ZONE' + ) + // $prefix.'', + ; + } +} +?> diff --git a/includes/modules/payment/hpgp.php b/includes/modules/payment/hpgp.php new file mode 100644 index 0000000..d95caec --- /dev/null +++ b/includes/modules/payment/hpgp.php @@ -0,0 +1,309 @@ +payCode = 'gp'; + $this->code = 'hp' . $this->payCode; + $this->title = MODULE_PAYMENT_HPGP_TEXT_TITLE; + $this->description = MODULE_PAYMENT_HPGP_TEXT_DESC; + $this->sort_order = MODULE_PAYMENT_HPGP_SORT_ORDER; + $this->enabled = ((MODULE_PAYMENT_HPGP_STATUS == 'True') ? true : false); + $this->info = MODULE_PAYMENT_HPGP_TEXT_INFO; + // $this->form_action_url = 'checkout_success.php'; + $this->tmpOrders = false; + $this->tmpStatus = MODULE_PAYMENT_HPGP_NEWORDER_STATUS_ID; + $this->order_status = MODULE_PAYMENT_HPGP_NEWORDER_STATUS_ID; + $this->hp = new heidelpay (); + $this->hp->actualPaymethod = strtoupper ( $this->payCode ); + $this->version = $hp->version; + /* + * $this->icons_available = xtc_image(DIR_WS_ICONS . 'cc_amex_small.jpg') . ' ' . + * xtc_image(DIR_WS_ICONS . 'cc_mastercard_small.jpg') . ' ' . + * xtc_image(DIR_WS_ICONS . 'cc_visa_small.jpg') . ' ' . + * xtc_image(DIR_WS_ICONS . 'cc_diners_small.jpg'); + */ + + if (is_object ( $order )) + $this->update_status (); + + // OT FIX + if ($_GET ['payment_error'] == 'hpot') { + GLOBAL $smarty; + $error = $this->get_error (); + $smarty->assign ( 'error', htmlspecialchars ( $error ['error'] ) ); + } + } + function update_status() { + global $order; + + if (($this->enabled == true) && (( int ) MODULE_PAYMENT_HPGP_ZONE > 0)) { + $check_flag = false; + $check_query = xtc_db_query ( "select zone_id from " . TABLE_ZONES_TO_GEO_ZONES . " where geo_zone_id = '" . MODULE_PAYMENT_HPGP_ZONE . "' and zone_country_id = '" . $order->billing ['country'] ['id'] . "' order by zone_id" ); + while ( $check = xtc_db_fetch_array ( $check_query ) ) { + if ($check ['zone_id'] < 1) { + $check_flag = true; + break; + } elseif ($check ['zone_id'] == $order->billing ['zone_id']) { + $check_flag = true; + break; + } + } + + if ($check_flag == false) { + $this->enabled = false; + } + } + } + function javascript_validation() { + return false; + } + function selection() { + GLOBAL $order; + if (strpos ( $_SERVER ['SCRIPT_FILENAME'], 'checkout_payment' ) !== false) { + unset ( $_SESSION ['hpLastData'] ); + unset ( $_SESSION ['hpGPData'] ); + } + if ($_SESSION ['customers_status'] ['customers_status_show_price_tax'] == 0 && $_SESSION ['customers_status'] ['customers_status_add_tax_ot'] == 1) { + $total = $order->info ['total'] + $order->info ['tax']; + } else { + $total = $order->info ['total']; + } + $total = $total * 100; + if (MODULE_PAYMENT_HPGP_MIN_AMOUNT > 0 && MODULE_PAYMENT_HPGP_MIN_AMOUNT > $total) + return false; + if (MODULE_PAYMENT_HPGP_MAX_AMOUNT > 0 && MODULE_PAYMENT_HPGP_MAX_AMOUNT < $total) + return false; + + if (MODULE_PAYMENT_HPGP_TRANSACTION_MODE == 'LIVE' || strpos ( MODULE_PAYMENT_HPGP_TEST_ACCOUNT, $order->customer ['email_address'] ) !== false) { + $sql = 'SELECT * FROM `' . TABLE_CUSTOMERS . '` WHERE `customers_id` = "' . $_SESSION ['customer_id'] . '" '; + $tmp = xtc_db_fetch_array ( xtc_db_query ( $sql ) ); + + $content = array ( + array ( + 'title' => MODULE_PAYMENT_HPGP_ACCOUNT_IBAN, + 'field' => '' + ), + array ( + 'title' => MODULE_PAYMENT_HPGP_ACCOUNT_BIC, + 'field' => '' + ), + array ( + 'title' => MODULE_PAYMENT_HPGP_ACCOUNT_OWNER, + 'field' => '' + ) + ); + } else { + $content = array ( + array ( + 'title' => '', + 'field' => MODULE_PAYMENT_HPGP_DEBUGTEXT + ) + ); + } + + return array ( + 'id' => $this->code, + 'module' => $this->title, + 'fields' => $content, + 'description' => $this->info + ); + } + function pre_confirmation_check() { + GLOBAL $order; + if (MODULE_PAYMENT_HPGP_TRANSACTION_MODE == 'LIVE' || strpos ( MODULE_PAYMENT_HPGP_TEST_ACCOUNT, $order->customer ['email_address'] ) !== false) { + if (empty ( $_POST ['hpgp'] ['AccountIBAN'] ) || empty ( $_POST ['hpgp'] ['AccountBIC'] ) || empty ( $_POST ['hpgp'] ['Holder'] )) { + $payment_error_return = 'payment_error=hpgp&error=' . MODULE_PAYMENT_HPGP_ERROR_NO_PAYDATA; + xtc_redirect ( xtc_href_link ( FILENAME_CHECKOUT_PAYMENT, $payment_error_return, 'SSL', true, false ) ); + } else { + $_SESSION ['hpModuleMode'] = MODULE_PAYMENT_HPGP_MODULE_MODE; + $_SESSION ['hpLastPost'] = $_POST; + $_SESSION ['hpGPData'] = $_POST ['hpgp']; + } + } else { + $payment_error_return = 'payment_error=hpgp&error=' . urlencode ( MODULE_PAYMENT_HPGP_DEBUGTEXT ); + xtc_redirect ( xtc_href_link ( FILENAME_CHECKOUT_PAYMENT, $payment_error_return, 'SSL', true, false ) ); + } + } + function confirmation() { + return false; + } + function process_button() { + global $order; + $this->hp->rememberOrderData ( $order ); + return false; + } + function payment_action() { + return true; + } + function before_process() { + return false; + } + function after_process() { + global $order, $xtPrice, $insert_id; + $this->hp->setOrderStatus ( $insert_id, $this->order_status ); + $comment = ' '; + $this->hp->addHistoryComment ( $insert_id, $comment, $this->order_status ); + $hpIframe = $this->hp->handleDebit ( $order, $this->payCode, $insert_id ); + return true; + } + function admin_order($oID) { + return false; + } + function get_error() { + global $_GET; + + $error = array ( + 'title' => MODULE_PAYMENT_HPGP_TEXT_ERROR, + 'error' => stripslashes ( urldecode ( $_GET ['error'] ) ) + ); + + return $error; + } + function check() { + if (! isset ( $this->_check )) { + $check_query = xtc_db_query ( "select configuration_value from " . TABLE_CONFIGURATION . " where configuration_key = 'MODULE_PAYMENT_HPGP_STATUS'" ); + $this->_check = xtc_db_num_rows ( $check_query ); + } + return $this->_check; + } + function install() { + if (! $this->hp->install_db ( TABLE_CUSTOMERS, 'hpgp_kto', 'ALTER TABLE `' . TABLE_CUSTOMERS . '` ADD `hpgp_kto` VARCHAR(50) NOT NULL' ) || ! $this->hp->install_db ( TABLE_CUSTOMERS, 'hpgp_blz', 'ALTER TABLE `' . TABLE_CUSTOMERS . '` ADD `hpgp_blz` VARCHAR(50) NOT NULL' ) || ! $this->hp->install_db ( TABLE_CUSTOMERS, 'hpgp_own', 'ALTER TABLE `' . TABLE_CUSTOMERS . '` ADD `hpgp_own` VARCHAR(50) NOT NULL' )) + die ( 'Es gab ein Problem bei der Installation des Moduls.' ); + + $this->remove ( true ); + + $groupId = 6; + $sqlBase = 'INSERT INTO `' . TABLE_CONFIGURATION . '` SET '; + $prefix = 'MODULE_PAYMENT_HPGP_'; + $inst = array (); + $inst [] = array ( + 'configuration_key' => $prefix . 'STATUS', + 'configuration_value' => 'True', + 'set_function' => 'xtc_cfg_select_option(array(\'True\', \'False\'), ' + ); + $inst [] = array ( + 'configuration_key' => $prefix . 'SECURITY_SENDER', + 'configuration_value' => '31HA07BC8142C5A171745D00AD63D182' + ); + $inst [] = array ( + 'configuration_key' => $prefix . 'USER_LOGIN', + 'configuration_value' => '31ha07bc8142c5a171744e5aef11ffd3' + ); + $inst [] = array ( + 'configuration_key' => $prefix . 'USER_PWD', + 'configuration_value' => '93167DE7' + ); + $inst [] = array ( + 'configuration_key' => $prefix . 'TRANSACTION_CHANNEL', + 'configuration_value' => '31HA07BC8142C5A171740166AF277E03' + ); + $inst [] = array ( + 'configuration_key' => $prefix . 'TRANSACTION_MODE', + 'configuration_value' => 'TEST', + 'set_function' => 'xtc_cfg_select_option(array(\'LIVE\', \'TEST\'), ' + ); + $inst [] = array ( + 'configuration_key' => $prefix . 'TEST_ACCOUNT', + 'configuration_value' => '' + ); + $inst [] = array ( + 'configuration_key' => $prefix . 'SORT_ORDER', + 'configuration_value' => '1.4' + ); + $inst [] = array ( + 'configuration_key' => $prefix . 'ZONE', + 'configuration_value' => '', + 'set_function' => 'xtc_cfg_pull_down_zone_classes(', + 'use_function' => 'xtc_get_zone_class_title' + ); + $inst [] = array ( + 'configuration_key' => $prefix . 'ALLOWED', + 'configuration_value' => '' + ); + $inst [] = array ( + 'configuration_key' => $prefix . 'MIN_AMOUNT', + 'configuration_value' => '' + ); + $inst [] = array ( + 'configuration_key' => $prefix . 'MAX_AMOUNT', + 'configuration_value' => '' + ); + $inst [] = array ( + 'configuration_key' => $prefix . 'PROCESSED_STATUS_ID', + 'configuration_value' => '0', + 'set_function' => 'xtc_cfg_pull_down_order_statuses(', + 'use_function' => 'xtc_get_order_status_name' + ); + $inst [] = array ( + 'configuration_key' => $prefix . 'PENDING_STATUS_ID', + 'configuration_value' => '0', + 'set_function' => 'xtc_cfg_pull_down_order_statuses(', + 'use_function' => 'xtc_get_order_status_name' + ); + $inst [] = array ( + 'configuration_key' => $prefix . 'CANCELED_STATUS_ID', + 'configuration_value' => '0', + 'set_function' => 'xtc_cfg_pull_down_order_statuses(', + 'use_function' => 'xtc_get_order_status_name' + ); + $inst [] = array ( + 'configuration_key' => $prefix . 'NEWORDER_STATUS_ID', + 'configuration_value' => '0', + 'set_function' => 'xtc_cfg_pull_down_order_statuses(', + 'use_function' => 'xtc_get_order_status_name' + ); + $inst [] = array ( + 'configuration_key' => $prefix . 'DEBUG', + 'configuration_value' => 'False', + 'set_function' => 'xtc_cfg_select_option(array(\'True\', \'False\'), ' + ); + + foreach ( $inst as $k => $v ) { + $sql = $sqlBase . ' '; + foreach ( $v as $key => $val ) { + $sql .= '`' . addslashes ( $key ) . '` = "' . $val . '", '; + } + $sql .= '`sort_order` = "' . $k . '", '; + $sql .= '`configuration_group_id` = "' . addslashes ( $groupId ) . '", '; + $sql .= '`date_added` = NOW() '; + // echo $sql.'
'; + xtc_db_query ( $sql ); + } + } + function remove($install = false) { + xtc_db_query ( "delete from " . TABLE_CONFIGURATION . " where configuration_key in ('" . implode ( "', '", $this->keys () ) . "')" ); + } + function keys() { + $prefix = 'MODULE_PAYMENT_HPGP_'; + return array ( + $prefix . 'STATUS', + $prefix . 'SECURITY_SENDER', + $prefix . 'USER_LOGIN', + $prefix . 'USER_PWD', + $prefix . 'TRANSACTION_CHANNEL', + $prefix . 'TRANSACTION_MODE', + $prefix . 'TEST_ACCOUNT', + $prefix . 'MIN_AMOUNT', + $prefix . 'MAX_AMOUNT', + $prefix . 'PROCESSED_STATUS_ID', + $prefix . 'PENDING_STATUS_ID', + $prefix . 'CANCELED_STATUS_ID', + $prefix . 'NEWORDER_STATUS_ID', + $prefix . 'SORT_ORDER', + $prefix . 'ALLOWED', + $prefix . 'ZONE' + ) + // $prefix.'', + ; + } +} +?> diff --git a/includes/modules/payment/hpidl.php b/includes/modules/payment/hpidl.php new file mode 100644 index 0000000..801915c --- /dev/null +++ b/includes/modules/payment/hpidl.php @@ -0,0 +1,296 @@ +payCode = 'idl'; + $this->code = 'hp' . $this->payCode; + $this->title = MODULE_PAYMENT_HPIDL_TEXT_TITLE; + $this->description = MODULE_PAYMENT_HPIDL_TEXT_DESC; + $this->sort_order = MODULE_PAYMENT_HPIDL_SORT_ORDER; + $this->enabled = ((MODULE_PAYMENT_HPIDL_STATUS == 'True') ? true : false); + $this->info = MODULE_PAYMENT_HPIDL_TEXT_INFO; + // $this->form_action_url = 'checkout_success.php'; + $this->tmpOrders = false; + $this->tmpStatus = MODULE_PAYMENT_HPIDL_NEWORDER_STATUS_ID; + $this->order_status = MODULE_PAYMENT_HPIDL_NEWORDER_STATUS_ID; + $this->hp = new heidelpay (); + $this->hp->actualPaymethod = strtoupper ( $this->payCode ); + $this->version = $hp->version; + /* + * $this->icons_available = xtc_image(DIR_WS_ICONS . 'cc_amex_small.jpg') . ' ' . + * xtc_image(DIR_WS_ICONS . 'cc_mastercard_small.jpg') . ' ' . + * xtc_image(DIR_WS_ICONS . 'cc_visa_small.jpg') . ' ' . + * xtc_image(DIR_WS_ICONS . 'cc_diners_small.jpg'); + */ + + if (is_object ( $order )) + $this->update_status (); + + // OT FIX + if ($_GET ['payment_error'] == 'hpot') { + GLOBAL $smarty; + $error = $this->get_error (); + $smarty->assign ( 'error', htmlspecialchars ( $error ['error'] ) ); + } + } + function update_status() { + global $order; + + if (($this->enabled == true) && (( int ) MODULE_PAYMENT_HPIDL_ZONE > 0)) { + $check_flag = false; + $check_query = xtc_db_query ( "select zone_id from " . TABLE_ZONES_TO_GEO_ZONES . " where geo_zone_id = '" . MODULE_PAYMENT_HPIDL_ZONE . "' and zone_country_id = '" . $order->billing ['country'] ['id'] . "' order by zone_id" ); + while ( $check = xtc_db_fetch_array ( $check_query ) ) { + if ($check ['zone_id'] < 1) { + $check_flag = true; + break; + } elseif ($check ['zone_id'] == $order->billing ['zone_id']) { + $check_flag = true; + break; + } + } + + if ($check_flag == false) { + $this->enabled = false; + } + } + } + function javascript_validation() { + return false; + } + function selection() { + GLOBAL $order; + if (strpos ( $_SERVER ['SCRIPT_FILENAME'], 'checkout_payment' ) !== false) { + unset ( $_SESSION ['hpLastData'] ); + unset ( $_SESSION ['hpIdealData'] ); + } + // $_SESSION['hpModuleMode'] = 'AFTER'; + + if (MODULE_PAYMENT_HPIDL_TRANSACTION_MODE == 'LIVE' || strpos ( MODULE_PAYMENT_HPIDL_TEST_ACCOUNT, $order->customer ['email_address'] ) !== false) { + if (MODULE_PAYMENT_HPIDL_MODULE_MODE == 'NOWPF') { + $content = array ( + array ( + 'title' => MODULE_PAYMENT_HPIDL_ACCOUTCOUNTRY, + 'field' => '' + ), + array ( + 'title' => MODULE_PAYMENT_HPIDL_ACCOUNTBANK, + 'field' => '' + ), + array ( + 'title' => MODULE_PAYMENT_HPIDL_ACCOUTNUMBER, + 'field' => '' + ), + array ( + 'title' => MODULE_PAYMENT_HPIDL_ACCOUTOWNER, + 'field' => '' + ) + ); + } else { + $content = array ( + array ( + 'title' => '', + 'field' => '' + ) + ); + } + } else { + $content = array ( + array ( + 'title' => '', + 'field' => MODULE_PAYMENT_HPIDL_DEBUGTEXT + ) + ); + } + + return array ( + 'id' => $this->code, + 'module' => $this->title, + 'fields' => $content, + 'description' => $this->info + ); + } + function pre_confirmation_check() { + GLOBAL $order; + // echo 'HPIDL: '.__FUNCTION__; exit(); + if (MODULE_PAYMENT_HPIDL_TRANSACTION_MODE == 'LIVE' || strpos ( MODULE_PAYMENT_HPIDL_TEST_ACCOUNT, $order->customer ['email_address'] ) !== false) { + $_SESSION ['hpModuleMode'] = MODULE_PAYMENT_HPIDL_MODULE_MODE; + $_SESSION ['hpLastPost'] = $_POST; + $_SESSION ['hpIdealData'] = $_POST ['hpidl']; + } else { + $payment_error_return = 'payment_error=hpidl&error=' . urlencode ( MODULE_PAYMENT_HPIDL_DEBUGTEXT ); + xtc_redirect ( xtc_href_link ( FILENAME_CHECKOUT_PAYMENT, $payment_error_return, 'SSL', true, false ) ); + } + } + function confirmation() { + return false; + } + function process_button() { + global $order; + $this->hp->rememberOrderData ( $order ); + return false; + } + function payment_action() { + return true; + } + function before_process() { + return false; + } + function after_process() { + global $order, $xtPrice, $insert_id; + $this->hp->setOrderStatus ( $insert_id, $this->order_status ); + $comment = ' '; + $this->hp->addHistoryComment ( $insert_id, $comment, $this->order_status ); + $hpIframe = $this->hp->handleDebit ( $order, $this->payCode, $insert_id ); + return true; + } + function admin_order($oID) { + return false; + } + function get_error() { + global $_GET; + + $error = array ( + 'title' => MODULE_PAYMENT_HPIDL_TEXT_ERROR, + 'error' => stripslashes ( urldecode ( $_GET ['error'] ) ) + ); + + return $error; + } + function check() { + if (! isset ( $this->_check )) { + $check_query = xtc_db_query ( "select configuration_value from " . TABLE_CONFIGURATION . " where configuration_key = 'MODULE_PAYMENT_HPIDL_STATUS'" ); + $this->_check = xtc_db_num_rows ( $check_query ); + } + return $this->_check; + } + function install() { + $this->remove ( true ); + + $groupId = 6; + $sqlBase = 'INSERT INTO `' . TABLE_CONFIGURATION . '` SET '; + $prefix = 'MODULE_PAYMENT_HPIDL_'; + $inst = array (); + $inst [] = array ( + 'configuration_key' => $prefix . 'STATUS', + 'configuration_value' => 'True', + 'set_function' => 'xtc_cfg_select_option(array(\'True\', \'False\'), ' + ); + $inst [] = array ( + 'configuration_key' => $prefix . 'SECURITY_SENDER', + 'configuration_value' => '31HA07BC8142C5A171745D00AD63D182' + ); + $inst [] = array ( + 'configuration_key' => $prefix . 'USER_LOGIN', + 'configuration_value' => '31ha07bc8142c5a171744e5aef11ffd3' + ); + $inst [] = array ( + 'configuration_key' => $prefix . 'USER_PWD', + 'configuration_value' => '93167DE7' + ); + $inst [] = array ( + 'configuration_key' => $prefix . 'TRANSACTION_CHANNEL', + 'configuration_value' => '31HA07BC8142C5A171744B56E61281E5' + ); + $inst [] = array ( + 'configuration_key' => $prefix . 'TRANSACTION_MODE', + 'configuration_value' => 'TEST', + 'set_function' => 'xtc_cfg_select_option(array(\'LIVE\', \'TEST\'), ' + ); + $inst [] = array ( + 'configuration_key' => $prefix . 'TEST_ACCOUNT', + 'configuration_value' => '' + ); + $inst [] = array ( + 'configuration_key' => $prefix . 'SORT_ORDER', + 'configuration_value' => '1.7' + ); + $inst [] = array ( + 'configuration_key' => $prefix . 'ZONE', + 'configuration_value' => '', + 'set_function' => 'xtc_cfg_pull_down_zone_classes(', + 'use_function' => 'xtc_get_zone_class_title' + ); + $inst [] = array ( + 'configuration_key' => $prefix . 'ALLOWED', + 'configuration_value' => '' + ); + $inst [] = array ( + 'configuration_key' => $prefix . 'MIN_AMOUNT', + 'configuration_value' => '' + ); + $inst [] = array ( + 'configuration_key' => $prefix . 'MAX_AMOUNT', + 'configuration_value' => '' + ); + $inst [] = array ( + 'configuration_key' => $prefix . 'PROCESSED_STATUS_ID', + 'configuration_value' => '0', + 'set_function' => 'xtc_cfg_pull_down_order_statuses(', + 'use_function' => 'xtc_get_order_status_name' + ); + $inst [] = array ( + 'configuration_key' => $prefix . 'CANCELED_STATUS_ID', + 'configuration_value' => '0', + 'set_function' => 'xtc_cfg_pull_down_order_statuses(', + 'use_function' => 'xtc_get_order_status_name' + ); + $inst [] = array ( + 'configuration_key' => $prefix . 'NEWORDER_STATUS_ID', + 'configuration_value' => '0', + 'set_function' => 'xtc_cfg_pull_down_order_statuses(', + 'use_function' => 'xtc_get_order_status_name' + ); + $inst [] = array ( + 'configuration_key' => $prefix . 'DEBUG', + 'configuration_value' => 'False', + 'set_function' => 'xtc_cfg_select_option(array(\'True\', \'False\'), ' + ); + + foreach ( $inst as $k => $v ) { + $sql = $sqlBase . ' '; + foreach ( $v as $key => $val ) { + $sql .= '`' . addslashes ( $key ) . '` = "' . $val . '", '; + } + $sql .= '`sort_order` = "' . $k . '", '; + $sql .= '`configuration_group_id` = "' . addslashes ( $groupId ) . '", '; + $sql .= '`date_added` = NOW() '; + // echo $sql.'
'; + xtc_db_query ( $sql ); + } + } + function remove($install = false) { + xtc_db_query ( "delete from " . TABLE_CONFIGURATION . " where configuration_key in ('" . implode ( "', '", $this->keys () ) . "')" ); + } + function keys() { + $prefix = 'MODULE_PAYMENT_HPIDL_'; + return array ( + $prefix . 'STATUS', + $prefix . 'SECURITY_SENDER', + $prefix . 'USER_LOGIN', + $prefix . 'USER_PWD', + $prefix . 'TRANSACTION_CHANNEL', + $prefix . 'TRANSACTION_MODE', + $prefix . 'TEST_ACCOUNT', + $prefix . 'MIN_AMOUNT', + $prefix . 'MAX_AMOUNT', + $prefix . 'PROCESSED_STATUS_ID', + $prefix . 'CANCELED_STATUS_ID', + $prefix . 'NEWORDER_STATUS_ID', + $prefix . 'SORT_ORDER', + $prefix . 'ALLOWED', + $prefix . 'ZONE' + ) + // $prefix.'', + ; + } +} +?> diff --git a/includes/modules/payment/hpiv.php b/includes/modules/payment/hpiv.php new file mode 100644 index 0000000..f440d4a --- /dev/null +++ b/includes/modules/payment/hpiv.php @@ -0,0 +1,267 @@ +payCode = 'iv'; + $this->code = 'hp' . $this->payCode; + $this->title = MODULE_PAYMENT_HPIV_TEXT_TITLE; + $this->description = MODULE_PAYMENT_HPIV_TEXT_DESC; + $this->sort_order = MODULE_PAYMENT_HPIV_SORT_ORDER; + $this->enabled = ((MODULE_PAYMENT_HPIV_STATUS == 'True') ? true : false); + $this->info = MODULE_PAYMENT_HPIV_TEXT_INFO; + // $this->form_action_url = 'checkout_success.php'; + $this->tmpOrders = false; + $this->tmpStatus = MODULE_PAYMENT_HPIV_NEWORDER_STATUS_ID; + $this->order_status = MODULE_PAYMENT_HPIV_NEWORDER_STATUS_ID; + $this->hp = new heidelpay (); + $this->hp->actualPaymethod = strtoupper ( $this->payCode ); + $this->version = $hp->version; + + if (is_object ( $order )) + $this->update_status (); + } + function update_status() { + global $order; + + if (($this->enabled == true) && (( int ) MODULE_PAYMENT_HPIV_ZONE > 0)) { + $check_flag = false; + $check_query = xtc_db_query ( "select zone_id from " . TABLE_ZONES_TO_GEO_ZONES . " where geo_zone_id = '" . MODULE_PAYMENT_HPZONE . "' and zone_country_id = '" . $order->billing ['country'] ['id'] . "' order by zone_id" ); + while ( $check = xtc_db_fetch_array ( $check_query ) ) { + if ($check ['zone_id'] < 1) { + $check_flag = true; + break; + } elseif ($check ['zone_id'] == $order->billing ['zone_id']) { + $check_flag = true; + break; + } + } + + if ($check_flag == false) { + $this->enabled = false; + } + } + } + function javascript_validation() { + return false; + } + function selection() { + GLOBAL $order; + if (strpos ( $_SERVER ['SCRIPT_FILENAME'], 'checkout_payment' ) !== false) { + unset ( $_SESSION ['hpLastData'] ); + } + // $_SESSION['hpModuleMode'] = 'AFTER'; + + if (MODULE_PAYMENT_HPIV_TRANSACTION_MODE == 'LIVE' || strpos ( MODULE_PAYMENT_HPIV_TEST_ACCOUNT, $order->customer ['email_address'] ) !== false) { + $content = array ( + array ( + 'title' => '', + 'field' => '' + ) + ); + } else { + $content = array ( + array ( + 'title' => '', + 'field' => MODULE_PAYMENT_HPIV_DEBUGTEXT + ) + ); + } + + return array ( + 'id' => $this->code, + 'module' => $this->title, + 'fields' => $content, + 'description' => $this->info + ); + } + function pre_confirmation_check() { + GLOBAL $order; + // echo 'HPIV: '.__FUNCTION__; exit(); + if (MODULE_PAYMENT_HPIV_TRANSACTION_MODE == 'LIVE' || strpos ( MODULE_PAYMENT_HPIV_TEST_ACCOUNT, $order->customer ['email_address'] ) !== false) { + $_SESSION ['hpModuleMode'] = 'AFTER'; + $_SESSION ['hpLastPost'] = $_POST; + } else { + $payment_error_return = 'payment_error=hppp&error=' . urlencode ( MODULE_PAYMENT_HPIV_DEBUGTEXT ); + xtc_redirect ( xtc_href_link ( FILENAME_CHECKOUT_PAYMENT, $payment_error_return, 'SSL', true, false ) ); + } + } + function confirmation() { + return false; + } + function process_button() { + global $order; + $this->hp->rememberOrderData ( $order ); + return false; + } + function payment_action() { + return true; + } + function before_process() { + return false; + } + function after_process() { + global $order, $xtPrice, $insert_id; + $this->hp->setOrderStatus ( $insert_id, $this->order_status ); + $comment = ' '; + $this->hp->addHistoryComment ( $insert_id, $comment, $this->order_status ); + $hpIframe = $this->hp->handleDebit ( $order, $this->payCode, $insert_id ); + return true; + } + function admin_order($oID) { + return false; + } + function get_error() { + global $_GET; + + $error = array ( + 'title' => MODULE_PAYMENT_HPIV_TEXT_ERROR, + 'error' => stripslashes ( urldecode ( $_GET ['error'] ) ) + ); + + return $error; + } + function check() { + if (! isset ( $this->_check )) { + $check_query = xtc_db_query ( "select configuration_value from " . TABLE_CONFIGURATION . " where configuration_key = 'MODULE_PAYMENT_HPIV_STATUS'" ); + $this->_check = xtc_db_num_rows ( $check_query ); + } + return $this->_check; + } + function install() { + $this->remove ( true ); + + $groupId = 6; + $sqlBase = 'INSERT INTO `' . TABLE_CONFIGURATION . '` SET '; + $prefix = 'MODULE_PAYMENT_HPIV_'; + $inst = array (); + $inst [] = array ( + 'configuration_key' => $prefix . 'STATUS', + 'configuration_value' => 'True', + 'set_function' => 'xtc_cfg_select_option(array(\'True\', \'False\'), ' + ); + $inst [] = array ( + 'configuration_key' => $prefix . 'SECURITY_SENDER', + 'configuration_value' => '31HA07BC8142C5A171745D00AD63D182' + ); + $inst [] = array ( + 'configuration_key' => $prefix . 'USER_LOGIN', + 'configuration_value' => '31ha07bc8142c5a171744e5aef11ffd3' + ); + $inst [] = array ( + 'configuration_key' => $prefix . 'USER_PWD', + 'configuration_value' => '93167DE7' + ); + $inst [] = array ( + 'configuration_key' => $prefix . 'TRANSACTION_CHANNEL', + 'configuration_value' => '31HA07BC8142C5A171749A60D979B6E4' + ); + $inst [] = array ( + 'configuration_key' => $prefix . 'TRANSACTION_MODE', + 'configuration_value' => 'TEST', + 'set_function' => 'xtc_cfg_select_option(array(\'LIVE\', \'TEST\'), ' + ); + $inst [] = array ( + 'configuration_key' => $prefix . 'TEST_ACCOUNT', + 'configuration_value' => '' + ); + $inst [] = array ( + 'configuration_key' => $prefix . 'SORT_ORDER', + 'configuration_value' => '2.0' + ); + $inst [] = array ( + 'configuration_key' => $prefix . 'ZONE', + 'configuration_value' => '', + 'set_function' => 'xtc_cfg_pull_down_zone_classes(', + 'use_function' => 'xtc_get_zone_class_title' + ); + $inst [] = array ( + 'configuration_key' => $prefix . 'ALLOWED', + 'configuration_value' => '' + ); + $inst [] = array ( + 'configuration_key' => $prefix . 'MIN_AMOUNT', + 'configuration_value' => '' + ); + $inst [] = array ( + 'configuration_key' => $prefix . 'MAX_AMOUNT', + 'configuration_value' => '' + ); + $inst [] = array ( + 'configuration_key' => $prefix . 'FINISHED_STATUS_ID', + 'configuration_value' => '0', + 'set_function' => 'xtc_cfg_pull_down_order_statuses(', + 'use_function' => 'xtc_get_order_status_name' + ); + $inst [] = array ( + 'configuration_key' => $prefix . 'PROCESSED_STATUS_ID', + 'configuration_value' => '0', + 'set_function' => 'xtc_cfg_pull_down_order_statuses(', + 'use_function' => 'xtc_get_order_status_name' + ); + $inst [] = array ( + 'configuration_key' => $prefix . 'CANCELED_STATUS_ID', + 'configuration_value' => '0', + 'set_function' => 'xtc_cfg_pull_down_order_statuses(', + 'use_function' => 'xtc_get_order_status_name' + ); + $inst [] = array ( + 'configuration_key' => $prefix . 'NEWORDER_STATUS_ID', + 'configuration_value' => '0', + 'set_function' => 'xtc_cfg_pull_down_order_statuses(', + 'use_function' => 'xtc_get_order_status_name' + ); + $inst [] = array ( + 'configuration_key' => $prefix . 'DEBUG', + 'configuration_value' => 'False', + 'set_function' => 'xtc_cfg_select_option(array(\'True\', \'False\'), ' + ); + + foreach ( $inst as $k => $v ) { + $sql = $sqlBase . ' '; + foreach ( $v as $key => $val ) { + $sql .= '`' . addslashes ( $key ) . '` = "' . $val . '", '; + } + $sql .= '`sort_order` = "' . $k . '", '; + $sql .= '`configuration_group_id` = "' . addslashes ( $groupId ) . '", '; + $sql .= '`date_added` = NOW() '; + // echo $sql.'
'; + xtc_db_query ( $sql ); + } + } + function remove($install = false) { + xtc_db_query ( "delete from " . TABLE_CONFIGURATION . " where configuration_key in ('" . implode ( "', '", $this->keys () ) . "')" ); + } + function keys() { + $prefix = 'MODULE_PAYMENT_HPIV_'; + return array ( + $prefix . 'STATUS', + $prefix . 'SECURITY_SENDER', + $prefix . 'USER_LOGIN', + $prefix . 'USER_PWD', + $prefix . 'TRANSACTION_CHANNEL', + $prefix . 'TRANSACTION_MODE', + $prefix . 'TEST_ACCOUNT', + $prefix . 'MIN_AMOUNT', + $prefix . 'MAX_AMOUNT', + $prefix . 'FINISHED_STATUS_ID', + $prefix . 'PROCESSED_STATUS_ID', + $prefix . 'CANCELED_STATUS_ID', + $prefix . 'NEWORDER_STATUS_ID', + $prefix . 'SORT_ORDER', + $prefix . 'ALLOWED', + $prefix . 'ZONE' + ) + // $prefix.'', + ; + } +} +?> diff --git a/includes/modules/payment/hppp.php b/includes/modules/payment/hppp.php new file mode 100644 index 0000000..1df8eac --- /dev/null +++ b/includes/modules/payment/hppp.php @@ -0,0 +1,267 @@ +payCode = 'pp'; + $this->code = 'hp' . $this->payCode; + $this->title = MODULE_PAYMENT_HPPP_TEXT_TITLE; + $this->description = MODULE_PAYMENT_HPPP_TEXT_DESC; + $this->sort_order = MODULE_PAYMENT_HPPP_SORT_ORDER; + $this->enabled = ((MODULE_PAYMENT_HPPP_STATUS == 'True') ? true : false); + $this->info = MODULE_PAYMENT_HPPP_TEXT_INFO; + // $this->form_action_url = 'checkout_success.php'; + $this->tmpOrders = false; + $this->tmpStatus = MODULE_PAYMENT_HPPP_NEWORDER_STATUS_ID; + $this->order_status = MODULE_PAYMENT_HPPP_NEWORDER_STATUS_ID; + $this->hp = new heidelpay (); + $this->hp->actualPaymethod = strtoupper ( $this->payCode ); + $this->version = $hp->version; + + if (is_object ( $order )) + $this->update_status (); + } + function update_status() { + global $order; + + if (($this->enabled == true) && (( int ) MODULE_PAYMENT_HPPP_ZONE > 0)) { + $check_flag = false; + $check_query = xtc_db_query ( "select zone_id from " . TABLE_ZONES_TO_GEO_ZONES . " where geo_zone_id = '" . MODULE_PAYMENT_HPPP_ZONE . "' and zone_country_id = '" . $order->billing ['country'] ['id'] . "' order by zone_id" ); + while ( $check = xtc_db_fetch_array ( $check_query ) ) { + if ($check ['zone_id'] < 1) { + $check_flag = true; + break; + } elseif ($check ['zone_id'] == $order->billing ['zone_id']) { + $check_flag = true; + break; + } + } + + if ($check_flag == false) { + $this->enabled = false; + } + } + } + function javascript_validation() { + return false; + } + function selection() { + GLOBAL $order; + if (strpos ( $_SERVER ['SCRIPT_FILENAME'], 'checkout_payment' ) !== false) { + unset ( $_SESSION ['hpLastData'] ); + } + // $_SESSION['hpModuleMode'] = 'AFTER'; + + if (MODULE_PAYMENT_HPPP_TRANSACTION_MODE == 'LIVE' || strpos ( MODULE_PAYMENT_HPPP_TEST_ACCOUNT, $order->customer ['email_address'] ) !== false) { + $content = array ( + array ( + 'title' => '', + 'field' => '' + ) + ); + } else { + $content = array ( + array ( + 'title' => '', + 'field' => MODULE_PAYMENT_HPPP_DEBUGTEXT + ) + ); + } + + return array ( + 'id' => $this->code, + 'module' => $this->title, + 'fields' => $content, + 'description' => $this->info + ); + } + function pre_confirmation_check() { + GLOBAL $order; + // echo 'HPPP: '.__FUNCTION__; exit(); + if (MODULE_PAYMENT_HPPP_TRANSACTION_MODE == 'LIVE' || strpos ( MODULE_PAYMENT_HPPP_TEST_ACCOUNT, $order->customer ['email_address'] ) !== false) { + $_SESSION ['hpModuleMode'] = 'AFTER'; + $_SESSION ['hpLastPost'] = $_POST; + } else { + $payment_error_return = 'payment_error=hppp&error=' . urlencode ( MODULE_PAYMENT_HPPP_DEBUGTEXT ); + xtc_redirect ( xtc_href_link ( FILENAME_CHECKOUT_PAYMENT, $payment_error_return, 'SSL', true, false ) ); + } + } + function confirmation() { + return false; + } + function process_button() { + global $order; + $this->hp->rememberOrderData ( $order ); + return false; + } + function payment_action() { + return true; + } + function before_process() { + return false; + } + function after_process() { + global $order, $xtPrice, $insert_id; + $this->hp->setOrderStatus ( $insert_id, $this->order_status ); + $comment = ' '; + $this->hp->addHistoryComment ( $insert_id, $comment, $this->order_status ); + $hpIframe = $this->hp->handleDebit ( $order, $this->payCode, $insert_id ); + return true; + } + function admin_order($oID) { + return false; + } + function get_error() { + global $_GET; + + $error = array ( + 'title' => MODULE_PAYMENT_HPPP_TEXT_ERROR, + 'error' => stripslashes ( urldecode ( $_GET ['error'] ) ) + ); + + return $error; + } + function check() { + if (! isset ( $this->_check )) { + $check_query = xtc_db_query ( "select configuration_value from " . TABLE_CONFIGURATION . " where configuration_key = 'MODULE_PAYMENT_HPPP_STATUS'" ); + $this->_check = xtc_db_num_rows ( $check_query ); + } + return $this->_check; + } + function install() { + $this->remove ( true ); + + $groupId = 6; + $sqlBase = 'INSERT INTO `' . TABLE_CONFIGURATION . '` SET '; + $prefix = 'MODULE_PAYMENT_HPPP_'; + $inst = array (); + $inst [] = array ( + 'configuration_key' => $prefix . 'STATUS', + 'configuration_value' => 'True', + 'set_function' => 'xtc_cfg_select_option(array(\'True\', \'False\'), ' + ); + $inst [] = array ( + 'configuration_key' => $prefix . 'SECURITY_SENDER', + 'configuration_value' => '31HA07BC8142C5A171745D00AD63D182' + ); + $inst [] = array ( + 'configuration_key' => $prefix . 'USER_LOGIN', + 'configuration_value' => '31ha07bc8142c5a171744e5aef11ffd3' + ); + $inst [] = array ( + 'configuration_key' => $prefix . 'USER_PWD', + 'configuration_value' => '93167DE7' + ); + $inst [] = array ( + 'configuration_key' => $prefix . 'TRANSACTION_CHANNEL', + 'configuration_value' => '31HA07BC8142C5A171749A60D979B6E4' + ); + $inst [] = array ( + 'configuration_key' => $prefix . 'TRANSACTION_MODE', + 'configuration_value' => 'TEST', + 'set_function' => 'xtc_cfg_select_option(array(\'LIVE\', \'TEST\'), ' + ); + $inst [] = array ( + 'configuration_key' => $prefix . 'TEST_ACCOUNT', + 'configuration_value' => '' + ); + $inst [] = array ( + 'configuration_key' => $prefix . 'SORT_ORDER', + 'configuration_value' => '1.9' + ); + $inst [] = array ( + 'configuration_key' => $prefix . 'ZONE', + 'configuration_value' => '', + 'set_function' => 'xtc_cfg_pull_down_zone_classes(', + 'use_function' => 'xtc_get_zone_class_title' + ); + $inst [] = array ( + 'configuration_key' => $prefix . 'ALLOWED', + 'configuration_value' => '' + ); + $inst [] = array ( + 'configuration_key' => $prefix . 'MIN_AMOUNT', + 'configuration_value' => '' + ); + $inst [] = array ( + 'configuration_key' => $prefix . 'MAX_AMOUNT', + 'configuration_value' => '' + ); + $inst [] = array ( + 'configuration_key' => $prefix . 'FINISHED_STATUS_ID', + 'configuration_value' => '0', + 'set_function' => 'xtc_cfg_pull_down_order_statuses(', + 'use_function' => 'xtc_get_order_status_name' + ); + $inst [] = array ( + 'configuration_key' => $prefix . 'PROCESSED_STATUS_ID', + 'configuration_value' => '0', + 'set_function' => 'xtc_cfg_pull_down_order_statuses(', + 'use_function' => 'xtc_get_order_status_name' + ); + $inst [] = array ( + 'configuration_key' => $prefix . 'CANCELED_STATUS_ID', + 'configuration_value' => '0', + 'set_function' => 'xtc_cfg_pull_down_order_statuses(', + 'use_function' => 'xtc_get_order_status_name' + ); + $inst [] = array ( + 'configuration_key' => $prefix . 'NEWORDER_STATUS_ID', + 'configuration_value' => '0', + 'set_function' => 'xtc_cfg_pull_down_order_statuses(', + 'use_function' => 'xtc_get_order_status_name' + ); + $inst [] = array ( + 'configuration_key' => $prefix . 'DEBUG', + 'configuration_value' => 'False', + 'set_function' => 'xtc_cfg_select_option(array(\'True\', \'False\'), ' + ); + + foreach ( $inst as $k => $v ) { + $sql = $sqlBase . ' '; + foreach ( $v as $key => $val ) { + $sql .= '`' . addslashes ( $key ) . '` = "' . $val . '", '; + } + $sql .= '`sort_order` = "' . $k . '", '; + $sql .= '`configuration_group_id` = "' . addslashes ( $groupId ) . '", '; + $sql .= '`date_added` = NOW() '; + // echo $sql.'
'; + xtc_db_query ( $sql ); + } + } + function remove($install = false) { + xtc_db_query ( "delete from " . TABLE_CONFIGURATION . " where configuration_key in ('" . implode ( "', '", $this->keys () ) . "')" ); + } + function keys() { + $prefix = 'MODULE_PAYMENT_HPPP_'; + return array ( + $prefix . 'STATUS', + $prefix . 'SECURITY_SENDER', + $prefix . 'USER_LOGIN', + $prefix . 'USER_PWD', + $prefix . 'TRANSACTION_CHANNEL', + $prefix . 'TRANSACTION_MODE', + $prefix . 'TEST_ACCOUNT', + $prefix . 'MIN_AMOUNT', + $prefix . 'MAX_AMOUNT', + $prefix . 'FINISHED_STATUS_ID', + $prefix . 'PROCESSED_STATUS_ID', + $prefix . 'CANCELED_STATUS_ID', + $prefix . 'NEWORDER_STATUS_ID', + $prefix . 'SORT_ORDER', + $prefix . 'ALLOWED', + $prefix . 'ZONE' + ) + // $prefix.'', + ; + } +} +?> diff --git a/includes/modules/payment/hpppal.php b/includes/modules/payment/hpppal.php new file mode 100644 index 0000000..8c6864a --- /dev/null +++ b/includes/modules/payment/hpppal.php @@ -0,0 +1,267 @@ +payCode = 'ppal'; + $this->code = 'hp' . $this->payCode; + $this->title = MODULE_PAYMENT_HPPPAL_TEXT_TITLE; + $this->description = MODULE_PAYMENT_HPPPAL_TEXT_DESC; + $this->sort_order = MODULE_PAYMENT_HPPPAL_SORT_ORDER; + $this->enabled = ((MODULE_PAYMENT_HPPPAL_STATUS == 'True') ? true : false); + $this->info = MODULE_PAYMENT_HPPPAL_TEXT_INFO; + // $this->form_action_url = 'checkout_success.php'; + $this->tmpOrders = false; + $this->tmpStatus = MODULE_PAYMENT_HPPPAL_NEWORDER_STATUS_ID; + $this->order_status = MODULE_PAYMENT_HPPPAL_NEWORDER_STATUS_ID; + $this->hp = new heidelpay (); + $this->hp->actualPaymethod = strtoupper ( $this->payCode ); + $this->version = $hp->version; + + if (is_object ( $order )) + $this->update_status (); + + // OT FIX + if ($_GET ['payment_error'] == 'hpot') { + GLOBAL $smarty; + $error = $this->get_error (); + $smarty->assign ( 'error', htmlspecialchars ( $error ['error'] ) ); + } + } + function update_status() { + global $order; + + if (($this->enabled == true) && (( int ) MODULE_PAYMENT_HPPPAL_ZONE > 0)) { + $check_flag = false; + $check_query = xtc_db_query ( "select zone_id from " . TABLE_ZONES_TO_GEO_ZONES . " where geo_zone_id = '" . MODULE_PAYMENT_HPPPAL_ZONE . "' and zone_country_id = '" . $order->billing ['country'] ['id'] . "' order by zone_id" ); + while ( $check = xtc_db_fetch_array ( $check_query ) ) { + if ($check ['zone_id'] < 1) { + $check_flag = true; + break; + } elseif ($check ['zone_id'] == $order->billing ['zone_id']) { + $check_flag = true; + break; + } + } + + if ($check_flag == false) { + $this->enabled = false; + } + } + } + function javascript_validation() { + return false; + } + function selection() { + GLOBAL $order; + if (strpos ( $_SERVER ['SCRIPT_FILENAME'], 'checkout_payment' ) !== false) { + unset ( $_SESSION ['hpLastData'] ); + } + // $_SESSION['hpModuleMode'] = 'AFTER'; + + if (MODULE_PAYMENT_HPPPAL_TRANSACTION_MODE == 'LIVE' || strpos ( MODULE_PAYMENT_HPPPAL_TEST_ACCOUNT, $order->customer ['email_address'] ) !== false) { + $content = array ( + array ( + 'title' => '', + 'field' => '' + ) + ); + } else { + $content = array ( + array ( + 'title' => '', + 'field' => MODULE_PAYMENT_HPPPAL_DEBUGTEXT + ) + ); + } + + return array ( + 'id' => $this->code, + 'module' => $this->title, + 'fields' => $content, + 'description' => $this->info + ); + } + function pre_confirmation_check() { + GLOBAL $order; + // echo 'HPPPAL: '.__FUNCTION__; exit(); + if (MODULE_PAYMENT_HPPPAL_TRANSACTION_MODE == 'LIVE' || strpos ( MODULE_PAYMENT_HPPPAL_TEST_ACCOUNT, $order->customer ['email_address'] ) !== false) { + $_SESSION ['hpModuleMode'] = 'AFTER'; + $_SESSION ['hpLastPost'] = $_POST; + } else { + $payment_error_return = 'payment_error=hpppal&error=' . urlencode ( MODULE_PAYMENT_HPPPAL_DEBUGTEXT ); + xtc_redirect ( xtc_href_link ( FILENAME_CHECKOUT_PAYMENT, $payment_error_return, 'SSL', true, false ) ); + } + } + function confirmation() { + return false; + } + function process_button() { + global $order; + $this->hp->rememberOrderData ( $order ); + return false; + } + function payment_action() { + return true; + } + function before_process() { + return false; + } + function after_process() { + global $order, $xtPrice, $insert_id; + $this->hp->setOrderStatus ( $insert_id, $this->order_status ); + $comment = ' '; + $this->hp->addHistoryComment ( $insert_id, $comment, $this->order_status ); + $hpIframe = $this->hp->handleDebit ( $order, $this->payCode, $insert_id ); + return true; + } + function admin_order($oID) { + return false; + } + function get_error() { + global $_GET; + + $error = array ( + 'title' => MODULE_PAYMENT_HPPPAL_TEXT_ERROR, + 'error' => stripslashes ( urldecode ( $_GET ['error'] ) ) + ); + + return $error; + } + function check() { + if (! isset ( $this->_check )) { + $check_query = xtc_db_query ( "select configuration_value from " . TABLE_CONFIGURATION . " where configuration_key = 'MODULE_PAYMENT_HPPPAL_STATUS'" ); + $this->_check = xtc_db_num_rows ( $check_query ); + } + return $this->_check; + } + function install() { + $this->remove ( true ); + + $groupId = 6; + $sqlBase = 'INSERT INTO `' . TABLE_CONFIGURATION . '` SET '; + $prefix = 'MODULE_PAYMENT_HPPPAL_'; + $inst = array (); + $inst [] = array ( + 'configuration_key' => $prefix . 'STATUS', + 'configuration_value' => 'True', + 'set_function' => 'xtc_cfg_select_option(array(\'True\', \'False\'), ' + ); + $inst [] = array ( + 'configuration_key' => $prefix . 'SECURITY_SENDER', + 'configuration_value' => '31HA07BC8142C5A171745D00AD63D182' + ); + $inst [] = array ( + 'configuration_key' => $prefix . 'USER_LOGIN', + 'configuration_value' => '31ha07bc8142c5a171744e5aef11ffd3' + ); + $inst [] = array ( + 'configuration_key' => $prefix . 'USER_PWD', + 'configuration_value' => '93167DE7' + ); + $inst [] = array ( + 'configuration_key' => $prefix . 'TRANSACTION_CHANNEL', + 'configuration_value' => '31HA07BC8142C5A171749A60D979B6E4' + ); + $inst [] = array ( + 'configuration_key' => $prefix . 'TRANSACTION_MODE', + 'configuration_value' => 'TEST', + 'set_function' => 'xtc_cfg_select_option(array(\'LIVE\', \'TEST\'), ' + ); + $inst [] = array ( + 'configuration_key' => $prefix . 'TEST_ACCOUNT', + 'configuration_value' => '' + ); + $inst [] = array ( + 'configuration_key' => $prefix . 'SORT_ORDER', + 'configuration_value' => '1.6' + ); + $inst [] = array ( + 'configuration_key' => $prefix . 'ZONE', + 'configuration_value' => '', + 'set_function' => 'xtc_cfg_pull_down_zone_classes(', + 'use_function' => 'xtc_get_zone_class_title' + ); + $inst [] = array ( + 'configuration_key' => $prefix . 'ALLOWED', + 'configuration_value' => '' + ); + $inst [] = array ( + 'configuration_key' => $prefix . 'MIN_AMOUNT', + 'configuration_value' => '' + ); + $inst [] = array ( + 'configuration_key' => $prefix . 'MAX_AMOUNT', + 'configuration_value' => '' + ); + $inst [] = array ( + 'configuration_key' => $prefix . 'PROCESSED_STATUS_ID', + 'configuration_value' => '0', + 'set_function' => 'xtc_cfg_pull_down_order_statuses(', + 'use_function' => 'xtc_get_order_status_name' + ); + $inst [] = array ( + 'configuration_key' => $prefix . 'CANCELED_STATUS_ID', + 'configuration_value' => '0', + 'set_function' => 'xtc_cfg_pull_down_order_statuses(', + 'use_function' => 'xtc_get_order_status_name' + ); + $inst [] = array ( + 'configuration_key' => $prefix . 'NEWORDER_STATUS_ID', + 'configuration_value' => '0', + 'set_function' => 'xtc_cfg_pull_down_order_statuses(', + 'use_function' => 'xtc_get_order_status_name' + ); + $inst [] = array ( + 'configuration_key' => $prefix . 'DEBUG', + 'configuration_value' => 'False', + 'set_function' => 'xtc_cfg_select_option(array(\'True\', \'False\'), ' + ); + + foreach ( $inst as $k => $v ) { + $sql = $sqlBase . ' '; + foreach ( $v as $key => $val ) { + $sql .= '`' . addslashes ( $key ) . '` = "' . $val . '", '; + } + $sql .= '`sort_order` = "' . $k . '", '; + $sql .= '`configuration_group_id` = "' . addslashes ( $groupId ) . '", '; + $sql .= '`date_added` = NOW() '; + // echo $sql.'
'; + xtc_db_query ( $sql ); + } + } + function remove($install = false) { + xtc_db_query ( "delete from " . TABLE_CONFIGURATION . " where configuration_key in ('" . implode ( "', '", $this->keys () ) . "')" ); + } + function keys() { + $prefix = 'MODULE_PAYMENT_HPPPAL_'; + return array ( + $prefix . 'STATUS', + $prefix . 'SECURITY_SENDER', + $prefix . 'USER_LOGIN', + $prefix . 'USER_PWD', + $prefix . 'TRANSACTION_CHANNEL', + $prefix . 'TRANSACTION_MODE', + $prefix . 'TEST_ACCOUNT', + $prefix . 'MIN_AMOUNT', + $prefix . 'MAX_AMOUNT', + $prefix . 'PROCESSED_STATUS_ID', + $prefix . 'CANCELED_STATUS_ID', + $prefix . 'NEWORDER_STATUS_ID', + $prefix . 'SORT_ORDER', + $prefix . 'ALLOWED', + $prefix . 'ZONE' + ) + // $prefix.'', + ; + } +} +?> diff --git a/includes/modules/payment/hpsu.php b/includes/modules/payment/hpsu.php new file mode 100644 index 0000000..7eeb49b --- /dev/null +++ b/includes/modules/payment/hpsu.php @@ -0,0 +1,304 @@ +payCode = 'su'; + $this->code = 'hp' . $this->payCode; + $this->title = MODULE_PAYMENT_HPSU_TEXT_TITLE; + $this->description = MODULE_PAYMENT_HPSU_TEXT_DESC; + $this->sort_order = MODULE_PAYMENT_HPSU_SORT_ORDER; + $this->enabled = ((MODULE_PAYMENT_HPSU_STATUS == 'True') ? true : false); + $this->info = MODULE_PAYMENT_HPSU_TEXT_INFO; + // $this->form_action_url = 'checkout_success.php'; + $this->tmpOrders = false; + $this->tmpStatus = MODULE_PAYMENT_HPSU_NEWORDER_STATUS_ID; + $this->order_status = MODULE_PAYMENT_HPSU_NEWORDER_STATUS_ID; + $this->hp = new heidelpay (); + $this->hp->actualPaymethod = strtoupper ( $this->payCode ); + $this->version = $hp->version; + + if (is_object ( $order )) + $this->update_status (); + + // OT FIX + if ($_GET ['payment_error'] == 'hpot') { + GLOBAL $smarty; + $error = $this->get_error (); + $smarty->assign ( 'error', htmlspecialchars ( $error ['error'] ) ); + } + } + function update_status() { + global $order; + + if (($this->enabled == true) && (( int ) MODULE_PAYMENT_HPSU_ZONE > 0)) { + $check_flag = false; + $check_query = xtc_db_query ( "select zone_id from " . TABLE_ZONES_TO_GEO_ZONES . " where geo_zone_id = '" . MODULE_PAYMENT_HPSU_ZONE . "' and zone_country_id = '" . $order->billing ['country'] ['id'] . "' order by zone_id" ); + while ( $check = xtc_db_fetch_array ( $check_query ) ) { + if ($check ['zone_id'] < 1) { + $check_flag = true; + break; + } elseif ($check ['zone_id'] == $order->billing ['zone_id']) { + $check_flag = true; + break; + } + } + + if ($check_flag == false) { + $this->enabled = false; + } + } + } + function javascript_validation() { + return false; + } + function selection() { + GLOBAL $order; + if (strpos ( $_SERVER ['SCRIPT_FILENAME'], 'checkout_payment' ) !== false) { + unset ( $_SESSION ['hpLastData'] ); + unset ( $_SESSION ['hpSUData'] ); + } + if ($_SESSION ['customers_status'] ['customers_status_show_price_tax'] == 0 && $_SESSION ['customers_status'] ['customers_status_add_tax_ot'] == 1) { + $total = $order->info ['total'] + $order->info ['tax']; + } else { + $total = $order->info ['total']; + } + $total = $total * 100; + if (MODULE_PAYMENT_HPSU_MIN_AMOUNT > 0 && MODULE_PAYMENT_HPSU_MIN_AMOUNT > $total) + return false; + if (MODULE_PAYMENT_HPSU_MAX_AMOUNT > 0 && MODULE_PAYMENT_HPSU_MAX_AMOUNT < $total) + return false; + + if (MODULE_PAYMENT_HPSU_TRANSACTION_MODE == 'LIVE' || strpos ( MODULE_PAYMENT_HPSU_TEST_ACCOUNT, $order->customer ['email_address'] ) !== false) { + $sql = 'SELECT * FROM `' . TABLE_CUSTOMERS . '` WHERE `customers_id` = "' . $_SESSION ['customer_id'] . '" '; + $tmp = xtc_db_fetch_array ( xtc_db_query ( $sql ) ); + + $content = array ( + array ( + 'title' => MODULE_PAYMENT_HPSU_ACCOUNTNUMBER, + 'field' => '' + ), + array ( + 'title' => MODULE_PAYMENT_HPSU_ACCOUNTBANK, + 'field' => '' + ), + array ( + 'title' => MODULE_PAYMENT_HPSU_ACCOUTOWNER, + 'field' => '' + ) + ); + } else { + $content = array ( + array ( + 'title' => '', + 'field' => MODULE_PAYMENT_HPSU_DEBUGTEXT + ) + ); + } + + return array ( + 'id' => $this->code, + 'module' => $this->title, + 'fields' => $content, + 'description' => $this->info + ); + } + function pre_confirmation_check() { + GLOBAL $order; + // echo 'HPSU: '.__FUNCTION__; exit(); + if (MODULE_PAYMENT_HPSU_TRANSACTION_MODE == 'LIVE' || strpos ( MODULE_PAYMENT_HPSU_TEST_ACCOUNT, $order->customer ['email_address'] ) !== false) { + if (empty ( $_POST ['hpsu'] ['AccountNumber'] ) || empty ( $_POST ['hpsu'] ['BankCode'] ) || empty ( $_POST ['hpsu'] ['Holder'] )) { + $payment_error_return = 'payment_error=hpsu&error=' . MODULE_PAYMENT_HPSU_ERROR_NO_PAYDATA; + xtc_redirect ( xtc_href_link ( FILENAME_CHECKOUT_PAYMENT, $payment_error_return, 'SSL', true, false ) ); + } else { + $_SESSION ['hpModuleMode'] = 'AFTER'; + $_SESSION ['hpLastPost'] = $_POST; + $_SESSION ['hpSUData'] = $_POST ['hpsu']; + } + } else { + $payment_error_return = 'payment_error=hpsu&error=' . urlencode ( MODULE_PAYMENT_HPSU_DEBUGTEXT ); + xtc_redirect ( xtc_href_link ( FILENAME_CHECKOUT_PAYMENT, $payment_error_return, 'SSL', true, false ) ); + } + } + function confirmation() { + return false; + } + function process_button() { + global $order; + $this->hp->rememberOrderData ( $order ); + return false; + } + function payment_action() { + return true; + } + function before_process() { + return false; + } + function after_process() { + global $order, $xtPrice, $insert_id; + $this->hp->setOrderStatus ( $insert_id, $this->order_status ); + $comment = ' '; + $this->hp->addHistoryComment ( $insert_id, $comment, $this->order_status ); + $hpIframe = $this->hp->handleDebit ( $order, $this->payCode, $insert_id ); + return true; + } + function admin_order($oID) { + return false; + } + function get_error() { + global $_GET; + + $error = array ( + 'title' => MODULE_PAYMENT_HPSU_TEXT_ERROR, + 'error' => stripslashes ( urldecode ( $_GET ['error'] ) ) + ); + + return $error; + } + function check() { + if (! isset ( $this->_check )) { + $check_query = xtc_db_query ( "select configuration_value from " . TABLE_CONFIGURATION . " where configuration_key = 'MODULE_PAYMENT_HPSU_STATUS'" ); + $this->_check = xtc_db_num_rows ( $check_query ); + } + return $this->_check; + } + function install() { + if (! $this->hp->install_db ( TABLE_CUSTOMERS, 'hpsu_kto', 'ALTER TABLE `' . TABLE_CUSTOMERS . '` ADD `hpsu_kto` VARCHAR(50) NOT NULL' ) || ! $this->hp->install_db ( TABLE_CUSTOMERS, 'hpsu_blz', 'ALTER TABLE `' . TABLE_CUSTOMERS . '` ADD `hpsu_blz` VARCHAR(50) NOT NULL' ) || ! $this->hp->install_db ( TABLE_CUSTOMERS, 'hpsu_own', 'ALTER TABLE `' . TABLE_CUSTOMERS . '` ADD `hpsu_own` VARCHAR(50) NOT NULL' )) + die ( 'Es gab ein Problem bei der Installation des Moduls.' ); + + $this->remove ( true ); + + $groupId = 6; + $sqlBase = 'INSERT INTO `' . TABLE_CONFIGURATION . '` SET '; + $prefix = 'MODULE_PAYMENT_HPSU_'; + $inst = array (); + $inst [] = array ( + 'configuration_key' => $prefix . 'STATUS', + 'configuration_value' => 'True', + 'set_function' => 'xtc_cfg_select_option(array(\'True\', \'False\'), ' + ); + $inst [] = array ( + 'configuration_key' => $prefix . 'SECURITY_SENDER', + 'configuration_value' => '31HA07BC8142C5A171745D00AD63D182' + ); + $inst [] = array ( + 'configuration_key' => $prefix . 'USER_LOGIN', + 'configuration_value' => '31ha07bc8142c5a171744e5aef11ffd3' + ); + $inst [] = array ( + 'configuration_key' => $prefix . 'USER_PWD', + 'configuration_value' => '93167DE7' + ); + $inst [] = array ( + 'configuration_key' => $prefix . 'TRANSACTION_CHANNEL', + 'configuration_value' => '31HA07BC8142C5A171749CDAA43365D2' + ); + $inst [] = array ( + 'configuration_key' => $prefix . 'TRANSACTION_MODE', + 'configuration_value' => 'TEST', + 'set_function' => 'xtc_cfg_select_option(array(\'LIVE\', \'TEST\'), ' + ); + $inst [] = array ( + 'configuration_key' => $prefix . 'TEST_ACCOUNT', + 'configuration_value' => '' + ); + $inst [] = array ( + 'configuration_key' => $prefix . 'SORT_ORDER', + 'configuration_value' => '1.5' + ); + $inst [] = array ( + 'configuration_key' => $prefix . 'ZONE', + 'configuration_value' => '', + 'set_function' => 'xtc_cfg_pull_down_zone_classes(', + 'use_function' => 'xtc_get_zone_class_title' + ); + $inst [] = array ( + 'configuration_key' => $prefix . 'ALLOWED', + 'configuration_value' => '' + ); + $inst [] = array ( + 'configuration_key' => $prefix . 'MIN_AMOUNT', + 'configuration_value' => '' + ); + $inst [] = array ( + 'configuration_key' => $prefix . 'MAX_AMOUNT', + 'configuration_value' => '' + ); + $inst [] = array ( + 'configuration_key' => $prefix . 'PROCESSED_STATUS_ID', + 'configuration_value' => '0', + 'set_function' => 'xtc_cfg_pull_down_order_statuses(', + 'use_function' => 'xtc_get_order_status_name' + ); + $inst [] = array ( + 'configuration_key' => $prefix . 'PENDING_STATUS_ID', + 'configuration_value' => '0', + 'set_function' => 'xtc_cfg_pull_down_order_statuses(', + 'use_function' => 'xtc_get_order_status_name' + ); + $inst [] = array ( + 'configuration_key' => $prefix . 'CANCELED_STATUS_ID', + 'configuration_value' => '0', + 'set_function' => 'xtc_cfg_pull_down_order_statuses(', + 'use_function' => 'xtc_get_order_status_name' + ); + $inst [] = array ( + 'configuration_key' => $prefix . 'NEWORDER_STATUS_ID', + 'configuration_value' => '0', + 'set_function' => 'xtc_cfg_pull_down_order_statuses(', + 'use_function' => 'xtc_get_order_status_name' + ); + $inst [] = array ( + 'configuration_key' => $prefix . 'DEBUG', + 'configuration_value' => 'False', + 'set_function' => 'xtc_cfg_select_option(array(\'True\', \'False\'), ' + ); + + foreach ( $inst as $k => $v ) { + $sql = $sqlBase . ' '; + foreach ( $v as $key => $val ) { + $sql .= '`' . addslashes ( $key ) . '` = "' . $val . '", '; + } + $sql .= '`sort_order` = "' . $k . '", '; + $sql .= '`configuration_group_id` = "' . addslashes ( $groupId ) . '", '; + $sql .= '`date_added` = NOW() '; + // echo $sql.'
'; + xtc_db_query ( $sql ); + } + } + function remove($install = false) { + xtc_db_query ( "delete from " . TABLE_CONFIGURATION . " where configuration_key in ('" . implode ( "', '", $this->keys () ) . "')" ); + } + function keys() { + $prefix = 'MODULE_PAYMENT_HPSU_'; + return array ( + $prefix . 'STATUS', + $prefix . 'SECURITY_SENDER', + $prefix . 'USER_LOGIN', + $prefix . 'USER_PWD', + $prefix . 'TRANSACTION_CHANNEL', + $prefix . 'TRANSACTION_MODE', + $prefix . 'TEST_ACCOUNT', + $prefix . 'MIN_AMOUNT', + $prefix . 'MAX_AMOUNT', + $prefix . 'PROCESSED_STATUS_ID', + $prefix . 'PENDING_STATUS_ID', + $prefix . 'CANCELED_STATUS_ID', + $prefix . 'NEWORDER_STATUS_ID', + $prefix . 'SORT_ORDER', + $prefix . 'ALLOWED', + $prefix . 'ZONE' + ) + // $prefix.'', + ; + } +} +?> diff --git a/lang/english/modules/payment/hpbp.php b/lang/english/modules/payment/hpbp.php new file mode 100644 index 0000000..2d03f37 --- /dev/null +++ b/lang/english/modules/payment/hpbp.php @@ -0,0 +1,74 @@ +(in EURO-CENT e.g. 5 EUR = 500 Cent).'); + +define($prefix.'MAX_AMOUNT_TITLE', 'Maximum Amount'); +define($prefix.'MAX_AMOUNT_DESC', 'Please choose the maximum amount
(in EURO-CENT e.g. 5 EUR = 500 Cent).'); + +define($prefix.'MODULE_MODE_TITLE', 'Module Mode'); +define($prefix.'MODULE_MODE_DESC', 'DIRECT: Paymentinformations will be entered on payment selection with REGISTER function (plus Registerfee).
AFTER: Paymentinformations will be entered after process with DEBIT function.'); + +define($prefix.'PAY_MODE_TITLE', 'Payment Mode'); +define($prefix.'PAY_MODE_DESC', 'Select between Debit (DB) and Preauthorisation (PA).'); + +define($prefix.'TEST_ACCOUNT_TITLE', 'Test Account'); +define($prefix.'TEST_ACCOUNT_DESC', 'If Transaction Mode is not LIVE, the following Accounts (EMail) can test the payment. (Comma separated)'); + +define($prefix.'FINISHED_STATUS_ID_TITLE', 'Orderstatus - Paid'); +define($prefix.'FINISHED_STATUS_ID_DESC', 'Order Status which will be set in case of incoming money'); + +define($prefix.'PROCESSED_STATUS_ID_TITLE', 'Orderstatus - Success'); +define($prefix.'PROCESSED_STATUS_ID_DESC', 'Order Status which will be set in case of successfully payment'); + +define($prefix.'PENDING_STATUS_ID_TITLE', 'Bestellstatus - Waiting'); +define($prefix.'PENDING_STATUS_ID_DESC', 'Order Status which will be set when the customer is on foreign system'); + +define($prefix.'CANCELED_STATUS_ID_TITLE', 'Orderstatus - Cancel'); +define($prefix.'CANCELED_STATUS_ID_DESC', 'Order Status which will be set in case of cancel payment'); + +define($prefix.'NEWORDER_STATUS_ID_TITLE', 'Orderstatus - New Order'); +define($prefix.'NEWORDER_STATUS_ID_DESC', 'Order Status which will be set in case of beginning payment'); + +define($prefix.'STATUS_TITLE', 'Activate Module'); +define($prefix.'STATUS_DESC', 'Do you want to activate the module?'); + +define($prefix.'SORT_ORDER_TITLE', 'Sort Order'); +define($prefix.'SORT_ORDER_DESC', 'Sort order for display. Lowest will be shown first.'); + +define($prefix.'ZONE_TITLE', 'Paymentzone'); +define($prefix.'ZONE_DESC', 'If a zone is selected, only enable this payment method for that zone.'); + +define($prefix.'ALLOWED_TITLE', 'Allowed Zones'); +define($prefix.'ALLOWED_DESC', 'Please enter the zones separately which should be allowed to use this modul (e. g. AT,DE (leave empty if you want to allow all zones))'); + +define($prefix.'DEBUG_TITLE', 'Debug Mode'); +define($prefix.'DEBUG_DESC', 'Please activate only if heidelpay told this to you. Otherwise the checkout will not work in your shop correctly.'); + +define($prefix.'TEXT_INFO', ''); +define($prefix.'DEBUGTEXT', 'The payment is temporary not available. Please use another one or try again later.'); + +define($prefix.'BARPAY_INFO', 'Sicher, schnell und ohne Gebühren: mit BarPay zahlen Sie Internet-Einkäufe mit Bargeld. Ohne Anmeldung. Ohne Kreditkarte. Ohne Kontodetails.

Nach Auswahl von BarPay übermittelt Ihnen Ihr Online-Händler einen individuellen Barcode per E-Mail oder zum Download auf Ihren Computer. Diesen können Sie ausdrucken und in über 18.000 BarPay-Akzeptanzstellen bezahlen. Der Zahlungseingang wird dem Online-Händler in Echtzeit übermittelt, und die bestellte Ware geht umgehend in den Versand.

'); +define($prefix.'BARPAY_DOWNLOAD', '


Klicken Sie hier um Ihren Barcode runterzuladen


Drucken Sie den Barcode aus oder speichern Sie diesen auf Ihrem mobilen Endgerät. Gehen Sie nun zu einer Kasse der 18.000 Akzeptanzstellen in Deutschland und bezahlen Sie ganz einfach in bar.

In dem Augenblick, wenn der Rechnungsbetrag beglichen wird, erhält der Online-Händler die Information über den Zahlungseingang. Die bestellte Ware oder Dienstleistung geht umgehend in den Versand.'); +define($prefix.'FRONTEND_BUTTON_CONTINUE', 'Continue'); +define($prefix.'FRONTEND_BUTTON_CANCEL', 'Previous Page'); +?> diff --git a/lang/english/modules/payment/hpbs.php b/lang/english/modules/payment/hpbs.php new file mode 100644 index 0000000..a061f1b --- /dev/null +++ b/lang/english/modules/payment/hpbs.php @@ -0,0 +1,88 @@ +(in EURO-CENT e.g. 5 EUR = 500 Cent).'); + +define($prefix.'MAX_AMOUNT_TITLE', 'Maximum Amount'); +define($prefix.'MAX_AMOUNT_DESC', 'Please choose the maximum amount
(in EURO-CENT e.g. 5 EUR = 500 Cent).'); + +define($prefix.'MODULE_MODE_TITLE', 'Module Mode'); +define($prefix.'MODULE_MODE_DESC', 'DIRECT: Paymentinformations will be entered on payment selection with REGISTER function (plus Registerfee).
AFTER: Paymentinformations will be entered after process with DEBIT function.'); + +define($prefix.'PAY_MODE_TITLE', 'Payment Mode'); +define($prefix.'PAY_MODE_DESC', 'Select between Debit (DB) and Preauthorisation (PA).'); + +define($prefix.'TEST_ACCOUNT_TITLE', 'Test Account'); +define($prefix.'TEST_ACCOUNT_DESC', 'If Transaction Mode is not LIVE, the following Accounts (EMail) can test the payment. (Comma separated)'); + +define($prefix.'FINISHED_STATUS_ID_TITLE', 'Orderstatus - Paid'); +define($prefix.'FINISHED_STATUS_ID_DESC', 'Order Status which will be set in case of incoming money'); + +define($prefix.'PROCESSED_STATUS_ID_TITLE', 'Orderstatus - Success'); +define($prefix.'PROCESSED_STATUS_ID_DESC', 'Order Status which will be set in case of successfully payment'); + +define($prefix.'PENDING_STATUS_ID_TITLE', 'Bestellstatus - Waiting'); +define($prefix.'PENDING_STATUS_ID_DESC', 'Order Status which will be set when the customer is on foreign system'); + +define($prefix.'CANCELED_STATUS_ID_TITLE', 'Orderstatus - Cancel'); +define($prefix.'CANCELED_STATUS_ID_DESC', 'Order Status which will be set in case of cancel payment'); + +define($prefix.'NEWORDER_STATUS_ID_TITLE', 'Orderstatus - New Order'); +define($prefix.'NEWORDER_STATUS_ID_DESC', 'Order Status which will be set in case of beginning payment'); + +define($prefix.'STATUS_TITLE', 'Activate Module'); +define($prefix.'STATUS_DESC', 'Do you want to activate the module?'); + +define($prefix.'SORT_ORDER_TITLE', 'Sort Order'); +define($prefix.'SORT_ORDER_DESC', 'Sort order for display. Lowest will be shown first.'); + +define($prefix.'ZONE_TITLE', 'Paymentzone'); +define($prefix.'ZONE_DESC', 'If a zone is selected, only enable this payment method for that zone.'); + +define($prefix.'ALLOWED_TITLE', 'Allowed Zones'); +define($prefix.'ALLOWED_DESC', 'Please enter the zones separately which should be allowed to use this modul (e. g. AT,DE (leave empty if you want to allow all zones))'); + +define($prefix.'DEBUG_TITLE', 'Debug Mode'); +define($prefix.'DEBUG_DESC', 'Please activate only if heidelpay told this to you. Otherwise the checkout will not work in your shop correctly.'); + +define($prefix.'TEXT_INFO', ''); +define($prefix.'DEBUGTEXT', 'The payment is temporary not available. Please use another one or try again later.'); + +define($prefix.'ADDRESSCHECK', 'The payment is not available due to different billing and delivery address.'); +define($prefix.'INFO', 'Buy with invoice and check
your order calmly before payment.
'); +define($prefix.'LEGALNOTE_BILLSAFE', 'Please remit the outstanding amount {DAYS} days after you have been notified about shipping.'); +define($prefix.'SUCCESS_BILLSAFE', 'Your transaction was successfull! + + Transfer the amount of {CURRENCY} {AMOUNT} to the following account + Bank Name: {ACC_BANKNAME} + Account holder : {ACC_OWNER} + Account No. : {ACC_NUMBER} + Bank Code: {ACC_BANKCODE} + IBAN: {ACC_IBAN} + BIC: {ACC_BIC} + When you transfer the money you HAVE TO use the identification number + {SHORTID} + as the descriptor and nothing else. Otherwise we cannot match your transaction!'); + +define($prefix.'FRONTEND_BUTTON_CONTINUE', 'Continue'); +define($prefix.'FRONTEND_BUTTON_CANCEL', 'Previous Page'); +?> diff --git a/lang/english/modules/payment/hpcc.php b/lang/english/modules/payment/hpcc.php new file mode 100644 index 0000000..1f7b4dd --- /dev/null +++ b/lang/english/modules/payment/hpcc.php @@ -0,0 +1,78 @@ +(in EURO-CENT e.g. 5 EUR = 500 Cent).'); + +define($prefix.'MAX_AMOUNT_TITLE', 'Maximum Amount'); +define($prefix.'MAX_AMOUNT_DESC', 'Please choose the maximum amount
(in EURO-CENT e.g. 5 EUR = 500 Cent).'); + +define($prefix.'MODULE_MODE_TITLE', 'Module Mode'); +define($prefix.'MODULE_MODE_DESC', 'DIRECT: Paymentinformations will be entered on payment selection with REGISTER function (plus Registerfee).
AFTER: Paymentinformations will be entered after process with DEBIT function.'); + +define($prefix.'SAVE_REGISTER_TITLE', 'Save registration'); +define($prefix.'SAVE_REGISTER_DESC', 'If you want to save the registration data of last booking in the shop, choose "True" and the customer does not need to enter his paymentdata on next orders.'); + +define($prefix.'PAY_MODE_TITLE', 'Payment Mode'); +define($prefix.'PAY_MODE_DESC', 'Select between Debit (DB) and Preauthorisation (PA).'); + +define($prefix.'TEST_ACCOUNT_TITLE', 'Test Account'); +define($prefix.'TEST_ACCOUNT_DESC', 'If Transaction Mode is not LIVE, the following Accounts (EMail) can test the payment. (Comma separated)'); + +define($prefix.'PROCESSED_STATUS_ID_TITLE', 'Orderstatus - Success'); +define($prefix.'PROCESSED_STATUS_ID_DESC', 'Order Status which will be set in case of successfully payment'); + +define($prefix.'PENDING_STATUS_ID_TITLE', 'Bestellstatus - Waiting'); +define($prefix.'PENDING_STATUS_ID_DESC', 'Order Status which will be set when the customer is on foreign system'); + +define($prefix.'CANCELED_STATUS_ID_TITLE', 'Orderstatus - Cancel'); +define($prefix.'CANCELED_STATUS_ID_DESC', 'Order Status which will be set in case of cancel payment'); + +define($prefix.'NEWORDER_STATUS_ID_TITLE', 'Orderstatus - New Order'); +define($prefix.'NEWORDER_STATUS_ID_DESC', 'Order Status which will be set in case of beginning payment'); + +define($prefix.'STATUS_TITLE', 'Activate Module'); +define($prefix.'STATUS_DESC', 'Do you want to activate the module?'); + +define($prefix.'SORT_ORDER_TITLE', 'Sort Order'); +define($prefix.'SORT_ORDER_DESC', 'Sort order for display. Lowest will be shown first.'); + +define($prefix.'ZONE_TITLE', 'Paymentzone'); +define($prefix.'ZONE_DESC', 'If a zone is selected, only enable this payment method for that zone.'); + +define($prefix.'ALLOWED_TITLE', 'Allowed Zones'); +define($prefix.'ALLOWED_DESC', 'Please enter the zones separately which should be allowed to use this modul (e. g. AT,DE (leave empty if you want to allow all zones))'); + +define($prefix.'DEBUG_TITLE', 'Debug Mode'); +define($prefix.'DEBUG_DESC', 'Please activate only if heidelpay told this to you. Otherwise the checkout will not work in your shop correctly.'); + +define($prefix.'TEXT_INFO', ''); +define($prefix.'DEBUGTEXT', 'The payment is temporary not available. Please use another one or try again later.'); +define($prefix.'REUSE_CARD', 'do you want to use the following creditcard again ?'); +define($prefix.'REUSE_CARD_NUMBER', 'CardNo: '); +define($prefix.'REUSE_CARD_TEXT', 'Yes, I want to reuse the card again.'); +define($prefix.'WILLUSE_CARD', 'the following creditcard will be used again.
CardNo: '); +define($prefix.'DATA_SAVED', 'Your data was transfered.
Please go on with your order.
'); +define($prefix.'ERROR_NO_PAYDATA', 'Please enter your payment information.'); + +define($prefix.'FRONTEND_BUTTON_CONTINUE', 'Continue'); +define($prefix.'FRONTEND_BUTTON_CANCEL', 'Previous Page'); +?> diff --git a/lang/english/modules/payment/hpdc.php b/lang/english/modules/payment/hpdc.php new file mode 100644 index 0000000..2974fb0 --- /dev/null +++ b/lang/english/modules/payment/hpdc.php @@ -0,0 +1,78 @@ +(in EURO-CENT e.g. 5 EUR = 500 Cent).'); + +define($prefix.'MAX_AMOUNT_TITLE', 'Maximum Amount'); +define($prefix.'MAX_AMOUNT_DESC', 'Please choose the maximum amount
(in EURO-CENT e.g. 5 EUR = 500 Cent).'); + +define($prefix.'MODULE_MODE_TITLE', 'Module Mode'); +define($prefix.'MODULE_MODE_DESC', 'DIRECT: Paymentinformations will be entered on payment selection with REGISTER function (plus Registerfee).
AFTER: Paymentinformations will be entered after process with DEBIT function.'); + +define($prefix.'SAVE_REGISTER_TITLE', 'Save registration'); +define($prefix.'SAVE_REGISTER_DESC', 'If you want to save the registration data of last booking in the shop, choose "True" and the customer does not need to enter his paymentdata on next orders.'); + +define($prefix.'PAY_MODE_TITLE', 'Payment Mode'); +define($prefix.'PAY_MODE_DESC', 'Select between Debit (DB) and Preauthorisation (PA).'); + +define($prefix.'TEST_ACCOUNT_TITLE', 'Test Account'); +define($prefix.'TEST_ACCOUNT_DESC', 'If Transaction Mode is not LIVE, the following Accounts (EMail) can test the payment. (Comma separated)'); + +define($prefix.'PROCESSED_STATUS_ID_TITLE', 'Orderstatus - Success'); +define($prefix.'PROCESSED_STATUS_ID_DESC', 'Order Status which will be set in case of successfully payment'); + +define($prefix.'PENDING_STATUS_ID_TITLE', 'Bestellstatus - Waiting'); +define($prefix.'PENDING_STATUS_ID_DESC', 'Order Status which will be set when the customer is on foreign system'); + +define($prefix.'CANCELED_STATUS_ID_TITLE', 'Orderstatus - Cancel'); +define($prefix.'CANCELED_STATUS_ID_DESC', 'Order Status which will be set in case of cancel payment'); + +define($prefix.'NEWORDER_STATUS_ID_TITLE', 'Orderstatus - New Order'); +define($prefix.'NEWORDER_STATUS_ID_DESC', 'Order Status which will be set in case of beginning payment'); + +define($prefix.'STATUS_TITLE', 'Activate Module'); +define($prefix.'STATUS_DESC', 'Do you want to activate the module?'); + +define($prefix.'SORT_ORDER_TITLE', 'Sort Order'); +define($prefix.'SORT_ORDER_DESC', 'Sort order for display. Lowest will be shown first.'); + +define($prefix.'ZONE_TITLE', 'Paymentzone'); +define($prefix.'ZONE_DESC', 'If a zone is selected, only enable this payment method for that zone.'); + +define($prefix.'ALLOWED_TITLE', 'Allowed Zones'); +define($prefix.'ALLOWED_DESC', 'Please enter the zones separately which should be allowed to use this modul (e. g. AT,DE (leave empty if you want to allow all zones))'); + +define($prefix.'DEBUG_TITLE', 'Debug Mode'); +define($prefix.'DEBUG_DESC', 'Please activate only if heidelpay told this to you. Otherwise the checkout will not work in your shop correctly.'); + +define($prefix.'TEXT_INFO', ''); +define($prefix.'DEBUGTEXT', 'The payment is temporary not available. Please use another one or try again later.'); +define($prefix.'REUSE_CARD', 'do you want to use the following debitcard again ?'); +define($prefix.'REUSE_CARD_NUMBER', 'CardNo: '); +define($prefix.'REUSE_CARD_TEXT', 'Yes, I want to reuse the card again.'); +define($prefix.'WILLUSE_CARD', 'the following debitcard will be used again.
CardNo: '); +define($prefix.'DATA_SAVED', 'Your data was transfered.
Please go on with your order.
'); +define($prefix.'ERROR_NO_PAYDATA', 'Please enter your payment information.'); + +define($prefix.'FRONTEND_BUTTON_CONTINUE', 'Continue'); +define($prefix.'FRONTEND_BUTTON_CANCEL', 'Previous Page'); +?> diff --git a/lang/english/modules/payment/hpdd.php b/lang/english/modules/payment/hpdd.php new file mode 100644 index 0000000..a4c3dec --- /dev/null +++ b/lang/english/modules/payment/hpdd.php @@ -0,0 +1,87 @@ +(in EURO-CENT e.g. 5 EUR = 500 Cent).'); + +define($prefix.'MAX_AMOUNT_TITLE', 'Maximum Amount'); +define($prefix.'MAX_AMOUNT_DESC', 'Please choose the maximum amount
(in EURO-CENT e.g. 5 EUR = 500 Cent).'); + +define($prefix.'TEST_ACCOUNT_TITLE', 'Test Account'); +define($prefix.'TEST_ACCOUNT_DESC', 'If Transaction Mode is not LIVE, the following Accounts (EMail) can test the payment. (Comma separated)'); + +define($prefix.'PROCESSED_STATUS_ID_TITLE', 'Orderstatus - Success'); +define($prefix.'PROCESSED_STATUS_ID_DESC', 'Order Status which will be set in case of successfully payment'); + +define($prefix.'PENDING_STATUS_ID_TITLE', 'Bestellstatus - Waiting'); +define($prefix.'PENDING_STATUS_ID_DESC', 'Order Status which will be set when the customer is on foreign system'); + +define($prefix.'CANCELED_STATUS_ID_TITLE', 'Orderstatus - Cancel'); +define($prefix.'CANCELED_STATUS_ID_DESC', 'Order Status which will be set in case of cancel payment'); + +define($prefix.'NEWORDER_STATUS_ID_TITLE', 'Orderstatus - New Order'); +define($prefix.'NEWORDER_STATUS_ID_DESC', 'Order Status which will be set in case of beginning payment'); + +define($prefix.'STATUS_TITLE', 'Activate Module'); +define($prefix.'STATUS_DESC', 'Do you want to activate the module?'); + +define($prefix.'SORT_ORDER_TITLE', 'Sort Order'); +define($prefix.'SORT_ORDER_DESC', 'Sort order for display. Lowest will be shown first.'); + +define($prefix.'ZONE_TITLE', 'Paymentzone'); +define($prefix.'ZONE_DESC', 'If a zone is selected, only enable this payment method for that zone.'); + +define($prefix.'ALLOWED_TITLE', 'Allowed Zones'); +define($prefix.'ALLOWED_DESC', 'Please enter the zones separately which should be allowed to use this modul (e. g. AT,DE (leave empty if you want to allow all zones))'); + +define($prefix.'DEBUG_TITLE', 'Debug Mode'); +define($prefix.'DEBUG_DESC', 'Please activate only if heidelpay told this to you. Otherwise the checkout will not work in your shop correctly.'); + +define($prefix.'TEXT_INFO', ''); +define($prefix.'DEBUGTEXT', 'The payment is temporary not available. Please use another one or try again later.'); + +define($prefix.'ERROR_NO_PAYDATA', 'Please enter your payment information.'); +define($prefix.'PAYMENT_DATA', 'Please enter the missing direct debit data.'); + +define($prefix.'ACCOUNT_NUMBER', 'Account no. :'); +define($prefix.'ACCOUNT_BANK', 'Bank no. :'); +define($prefix.'ACCOUNT_HOLDER', 'Account holder :'); + +define($prefix.'ACCOUNT_IBAN', 'IBAN :'); +define($prefix.'ACCOUNT_BIC', 'BIC :'); + +define($prefix.'ACCOUNT_SWITCH', 'Account information :'); +define($prefix.'ACCOUNT_SWITCH_CLASSIC', 'Account no. & Bank no.'); +define($prefix.'ACCOUNT_SWITCH_IBAN', 'IBAN'); + +define($prefix.'SUCCESS', 'The amount will be debited from this account within the next days:

+IBAN: {ACC_IBAN}
+BIC: {ACC_BIC}
+The booking contains the mandate reference ID: {ACC_IDENT}
+and the creditor identifier: {IDENT_CRED_ID}

+Please ensure that there will be sufficient funds on the corresponding account.'); + +define($prefix.'FRONTEND_BUTTON_CONTINUE', 'Continue'); +define($prefix.'FRONTEND_BUTTON_CANCEL', 'Previous Page'); +?> diff --git a/lang/english/modules/payment/hpeps.php b/lang/english/modules/payment/hpeps.php new file mode 100644 index 0000000..a1c3a18 --- /dev/null +++ b/lang/english/modules/payment/hpeps.php @@ -0,0 +1,69 @@ +(in EURO-CENT e.g. 5 EUR = 500 Cent).'); + +define($prefix.'MAX_AMOUNT_TITLE', 'Maximum Amount'); +define($prefix.'MAX_AMOUNT_DESC', 'Please choose the maximum amount
(in EURO-CENT e.g. 5 EUR = 500 Cent).'); + +define($prefix.'MODULE_MODE_TITLE', 'Module Mode'); +define($prefix.'MODULE_MODE_DESC', 'DIRECT: Paymentinformations will be entered on payment selection with REGISTER function (plus Registerfee).
AFTER: Paymentinformations will be entered after process with DEBIT function.'); + +define($prefix.'PAY_MODE_TITLE', 'Payment Mode'); +define($prefix.'PAY_MODE_DESC', 'Select between Debit (DB) and Preauthorisation (PA).'); + +define($prefix.'TEST_ACCOUNT_TITLE', 'Test Account'); +define($prefix.'TEST_ACCOUNT_DESC', 'If Transaction Mode is not LIVE, the following Accounts (EMail) can test the payment. (Comma separated)'); + +define($prefix.'PROCESSED_STATUS_ID_TITLE', 'Orderstatus - Success'); +define($prefix.'PROCESSED_STATUS_ID_DESC', 'Order Status which will be set in case of successfully payment'); + +define($prefix.'PENDING_STATUS_ID_TITLE', 'Bestellstatus - Waiting'); +define($prefix.'PENDING_STATUS_ID_DESC', 'Order Status which will be set when the customer is on foreign system'); + +define($prefix.'CANCELED_STATUS_ID_TITLE', 'Orderstatus - Cancel'); +define($prefix.'CANCELED_STATUS_ID_DESC', 'Order Status which will be set in case of cancel payment'); + +define($prefix.'NEWORDER_STATUS_ID_TITLE', 'Orderstatus - New Order'); +define($prefix.'NEWORDER_STATUS_ID_DESC', 'Order Status which will be set in case of beginning payment'); + +define($prefix.'STATUS_TITLE', 'Activate Module'); +define($prefix.'STATUS_DESC', 'Do you want to activate the module?'); + +define($prefix.'SORT_ORDER_TITLE', 'Sort Order'); +define($prefix.'SORT_ORDER_DESC', 'Sort order for display. Lowest will be shown first.'); + +define($prefix.'ZONE_TITLE', 'Paymentzone'); +define($prefix.'ZONE_DESC', 'If a zone is selected, only enable this payment method for that zone.'); + +define($prefix.'ALLOWED_TITLE', 'Allowed Zones'); +define($prefix.'ALLOWED_DESC', 'Please enter the zones separately which should be allowed to use this modul (e. g. AT,DE (leave empty if you want to allow all zones))'); + +define($prefix.'DEBUG_TITLE', 'Debug Mode'); +define($prefix.'DEBUG_DESC', 'Please activate only if heidelpay told this to you. Otherwise the checkout will not work in your shop correctly.'); + +define($prefix.'TEXT_INFO', ''); +define($prefix.'DEBUGTEXT', 'The payment is temporary not available. Please use another one or try again later.'); + +define($prefix.'FRONTEND_BUTTON_CONTINUE', 'Continue'); +define($prefix.'FRONTEND_BUTTON_CANCEL', 'Previous Page'); +?> diff --git a/lang/english/modules/payment/hperror.php b/lang/english/modules/payment/hperror.php new file mode 100644 index 0000000..37c3d5a --- /dev/null +++ b/lang/english/modules/payment/hperror.php @@ -0,0 +1,19 @@ + \ No newline at end of file diff --git a/lang/english/modules/payment/hpgp.php b/lang/english/modules/payment/hpgp.php new file mode 100644 index 0000000..7aae677 --- /dev/null +++ b/lang/english/modules/payment/hpgp.php @@ -0,0 +1,75 @@ +(in EURO-CENT e.g. 5 EUR = 500 Cent).'); + +define($prefix.'MAX_AMOUNT_TITLE', 'Maximum Amount'); +define($prefix.'MAX_AMOUNT_DESC', 'Please choose the maximum amount
(in EURO-CENT e.g. 5 EUR = 500 Cent).'); + +define($prefix.'MODULE_MODE_TITLE', 'Module Mode'); +define($prefix.'MODULE_MODE_DESC', 'AFTER: Paymentinformations will be entered after process with DEBIT function.
NOWPF: The paymentinformations will be entered in Shop as usual and the Customer will be redirected to bank after sending the order.'); + +define($prefix.'PAY_MODE_TITLE', 'Payment Mode'); +define($prefix.'PAY_MODE_DESC', 'Select between Debit (DB) and Preauthorisation (PA).'); + +define($prefix.'TEST_ACCOUNT_TITLE', 'Test Account'); +define($prefix.'TEST_ACCOUNT_DESC', 'If Transaction Mode is not LIVE, the following Accounts (EMail) can test the payment. (Comma separated)'); + +define($prefix.'PROCESSED_STATUS_ID_TITLE', 'Orderstatus - Success'); +define($prefix.'PROCESSED_STATUS_ID_DESC', 'Order Status which will be set in case of successfully payment'); + +define($prefix.'PENDING_STATUS_ID_TITLE', 'Bestellstatus - Waiting'); +define($prefix.'PENDING_STATUS_ID_DESC', 'Order Status which will be set when the customer is on foreign system'); + +define($prefix.'CANCELED_STATUS_ID_TITLE', 'Orderstatus - Cancel'); +define($prefix.'CANCELED_STATUS_ID_DESC', 'Order Status which will be set in case of cancel payment'); + +define($prefix.'NEWORDER_STATUS_ID_TITLE', 'Orderstatus - New Order'); +define($prefix.'NEWORDER_STATUS_ID_DESC', 'Order Status which will be set in case of beginning payment'); + +define($prefix.'STATUS_TITLE', 'Activate Module'); +define($prefix.'STATUS_DESC', 'Do you want to activate the module?'); + +define($prefix.'SORT_ORDER_TITLE', 'Sort Order'); +define($prefix.'SORT_ORDER_DESC', 'Sort order for display. Lowest will be shown first.'); + +define($prefix.'ZONE_TITLE', 'Paymentzone'); +define($prefix.'ZONE_DESC', 'If a zone is selected, only enable this payment method for that zone.'); + +define($prefix.'ALLOWED_TITLE', 'Allowed Zones'); +define($prefix.'ALLOWED_DESC', 'Please enter the zones separately which should be allowed to use this modul (e. g. AT,DE (leave empty if you want to allow all zones))'); + +define($prefix.'DEBUG_TITLE', 'Debug Mode'); +define($prefix.'DEBUG_DESC', 'Please activate only if heidelpay told this to you. Otherwise the checkout will not work in your shop correctly.'); + +define($prefix.'TEXT_INFO', ''); +define($prefix.'DEBUGTEXT', 'The payment is temporary not available. Please use another one or try again later.'); + +define($prefix.'ERROR_NO_PAYDATA', 'Please enter your payment information.'); + +define($prefix.'ACCOUNT_IBAN', 'IBAN :'); +define($prefix.'ACCOUNT_BIC', 'BIC :'); +define($prefix.'ACCOUNT_OWNER', 'Account holder :'); + +define($prefix.'FRONTEND_BUTTON_CONTINUE', 'Continue'); +define($prefix.'FRONTEND_BUTTON_CANCEL', 'Previous Page'); +?> diff --git a/lang/english/modules/payment/hpidl.php b/lang/english/modules/payment/hpidl.php new file mode 100644 index 0000000..a85f88a --- /dev/null +++ b/lang/english/modules/payment/hpidl.php @@ -0,0 +1,74 @@ +(in EURO-CENT e.g. 5 EUR = 500 Cent).'); + +define($prefix.'MAX_AMOUNT_TITLE', 'Maximum Amount'); +define($prefix.'MAX_AMOUNT_DESC', 'Please choose the maximum amount
(in EURO-CENT e.g. 5 EUR = 500 Cent).'); + +define($prefix.'MODULE_MODE_TITLE', 'Module Mode'); +define($prefix.'MODULE_MODE_DESC', 'AFTER: Paymentinformations will be entered after process with DEBIT function.
NOWPF: The paymentinformations will be entered in Shop as usual and the Customer will be redirected to bank after sending the order.'); + +define($prefix.'PAY_MODE_TITLE', 'Payment Mode'); +define($prefix.'PAY_MODE_DESC', 'Select between Debit (DB) and Preauthorisation (PA).'); + +define($prefix.'TEST_ACCOUNT_TITLE', 'Test Account'); +define($prefix.'TEST_ACCOUNT_DESC', 'If Transaction Mode is not LIVE, the following Accounts (EMail) can test the payment. (Comma separated)'); + +define($prefix.'PROCESSED_STATUS_ID_TITLE', 'Orderstatus - Success'); +define($prefix.'PROCESSED_STATUS_ID_DESC', 'Order Status which will be set in case of successfully payment'); + +define($prefix.'PENDING_STATUS_ID_TITLE', 'Bestellstatus - Waiting'); +define($prefix.'PENDING_STATUS_ID_DESC', 'Order Status which will be set when the customer is on foreign system'); + +define($prefix.'CANCELED_STATUS_ID_TITLE', 'Orderstatus - Cancel'); +define($prefix.'CANCELED_STATUS_ID_DESC', 'Order Status which will be set in case of cancel payment'); + +define($prefix.'NEWORDER_STATUS_ID_TITLE', 'Orderstatus - New Order'); +define($prefix.'NEWORDER_STATUS_ID_DESC', 'Order Status which will be set in case of beginning payment'); + +define($prefix.'STATUS_TITLE', 'Activate Module'); +define($prefix.'STATUS_DESC', 'Do you want to activate the module?'); + +define($prefix.'SORT_ORDER_TITLE', 'Sort Order'); +define($prefix.'SORT_ORDER_DESC', 'Sort order for display. Lowest will be shown first.'); + +define($prefix.'ZONE_TITLE', 'Paymentzone'); +define($prefix.'ZONE_DESC', 'If a zone is selected, only enable this payment method for that zone.'); + +define($prefix.'ALLOWED_TITLE', 'Allowed Zones'); +define($prefix.'ALLOWED_DESC', 'Please enter the zones separately which should be allowed to use this modul (e. g. AT,DE (leave empty if you want to allow all zones))'); + +define($prefix.'DEBUG_TITLE', 'Debug Mode'); +define($prefix.'DEBUG_DESC', 'Please activate only if heidelpay told this to you. Otherwise the checkout will not work in your shop correctly.'); + +define($prefix.'TEXT_INFO', ''); +define($prefix.'DEBUGTEXT', 'The payment is temporary not available. Please use another one or try again later.'); + +define($prefix.'ACCOUTNUMBER', 'Account No. :'); +define($prefix.'ACCOUNTBANK', 'Bank :'); +define($prefix.'ACCOUTOWNER', 'Account holder :'); +define($prefix.'ACCOUTCOUNTRY', 'Country :'); + +define($prefix.'FRONTEND_BUTTON_CONTINUE', 'Continue'); +define($prefix.'FRONTEND_BUTTON_CANCEL', 'Previous Page'); +?> diff --git a/lang/english/modules/payment/hpiv.php b/lang/english/modules/payment/hpiv.php new file mode 100644 index 0000000..ec2df67 --- /dev/null +++ b/lang/english/modules/payment/hpiv.php @@ -0,0 +1,86 @@ +(in EURO-CENT e.g. 5 EUR = 500 Cent).'); + +define($prefix.'MAX_AMOUNT_TITLE', 'Maximum Amount'); +define($prefix.'MAX_AMOUNT_DESC', 'Please choose the maximum amount
(in EURO-CENT e.g. 5 EUR = 500 Cent).'); + +define($prefix.'MODULE_MODE_TITLE', 'Module Mode'); +define($prefix.'MODULE_MODE_DESC', 'DIRECT: Paymentinformations will be entered on payment selection with REGISTER function (plus Registerfee).
AFTER: Paymentinformations will be entered after process with DEBIT function.'); + +define($prefix.'PAY_MODE_TITLE', 'Payment Mode'); +define($prefix.'PAY_MODE_DESC', 'Select between Debit (DB) and Preauthorisation (PA).'); + +define($prefix.'TEST_ACCOUNT_TITLE', 'Test Account'); +define($prefix.'TEST_ACCOUNT_DESC', 'If Transaction Mode is not LIVE, the following Accounts (EMail) can test the payment. (Comma separated)'); + +define($prefix.'FINISHED_STATUS_ID_TITLE', 'Orderstatus - Paid'); +define($prefix.'FINISHED_STATUS_ID_DESC', 'Order Status which will be set in case of incoming money'); + +define($prefix.'PROCESSED_STATUS_ID_TITLE', 'Orderstatus - Success'); +define($prefix.'PROCESSED_STATUS_ID_DESC', 'Order Status which will be set in case of successfully prepayment. No incoming money!'); + +define($prefix.'PENDING_STATUS_ID_TITLE', 'Orderstatus - Waiting'); +define($prefix.'PENDING_STATUS_ID_DESC', 'Order Status which will be set when the customer is on foreign system'); + +define($prefix.'CANCELED_STATUS_ID_TITLE', 'Orderstatus - Cancel'); +define($prefix.'CANCELED_STATUS_ID_DESC', 'Order Status which will be set in case of cancel payment'); + +define($prefix.'NEWORDER_STATUS_ID_TITLE', 'Orderstatus - New Order'); +define($prefix.'NEWORDER_STATUS_ID_DESC', 'Order Status which will be set in case of beginning payment'); + +define($prefix.'STATUS_TITLE', 'Activate Module'); +define($prefix.'STATUS_DESC', 'Do you want to activate the module?'); + +define($prefix.'SORT_ORDER_TITLE', 'Sort Order'); +define($prefix.'SORT_ORDER_DESC', 'Sort order for display. Lowest will be shown first.'); + +define($prefix.'ZONE_TITLE', 'Paymentzone'); +define($prefix.'ZONE_DESC', 'If a zone is selected, only enable this payment method for that zone.'); + +define($prefix.'ALLOWED_TITLE', 'Allowed Zones'); +define($prefix.'ALLOWED_DESC', 'Please enter the zones separately which should be allowed to use this modul (e. g. AT,DE (leave empty if you want to allow all zones))'); + +define($prefix.'DEBUG_TITLE', 'Debug Mode'); +define($prefix.'DEBUG_DESC', 'Please activate only if heidelpay told this to you. Otherwise the checkout will not work in your shop correctly.'); + +define($prefix.'TEXT_INFO', ''); +define($prefix.'DEBUGTEXT', 'The payment is temporary not available. Please use another one or try again later.'); + +define($prefix.'SUCCESS', 'Your transaction was successfull! + + Transfer the amount of {CURRENCY} {AMOUNT} to the following account + Country : {ACC_COUNTRY} + Account holder : {ACC_OWNER} + Account No. : {ACC_NUMBER} + Bank Code: {ACC_BANKCODE} + IBAN: {ACC_IBAN} + BIC: {ACC_BIC} + When you transfer the money you HAVE TO use the identification number + {SHORTID} + as the descriptor and nothing else. Otherwise we cannot match your transaction!'); + +define($prefix.'FRONTEND_BUTTON_CONTINUE', 'Continue'); +define($prefix.'FRONTEND_BUTTON_CANCEL', 'Previous Page'); + +?> diff --git a/lang/english/modules/payment/hpmk.php b/lang/english/modules/payment/hpmk.php new file mode 100644 index 0000000..5b0715f --- /dev/null +++ b/lang/english/modules/payment/hpmk.php @@ -0,0 +1,69 @@ +(in EURO-CENT e.g. 5 EUR = 500 Cent).'); + +define($prefix.'MAX_AMOUNT_TITLE', 'Maximum Amount'); +define($prefix.'MAX_AMOUNT_DESC', 'Please choose the maximum amount
(in EURO-CENT e.g. 5 EUR = 500 Cent).'); + +define($prefix.'MODULE_MODE_TITLE', 'Module Mode'); +define($prefix.'MODULE_MODE_DESC', 'DIRECT: Paymentinformations will be entered on payment selection with REGISTER function (plus Registerfee).
AFTER: Paymentinformations will be entered after process with DEBIT function.'); + +define($prefix.'PAY_MODE_TITLE', 'Payment Mode'); +define($prefix.'PAY_MODE_DESC', 'Select between Debit (DB) and Preauthorisation (PA).'); + +define($prefix.'TEST_ACCOUNT_TITLE', 'Test Account'); +define($prefix.'TEST_ACCOUNT_DESC', 'If Transaction Mode is not LIVE, the following Accounts (EMail) can test the payment. (Comma separated)'); + +define($prefix.'PROCESSED_STATUS_ID_TITLE', 'Orderstatus - Success'); +define($prefix.'PROCESSED_STATUS_ID_DESC', 'Order Status which will be set in case of successfully payment'); + +define($prefix.'PENDING_STATUS_ID_TITLE', 'Bestellstatus - Waiting'); +define($prefix.'PENDING_STATUS_ID_DESC', 'Order Status which will be set when the customer is on foreign system'); + +define($prefix.'CANCELED_STATUS_ID_TITLE', 'Orderstatus - Cancel'); +define($prefix.'CANCELED_STATUS_ID_DESC', 'Order Status which will be set in case of cancel payment'); + +define($prefix.'NEWORDER_STATUS_ID_TITLE', 'Orderstatus - New Order'); +define($prefix.'NEWORDER_STATUS_ID_DESC', 'Order Status which will be set in case of beginning payment'); + +define($prefix.'STATUS_TITLE', 'Activate Module'); +define($prefix.'STATUS_DESC', 'Do you want to activate the module?'); + +define($prefix.'SORT_ORDER_TITLE', 'Sort Order'); +define($prefix.'SORT_ORDER_DESC', 'Sort order for display. Lowest will be shown first.'); + +define($prefix.'ZONE_TITLE', 'Paymentzone'); +define($prefix.'ZONE_DESC', 'If a zone is selected, only enable this payment method for that zone.'); + +define($prefix.'ALLOWED_TITLE', 'Allowed Zones'); +define($prefix.'ALLOWED_DESC', 'Please enter the zones separately which should be allowed to use this modul (e. g. AT,DE (leave empty if you want to allow all zones))'); + +define($prefix.'DEBUG_TITLE', 'Debug Mode'); +define($prefix.'DEBUG_DESC', 'Please activate only if heidelpay told this to you. Otherwise the checkout will not work in your shop correctly.'); + +define($prefix.'TEXT_INFO', ''); +define($prefix.'DEBUGTEXT', 'The payment is temporary not available. Please use another one or try again later.'); + +define($prefix.'FRONTEND_BUTTON_CONTINUE', 'Continue'); +define($prefix.'FRONTEND_BUTTON_CANCEL', 'Previous Page'); +?> diff --git a/lang/english/modules/payment/hppp.php b/lang/english/modules/payment/hppp.php new file mode 100644 index 0000000..02b3b03 --- /dev/null +++ b/lang/english/modules/payment/hppp.php @@ -0,0 +1,86 @@ +(in EURO-CENT e.g. 5 EUR = 500 Cent).'); + +define($prefix.'MAX_AMOUNT_TITLE', 'Maximum Amount'); +define($prefix.'MAX_AMOUNT_DESC', 'Please choose the maximum amount
(in EURO-CENT e.g. 5 EUR = 500 Cent).'); + +define($prefix.'MODULE_MODE_TITLE', 'Module Mode'); +define($prefix.'MODULE_MODE_DESC', 'DIRECT: Paymentinformations will be entered on payment selection with REGISTER function (plus Registerfee).
AFTER: Paymentinformations will be entered after process with DEBIT function.'); + +define($prefix.'PAY_MODE_TITLE', 'Payment Mode'); +define($prefix.'PAY_MODE_DESC', 'Select between Debit (DB) and Preauthorisation (PA).'); + +define($prefix.'TEST_ACCOUNT_TITLE', 'Test Account'); +define($prefix.'TEST_ACCOUNT_DESC', 'If Transaction Mode is not LIVE, the following Accounts (EMail) can test the payment. (Comma separated)'); + +define($prefix.'FINISHED_STATUS_ID_TITLE', 'Orderstatus - Paid'); +define($prefix.'FINISHED_STATUS_ID_DESC', 'Order Status which will be set in case of incoming money'); + +define($prefix.'PROCESSED_STATUS_ID_TITLE', 'Orderstatus - Success'); +define($prefix.'PROCESSED_STATUS_ID_DESC', 'Order Status which will be set in case of successfully prepayment. No incoming money!'); + +define($prefix.'PENDING_STATUS_ID_TITLE', 'Orderstatus - Waiting'); +define($prefix.'PENDING_STATUS_ID_DESC', 'Order Status which will be set when the customer is on foreign system'); + +define($prefix.'CANCELED_STATUS_ID_TITLE', 'Orderstatus - Cancel'); +define($prefix.'CANCELED_STATUS_ID_DESC', 'Order Status which will be set in case of cancel payment'); + +define($prefix.'NEWORDER_STATUS_ID_TITLE', 'Orderstatus - New Order'); +define($prefix.'NEWORDER_STATUS_ID_DESC', 'Order Status which will be set in case of beginning payment'); + +define($prefix.'STATUS_TITLE', 'Activate Module'); +define($prefix.'STATUS_DESC', 'Do you want to activate the module?'); + +define($prefix.'SORT_ORDER_TITLE', 'Sort Order'); +define($prefix.'SORT_ORDER_DESC', 'Sort order for display. Lowest will be shown first.'); + +define($prefix.'ZONE_TITLE', 'Paymentzone'); +define($prefix.'ZONE_DESC', 'If a zone is selected, only enable this payment method for that zone.'); + +define($prefix.'ALLOWED_TITLE', 'Allowed Zones'); +define($prefix.'ALLOWED_DESC', 'Please enter the zones separately which should be allowed to use this modul (e. g. AT,DE (leave empty if you want to allow all zones))'); + +define($prefix.'DEBUG_TITLE', 'Debug Mode'); +define($prefix.'DEBUG_DESC', 'Please activate only if heidelpay told this to you. Otherwise the checkout will not work in your shop correctly.'); + +define($prefix.'TEXT_INFO', ''); +define($prefix.'DEBUGTEXT', 'The payment is temporary not available. Please use another one or try again later.'); + +define($prefix.'SUCCESS', 'Your transaction was successfull! + + Transfer the amount of {CURRENCY} {AMOUNT} to the following account + Country : {ACC_COUNTRY} + Account holder : {ACC_OWNER} + Account No. : {ACC_NUMBER} + Bank Code: {ACC_BANKCODE} + IBAN: {ACC_IBAN} + BIC: {ACC_BIC} + When you transfer the money you HAVE TO use the identification number + {SHORTID} + as the descriptor and nothing else. Otherwise we cannot match your transaction!'); + +define($prefix.'FRONTEND_BUTTON_CONTINUE', 'Continue'); +define($prefix.'FRONTEND_BUTTON_CANCEL', 'Previous Page'); + +?> diff --git a/lang/english/modules/payment/hpppal.php b/lang/english/modules/payment/hpppal.php new file mode 100644 index 0000000..6fe8ce5 --- /dev/null +++ b/lang/english/modules/payment/hpppal.php @@ -0,0 +1,69 @@ +(in EURO-CENT e.g. 5 EUR = 500 Cent).'); + +define($prefix.'MAX_AMOUNT_TITLE', 'Maximum Amount'); +define($prefix.'MAX_AMOUNT_DESC', 'Please choose the maximum amount
(in EURO-CENT e.g. 5 EUR = 500 Cent).'); + +define($prefix.'MODULE_MODE_TITLE', 'Module Mode'); +define($prefix.'MODULE_MODE_DESC', 'DIRECT: Paymentinformations will be entered on payment selection with REGISTER function (plus Registerfee).
AFTER: Paymentinformations will be entered after process with DEBIT function.'); + +define($prefix.'PAY_MODE_TITLE', 'Payment Mode'); +define($prefix.'PAY_MODE_DESC', 'Select between Debit (DB) and Preauthorisation (PA).'); + +define($prefix.'TEST_ACCOUNT_TITLE', 'Test Account'); +define($prefix.'TEST_ACCOUNT_DESC', 'If Transaction Mode is not LIVE, the following Accounts (EMail) can test the payment. (Comma separated)'); + +define($prefix.'PROCESSED_STATUS_ID_TITLE', 'Orderstatus - Success'); +define($prefix.'PROCESSED_STATUS_ID_DESC', 'Order Status which will be set in case of successfully payment'); + +define($prefix.'PENDING_STATUS_ID_TITLE', 'Bestellstatus - Waiting'); +define($prefix.'PENDING_STATUS_ID_DESC', 'Order Status which will be set when the customer is on foreign system'); + +define($prefix.'CANCELED_STATUS_ID_TITLE', 'Orderstatus - Cancel'); +define($prefix.'CANCELED_STATUS_ID_DESC', 'Order Status which will be set in case of cancel payment'); + +define($prefix.'NEWORDER_STATUS_ID_TITLE', 'Orderstatus - New Order'); +define($prefix.'NEWORDER_STATUS_ID_DESC', 'Order Status which will be set in case of beginning payment'); + +define($prefix.'STATUS_TITLE', 'Activate Module'); +define($prefix.'STATUS_DESC', 'Do you want to activate the module?'); + +define($prefix.'SORT_ORDER_TITLE', 'Sort Order'); +define($prefix.'SORT_ORDER_DESC', 'Sort order for display. Lowest will be shown first.'); + +define($prefix.'ZONE_TITLE', 'Paymentzone'); +define($prefix.'ZONE_DESC', 'If a zone is selected, only enable this payment method for that zone.'); + +define($prefix.'ALLOWED_TITLE', 'Allowed Zones'); +define($prefix.'ALLOWED_DESC', 'Please enter the zones separately which should be allowed to use this modul (e. g. AT,DE (leave empty if you want to allow all zones))'); + +define($prefix.'DEBUG_TITLE', 'Debug Mode'); +define($prefix.'DEBUG_DESC', 'Please activate only if heidelpay told this to you. Otherwise the checkout will not work in your shop correctly.'); + +define($prefix.'TEXT_INFO', ''); +define($prefix.'DEBUGTEXT', 'The payment is temporary not available. Please use another one or try again later.');# + +define($prefix.'FRONTEND_BUTTON_CONTINUE', 'Continue'); +define($prefix.'FRONTEND_BUTTON_CANCEL', 'Previous Page'); +?> diff --git a/lang/english/modules/payment/hpsu.php b/lang/english/modules/payment/hpsu.php new file mode 100644 index 0000000..1ab7bfe --- /dev/null +++ b/lang/english/modules/payment/hpsu.php @@ -0,0 +1,75 @@ +(in EURO-CENT e.g. 5 EUR = 500 Cent).'); + +define($prefix.'MAX_AMOUNT_TITLE', 'Maximum Amount'); +define($prefix.'MAX_AMOUNT_DESC', 'Please choose the maximum amount
(in EURO-CENT e.g. 5 EUR = 500 Cent).'); + +define($prefix.'MODULE_MODE_TITLE', 'Module Mode'); +define($prefix.'MODULE_MODE_DESC', 'DIRECT: Paymentinformations will be entered on payment selection with REGISTER function (plus Registerfee).
AFTER: Paymentinformations will be entered after process with DEBIT function.'); + +define($prefix.'PAY_MODE_TITLE', 'Payment Mode'); +define($prefix.'PAY_MODE_DESC', 'Select between Debit (DB) and Preauthorisation (PA).'); + +define($prefix.'TEST_ACCOUNT_TITLE', 'Test Account'); +define($prefix.'TEST_ACCOUNT_DESC', 'If Transaction Mode is not LIVE, the following Accounts (EMail) can test the payment. (Comma separated)'); + +define($prefix.'PROCESSED_STATUS_ID_TITLE', 'Orderstatus - Success'); +define($prefix.'PROCESSED_STATUS_ID_DESC', 'Order Status which will be set in case of successfully payment'); + +define($prefix.'PENDING_STATUS_ID_TITLE', 'Bestellstatus - Waiting'); +define($prefix.'PENDING_STATUS_ID_DESC', 'Order Status which will be set when the customer is on foreign system'); + +define($prefix.'CANCELED_STATUS_ID_TITLE', 'Orderstatus - Cancel'); +define($prefix.'CANCELED_STATUS_ID_DESC', 'Order Status which will be set in case of cancel payment'); + +define($prefix.'NEWORDER_STATUS_ID_TITLE', 'Orderstatus - New Order'); +define($prefix.'NEWORDER_STATUS_ID_DESC', 'Order Status which will be set in case of beginning payment'); + +define($prefix.'STATUS_TITLE', 'Activate Module'); +define($prefix.'STATUS_DESC', 'Do you want to activate the module?'); + +define($prefix.'SORT_ORDER_TITLE', 'Sort Order'); +define($prefix.'SORT_ORDER_DESC', 'Sort order for display. Lowest will be shown first.'); + +define($prefix.'ZONE_TITLE', 'Paymentzone'); +define($prefix.'ZONE_DESC', 'If a zone is selected, only enable this payment method for that zone.'); + +define($prefix.'ALLOWED_TITLE', 'Allowed Zones'); +define($prefix.'ALLOWED_DESC', 'Please enter the zones separately which should be allowed to use this modul (e. g. AT,DE (leave empty if you want to allow all zones))'); + +define($prefix.'DEBUG_TITLE', 'Debug Mode'); +define($prefix.'DEBUG_DESC', 'Please activate only if heidelpay told this to you. Otherwise the checkout will not work in your shop correctly.'); + +define($prefix.'TEXT_INFO', ''); +define($prefix.'DEBUGTEXT', 'The payment is temporary not available. Please use another one or try again later.'); + +define($prefix.'ERROR_NO_PAYDATA', 'Please enter your payment information.'); + +define($prefix.'ACCOUNTNUMBER', 'Account No. / IBAN:'); +define($prefix.'ACCOUNTBANK', 'Bank Code / BIC :'); +define($prefix.'ACCOUTOWNER', 'Account holder :'); + +define($prefix.'FRONTEND_BUTTON_CONTINUE', 'Continue'); +define($prefix.'FRONTEND_BUTTON_CANCEL', 'Previous Page'); +?> diff --git a/lang/german/modules/payment/hpbp.php b/lang/german/modules/payment/hpbp.php new file mode 100644 index 0000000..018cf24 --- /dev/null +++ b/lang/german/modules/payment/hpbp.php @@ -0,0 +1,75 @@ +(Bitte in EURO-CENT d.h. 5 EUR = 500 Cent).'); + +define($prefix.'MAX_AMOUNT_TITLE', 'Maximum Betrag'); +define($prefix.'MAX_AMOUNT_DESC', 'Wählen Sie hier den Maximalbetrag
(Bitte in EURO-CENT d.h. 5 EUR = 500 Cent).'); + +define($prefix.'MODULE_MODE_TITLE', 'Modul Mode'); +define($prefix.'MODULE_MODE_DESC', 'DIRECT: Die Zahldaten werden auf der Zahlverfahrenauswahl mit REGISTER Funktion erfasst (zzgl. Registrierungsgebuehr).
AFTER: Die Zahldaten werden nachgelagert mit DEBIT Funktion erfasst.'); + +define($prefix.'PAY_MODE_TITLE', 'Payment Mode'); +define($prefix.'PAY_MODE_DESC', 'Wählen Sie zwischen Debit (DB) und Preauthorisation (PA).'); + +define($prefix.'TEST_ACCOUNT_TITLE', 'Test Account'); +define($prefix.'TEST_ACCOUNT_DESC', 'Wenn Transaction Mode nicht LIVE, sollen folgende Accounts (EMail) testen können. (Komma getrennt)'); + +define($prefix.'FINISHED_STATUS_ID_TITLE', 'Bestellstatus - Bezahlt'); +define($prefix.'FINISHED_STATUS_ID_DESC', 'Dieser Status wird gesetzt wenn der Geldeingang verbucht wurde.'); + +define($prefix.'PROCESSED_STATUS_ID_TITLE', 'Bestellstatus - Erfolgreich'); +define($prefix.'PROCESSED_STATUS_ID_DESC', 'Dieser Status wird gesetzt wenn die Bezahlung erfolgreich war.'); + +define($prefix.'PENDING_STATUS_ID_TITLE', 'Bestellstatus - Wartend'); +define($prefix.'PENDING_STATUS_ID_DESC', 'Dieser Status wird gesetzt wenn die der Kunde auf einem Fremdsystem ist.'); + +define($prefix.'CANCELED_STATUS_ID_TITLE', 'Bestellstatus - Abbruch'); +define($prefix.'CANCELED_STATUS_ID_DESC', 'Dieser Status wird gesetzt wenn die Bezahlung abgebrochen wurde.'); + +define($prefix.'NEWORDER_STATUS_ID_TITLE', 'Bestellstatus - Neue Bestellung'); +define($prefix.'NEWORDER_STATUS_ID_DESC', 'Dieser Status wird zu Beginn der Bezahlung gesetzt.'); + +define($prefix.'STATUS_TITLE', 'Modul aktivieren'); +define($prefix.'STATUS_DESC', 'Möchten Sie das Modul aktivieren?'); + +define($prefix.'SORT_ORDER_TITLE', 'Anzeigereihenfolge'); +define($prefix.'SORT_ORDER_DESC', 'Reihenfolge der Anzeige. Kleinste Ziffer wird zuerst angezeigt.'); + +define($prefix.'ZONE_TITLE', 'Zahlungszone'); +define($prefix.'ZONE_DESC', 'Wenn eine Zone ausgewählt ist, gilt die Zahlungsmethode nur für diese Zone.'); + +define($prefix.'ALLOWED_TITLE', 'Erlaubte Zonen'); +define($prefix.'ALLOWED_DESC', 'Geben Sie einzeln die Zonen an, welche für dieses Modul erlaubt sein sollen. (z.B. AT,DE (wenn leer, werden alle Zonen erlaubt))'); + +define($prefix.'DEBUG_TITLE', 'Debug Modus'); +define($prefix.'DEBUG_DESC', 'Schalten Sie diesen nur auf Anweisung von Heidelpay an, da sonst eine Bezahlung im Shop nicht mehr funktioniert.'); + +define($prefix.'TEXT_INFO', ''); +define($prefix.'DEBUGTEXT', 'Das Zahlverfahren wird gerade gewartet. Bitte wählen Sie ein anderes Zahlverfahren oder versuchen Sie es zu einem späteren Zeitpunkt.'); + +define($prefix.'BARPAY_INFO', 'Sicher, schnell und ohne Gebühren: mit BarPay zahlen Sie Internet-Einkäufe mit Bargeld. Ohne Anmeldung. Ohne Kreditkarte. Ohne Kontodetails.

Nach Auswahl von BarPay übermittelt Ihnen Ihr Online-Händler einen individuellen Barcode per E-Mail oder zum Download auf Ihren Computer. Diesen können Sie ausdrucken und in über 18.000 BarPay-Akzeptanzstellen bezahlen. Der Zahlungseingang wird dem Online-Händler in Echtzeit übermittelt, und die bestellte Ware geht umgehend in den Versand.

'); +define($prefix.'BARPAY_DOWNLOAD', '


Klicken Sie hier um Ihren Barcode runterzuladen


Drucken Sie den Barcode aus oder speichern Sie diesen auf Ihrem mobilen Endgerät. Gehen Sie nun zu einer Kasse der 18.000 Akzeptanzstellen in Deutschland und bezahlen Sie ganz einfach in bar.

In dem Augenblick, wenn der Rechnungsbetrag beglichen wird, erhält der Online-Händler die Information über den Zahlungseingang. Die bestellte Ware oder Dienstleistung geht umgehend in den Versand.'); + +define($prefix.'FRONTEND_BUTTON_CONTINUE', 'Weiter'); +define($prefix.'FRONTEND_BUTTON_CANCEL', 'Vorherige Seite'); +?> diff --git a/lang/german/modules/payment/hpbs.php b/lang/german/modules/payment/hpbs.php new file mode 100644 index 0000000..c63c780 --- /dev/null +++ b/lang/german/modules/payment/hpbs.php @@ -0,0 +1,89 @@ +(Bitte in EURO-CENT d.h. 5 EUR = 500 Cent).'); + +define($prefix.'MAX_AMOUNT_TITLE', 'Maximum Betrag'); +define($prefix.'MAX_AMOUNT_DESC', 'Wählen Sie hier den Maximalbetrag
(Bitte in EURO-CENT d.h. 5 EUR = 500 Cent).'); + +define($prefix.'MODULE_MODE_TITLE', 'Modul Mode'); +define($prefix.'MODULE_MODE_DESC', 'DIRECT: Die Zahldaten werden auf der Zahlverfahrenauswahl mit REGISTER Funktion erfasst (zzgl. Registrierungsgebuehr).
AFTER: Die Zahldaten werden nachgelagert mit DEBIT Funktion erfasst.'); + +define($prefix.'PAY_MODE_TITLE', 'Payment Mode'); +define($prefix.'PAY_MODE_DESC', 'Wählen Sie zwischen Debit (DB) und Preauthorisation (PA).'); + +define($prefix.'TEST_ACCOUNT_TITLE', 'Test Account'); +define($prefix.'TEST_ACCOUNT_DESC', 'Wenn Transaction Mode nicht LIVE, sollen folgende Accounts (EMail) testen können. (Komma getrennt)'); + +define($prefix.'FINISHED_STATUS_ID_TITLE', 'Bestellstatus - Bezahlt'); +define($prefix.'FINISHED_STATUS_ID_DESC', 'Dieser Status wird gesetzt wenn der Geldeingang verbucht wurde.'); + +define($prefix.'PROCESSED_STATUS_ID_TITLE', 'Bestellstatus - Erfolgreich'); +define($prefix.'PROCESSED_STATUS_ID_DESC', 'Dieser Status wird gesetzt wenn die Bezahlung erfolgreich war.'); + +define($prefix.'PENDING_STATUS_ID_TITLE', 'Bestellstatus - Wartend'); +define($prefix.'PENDING_STATUS_ID_DESC', 'Dieser Status wird gesetzt wenn die der Kunde auf einem Fremdsystem ist.'); + +define($prefix.'CANCELED_STATUS_ID_TITLE', 'Bestellstatus - Abbruch'); +define($prefix.'CANCELED_STATUS_ID_DESC', 'Dieser Status wird gesetzt wenn die Bezahlung abgebrochen wurde.'); + +define($prefix.'NEWORDER_STATUS_ID_TITLE', 'Bestellstatus - Neue Bestellung'); +define($prefix.'NEWORDER_STATUS_ID_DESC', 'Dieser Status wird zu Beginn der Bezahlung gesetzt.'); + +define($prefix.'STATUS_TITLE', 'Modul aktivieren'); +define($prefix.'STATUS_DESC', 'Möchten Sie das Modul aktivieren?'); + +define($prefix.'SORT_ORDER_TITLE', 'Anzeigereihenfolge'); +define($prefix.'SORT_ORDER_DESC', 'Reihenfolge der Anzeige. Kleinste Ziffer wird zuerst angezeigt.'); + +define($prefix.'ZONE_TITLE', 'Zahlungszone'); +define($prefix.'ZONE_DESC', 'Wenn eine Zone ausgewählt ist, gilt die Zahlungsmethode nur für diese Zone.'); + +define($prefix.'ALLOWED_TITLE', 'Erlaubte Zonen'); +define($prefix.'ALLOWED_DESC', 'Geben Sie einzeln die Zonen an, welche für dieses Modul erlaubt sein sollen. (z.B. AT,DE (wenn leer, werden alle Zonen erlaubt))'); + +define($prefix.'DEBUG_TITLE', 'Debug Modus'); +define($prefix.'DEBUG_DESC', 'Schalten Sie diesen nur auf Anweisung von Heidelpay an, da sonst eine Bezahlung im Shop nicht mehr funktioniert.'); + +define($prefix.'TEXT_INFO', ''); +define($prefix.'DEBUGTEXT', 'Das Zahlverfahren wird gerade gewartet. Bitte wählen Sie ein anderes Zahlverfahren oder versuchen Sie es zu einem späteren Zeitpunkt.'); + +define($prefix.'ADDRESSCHECK', 'Das Zahlverfahren steht Ihnen nicht zur Verfügung, da die Rechnungsadresse von der Lieferadresse abweicht.'); +define($prefix.'INFO', 'Kaufen Sie jetzt auf Rechnung und begutachten
Sie Ihre Einkäufe in Ruhe bevor Sie bezahlen.
'); +define($prefix.'LEGALNOTE_BILLSAFE', 'Bitte überweisen Sie den ausstehenden Betrag {DAYS} Tage nach dem Sie über den Versand informiert wurden.'); +define($prefix.'SUCCESS_BILLSAFE', 'Ihre Transaktion war erfolgreich! + + Ueberweisen Sie uns den Betrag von {CURRENCY} {AMOUNT} auf folgendes Konto + Bankname: {ACC_BANKNAME} + Kontoinhaber : {ACC_OWNER} + Konto-Nr. : {ACC_NUMBER} + Bankleitzahl: {ACC_BANKCODE} + IBAN: {ACC_IBAN} + BIC: {ACC_BIC} + Geben sie bitte im Verwendungszweck UNBEDINGT die Identifikationsnummer + {SHORTID} + und NICHTS ANDERES an.'); + +define($prefix.'FRONTEND_BUTTON_CONTINUE', 'Weiter'); +define($prefix.'FRONTEND_BUTTON_CANCEL', 'Vorherige Seite'); + +?> diff --git a/lang/german/modules/payment/hpcc.php b/lang/german/modules/payment/hpcc.php new file mode 100644 index 0000000..e448e59 --- /dev/null +++ b/lang/german/modules/payment/hpcc.php @@ -0,0 +1,77 @@ +(Bitte in EURO-CENT d.h. 5 EUR = 500 Cent).'); + +define($prefix.'MAX_AMOUNT_TITLE', 'Maximum Betrag'); +define($prefix.'MAX_AMOUNT_DESC', 'Wählen Sie hier den Maximalbetrag
(Bitte in EURO-CENT d.h. 5 EUR = 500 Cent).'); + +define($prefix.'MODULE_MODE_TITLE', 'Modul Mode'); +define($prefix.'MODULE_MODE_DESC', 'DIRECT: Die Zahldaten werden auf der Zahlverfahrenauswahl mit REGISTER Funktion erfasst (zzgl. Registrierungsgebuehr).
AFTER: Die Zahldaten werden nachgelagert mit DEBIT Funktion erfasst.'); + +define($prefix.'SAVE_REGISTER_TITLE', 'Registrierung speichern'); +define($prefix.'SAVE_REGISTER_DESC', 'Wenn Sie möchten das die Registrierungsdaten der letzten Buchung eines Kunden im Shop gespeichert werden, setzen Sie "True" und der Kunde braucht bei der zweiten Bestellung keine Zahlungsdaten mehr angeben.'); + +define($prefix.'PAY_MODE_TITLE', 'Payment Mode'); +define($prefix.'PAY_MODE_DESC', 'Wählen Sie zwischen Debit (DB) und Preauthorisation (PA).'); + +define($prefix.'TEST_ACCOUNT_TITLE', 'Test Account'); +define($prefix.'TEST_ACCOUNT_DESC', 'Wenn Transaction Mode nicht LIVE, sollen folgende Accounts (EMail) testen können. (Komma getrennt)'); + +define($prefix.'PROCESSED_STATUS_ID_TITLE', 'Bestellstatus - Erfolgreich'); +define($prefix.'PROCESSED_STATUS_ID_DESC', 'Dieser Status wird gesetzt wenn die Bezahlung erfolgreich war.'); + +define($prefix.'PENDING_STATUS_ID_TITLE', 'Bestellstatus - Wartend'); +define($prefix.'PENDING_STATUS_ID_DESC', 'Dieser Status wird gesetzt wenn die der Kunde auf einem Fremdsystem ist.'); + +define($prefix.'CANCELED_STATUS_ID_TITLE', 'Bestellstatus - Abbruch'); +define($prefix.'CANCELED_STATUS_ID_DESC', 'Dieser Status wird gesetzt wenn die Bezahlung abgebrochen wurde.'); + +define($prefix.'NEWORDER_STATUS_ID_TITLE', 'Bestellstatus - Neue Bestellung'); +define($prefix.'NEWORDER_STATUS_ID_DESC', 'Dieser Status wird zu Beginn der Bezahlung gesetzt.'); + +define($prefix.'STATUS_TITLE', 'Modul aktivieren'); +define($prefix.'STATUS_DESC', 'Möchten Sie das Modul aktivieren?'); + +define($prefix.'SORT_ORDER_TITLE', 'Anzeigereihenfolge'); +define($prefix.'SORT_ORDER_DESC', 'Reihenfolge der Anzeige. Kleinste Ziffer wird zuerst angezeigt.
Achten Sie bitte darauf das sich der Wert nicht mit einem anderen Modul deckt, da sonst eins der beiden Module ggf. nicht angezeigt wird.'); + +define($prefix.'ZONE_TITLE', 'Zahlungszone'); +define($prefix.'ZONE_DESC', 'Wenn eine Zone ausgewählt ist, gilt die Zahlungsmethode nur für diese Zone.'); + +define($prefix.'ALLOWED_TITLE', 'Erlaubte Zonen'); +define($prefix.'ALLOWED_DESC', 'Geben Sie einzeln die Zonen an, welche für dieses Modul erlaubt sein sollen. (z.B. AT,DE (wenn leer, werden alle Zonen erlaubt))'); + +define($prefix.'DEBUG_TITLE', 'Debug Modus'); +define($prefix.'DEBUG_DESC', 'Schalten Sie diesen nur auf Anweisung von Heidelpay an, da sonst eine Bezahlung im Shop nicht mehr funktioniert.'); + +define($prefix.'TEXT_INFO', ''); +define($prefix.'DEBUGTEXT', 'Das Zahlverfahren wird gerade gewartet. Bitte wählen Sie ein anderes Zahlverfahren oder versuchen Sie es zu einem späteren Zeitpunkt.'); +define($prefix.'REUSE_CARD', 'möchten Sie folgende Kreditkarte wieder verwenden?'); +define($prefix.'REUSE_CARD_NUMBER', 'KartenNr: '); +define($prefix.'REUSE_CARD_TEXT', 'Ja, Ich möchte die Karte erneut verwenden.'); +define($prefix.'WILLUSE_CARD', 'folgende Kreditkarte wird wieder verwendet.
KartenNr: '); +define($prefix.'DATA_SAVED', 'Ihre Daten wurden übertragen.
Bitte fahren Sie mit der Bestellung fort.
'); +define($prefix.'ERROR_NO_PAYDATA', 'Bitte geben Sie Ihre Zahlungsinformationen ein.'); +define($prefix.'FRONTEND_BUTTON_CONTINUE', 'Weiter'); +define($prefix.'FRONTEND_BUTTON_CANCEL', 'Vorherige Seite'); +?> diff --git a/lang/german/modules/payment/hpdc.php b/lang/german/modules/payment/hpdc.php new file mode 100644 index 0000000..e6c0724 --- /dev/null +++ b/lang/german/modules/payment/hpdc.php @@ -0,0 +1,80 @@ +(Bitte in EURO-CENT d.h. 5 EUR = 500 Cent).'); + +define($prefix.'MAX_AMOUNT_TITLE', 'Maximum Betrag'); +define($prefix.'MAX_AMOUNT_DESC', 'Wählen Sie hier den Maximalbetrag
(Bitte in EURO-CENT d.h. 5 EUR = 500 Cent).'); + +define($prefix.'MODULE_MODE_TITLE', 'Modul Mode'); +define($prefix.'MODULE_MODE_DESC', 'DIRECT: Die Zahldaten werden auf der Zahlverfahrenauswahl mit REGISTER Funktion erfasst (zzgl. Registrierungsgebuehr).
AFTER: Die Zahldaten werden nachgelagert mit DEBIT Funktion erfasst.'); + +define($prefix.'SAVE_REGISTER_TITLE', 'Registrierung speichern'); +define($prefix.'SAVE_REGISTER_DESC', 'Wenn Sie möchten das die Registrierungsdaten der letzten Buchung eines Kunden im Shop gespeichert werden, setzen Sie "True" und der Kunde braucht bei der zweiten Bestellung keine Zahlungsdaten mehr angeben.'); + +define($prefix.'DIRECT_MODE_TITLE', 'Direct Mode'); +define($prefix.'DIRECT_MODE_DESC', 'Wenn Modul Mode auf DIRECT dann wählen Sie hier ob die Zahldaten auf einer Extraseite oder in einer Lightbox eingegeben werden sollen.'); + +define($prefix.'PAY_MODE_TITLE', 'Payment Mode'); +define($prefix.'PAY_MODE_DESC', 'Wählen Sie zwischen Debit (DB) und Preauthorisation (PA).'); + +define($prefix.'TEST_ACCOUNT_TITLE', 'Test Account'); +define($prefix.'TEST_ACCOUNT_DESC', 'Wenn Transaction Mode nicht LIVE, sollen folgende Accounts (EMail) testen können. (Komma getrennt)'); + +define($prefix.'PROCESSED_STATUS_ID_TITLE', 'Bestellstatus - Erfolgreich'); +define($prefix.'PROCESSED_STATUS_ID_DESC', 'Dieser Status wird gesetzt wenn die Bezahlung erfolgreich war.'); + +define($prefix.'PENDING_STATUS_ID_TITLE', 'Bestellstatus - Wartend'); +define($prefix.'PENDING_STATUS_ID_DESC', 'Dieser Status wird gesetzt wenn die der Kunde auf einem Fremdsystem ist.'); + +define($prefix.'CANCELED_STATUS_ID_TITLE', 'Bestellstatus - Abbruch'); +define($prefix.'CANCELED_STATUS_ID_DESC', 'Dieser Status wird gesetzt wenn die Bezahlung abgebrochen wurde.'); + +define($prefix.'NEWORDER_STATUS_ID_TITLE', 'Bestellstatus - Neue Bestellung'); +define($prefix.'NEWORDER_STATUS_ID_DESC', 'Dieser Status wird zu Beginn der Bezahlung gesetzt.'); + +define($prefix.'STATUS_TITLE', 'Modul aktivieren'); +define($prefix.'STATUS_DESC', 'Möchten Sie das Modul aktivieren?'); + +define($prefix.'SORT_ORDER_TITLE', 'Anzeigereihenfolge'); +define($prefix.'SORT_ORDER_DESC', 'Reihenfolge der Anzeige. Kleinste Ziffer wird zuerst angezeigt.'); + +define($prefix.'ZONE_TITLE', 'Zahlungszone'); +define($prefix.'ZONE_DESC', 'Wenn eine Zone ausgewählt ist, gilt die Zahlungsmethode nur für diese Zone.'); + +define($prefix.'ALLOWED_TITLE', 'Erlaubte Zonen'); +define($prefix.'ALLOWED_DESC', 'Geben Sie einzeln die Zonen an, welche für dieses Modul erlaubt sein sollen. (z.B. AT,DE (wenn leer, werden alle Zonen erlaubt))'); + +define($prefix.'DEBUG_TITLE', 'Debug Modus'); +define($prefix.'DEBUG_DESC', 'Schalten Sie diesen nur auf Anweisung von Heidelpay an, da sonst eine Bezahlung im Shop nicht mehr funktioniert.'); + +define($prefix.'TEXT_INFO', ''); +define($prefix.'DEBUGTEXT', 'Das Zahlverfahren wird gerade gewartet. Bitte wählen Sie ein anderes Zahlverfahren oder versuchen Sie es zu einem späteren Zeitpunkt.'); +define($prefix.'REUSE_CARD', 'möchten Sie folgende Debitkarte wieder verwenden?'); +define($prefix.'REUSE_CARD_NUMBER', 'KartenNr: '); +define($prefix.'REUSE_CARD_TEXT', 'Ja, Ich möchte die Karte erneut verwenden.'); +define($prefix.'WILLUSE_CARD', 'folgende Debitkarte wird wieder verwendet.
KartenNr: '); +define($prefix.'DATA_SAVED', 'Ihre Daten wurden �bertragen.
Bitte fahren Sie mit der Bestellung fort.
'); +define($prefix.'ERROR_NO_PAYDATA', 'Bitte geben Sie Ihre Zahlungsinformationen ein.'); +define($prefix.'FRONTEND_BUTTON_CONTINUE', 'Weiter'); +define($prefix.'FRONTEND_BUTTON_CANCEL', 'Vorherige Seite'); +?> diff --git a/lang/german/modules/payment/hpdd.php b/lang/german/modules/payment/hpdd.php new file mode 100644 index 0000000..fb2b2db --- /dev/null +++ b/lang/german/modules/payment/hpdd.php @@ -0,0 +1,87 @@ +(Bitte in EURO-CENT d.h. 5 EUR = 500 Cent).'); + +define($prefix.'MAX_AMOUNT_TITLE', 'Maximum Betrag'); +define($prefix.'MAX_AMOUNT_DESC', 'Wählen Sie hier den Maximalbetrag
(Bitte in EURO-CENT d.h. 5 EUR = 500 Cent).'); + +define($prefix.'TEST_ACCOUNT_TITLE', 'Test Account'); +define($prefix.'TEST_ACCOUNT_DESC', 'Wenn Transaction Mode nicht LIVE, sollen folgende Accounts (EMail) testen können. (Komma getrennt)'); + +define($prefix.'PROCESSED_STATUS_ID_TITLE', 'Bestellstatus - Erfolgreich'); +define($prefix.'PROCESSED_STATUS_ID_DESC', 'Dieser Status wird gesetzt wenn die Bezahlung erfolgreich war.'); + +define($prefix.'PENDING_STATUS_ID_TITLE', 'Bestellstatus - Wartend'); +define($prefix.'PENDING_STATUS_ID_DESC', 'Dieser Status wird gesetzt wenn die der Kunde auf einem Fremdsystem ist.'); + +define($prefix.'CANCELED_STATUS_ID_TITLE', 'Bestellstatus - Abbruch'); +define($prefix.'CANCELED_STATUS_ID_DESC', 'Dieser Status wird gesetzt wenn die Bezahlung abgebrochen wurde.'); + +define($prefix.'NEWORDER_STATUS_ID_TITLE', 'Bestellstatus - Neue Bestellung'); +define($prefix.'NEWORDER_STATUS_ID_DESC', 'Dieser Status wird zu Beginn der Bezahlung gesetzt.'); + +define($prefix.'STATUS_TITLE', 'Modul aktivieren'); +define($prefix.'STATUS_DESC', 'Möchten Sie das Modul aktivieren?'); + +define($prefix.'SORT_ORDER_TITLE', 'Anzeigereihenfolge'); +define($prefix.'SORT_ORDER_DESC', 'Reihenfolge der Anzeige. Kleinste Ziffer wird zuerst angezeigt.'); + +define($prefix.'ZONE_TITLE', 'Zahlungszone'); +define($prefix.'ZONE_DESC', 'Wenn eine Zone ausgewählt ist, gilt die Zahlungsmethode nur für diese Zone.'); + +define($prefix.'ALLOWED_TITLE', 'Erlaubte Zonen'); +define($prefix.'ALLOWED_DESC', 'Geben Sie einzeln die Zonen an, welche für dieses Modul erlaubt sein sollen. (z.B. AT,DE (wenn leer, werden alle Zonen erlaubt))'); + +define($prefix.'DEBUG_TITLE', 'Debug Modus'); +define($prefix.'DEBUG_DESC', 'Schalten Sie diesen nur auf Anweisung von Heidelpay an, da sonst eine Bezahlung im Shop nicht mehr funktioniert.'); + +define($prefix.'TEXT_INFO', ''); +define($prefix.'DEBUGTEXT', 'Das Zahlverfahren wird gerade gewartet. Bitte wählen Sie ein anderes Zahlverfahren oder versuchen Sie es zu einem späteren Zeitpunkt.'); + +define($prefix.'ERROR_NO_PAYDATA', 'Bitte geben Sie Ihre Zahlungsinformationen ein.'); +define($prefix.'PAYMENT_DATA', 'Die angegebenen Lastschriftdaten sind unvollständig. Bitte geben Sie die fehlenden Daten an.'); + +define($prefix.'ACCOUNT_NUMBER', 'Kontonummer :'); +define($prefix.'ACCOUNT_BANK', 'Bankleitzahl :'); +define($prefix.'ACCOUNT_HOLDER', 'Kontoinhaber :'); + +define($prefix.'ACCOUNT_IBAN', 'IBAN :'); +define($prefix.'ACCOUNT_BIC', 'BIC :'); + +define($prefix.'ACCOUNT_SWITCH', 'Kontoinformationen :'); +define($prefix.'ACCOUNT_SWITCH_CLASSIC', 'Kontonummer & Bankleitzahl'); +define($prefix.'ACCOUNT_SWITCH_IBAN', 'IBAN'); + +define($prefix.'SUCCESS', 'Der Betrag wird in den naechsten Tagen von folgendem Konto abgebucht:

+IBAN: {ACC_IBAN}
+BIC: {ACC_BIC}
+Die Abbuchung enthaelt die Mandatsreferenz-ID: {ACC_IDENT}
+und die Glaeubiger ID: {IDENT_CRED_ID}

+Bitte sorgen Sie fuer ausreichende Deckung auf dem entsprechenden Konto.'); + +define($prefix.'FRONTEND_BUTTON_CONTINUE', 'Weiter'); +define($prefix.'FRONTEND_BUTTON_CANCEL', 'Vorherige Seite'); +?> diff --git a/lang/german/modules/payment/hpeps.php b/lang/german/modules/payment/hpeps.php new file mode 100644 index 0000000..ab1816c --- /dev/null +++ b/lang/german/modules/payment/hpeps.php @@ -0,0 +1,69 @@ +(Bitte in EURO-CENT d.h. 5 EUR = 500 Cent).'); + +define($prefix.'MAX_AMOUNT_TITLE', 'Maximum Betrag'); +define($prefix.'MAX_AMOUNT_DESC', 'Wählen Sie hier den Maximalbetrag
(Bitte in EURO-CENT d.h. 5 EUR = 500 Cent).'); + +define($prefix.'MODULE_MODE_TITLE', 'Modul Mode'); +define($prefix.'MODULE_MODE_DESC', 'DIRECT: Die Zahldaten werden auf der Zahlverfahrenauswahl mit REGISTER Funktion erfasst (zzgl. Registrierungsgebuehr).
AFTER: Die Zahldaten werden nachgelagert mit DEBIT Funktion erfasst.'); + +define($prefix.'PAY_MODE_TITLE', 'Payment Mode'); +define($prefix.'PAY_MODE_DESC', 'Wählen Sie zwischen Debit (DB) und Preauthorisation (PA).'); + +define($prefix.'TEST_ACCOUNT_TITLE', 'Test Account'); +define($prefix.'TEST_ACCOUNT_DESC', 'Wenn Transaction Mode nicht LIVE, sollen folgende Accounts (EMail) testen können. (Komma getrennt)'); + +define($prefix.'PROCESSED_STATUS_ID_TITLE', 'Bestellstatus - Erfolgreich'); +define($prefix.'PROCESSED_STATUS_ID_DESC', 'Dieser Status wird gesetzt wenn die Bezahlung erfolgreich war.'); + +define($prefix.'PENDING_STATUS_ID_TITLE', 'Bestellstatus - Wartend'); +define($prefix.'PENDING_STATUS_ID_DESC', 'Dieser Status wird gesetzt wenn die der Kunde auf einem Fremdsystem ist.'); + +define($prefix.'CANCELED_STATUS_ID_TITLE', 'Bestellstatus - Abbruch'); +define($prefix.'CANCELED_STATUS_ID_DESC', 'Dieser Status wird gesetzt wenn die Bezahlung abgebrochen wurde.'); + +define($prefix.'NEWORDER_STATUS_ID_TITLE', 'Bestellstatus - Neue Bestellung'); +define($prefix.'NEWORDER_STATUS_ID_DESC', 'Dieser Status wird zu Beginn der Bezahlung gesetzt.'); + +define($prefix.'STATUS_TITLE', 'Modul aktivieren'); +define($prefix.'STATUS_DESC', 'Möchten Sie das Modul aktivieren?'); + +define($prefix.'SORT_ORDER_TITLE', 'Anzeigereihenfolge'); +define($prefix.'SORT_ORDER_DESC', 'Reihenfolge der Anzeige. Kleinste Ziffer wird zuerst angezeigt.'); + +define($prefix.'ZONE_TITLE', 'Zahlungszone'); +define($prefix.'ZONE_DESC', 'Wenn eine Zone ausgewählt ist, gilt die Zahlungsmethode nur für diese Zone.'); + +define($prefix.'ALLOWED_TITLE', 'Erlaubte Zonen'); +define($prefix.'ALLOWED_DESC', 'Geben Sie einzeln die Zonen an, welche für dieses Modul erlaubt sein sollen. (z.B. AT,DE (wenn leer, werden alle Zonen erlaubt))'); + +define($prefix.'DEBUG_TITLE', 'Debug Modus'); +define($prefix.'DEBUG_DESC', 'Schalten Sie diesen nur auf Anweisung von Heidelpay an, da sonst eine Bezahlung im Shop nicht mehr funktioniert.'); + +define($prefix.'TEXT_INFO', ''); +define($prefix.'DEBUGTEXT', 'Das Zahlverfahren wird gerade gewartet. Bitte wählen Sie ein anderes Zahlverfahren oder versuchen Sie es zu einem späteren Zeitpunkt.'); + +define($prefix.'FRONTEND_BUTTON_CONTINUE', 'Weiter'); +define($prefix.'FRONTEND_BUTTON_CANCEL', 'Vorherige Seite'); +?> diff --git a/lang/german/modules/payment/hperror.php b/lang/german/modules/payment/hperror.php new file mode 100644 index 0000000..f3cd7e3 --- /dev/null +++ b/lang/german/modules/payment/hperror.php @@ -0,0 +1,19 @@ + \ No newline at end of file diff --git a/lang/german/modules/payment/hpgp.php b/lang/german/modules/payment/hpgp.php new file mode 100644 index 0000000..f1e3a86 --- /dev/null +++ b/lang/german/modules/payment/hpgp.php @@ -0,0 +1,75 @@ +(Bitte in EURO-CENT d.h. 5 EUR = 500 Cent).'); + +define($prefix.'MAX_AMOUNT_TITLE', 'Maximum Betrag'); +define($prefix.'MAX_AMOUNT_DESC', 'Wählen Sie hier den Maximalbetrag
(Bitte in EURO-CENT d.h. 5 EUR = 500 Cent).'); + +define($prefix.'MODULE_MODE_TITLE', 'Modul Mode'); +define($prefix.'MODULE_MODE_DESC', 'AFTER: Die Zahldaten werden nachgelagert mit DEBIT Funktion erfasst.
NOWPF: Die Zahldaten werden normal im Shop eingegeben und der Kunde wird nach der Bestellung zur Bank weitergeleitet.'); + +define($prefix.'PAY_MODE_TITLE', 'Payment Mode'); +define($prefix.'PAY_MODE_DESC', 'Wählen Sie zwischen Debit (DB) und Preauthorisation (PA).'); + +define($prefix.'TEST_ACCOUNT_TITLE', 'Test Account'); +define($prefix.'TEST_ACCOUNT_DESC', 'Wenn Transaction Mode nicht LIVE, sollen folgende Accounts (EMail) testen können. (Komma getrennt)'); + +define($prefix.'PROCESSED_STATUS_ID_TITLE', 'Bestellstatus - Erfolgreich'); +define($prefix.'PROCESSED_STATUS_ID_DESC', 'Dieser Status wird gesetzt wenn die Bezahlung erfolgreich war.'); + +define($prefix.'PENDING_STATUS_ID_TITLE', 'Bestellstatus - Wartend'); +define($prefix.'PENDING_STATUS_ID_DESC', 'Dieser Status wird gesetzt wenn die der Kunde auf einem Fremdsystem ist.'); + +define($prefix.'CANCELED_STATUS_ID_TITLE', 'Bestellstatus - Abbruch'); +define($prefix.'CANCELED_STATUS_ID_DESC', 'Dieser Status wird gesetzt wenn die Bezahlung abgebrochen wurde.'); + +define($prefix.'NEWORDER_STATUS_ID_TITLE', 'Bestellstatus - Neue Bestellung'); +define($prefix.'NEWORDER_STATUS_ID_DESC', 'Dieser Status wird zu Beginn der Bezahlung gesetzt.'); + +define($prefix.'STATUS_TITLE', 'Modul aktivieren'); +define($prefix.'STATUS_DESC', 'Möchten Sie das Modul aktivieren?'); + +define($prefix.'SORT_ORDER_TITLE', 'Anzeigereihenfolge'); +define($prefix.'SORT_ORDER_DESC', 'Reihenfolge der Anzeige. Kleinste Ziffer wird zuerst angezeigt.'); + +define($prefix.'ZONE_TITLE', 'Zahlungszone'); +define($prefix.'ZONE_DESC', 'Wenn eine Zone ausgewählt ist, gilt die Zahlungsmethode nur für diese Zone.'); + +define($prefix.'ALLOWED_TITLE', 'Erlaubte Zonen'); +define($prefix.'ALLOWED_DESC', 'Geben Sie einzeln die Zonen an, welche für dieses Modul erlaubt sein sollen. (z.B. AT,DE (wenn leer, werden alle Zonen erlaubt))'); + +define($prefix.'DEBUG_TITLE', 'Debug Modus'); +define($prefix.'DEBUG_DESC', 'Schalten Sie diesen nur auf Anweisung von Heidelpay an, da sonst eine Bezahlung im Shop nicht mehr funktioniert.'); + +define($prefix.'TEXT_INFO', ''); +define($prefix.'DEBUGTEXT', 'Das Zahlverfahren wird gerade gewartet. Bitte wählen Sie ein anderes Zahlverfahren oder versuchen Sie es zu einem späteren Zeitpunkt.'); + +define($prefix.'ERROR_NO_PAYDATA', 'Bitte geben Sie Ihre Zahlungsinformationen ein.'); + +define($prefix.'ACCOUNT_IBAN', 'IBAN :'); +define($prefix.'ACCOUNT_BIC', 'BIC :'); +define($prefix.'ACCOUNT_OWNER', 'Inhaber :'); + +define($prefix.'FRONTEND_BUTTON_CONTINUE', 'Weiter'); +define($prefix.'FRONTEND_BUTTON_CANCEL', 'Vorherige Seite'); +?> diff --git a/lang/german/modules/payment/hpidl.php b/lang/german/modules/payment/hpidl.php new file mode 100644 index 0000000..d5ed465 --- /dev/null +++ b/lang/german/modules/payment/hpidl.php @@ -0,0 +1,74 @@ +(Bitte in EURO-CENT d.h. 5 EUR = 500 Cent).'); + +define($prefix.'MAX_AMOUNT_TITLE', 'Maximum Betrag'); +define($prefix.'MAX_AMOUNT_DESC', 'Wählen Sie hier den Maximalbetrag
(Bitte in EURO-CENT d.h. 5 EUR = 500 Cent).'); + +define($prefix.'MODULE_MODE_TITLE', 'Modul Mode'); +define($prefix.'MODULE_MODE_DESC', 'AFTER: Die Zahldaten werden nachgelagert mit DEBIT Funktion erfasst.
NOWPF: Die Zahldaten werden normal im Shop eingegeben und der Kunde wird nach der Bestellung zur Bank weitergeleitet.'); + +define($prefix.'PAY_MODE_TITLE', 'Payment Mode'); +define($prefix.'PAY_MODE_DESC', 'Wählen Sie zwischen Debit (DB) und Preauthorisation (PA).'); + +define($prefix.'TEST_ACCOUNT_TITLE', 'Test Account'); +define($prefix.'TEST_ACCOUNT_DESC', 'Wenn Transaction Mode nicht LIVE, sollen folgende Accounts (EMail) testen können. (Komma getrennt)'); + +define($prefix.'PROCESSED_STATUS_ID_TITLE', 'Bestellstatus - Erfolgreich'); +define($prefix.'PROCESSED_STATUS_ID_DESC', 'Dieser Status wird gesetzt wenn die Bezahlung erfolgreich war.'); + +define($prefix.'PENDING_STATUS_ID_TITLE', 'Bestellstatus - Wartend'); +define($prefix.'PENDING_STATUS_ID_DESC', 'Dieser Status wird gesetzt wenn die der Kunde auf einem Fremdsystem ist.'); + +define($prefix.'CANCELED_STATUS_ID_TITLE', 'Bestellstatus - Abbruch'); +define($prefix.'CANCELED_STATUS_ID_DESC', 'Dieser Status wird gesetzt wenn die Bezahlung abgebrochen wurde.'); + +define($prefix.'NEWORDER_STATUS_ID_TITLE', 'Bestellstatus - Neue Bestellung'); +define($prefix.'NEWORDER_STATUS_ID_DESC', 'Dieser Status wird zu Beginn der Bezahlung gesetzt.'); + +define($prefix.'STATUS_TITLE', 'Modul aktivieren'); +define($prefix.'STATUS_DESC', 'Möchten Sie das Modul aktivieren?'); + +define($prefix.'SORT_ORDER_TITLE', 'Anzeigereihenfolge'); +define($prefix.'SORT_ORDER_DESC', 'Reihenfolge der Anzeige. Kleinste Ziffer wird zuerst angezeigt.'); + +define($prefix.'ZONE_TITLE', 'Zahlungszone'); +define($prefix.'ZONE_DESC', 'Wenn eine Zone ausgewählt ist, gilt die Zahlungsmethode nur für diese Zone.'); + +define($prefix.'ALLOWED_TITLE', 'Erlaubte Zonen'); +define($prefix.'ALLOWED_DESC', 'Geben Sie einzeln die Zonen an, welche für dieses Modul erlaubt sein sollen. (z.B. AT,DE (wenn leer, werden alle Zonen erlaubt))'); + +define($prefix.'DEBUG_TITLE', 'Debug Modus'); +define($prefix.'DEBUG_DESC', 'Schalten Sie diesen nur auf Anweisung von Heidelpay an, da sonst eine Bezahlung im Shop nicht mehr funktioniert.'); + +define($prefix.'TEXT_INFO', ''); +define($prefix.'DEBUGTEXT', 'Das Zahlverfahren wird gerade gewartet. Bitte wählen Sie ein anderes Zahlverfahren oder versuchen Sie es zu einem späteren Zeitpunkt.'); + +define($prefix.'ACCOUTNUMBER', 'Kontonr. :'); +define($prefix.'ACCOUNTBANK', 'Bank :'); +define($prefix.'ACCOUTOWNER', 'Inhaber :'); +define($prefix.'ACCOUTCOUNTRY', 'Land :'); + +define($prefix.'FRONTEND_BUTTON_CONTINUE', 'Weiter'); +define($prefix.'FRONTEND_BUTTON_CANCEL', 'Vorherige Seite'); +?> diff --git a/lang/german/modules/payment/hpiv.php b/lang/german/modules/payment/hpiv.php new file mode 100644 index 0000000..acdcd90 --- /dev/null +++ b/lang/german/modules/payment/hpiv.php @@ -0,0 +1,85 @@ +(Bitte in EURO-CENT d.h. 5 EUR = 500 Cent).'); + +define($prefix.'MAX_AMOUNT_TITLE', 'Maximum Betrag'); +define($prefix.'MAX_AMOUNT_DESC', 'Wählen Sie hier den Maximalbetrag
(Bitte in EURO-CENT d.h. 5 EUR = 500 Cent).'); + +define($prefix.'MODULE_MODE_TITLE', 'Modul Mode'); +define($prefix.'MODULE_MODE_DESC', 'DIRECT: Die Zahldaten werden auf der Zahlverfahrenauswahl mit REGISTER Funktion erfasst (zzgl. Registrierungsgebuehr).
AFTER: Die Zahldaten werden nachgelagert mit DEBIT Funktion erfasst.'); + +define($prefix.'PAY_MODE_TITLE', 'Payment Mode'); +define($prefix.'PAY_MODE_DESC', 'Wählen Sie zwischen Debit (DB) und Preauthorisation (PA).'); + +define($prefix.'TEST_ACCOUNT_TITLE', 'Test Account'); +define($prefix.'TEST_ACCOUNT_DESC', 'Wenn Transaction Mode nicht LIVE, sollen folgende Accounts (EMail) testen können. (Komma getrennt)'); + +define($prefix.'FINISHED_STATUS_ID_TITLE', 'Bestellstatus - Bezahlt'); +define($prefix.'FINISHED_STATUS_ID_DESC', 'Dieser Status wird gesetzt wenn der Geldeingang verbucht wurde.'); + +define($prefix.'PROCESSED_STATUS_ID_TITLE', 'Bestellstatus - Erfolgreich'); +define($prefix.'PROCESSED_STATUS_ID_DESC', 'Dieser Status wird gesetzt wenn die Vorkasse erfolgreich war. Noch kein Geldeingang!'); + +define($prefix.'PENDING_STATUS_ID_TITLE', 'Bestellstatus - Wartend'); +define($prefix.'PENDING_STATUS_ID_DESC', 'Dieser Status wird gesetzt wenn die der Kunde auf einem Fremdsystem ist.'); + +define($prefix.'CANCELED_STATUS_ID_TITLE', 'Bestellstatus - Abbruch'); +define($prefix.'CANCELED_STATUS_ID_DESC', 'Dieser Status wird gesetzt wenn die Bezahlung abgebrochen wurde.'); + +define($prefix.'NEWORDER_STATUS_ID_TITLE', 'Bestellstatus - Neue Bestellung'); +define($prefix.'NEWORDER_STATUS_ID_DESC', 'Dieser Status wird zu Beginn der Bezahlung gesetzt.'); + +define($prefix.'STATUS_TITLE', 'Modul aktivieren'); +define($prefix.'STATUS_DESC', 'Möchten Sie das Modul aktivieren?'); + +define($prefix.'SORT_ORDER_TITLE', 'Anzeigereihenfolge'); +define($prefix.'SORT_ORDER_DESC', 'Reihenfolge der Anzeige. Kleinste Ziffer wird zuerst angezeigt.'); + +define($prefix.'ZONE_TITLE', 'Zahlungszone'); +define($prefix.'ZONE_DESC', 'Wenn eine Zone ausgewählt ist, gilt die Zahlungsmethode nur für diese Zone.'); + +define($prefix.'ALLOWED_TITLE', 'Erlaubte Zonen'); +define($prefix.'ALLOWED_DESC', 'Geben Sie einzeln die Zonen an, welche für dieses Modul erlaubt sein sollen. (z.B. AT,DE (wenn leer, werden alle Zonen erlaubt))'); + +define($prefix.'DEBUG_TITLE', 'Debug Modus'); +define($prefix.'DEBUG_DESC', 'Schalten Sie diesen nur auf Anweisung von Heidelpay an, da sonst eine Bezahlung im Shop nicht mehr funktioniert.'); + +define($prefix.'TEXT_INFO', ''); +define($prefix.'DEBUGTEXT', 'Das Zahlverfahren wird gerade gewartet. Bitte wählen Sie ein anderes Zahlverfahren oder versuchen Sie es zu einem späteren Zeitpunkt.'); + +define($prefix.'SUCCESS', 'Ihre Transaktion war erfolgreich! + + Ueberweisen Sie uns den Betrag von {CURRENCY} {AMOUNT} auf folgendes Konto + Land : {ACC_COUNTRY} + Kontoinhaber : {ACC_OWNER} + Konto-Nr. : {ACC_NUMBER} + Bankleitzahl: {ACC_BANKCODE} + IBAN: {ACC_IBAN} + BIC: {ACC_BIC} + Geben sie bitte im Verwendungszweck UNBEDINGT die Identifikationsnummer + {SHORTID} + und NICHTS ANDERES an.'); + +define($prefix.'FRONTEND_BUTTON_CONTINUE', 'Weiter'); +define($prefix.'FRONTEND_BUTTON_CANCEL', 'Vorherige Seite'); +?> diff --git a/lang/german/modules/payment/hppp.php b/lang/german/modules/payment/hppp.php new file mode 100644 index 0000000..8ca1285 --- /dev/null +++ b/lang/german/modules/payment/hppp.php @@ -0,0 +1,85 @@ +(Bitte in EURO-CENT d.h. 5 EUR = 500 Cent).'); + +define($prefix.'MAX_AMOUNT_TITLE', 'Maximum Betrag'); +define($prefix.'MAX_AMOUNT_DESC', 'Wählen Sie hier den Maximalbetrag
(Bitte in EURO-CENT d.h. 5 EUR = 500 Cent).'); + +define($prefix.'MODULE_MODE_TITLE', 'Modul Mode'); +define($prefix.'MODULE_MODE_DESC', 'DIRECT: Die Zahldaten werden auf der Zahlverfahrenauswahl mit REGISTER Funktion erfasst (zzgl. Registrierungsgebuehr).
AFTER: Die Zahldaten werden nachgelagert mit DEBIT Funktion erfasst.'); + +define($prefix.'PAY_MODE_TITLE', 'Payment Mode'); +define($prefix.'PAY_MODE_DESC', 'Wählen Sie zwischen Debit (DB) und Preauthorisation (PA).'); + +define($prefix.'TEST_ACCOUNT_TITLE', 'Test Account'); +define($prefix.'TEST_ACCOUNT_DESC', 'Wenn Transaction Mode nicht LIVE, sollen folgende Accounts (EMail) testen können. (Komma getrennt)'); + +define($prefix.'FINISHED_STATUS_ID_TITLE', 'Bestellstatus - Bezahlt'); +define($prefix.'FINISHED_STATUS_ID_DESC', 'Dieser Status wird gesetzt wenn der Geldeingang verbucht wurde.'); + +define($prefix.'PROCESSED_STATUS_ID_TITLE', 'Bestellstatus - Erfolgreich'); +define($prefix.'PROCESSED_STATUS_ID_DESC', 'Dieser Status wird gesetzt wenn die Vorkasse erfolgreich war. Noch kein Geldeingang!'); + +define($prefix.'PENDING_STATUS_ID_TITLE', 'Bestellstatus - Wartend'); +define($prefix.'PENDING_STATUS_ID_DESC', 'Dieser Status wird gesetzt wenn die der Kunde auf einem Fremdsystem ist.'); + +define($prefix.'CANCELED_STATUS_ID_TITLE', 'Bestellstatus - Abbruch'); +define($prefix.'CANCELED_STATUS_ID_DESC', 'Dieser Status wird gesetzt wenn die Bezahlung abgebrochen wurde.'); + +define($prefix.'NEWORDER_STATUS_ID_TITLE', 'Bestellstatus - Neue Bestellung'); +define($prefix.'NEWORDER_STATUS_ID_DESC', 'Dieser Status wird zu Beginn der Bezahlung gesetzt.'); + +define($prefix.'STATUS_TITLE', 'Modul aktivieren'); +define($prefix.'STATUS_DESC', 'Möchten Sie das Modul aktivieren?'); + +define($prefix.'SORT_ORDER_TITLE', 'Anzeigereihenfolge'); +define($prefix.'SORT_ORDER_DESC', 'Reihenfolge der Anzeige. Kleinste Ziffer wird zuerst angezeigt.'); + +define($prefix.'ZONE_TITLE', 'Zahlungszone'); +define($prefix.'ZONE_DESC', 'Wenn eine Zone ausgewählt ist, gilt die Zahlungsmethode nur für diese Zone.'); + +define($prefix.'ALLOWED_TITLE', 'Erlaubte Zonen'); +define($prefix.'ALLOWED_DESC', 'Geben Sie einzeln die Zonen an, welche für dieses Modul erlaubt sein sollen. (z.B. AT,DE (wenn leer, werden alle Zonen erlaubt))'); + +define($prefix.'DEBUG_TITLE', 'Debug Modus'); +define($prefix.'DEBUG_DESC', 'Schalten Sie diesen nur auf Anweisung von Heidelpay an, da sonst eine Bezahlung im Shop nicht mehr funktioniert.'); + +define($prefix.'TEXT_INFO', ''); +define($prefix.'DEBUGTEXT', 'Das Zahlverfahren wird gerade gewartet. Bitte wählen Sie ein anderes Zahlverfahren oder versuchen Sie es zu einem späteren Zeitpunkt.'); + +define($prefix.'SUCCESS', 'Ihre Transaktion war erfolgreich! + + Ueberweisen Sie uns den Betrag von {CURRENCY} {AMOUNT} auf folgendes Konto + Land : {ACC_COUNTRY} + Kontoinhaber : {ACC_OWNER} + Konto-Nr. : {ACC_NUMBER} + Bankleitzahl: {ACC_BANKCODE} + IBAN: {ACC_IBAN} + BIC: {ACC_BIC} + Geben sie bitte im Verwendungszweck UNBEDINGT die Identifikationsnummer + {SHORTID} + und NICHTS ANDERES an.'); + +define($prefix.'FRONTEND_BUTTON_CONTINUE', 'Weiter'); +define($prefix.'FRONTEND_BUTTON_CANCEL', 'Vorherige Seite'); +?> diff --git a/lang/german/modules/payment/hpppal.php b/lang/german/modules/payment/hpppal.php new file mode 100644 index 0000000..8670bbf --- /dev/null +++ b/lang/german/modules/payment/hpppal.php @@ -0,0 +1,69 @@ +(Bitte in EURO-CENT d.h. 5 EUR = 500 Cent).'); + +define($prefix.'MAX_AMOUNT_TITLE', 'Maximum Betrag'); +define($prefix.'MAX_AMOUNT_DESC', 'Wählen Sie hier den Maximalbetrag
(Bitte in EURO-CENT d.h. 5 EUR = 500 Cent).'); + +define($prefix.'MODULE_MODE_TITLE', 'Modul Mode'); +define($prefix.'MODULE_MODE_DESC', 'DIRECT: Die Zahldaten werden auf der Zahlverfahrenauswahl mit REGISTER Funktion erfasst (zzgl. Registrierungsgebuehr).
AFTER: Die Zahldaten werden nachgelagert mit DEBIT Funktion erfasst.'); + +define($prefix.'PAY_MODE_TITLE', 'Payment Mode'); +define($prefix.'PAY_MODE_DESC', 'Wählen Sie zwischen Debit (DB) und Preauthorisation (PA).'); + +define($prefix.'TEST_ACCOUNT_TITLE', 'Test Account'); +define($prefix.'TEST_ACCOUNT_DESC', 'Wenn Transaction Mode nicht LIVE, sollen folgende Accounts (EMail) testen können. (Komma getrennt)'); + +define($prefix.'PROCESSED_STATUS_ID_TITLE', 'Bestellstatus - Erfolgreich'); +define($prefix.'PROCESSED_STATUS_ID_DESC', 'Dieser Status wird gesetzt wenn die Bezahlung erfolgreich war.'); + +define($prefix.'PENDING_STATUS_ID_TITLE', 'Bestellstatus - Wartend'); +define($prefix.'PENDING_STATUS_ID_DESC', 'Dieser Status wird gesetzt wenn die der Kunde auf einem Fremdsystem ist.'); + +define($prefix.'CANCELED_STATUS_ID_TITLE', 'Bestellstatus - Abbruch'); +define($prefix.'CANCELED_STATUS_ID_DESC', 'Dieser Status wird gesetzt wenn die Bezahlung abgebrochen wurde.'); + +define($prefix.'NEWORDER_STATUS_ID_TITLE', 'Bestellstatus - Neue Bestellung'); +define($prefix.'NEWORDER_STATUS_ID_DESC', 'Dieser Status wird zu Beginn der Bezahlung gesetzt.'); + +define($prefix.'STATUS_TITLE', 'Modul aktivieren'); +define($prefix.'STATUS_DESC', 'Möchten Sie das Modul aktivieren?'); + +define($prefix.'SORT_ORDER_TITLE', 'Anzeigereihenfolge'); +define($prefix.'SORT_ORDER_DESC', 'Reihenfolge der Anzeige. Kleinste Ziffer wird zuerst angezeigt.'); + +define($prefix.'ZONE_TITLE', 'Zahlungszone'); +define($prefix.'ZONE_DESC', 'Wenn eine Zone ausgewählt ist, gilt die Zahlungsmethode nur für diese Zone.'); + +define($prefix.'ALLOWED_TITLE', 'Erlaubte Zonen'); +define($prefix.'ALLOWED_DESC', 'Geben Sie einzeln die Zonen an, welche für dieses Modul erlaubt sein sollen. (z.B. AT,DE (wenn leer, werden alle Zonen erlaubt))'); + +define($prefix.'DEBUG_TITLE', 'Debug Modus'); +define($prefix.'DEBUG_DESC', 'Schalten Sie diesen nur auf Anweisung von Heidelpay an, da sonst eine Bezahlung im Shop nicht mehr funktioniert.'); + +define($prefix.'TEXT_INFO', ''); +define($prefix.'DEBUGTEXT', 'Das Zahlverfahren wird gerade gewartet. Bitte wählen Sie ein anderes Zahlverfahren oder versuchen Sie es zu einem späteren Zeitpunkt.'); + +define($prefix.'FRONTEND_BUTTON_CONTINUE', 'Weiter'); +define($prefix.'FRONTEND_BUTTON_CANCEL', 'Vorherige Seite'); +?> diff --git a/lang/german/modules/payment/hpsu.php b/lang/german/modules/payment/hpsu.php new file mode 100644 index 0000000..0e503f5 --- /dev/null +++ b/lang/german/modules/payment/hpsu.php @@ -0,0 +1,76 @@ +(Bitte in EURO-CENT d.h. 5 EUR = 500 Cent).'); + +define($prefix.'MAX_AMOUNT_TITLE', 'Maximum Betrag'); +define($prefix.'MAX_AMOUNT_DESC', 'Wählen Sie hier den Maximalbetrag
(Bitte in EURO-CENT d.h. 5 EUR = 500 Cent).'); + +define($prefix.'MODULE_MODE_TITLE', 'Modul Mode'); +define($prefix.'MODULE_MODE_DESC', 'DIRECT: Die Zahldaten werden auf der Zahlverfahrenauswahl mit REGISTER Funktion erfasst (zzgl. Registrierungsgebuehr).
AFTER: Die Zahldaten werden nachgelagert mit DEBIT Funktion erfasst.'); + +define($prefix.'PAY_MODE_TITLE', 'Payment Mode'); +define($prefix.'PAY_MODE_DESC', 'Wählen Sie zwischen Debit (DB) und Preauthorisation (PA).'); + +define($prefix.'TEST_ACCOUNT_TITLE', 'Test Account'); +define($prefix.'TEST_ACCOUNT_DESC', 'Wenn Transaction Mode nicht LIVE, sollen folgende Accounts (EMail) testen können. (Komma getrennt)'); + +define($prefix.'PROCESSED_STATUS_ID_TITLE', 'Bestellstatus - Erfolgreich'); +define($prefix.'PROCESSED_STATUS_ID_DESC', 'Dieser Status wird gesetzt wenn die Bezahlung erfolgreich war.'); + +define($prefix.'PENDING_STATUS_ID_TITLE', 'Bestellstatus - Wartend'); +define($prefix.'PENDING_STATUS_ID_DESC', 'Dieser Status wird gesetzt wenn die der Kunde auf einem Fremdsystem ist.'); + +define($prefix.'CANCELED_STATUS_ID_TITLE', 'Bestellstatus - Abbruch'); +define($prefix.'CANCELED_STATUS_ID_DESC', 'Dieser Status wird gesetzt wenn die Bezahlung abgebrochen wurde.'); + +define($prefix.'NEWORDER_STATUS_ID_TITLE', 'Bestellstatus - Neue Bestellung'); +define($prefix.'NEWORDER_STATUS_ID_DESC', 'Dieser Status wird zu Beginn der Bezahlung gesetzt.'); + +define($prefix.'STATUS_TITLE', 'Modul aktivieren'); +define($prefix.'STATUS_DESC', 'Möchten Sie das Modul aktivieren?'); + +define($prefix.'SORT_ORDER_TITLE', 'Anzeigereihenfolge'); +define($prefix.'SORT_ORDER_DESC', 'Reihenfolge der Anzeige. Kleinste Ziffer wird zuerst angezeigt.'); + +define($prefix.'ZONE_TITLE', 'Zahlungszone'); +define($prefix.'ZONE_DESC', 'Wenn eine Zone ausgewählt ist, gilt die Zahlungsmethode nur für diese Zone.'); + +define($prefix.'ALLOWED_TITLE', 'Erlaubte Zonen'); +define($prefix.'ALLOWED_DESC', 'Geben Sie einzeln die Zonen an, welche für dieses Modul erlaubt sein sollen. (z.B. AT,DE (wenn leer, werden alle Zonen erlaubt))'); + +define($prefix.'DEBUG_TITLE', 'Debug Modus'); +define($prefix.'DEBUG_DESC', 'Schalten Sie diesen nur auf Anweisung von Heidelpay an, da sonst eine Bezahlung im Shop nicht mehr funktioniert.'); + +define($prefix.'TEXT_INFO', ''); +define($prefix.'DEBUGTEXT', 'Das Zahlverfahren wird gerade gewartet. Bitte wählen Sie ein anderes Zahlverfahren oder versuchen Sie es zu einem späteren Zeitpunkt.'); + +define($prefix.'ERROR_NO_PAYDATA', 'Bitte geben Sie Ihre Zahlungsinformationen ein.'); + +define($prefix.'ACCOUNTNUMBER', 'KTO/IBAN :'); +define($prefix.'ACCOUNTBANK', 'BLZ/BIC :'); +define($prefix.'ACCOUTOWNER', 'Inhaber :'); + +define($prefix.'FRONTEND_BUTTON_CONTINUE', 'Weiter'); +define($prefix.'FRONTEND_BUTTON_CANCEL', 'Vorherige Seite'); + +?>