...
Die Zahlung wird im Bestelleingang mit Hilfe eines Icons visualisiert (ColumnFormatter).
Zahlungsstatus
Icon | Beschreibung |
---|---|
Zahlung autorisiert | |
Zahlung erfolgreich, Zahlungsinformationen im Tooltip ersichtlich | |
Keine Zahlungsinformationen für dieses Formular verfügbar | |
Fehler während Zahlung/Transaktion aufgetreten | |
Zahlung auf Rechnung |
Auswertung
Die Auswertung des Bestelleingangs beinhaltet alle Formularfelder plus die zusätzliche Spalte für den Zahlungsstatus.
...
Bei mehrmaligen Transaktionsversuchen für ein Formular, erscheinen diese daher auch mehrfach pro Referenznummer/Formular-Instanz.
Transaktionsstatus
Icon | Beschreibung | Auslöser |
---|---|---|
Buchung (Transaktion) abgeschlossen | Zahlung wurde erfolgreich ausgeführt | |
Zahlungsvorgang (Transaktion) initialisiert | Zahlungsvorgang wurde gestartet, aber nie beendet oder abgebrochen | |
Zahlungsvorgang (Transaktion) durch Benutzer abgebrochen | Zahlungsvorgang wurde gestartet, später aber aktiv durch den Benutzer abgebrochen | |
Fehler, Zahlungsvorgang (Transaktion) abgebrochen | Während des Zahlungsvorgang ist ein unerwarteter Fehler (Server) |
Auswertung
Felderdefinition
Feld | Datentyp | Beispiel | Bemerkungen |
---|---|---|---|
Erstellt | Datum | 01.06.2022 | |
Referenznummer | Zeichenkette | 8388aaa5-c240-4bf0-b1f5-f0dbaea6d990 | Inhalt dieses Feldes pro Formular konfigurierbar 1) |
Status | Zeichenkette | freigegeben | initialisiert, autorisiert, freigegeben, fehler, rechnung, n/a |
Betrag | Zahl | 33.00 | |
Formulardaten | Zeichenkette | Geburtsurkunde / Auszug aus dem Geburtsregister (CIEC) | Inhalt dieses Feldes pro Formular konfigurierbar 1) |
Abteilung/Gruppe | Zeichenkette | SID_MIP_ow | |
Formular-ID | Zeichenkette | sid_abev_onlineschalter | |
Formular-Instanz | Zeichenkette | 8388aaa5-c240-4bf0-b1f5-f0dbaea6d990 | |
Beschreibung | Zeichenkette | Hans Muster, h.muster@gmx.ch | Inhalt dieses Feldes pro Formular konfigurierbar 1) |
1) Der Inhalt des Feldes kann global oder pro Formulardefinition konfiguriert werden. Es können statische sowie alle im Formular enthaltenen Feld-Werte verwendet werden.
...
beispiel_transaktionen_sidonlineschalter.csv
PostFinance Checkout Transaction
Grundsätzlich können weitere Informationen vom Zahlungsprozess hinterlegt werden.
Bei der Bestätigung/Abschluss der Zahlung wird das Transaction Objekt zurückgegeben, welches über folgende Werte verfügt:
(Potentiell interessante Felder/Werte wurden in orange eingefärbt)
...
title | Transaction Object ansehen... |
---|
PostFinance Checkout Transaction
...
de-DE: | Bezahlen Sie bequem per TWINT App auf Ihrem Mobiltelefon. |
en-US: | Conveniently pay via the TWINT app on your mobile phone. |
fr-FR: | Payez en toute simplicité avec l’application TWINT sur votre téléphone mobile. |
it-IT: | Paghi comodamente tramite l’app TWINT sul suo cellulare. |
...
de-DE: | TWINT |
en-US: | TWINT |
fr-FR: | TWINT |
it-IT: | TWINT |
...
Persistierung/Backendformular
Für die Persistierung der Zahlungstransaktionen wurde bewusst eine Mandantenspezifische Datenbanktabelle gewählt.
Dies hat den Vorteil, das kurzfristige Änderungen für die Übersicht im Backend (Transaktionen) auch ohne Änderungen am Framework möglich ist.
...
Codeblock | ||||||
---|---|---|---|---|---|---|
| ||||||
CREATE TABLE `sidabev_payment` (
`UUID` INT(11) NOT NULL DEFAULT '0',
`INSTANCE_ID` VARCHAR(255) DEFAULT NULL,
`MANDANT_ID` INT(11) NOT NULL,
`CREATED` TIMESTAMP(6) NULL DEFAULT '0000-00-00 00:00:00.000000',
`CREATED_USER` VARCHAR(255) DEFAULT NULL,
`LASTUPDATE` TIMESTAMP(6) NULL DEFAULT '0000-00-00 00:00:00.000000',
`LASTUPDATE_USER` VARCHAR(255) DEFAULT NULL,
`FORM_ID` VARCHAR(255) NULL DEFAULT NULL,
`REQUEST_ID` VARCHAR(255) NULL DEFAULT NULL,
`AMOUNT` DECIMAL(9,2) DEFAULT NULL,
`CURRENCY` VARCHAR(45) DEFAULT 'CHF',
`ORDER_NR` VARCHAR(255) NULL DEFAULT NULL,
`ORDER_DATA` VARCHAR(255) NULL DEFAULT NULL,
`ORDER_DESCRIPTION` VARCHAR(255) DEFAULT NULL,
`TRANSACTION_CREATED` DATETIME NULL DEFAULT NULL,
`TRANSACTION_AUTHORIZED` DATETIME NULL DEFAULT NULL,
`TRANSACTION_COMPLETED` DATETIME NULL DEFAULT NULL,
`TRANSACTION_TOKEN` VARCHAR(255) NULL DEFAULT NULL,
`TRANSACTION_EXPIRATION` DATETIME NULL DEFAULT NULL,
`TRANSACTION_STATUS` VARCHAR(45) DEFAULT NULL,
`TRANSACTION_DATA` VARCHAR(255) DEFAULT NULL,
`TRANSACTION_ID` VARCHAR(255) DEFAULT NULL,
`ACCESS_TOKEN` VARCHAR(255) NULL DEFAULT NULL,
`ACCESS_EXPIRATION` DATETIME NULL DEFAULT NULL,
PRIMARY KEY (`UUID`),
KEY `IDX_PAY_MANDANT_ID` (`MANDANT_ID`),
KEY `IDX_PAY_INSTANCE_ID` (`INSTANCE_ID`),
KEY `IDX_PAY_ORDER_NR` (`ORDER_NR`),
KEY `IDX_PAY_ORDER_DATA` (`ORDER_DATA`),
KEY `IDX_PAY_TRANSACTION_STATUS` (`TRANSACTION_STATUS`),
KEY `IDX_PAY_TRANSACTION_ID` (`TRANSACTION_ID`),
KEY `IDX_PAY_ACCESS_TOKEN` (`ACCESS_TOKEN`),
KEY `IDX_PAY_ACCESS_EXPIRATION` (`ACCESS_EXPIRATION`)
); |
Codeblock | ||||||
---|---|---|---|---|---|---|
| ||||||
<?xml version="1.0" encoding="UTF-8"?>
<?jaxfront version=2.30;time=2007-10-12 15:38:39.5;xui=xmlDBMapping.xui;xsd=xmlDBMapping.xsd?>
<XMLDBMapping openLinkSupported="false" performInitialSearch="false"
sortOrder="desc" tableName="SIDABEV_PAYMENT" useColumnChooser="true"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="xmlDBMapping.xsd">
<fingerprint>
<ownerColName>CREATED_USER</ownerColName>
<lastUpdateColName>LASTUPDATE</lastUpdateColName>
<updateUserColName>LASTUPDATE_USER</updateUserColName>
<userColName>CREATED_USER</userColName>
<createdColName>CREATED</createdColName>
<instanceIDColName>INSTANCE_ID</instanceIDColName>
<idColName>UUID</idColName>
<formIDMapping>
<colName>FORM_ID</colName>
<mapping>
<form value="FORM_1">FORM_1</form>
<form value="FORM_2">FORM_2</form>
</mapping>
</formIDMapping>
</fingerprint>
<field>
<id>uuid</id>
<columnName>UUID</columnName>
<showAsFilter>true</showAsFilter>
<showAsColumn>false</showAsColumn>
<userSelectableColumn>false</userSelectableColumn>
</field>
<field>
<id>created</id>
<columnName>CREATED</columnName>
<showAsFilter>true</showAsFilter>
<showAsColumn>true</showAsColumn>
</field>
<field>
<id>orderNr</id>
<columnName>ORDER_NR</columnName>
<showAsFilter>true</showAsFilter>
<showAsColumn>true</showAsColumn>
</field>
<field>
<id>transactionStatus</id>
<columnName>TRANSACTION_STATUS</columnName>
<showAsFilter>true</showAsFilter>
<showAsColumn>true</showAsColumn>
<forceInResult>true</forceInResult>
<condition>IN</condition>
<formatter className="com.jaxforms.mandant.sid.abev.payment.postfinance.TransactionStatusColumnFormatter">
<param class="com.jaxfront.persistency.AbstractSearchHandler" value="this"/>
</formatter>
</field>
<field>
<id>mandantId</id>
<columnName>MANDANT_ID</columnName>
<showAsFilter>true</showAsFilter>
<showAsColumn>false</showAsColumn>
<userSelectableColumn>false</userSelectableColumn>
<forceInResult>true</forceInResult>
</field>
<field>
<id>requestId</id>
<columnName>REQUEST_ID</columnName>
<showAsFilter>true</showAsFilter>
<showAsColumn>false</showAsColumn>
<userSelectableColumn>false</userSelectableColumn>
</field>
<field>
<id>amount</id>
<columnName>AMOUNT</columnName>
<showAsFilter>true</showAsFilter>
<showAsColumn>true</showAsColumn>
<forceInResult>true</forceInResult>
<formatter className="com.jaxforms.mandant.sid.abev.payment.postfinance.PaymentAmountColumnFormatter">
<param class="com.jaxfront.persistency.AbstractSearchHandler" value="this"/>
</formatter>
</field>
<field>
<id>currency</id>
<columnName>CURRENCY</columnName>
<showAsFilter>true</showAsFilter>
<showAsColumn>false</showAsColumn>
<forceInResult>true</forceInResult>
</field>
<field>
<id>orderDescription</id>
<columnName>ORDER_DESCRIPTION</columnName>
<showAsFilter>true</showAsFilter>
<showAsColumn>false</showAsColumn>
</field>
<field>
<id>orderData</id>
<columnName>ORDER_DATA</columnName>
<showAsFilter>true</showAsFilter>
<showAsColumn>true</showAsColumn>
</field>
<field>
<id>groupName</id>
<columnName>FORM_ID</columnName>
<showAsFilter>true</showAsFilter>
<showAsColumn>true</showAsColumn>
<formatter className="com.jaxforms.mandant.sid.abev.ui.FormGroupColumnFormatter">
<param class="String" value="NAME"/>
</formatter>
</field>
<field>
<id>formId</id>
<columnName>FORM_ID</columnName>
<showAsFilter>true</showAsFilter>
<showAsColumn>true</showAsColumn>
<forceInResult>true</forceInResult>
</field>
<field>
<id>instanceId</id>
<columnName>INSTANCE_ID</columnName>
<showAsFilter>true</showAsFilter>
<showAsColumn>true</showAsColumn>
</field>
<field>
<id>transactionId</id>
<columnName>TRANSACTION_ID</columnName>
<showAsFilter>true</showAsFilter>
<showAsColumn>false</showAsColumn>
</field>
<field>
<id>transactionCreated</id>
<columnName>TRANSACTION_CREATED</columnName>
<showAsFilter>true</showAsFilter>
<showAsColumn>false</showAsColumn>
</field>
<field>
<id>transactionAuthorized</id>
<columnName>TRANSACTION_AUTHORIZED</columnName>
<showAsFilter>true</showAsFilter>
<showAsColumn>false</showAsColumn>
</field>
<field>
<id>transactionCompleted</id>
<columnName>TRANSACTION_COMPLETED</columnName>
<showAsFilter>true</showAsFilter>
<showAsColumn>false</showAsColumn>
</field>
<field>
<id>transactionCreatedFrom</id>
<columnName>TRANSACTION_CREATED</columnName>
<dataType>dateTime</dataType>
<operatorCascade>1</operatorCascade>
<condition>>=</condition>
<operator>AND</operator>
</field>
<field>
<id>transactionCreatedTo</id>
<columnName>TRANSACTION_CREATED</columnName>
<dataType>dateTime</dataType>
<operatorCascade>1</operatorCascade>
<condition><=</condition>
</field>
<field>
<id>transactionAuthorizedFrom</id>
<columnName>TRANSACTION_AUTHORIZED</columnName>
<dataType>dateTime</dataType>
<operatorCascade>1</operatorCascade>
<condition>>=</condition>
<operator>AND</operator>
</field>
<field>
<id>transactionAuthorizedTo</id>
<columnName>TRANSACTION_AUTHORIZED</columnName>
<dataType>dateTime</dataType>
<operatorCascade>1</operatorCascade>
<condition><=</condition>
</field>
<field>
<id>transactionCompletedFrom</id>
<columnName>TRANSACTION_COMPLETED</columnName>
<dataType>dateTime</dataType>
<operatorCascade>1</operatorCascade>
<condition>>=</condition>
<operator>AND</operator>
</field>
<field>
<id>transactionCompletedTo</id>
<columnName>TRANSACTION_COMPLETED</columnName>
<dataType>dateTime</dataType>
<operatorCascade>1</operatorCascade>
<condition><=</condition>
</field>
<rowActions>
</rowActions>
<columnSequence>created</columnSequence>
<columnSequence>orderNr</columnSequence>
<columnSequence>transactionStatus</columnSequence>
<columnSequence>amount</columnSequence>
<columnSequence>orderData</columnSequence>
<columnSequence>groupName</columnSequence>
<columnSequence>formId</columnSequence>
<columnSequence>instanceId</columnSequence>
</XMLDBMapping> |
Benutzer/Gruppen
Die Berechtigung für die Anzeige der Transaktionsübersicht wird mit Benutzergruppen gesteuert.
Gruppe | Zweck | Kontext |
---|---|---|
JAX_PAYMENT | Workbencheintrag (Menu) | JAXForms (Framework) |
SID_PAY | Benutzerzuweisung | SID-ABEV (Mandant) |
SID_PAY_GLOBAL | Globaler Zugriff auf Zahlungen | SID-ABEV (Mandant) |
Benutzer, welche die Transaktionsübersicht im Backend sehen sollen, müssen der Gruppe [MANDANTNAME]_PAY zugeordnet werden.
...