Änderungen

Zahlungs-Gateways erstellen

400 Byte hinzugefügt, 11:09, 5. Okt. 2018
Im Ordner '''modules/payment''' liegen alle Zahlungs-Gateways. Jedes Zahlungsgateway hat dort einen Ordner mit einem Namen für dieses (nur Kleinbuchstaben; natürlich können Abkürzungen verwaltet werden). Dieser kurze Name wird im Folgenden als ''Kurzname'' bezeichnet.
In einem Ordner eines Gateways wiederum muss sich eine Datei mit dem Kurznamen des Gateways und der Endung ''.php'' befinden. Diese Datei stellt die Hauptdatei des Gateways dar. Außerdem muss ein Ordner ''language'' für den Support mehrerer Sprachen existieren, wenn Sie mehrere Sprachen unterstützen möchten. Für [[Smarty]]-Templates kann zum Beispiel ein seperater separater Ordner ''templates'' angelegt werden.
== Aufbau der Hauptdatei ==
</source>
Für jede Gateway-Klasse sollte ein eigener Konstruktor geschrieben werden. Dieser muss den Konstruktor von ''PaymentGateway'' (der Oberklasse) aufrufen und sollte die aktuelle Sprache festsetzen. Außerdem müssen die Sprachdateien geladen werden. Wir lernen hier den Ausnahmen-Typ ''ModuleException'' kennen. Ein Wurf einer solchen Ausnahme wird das Modul nicht laden , sondern ignorieren.
<source lang="php">
== getPaymentHandler() ==
..Diese Methode kann definieren, welcher Code ausgeführt werden soll, wenn die URL <code>SOURCEDESK_URL/credit/pay/GATEWAY_NAME</code> aufgerufen wird.
== makeCashboxPayment($hash) ==
..Diese Methode startet den Zahlungsvorgang für eine Cashbox-Zahlung mit dem Hash ''$hash''.
== getIpnHandler() ==
..Diese Methode wird aufgerufen, wenn die URL <code>SOURCEDESK_URL/ipn/GATEWAY_NAME</code> aufgerufen wird.
== Gebühren ==
Als ''$data'' verwenden Sie am besten die eingegeben Rohdaten, indem Sie zum Beispiel ''$_POST'' dumpen. Achten Sie hierbei unbedingt auf die Entfernung langer oder unnötiger Werte, um das Zahlungs-Log im Adminbereich nicht zu sprengen. Für ''$log'' ist normalerweise ein eigener String vorgesehen, der die Aktionen des IPN-Handlers beschreibt. (Zeilenumbruch durch \n) Es eignet sich hierfür eine try-catch-Struktur.
 
== Cashbox ==
...
 
== Sprachsystem ==
...
== Weiteres ==
$this->admin_warning = "Warntext";
</source>
 
== Beispiel-Integrationen ==
Sie finden Beispiel-Integrationen in ''modules/gateways/''.