Versionen im Vergleich

Schlüssel

  • Diese Zeile wurde hinzugefügt.
  • Diese Zeile wurde entfernt.
  • Formatierung wurde geändert.

...

Die Zahlung wird im Bestelleingang mit Hilfe eines Icons visualisiert (ColumnFormatter).

Zahlungsstatus

Icon

Beschreibung

Image Modified

Zahlung autorisiert

Image Modified

Zahlung erfolgreich, Zahlungsinformationen im Tooltip ersichtlich

Image Modified

Keine Zahlungsinformationen für dieses Formular verfügbar

Image Modified

Fehler während Zahlung/Transaktion aufgetreten

Image Modified

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

Image Modified

Buchung (Transaktion) abgeschlossenZahlung wurde erfolgreich ausgeführt

Image Modified

Zahlungsvorgang (Transaktion) initialisiertZahlungsvorgang wurde gestartet, aber nie beendet oder abgebrochen

Image Modified

Zahlungsvorgang (Transaktion) durch Benutzer abgebrochenZahlungsvorgang wurde gestartet, später aber aktiv durch den Benutzer abgebrochen

Image Modified

Fehler, Zahlungsvorgang (Transaktion) abgebrochenWährend des Zahlungsvorgang ist ein unerwarteter Fehler (Server)

Auswertung

Felderdefinition

FeldDatentypBeispielBemerkungen
ErstelltDatum01.06.2022
ReferenznummerZeichenkette8388aaa5-c240-4bf0-b1f5-f0dbaea6d990Inhalt dieses Feldes pro Formular konfigurierbar 1)
StatusZeichenkettefreigegebeninitialisiert, autorisiert, freigegeben, fehler, rechnung, n/a
BetragZahl33.00
FormulardatenZeichenketteGeburtsurkunde / Auszug aus dem Geburtsregister (CIEC)Inhalt dieses Feldes pro Formular konfigurierbar 1)
Abteilung/GruppeZeichenketteSID_MIP_ow
Formular-IDZeichenkettesid_abev_onlineschalter
Formular-InstanzZeichenkette8388aaa5-c240-4bf0-b1f5-f0dbaea6d990
BeschreibungZeichenketteHans Muster, h.muster@gmx.chInhalt 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)

...

titleTransaction 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
languagesql
titleSQL CREATE Anweisung
collapsetrue
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
languagexml
titleJAXForms DBM (payment.dbm)
collapsetrue
<?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_PAYMENTWorkbencheintrag (Menu)JAXForms (Framework)
SID_PAYBenutzerzuweisungSID-ABEV (Mandant)
SID_PAY_GLOBALGlobaler Zugriff auf ZahlungenSID-ABEV (Mandant)

Benutzer, welche die Transaktionsübersicht im Backend sehen sollen, müssen der Gruppe [MANDANTNAME]_PAY zugeordnet werden.

...