Versionen im Vergleich

Schlüssel

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

Inhalt

Payrexx ist ein Schweizer Zahlungs-Gateway, das mehrere Zahlungsdienstleister (PSP: Kreditkarten, TWINT, PostFinance, PayPal) hinter einer REST-API bündelt. JAXForms legt beim Absenden eines Formulars ein Payrexx-Gateway an, leitet die Bürger:in zur Zahlung weiter, prüft die Zahlung danach über die API und belastet sie (Capture). Stand: 23.10.2026.

...

Settings Payrexx Interface

Packagename im settings.xml: com.jaxforms.payment.provider.payrexx.PayrexxService.*

PropertyData typeRequiredDefaultDescription
apiBaseUrlString
https://api.payrexx.com/v1.0/Basis-URL der Payrexx REST-API (inkl. Version, mit abschliessendem /).
instanceString✔
Name der Payrexx-Instanz ({INSTANZ}.payrexx.com). Wird bei jedem API-Aufruf als Query-Parameter instance mitgegeben.
apiSecretString✔
API-Secret der Instanz (Payrexx: Einstellungen > API). Wird als Header X-API-KEY gesendet und nicht geloggt.
paymentCurrencyString
CHFWährung für die Bezahlung. Wert kann in Formular/Workflow überschrieben werden.
authorizationModeEnum (String)
RESERVATIONRESERVATION: Betrag wird reserviert und danach belastet. PRE_AUTHORIZATION: Karte wird vorautorisiert und danach belastet.
captureAfterAuthorizingBoolean
trueBelastung (Capture) direkt nach erfolgreicher Autorisierung. Bei false bleibt die Zahlung reserviert und muss ausserhalb von JAXForms belastet werden.
paymentMethodsListe
alle der InstanzKommagetrennte Liste der erlaubten Zahlungsmittel (Payrexx-Parameter pm), z.B. visa, mastercard, twint.
pspListe
alle der InstanzKommagetrennte Liste der erlaubten PSP-IDs (Payrexx-Parameter psp).
lookAndFeelProfileString

ID eines Look-and-Feel-Profils der Payrexx-Instanz für die Checkout-Seite.
validityMinutesint
60Gültigkeit des Payrexx-Gateways in Minuten.
modalJsUrlString
https://media.payrexx.com/modal/v1/modal.min.jsScript für das Payrexx-Modal (nur Modus MODAL).
clientCallbackUrlString
URL des FormularsRückkehr-URL nach der Zahlung (success, failed, cancel). Ohne Angabe wird die URL des aufrufenden Formulars verwendet. JAXForms hängt das Token serverAccessToken an.
retryTimeoutint
30Maximale Wartezeit in Sekunden für die Prüfung der Zahlung.
retryIntervalint
1Abstand in Sekunden zwischen den Abfragen bei Payrexx, mindestens 1.


Codeblock
languagexml
titleBeispiel: payment-settings.xml Einstellungen
collapsetrue
<?jaxfront version=3.26.1;time=2019-04-11 16:39:07.663;xui=property.xui;xsd=property.xsd?>
<properties xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="property.xsd">
 <property mutable="true">
  <key>com.jaxforms.payment.provider.payrexx.PayrexxService.apiBaseUrl</key>
  <value>https://api.payrexx.com/v1.16/</value>
 </property>
 <property mutable="true">
  <key>com.jaxforms.payment.provider.payrexx.PayrexxService.instance</key>
  <value>{INSTANZ}</value>
 </property>
 <property mutable="true">
  <key>com.jaxforms.payment.provider.payrexx.PayrexxService.apiSecret</key>
  <value>{API_SECRET}</value>
 </property>
 <property mutable="true">
  <key>com.jaxforms.payment.provider.payrexx.PayrexxService.paymentCurrencyValue</key>
  <value>CHF</value>
 </property>
 <property mutable="true">
  <key>com.jaxforms.payment.provider.payrexx.PayrexxService.authorizationMode</key>
  <value>RESERVATION</value>
 </property>
 <property mutable="true">
  <key>com.jaxforms.payment.provider.payrexx.PayrexxService.captureAfterAuthorizing</key>
  <value>true</value>
 </property>
 <property mutable="true">
  <key>com.jaxforms.payment.provider.payrexx.PayrexxService.paymentMethods</key>
  <value>visa, mastercard, twint</value>
 </property>
 <property mutable="true">
  <key>com.jaxforms.payment.provider.payrexx.PayrexxService.validityMinutes</key>
  <value>60</value>
 </property>
</properties>

...

Mapping

Beim Absenden legt JAXForms ein Payrexx-Gateway an (POST Gateway/). Die Felder werden so befüllt:

Payrexx GatewayDefaultJAXForms VariablenBeschreibung
amount
paymentAmountBetrag in Rappen (Betrag × 100, gerundet).
currencyCHFpaymentCurrency
purposeInstanceID (Form)paymentOrderDescriptionZahlungszweck, auf der Checkout-Seite sichtbar.
referenceIdRandomUUIDpaymentOrderIdReferenz der Zahlung bei Payrexx.
languageFormInstance.language
Fixer Wert, kann nicht überschrieben werden.
successRedirectUrlclientCallbackUrl + Token
Fixer Wert, kann nicht überschrieben werden.
failedRedirectUrl, cancelRedirectUrlclientCallbackUrl + Token
Fixer Wert, kann nicht überschrieben werden. Abbruch und Fehler führen auf dieselbe URL.
reservation, preAuthorizationreservation=true
Abgeleitet aus authorizationMode.
skipResultPagetrue
Fixer Wert, kann nicht überschrieben werden.
validity60
Aus validityMinutes.
pm, pspnicht gesetzt
Aus paymentMethods bzw. psp, nur wenn konfiguriert.
lookAndFeelProfilenicht gesetzt
Nur wenn konfiguriert.

Anmerkung: paymentOrderData (Default «JAXForms») wird nur in JAXForms gespeichert und nicht an Payrexx übermittelt.

Zahlungsmittel

Das Zahlungsmittel der Transaktion (payment.brand) wird über payrexx-converters.xml (Converter paymentConfig) in die Spalte PAYMENT_METHOD übersetzt. Mandanten können die Datei unter resources/{MANDANT}/payrexx-converters.xml überschreiben; sonst gilt die Version aus resources/SYSTEM/PAYMENT/.

Codeblock
languagexml
titlepayrexx-converters.xml (SYSTEM)
collapsetrue
<transform>
	<converter id="paymentConfig" default="na">
		<entry from="visa" to="visa"/>
		<entry from="mastercard" to="mastercard"/>
		<entry from="twint" to="twint"/>
		<entry from="postfinance" to="postcard"/>
		<entry from="paypal" to="paypal"/>
		<entry from="amex" to="amex"/>
	</converter>
</transform>

...

Workflow Action

Das E-Payment-Plugin ist als Workflow-Aktion in ein Formular eingebunden. Für Payrexx gibt es eine Aktion für beide Modi; der Modus wird über die Workflow-Property integrationMode gewählt.

Aktion: com.jaxforms.payment.workflow.SaveFormPayrexxAction

integrationModeBeschreibungStatus
FORWARD (Default)Weiterleitung auf die Payrexx-Checkout-Seite. Sobald die Transaktion abgeschlossen ist, kehrt man auf das Formular zurück.Unterstützt
MODALDie Transaktion wird in einem Payrexx-Fenster innerhalb des Formulars abgehandelt.Unterstützt

Ablauf

  1. Die Bürger:in klickt auf den Zahlungs-Button. JAXForms legt ein Gateway an und speichert die Zahlung mit Status INITIALIZED.
  2. Die Bürger:in bezahlt auf der Payrexx-Seite und kehrt mit dem serverAccessToken auf das Formular zurück.
  3. JAXForms fragt den Status des Gateways bei Payrexx ab (bis 30 Sekunden) und speichert Transaktion, Status und Zahlungsmittel.
  4. Ist die Zahlung reserviert bzw. autorisiert und captureAfterAuthorizing=true, wird sie belastet. Ist sie bereits belastet (CONFIRMED, z.B. bei PSP ohne Reservation), entfällt der Capture.
  5. Erst danach wird das Formular eingereicht.
Info
titleVerhalten bei Fehlern

Schlägt die Zahlung fehl oder wird sie abgebrochen, wird sie bei Payrexx storniert bzw. als FAILED markiert, und das Formular bleibt offen. Schlägt der Capture fehl, wird die Zahlung auf ERROR gesetzt und das Formular nicht eingereicht. Die Reservation wird dabei bewusst nicht storniert: Ein Timeout kann bei Payrexx trotzdem erfolgreich gewesen sein. Solche Zahlungen im Payrexx-Backoffice prüfen.

Statuswerte

StatusBedeutungStatusspalte (ColumnStatus)
INITIALIZEDGateway angelegt, noch keine Zahlung.NA
RESERVED, AUTHORIZEDBetrag reserviert bzw. vorautorisiert, noch nicht belastet.RESERVED
CONFIRMEDBetrag belastet.PAY_SUCCESSFUL
CANCELLED, DECLINED, FAILEDStorniert, abgelehnt oder fehlgeschlagen.CANCELED
ERRORTechnischer Fehler, Details in TRANSACTION_DATA.ERROR