Payment - Kontrekte Modul Klasse - Referenz¶
Erweitert die abtrakte Modul Klasse um folgende Attribute und Methoden.
Meta¶
Name¶
name | schema / example | convention |
---|---|---|
class name | <namspce_prefix>_<module_name> payment_mc_my_module |
snake_case |
file name | <class_name>.php payment_mc_my_module.php |
snake_case |
configuration name | <CONFIGURATION_PREFIX>_<CLASS_NAME> MODULE_PAYMENT_PAYMENT_MC_MY_MODULE |
SCREAM_CASE |
Info
modified verwendet keine Namespaces. Unterschiedliche Modulklassen zum selben Modul können dadurch nicht den gleichen Klassennamen erhalten. Um Namenskollisionen und PHP-Fehler zu vermeiden, empfehlen wir den Namespace-Prefix payment
bei Payment-Klassen zu verwenden. Das hat zur Folge, dass ..._PAYMENT_PAYMENT_...
doppelt im Configuration-Name erscheint, was aber kein Nachteil ist.
Verzeichnis¶
name | value |
---|---|
class directory | /includes/modules/payment/ |
lang directory | /lang/<LANGUAGE>/modules/payment/ |
Prefix¶
name | value | convention |
---|---|---|
namespace prefix | payment |
snake_case |
configuration prefix | MODULE_PAYMENT |
SCREAM_CASE |
Attribute¶
$form_action_url¶
Beschreibung
Mit diesem Attribut kann festgelegt wedern, auf welche Seite das Form Element auf checkout_confirmation.php
weiterleitet, wenn auf den "Kaufen" Button geklickt wird. Ist dieses Attribut nicht vorhanden, wird standardmäßig auf
checkout_process.php
weitergleitet, wo die Bestellung erstellt wird. Soll der Shop den POST-Request auf eine andere
Seite leiten, kann hier die Url eingetragen werden. Siehe auch $tmpOrders
.
$tmpOrders¶
Beschreibung
Mit diesem Attribut kann festgelegt werden, ob in checkout_process.php
eine temporäre Bestellung erstellt werden soll.
Ist $tmpOrders
auf true
gesetzt, wird in checkout_process.php
eine Bestellung erstellt, der Kunde wird jedoch
nicht darüber per E-Mail informiert. Zudem bekommt die Bestellung den Bestellstatus aus $tmpStatus
. Ist $tmpStatus
Attribut nicht gesetzt, bekommt die Bestellung standardmäßig den Status 0 "Nicht bestätigt". Wenn $tmpOrders
auf
true
gesetzt ist, leitet der Shop in checkout_confirmation.php
nicht mehr nach $form_action_url
weiter.
$tmpStatus¶
Beschreibung
Mit $tmpStatus
kann festgelegt werden, welcher StatusId eine temporäre Bestellung soll. Siehe auch $tmpOrders
.
Methoden¶
update_status()¶
Option | Value |
---|---|
optional | ✅ |
caller | checkout_confirmation.php |
Beschreibung
Diese Methode wird vom System aufgerufen, um zu kontrollieren, ob die Zahlungsart (weiterhin) zur Verfügung steht. Z. B. können Bedingungen, wie Warenwert, Land, Kundenstatus etc. dazu führen, dass eine Zahlart nicht zur Verfühgung stehen soll. Oft wird dazu auf $order
oder $xtPrice
per global
Statement zugegriffen. Als Ergebnis kann die Methode die Klassenvariable $this->enabled
auf true
oder false
setzen.
Zeitpunkt der Verwendung
Die Methode wird zu Beginn der checkout_confirmation.php
aufgerufen.
Beispiel
public function update_status(): void
{
global $order;
if ($order->billing['country']['id'] === 1) {
$this->enabled = true;
} else {
$this->enabled = false;
}
}
pre_confirmation_check()¶
Option | Value |
---|---|
optional | ✅ |
caller | checkout_confirmation.php |
Beschreibung
// TODO: Die Method macht ...
Anmerkung
Einige Module geben bei dieser Methode als Rückgabewert boolean
true
oder false
zurück. Das ist jedoch nicht nötig, da vom modified Core kein Rückgabewert von der Methode erwartet oder verarbeitet wird.
Zeitpunkt der Verwendung
Die Methode wird in checkout_confirmation.php
aufgerufen.
Beispiel
selection()¶
Option | Value |
---|---|
optional | 🚫 |
caller | checkout_payment.php |
Beschreibung
Diese Methode wird vom System aufgerufen, um eine Eingabemaske für die Daten zur Zahlungsabwicklung anzuzeigen. In der Methode wird von vielen Modulen auf $order
per global
Statement zugegriffen. Als Ergebnis gibt die Methode ein Eingabeformular als Array zurück. Z. B. Felder zur Eingabe von Vor- und Nachname, IBAN, Kreditkartennummer etc.
Zeitpunkt der Verwendung
Die Methode wird in checkout_payment.php
aufgerufen.
Objekte und Arraystrukturen
SelectionArray (array)
Key | Typ | Beschreibung | Beispiel |
---|---|---|---|
id |
string | Eindeutiger Bezeichner der Zahlart in snake_case | mc_my_first_payment_module |
module |
string | Anzeigename auf checkout_payment.php |
Bezahlen mit MyPayment |
description |
string | Anzeigebeschreibung auf checkout_payment.php |
Einfach bezahlen mit ... |
fields |
array | Array aus mind. einem SelectionFieldArray |
// TODO: ... |
SelectionFieldArray (array)
Key | Typ | Beschreibung | Beispiel |
---|---|---|---|
title |
string | // TODO: ... | // TODO: ... |
field |
string | Html Eingabefeld | // TODO: ... |
Beispiel
public function selection(): array
{
// ...
$selectionFieldArray = [
'title' => '// TODO: ...',
'field' => '<input type="text" name="iban">'
];
$selectionArray = [
'id' => 'mc_my_first_payment_module',
'module' => 'Bezahlen mit MyPayment',
'description' => 'Einfach bezahlen mit MyPayment',
'fields' => [$selectionFieldArray]
];
return $selectionArray;
}
confirmation()¶
Option | Value |
---|---|
optional | ✅ |
caller | checkout_confirmation.php |
Beschreibung
// TODO: Die Method macht ...
Zeitpunkt der Verwendung
Die Methode wird in checkout_confirmation.php
aufgerufen.
Objekte und Arraystrukturen
ConfirmationArray (array)
Key | Typ | Beschreibung | Beispiel |
---|---|---|---|
title |
string | // TODO: ... | // TODO: ... |
fields |
array | Array aus mind. einem ConfirmationFieldArray |
ConfirmationFieldArray (array)
Key | Typ | Beschreibung | Beispiel |
---|---|---|---|
title |
string | // TODO: ... | // TODO: ... |
field |
string | // TODO: ... | // TODO: ... |
Beispiel
process_button()¶
Option | Value |
---|---|
optional | ✅ |
caller | checkout_confirmation.php |
Beschreibung
Oft wird diese Methode dazu verwendet, um mithilfe von hidden Inputfeldern Informationen per POST
request weiterzugeben. In der Methode wird von vielen Modulen auf $order
per global
Statement zugegriffen. Zudem kann mit dieser Methode weiterer Content auf der Seite angezeigt werden.
Als Ergebnis gibt die Methode ein Eingabeformular als HTML (string) zurück. Z. B. Felder für Vor- und Nachname, IBAN, Kreditkartennummer etc.
Im Checkout Schritt proccess
kann dann mit $_POST
auf die Daten zugegriffen werden.
Zeitpunkt der Verwendung
Die Methode wird in checkout_confirmation.php
aufgerufen.
Beispiel
public function process_button(): string
{
global $order;
$prefix = 'mc_my_first_payment_module_';
$htmlStr =
xtc_draw_hidden_field($prefix . 'firstname', 'Max') .
xtc_draw_hidden_field($prefix . 'lastname', 'Mustermann') .
xtc_draw_hidden_field($prefix . 'iban', 'DE...');
return $htmlStr;
}
before_process()¶
Option | Value |
---|---|
optional | ✅ |
caller | checkout_process.php |
Beschreibung
In dieser Methode können Daten für den Zahlungsablauf aufbereitet werden, kurz bevor die Bestellung in die Datenbank eingetragen wird.
// TODO: Die Method macht ...
Anmerkung
Einige Module geben bei dieser Methode als Rückgabewert boolean
true
oder false
zurück. Das ist jedoch nicht nötig, da vom modified Core kein Rückgabewert von der Methode erwartet oder verarbeitet wird.
Zeitpunkt der Verwendung
Die Methode wird in Checkout-Step process
in checkout_confirmation.php
aufgerufen, bevor die Bestellung order
verarbeitet und in die Datenbank geschrieben wird.
payment_action()¶
Option | Value |
---|---|
optional | ✅ |
caller | checkout_process.php |
Beschreibung
Die Methode wird nur aufgerufen, wenn eine temporäre Bestellung erzeugt wird. Siehe auch $tmpOrder
.
// TODO: Die Method macht ...
Zeitpunkt der Verwendung
Die Methode wird in checkout_process.php
aufgerufen.
before_send_order()¶
Option | Value |
---|---|
optional | ✅ |
caller | checkout_process.php |
Beschreibung
// TODO: Die Method macht ...
Zeitpunkt der Verwendung
Die Methode wird in checkout_process.php
aufgerufen.
after_process()¶
Option | Value |
---|---|
optional | ✅ |
caller | checkout_process.php |
Beschreibung
// TODO: Die Method macht ...
Zeitpunkt der Verwendung
Die Methode wird in checkout_process.php
aufgerufen.
success()¶
Option | Value |
---|---|
optional | ✅ |
caller | checkout_success.php |
Beschreibung
// TODO: Die Method macht ...
Zeitpunkt der Verwendung
Die Methode wird in checkout_success.php
aufgerufen.
Objekte und Arraystrukturen
SuccsessArray (array)
Key | Typ | Beschreibung | Beispiel |
---|---|---|---|
title |
string | Anzeigeinformation für den Nutzer | Bezahlen mit MyPayment |
class |
string | Eindeutiger Bezeichner der Versandart in snake_case | mc_my_first_payment_module |
fields |
array | Array aus mind. einem SuccsessFieldArray |
... |
SuccsessFieldArray (array)
Key | Typ | Beschreibung | Beispiel |
---|---|---|---|
title |
string | // TODO: ... | // TODO: ... |
field |
string | // TODO: ... | // TODO: ... |
get_error()¶
Option | Value |
---|---|
optional | ✅ |
caller | checkout_payment.php |
Beschreibung
// TODO: Die Method macht ...
Zeitpunkt der Verwendung
Die Methode wird in checkout_payment.php
aufgerufen.
Objekte und Arraystrukturen
ErrorArray (array)
Key | Typ | Beschreibung | Beispiel |
---|---|---|---|
title |
string | Titel der Fehlermeldung | // TODO: ... |
error |
string | Fehlermeldung | // TODO: ... |
iframeAction()¶
Option | Value |
---|---|
optional | ✅ |
caller | checkout_payment_iframe.php |
Beschreibung
Diese Methode wird vom System aufgerufen, eine URL zu generieren. Diese URL wird von modified in einem iFrame geöffnet.
// TODO: Die Method macht ...
Zeitpunkt der Verwendung
Die Methode wird in checkout_payment_iframe.php
aufgerufen.
javascript_validation()¶
Option | Value |
---|---|
optional | ✅ |
caller | checkout_shipping.php, checkout_payment.php |
Beschreibung
Diese Methode wird vom System aufgerufen, um Javascript in den Header zu laden.
// TODO: Die Method macht ...
Zeitpunkt der Verwendung
Die Methode wird in checkout_shipping.php
und checkout_payment.php
aufgerufen.
create_paypal_link()¶
Option | Value |
---|---|
optional | ✅ |
caller | none |
Beschreibung
Es sieht so aus, als würde diese Methode niemals vom modified Core aufgerufen werden, obwohl diese in der Klasse /includes/classes/payment.php
vorhanden ist. Es gibt externe (Drittanbieter) Module, wie Micropayment die die Methode create_paypal_link()
über die payment.php
Klasse aufrufen. Der modified Core selbst scheint dieses nicht zu tun.
// TODO: Die Method macht ...
Zeitpunkt der Verwendung
Diese Methode wird nicht vom modified Core auferufen.
info()¶
Option | Value |
---|---|
optional | ✅ |
caller | none |
Beschreibung
Es sieht so aus, als würde diese Methode niemals vom modified Core aufgerufen werden, obwohl diese in der Klasse /includes/classes/payment.php
vorhanden ist. Es gibt externe (Drittanbieter) Module, wie Micropayment die die Methode info()
über die Klasse payment.php
aufrufen. Der modified Core selbst scheint dieses nicht zu tun.
// TODO: Die Method macht ...
Zeitpunkt der Verwendung
Diese Methode wird nicht vom modified Core aufgerufen.
Beispiele¶
Beispieldateien findest du unter github.com/RobinTheHood/class-extensions.