Hier werden die Unterschiede zwischen zwei Versionen angezeigt.
| Beide Seiten der vorigen Revision Vorhergehende Überarbeitung Nächste Überarbeitung | Vorhergehende Überarbeitung | ||
|
girocheckout:giropay:start [2022/07/26 15:46] thorstenmarx |
girocheckout:giropay:start [2024/06/05 18:24] (aktuell) michaelheumann |
||
|---|---|---|---|
| Zeile 1: | Zeile 1: | ||
| ~~NOCACHE~~ | ~~NOCACHE~~ | ||
| - | ====== giropay | + | ====== giropay ====== |
| giropay kann **ausschließlich** mit der Währung **EURO** verwendet werden. | giropay kann **ausschließlich** mit der Währung **EURO** verwendet werden. | ||
| - | <WRAP center round info 80%> | + | <WRAP center round info 70%> |
| **Wichtiger Hinweis** \\ | **Wichtiger Hinweis** \\ | ||
| - | In den nächsten Monaten stellen wir voraussichtlich schrittweise unsere Unterstützung für die bisherige giropay-Schnittstelle (s. [[/ | + | In den nächsten Monaten stellen wir voraussichtlich schrittweise unsere Unterstützung für die bisherige giropay-Schnittstelle (s. [[/ |
| + | </ | ||
| + | |||
| + | |||
| + | |||
| + | <WRAP center round info 70%> | ||
| + | **Änderung an der API** \\ | ||
| + | Folgende Änderung an der API wird in diesen Tagen durchgeführt: | ||
| + | Der Parameter merchantReconciliationReferenceNumber wird ersetzt durch merchantOrderReferenceNumber, | ||
| </ | </ | ||
| Zeile 13: | Zeile 21: | ||
| ===== Testdaten giropay ===== | ===== Testdaten giropay ===== | ||
| {{page> | {{page> | ||
| + | |||
| + | ===== Transaktionstypen ===== | ||
| + | Detaillierte Informationen zu den [[girocheckout: | ||
| + | |||
| + | <uml> | ||
| + | left to right direction | ||
| + | skinparam packageStyle rect | ||
| + | |||
| + | rectangle SALE{ | ||
| + | (SALE) --> (REFUND) | ||
| + | (REFUND) | ||
| + | } | ||
| + | rectangle AUTH { | ||
| + | (AUTH) --> (CAPTURE ) | ||
| + | (CAPTURE ) --> (REFUND ) | ||
| + | |||
| + | } | ||
| + | </ | ||
| ===== Workflow ===== | ===== Workflow ===== | ||
| Zeile 51: | Zeile 77: | ||
| - Käufer/ | - Käufer/ | ||
| - | - Shop initiiert giropay Transaktion ([[girocheckout: | + | - Shop initiiert giropay Transaktion ([[girocheckout: |
| - GiroCheckout initialisiert Transaktion bei giropay | - GiroCheckout initialisiert Transaktion bei giropay | ||
| - giropay übermittelt Ergebnis an GiroCheckout | - giropay übermittelt Ergebnis an GiroCheckout | ||
| Zeile 63: | Zeile 89: | ||
| - Bank übermittelt Ergebnis an giropay | - Bank übermittelt Ergebnis an giropay | ||
| - giropay übermittelt Ergebnis an GiroCheckout | - giropay übermittelt Ergebnis an GiroCheckout | ||
| - | - GiroCheckout benachrichtigt Shop über Ausgang ([[girocheckout: | + | - GiroCheckout benachrichtigt Shop über Ausgang ([[girocheckout: |
| - Shop verarbeitet Ausgang | - Shop verarbeitet Ausgang | ||
| - Shop sendet HTTP Statuscode an GiroCheckout | - Shop sendet HTTP Statuscode an GiroCheckout | ||
| - GiroCheckout sendet Rücksprung zum Händler an giropay | - GiroCheckout sendet Rücksprung zum Händler an giropay | ||
| - | - Käufer/ | + | - Käufer/ |
| + | |||
| + | |||
| + | ==== Reservieren (AUTH) ==== | ||
| + | {{page> | ||
| + | < | ||
| + | left to right direction | ||
| + | skinparam packageStyle rect | ||
| + | |||
| + | rectangle AUTH { | ||
| + | (AUTH) --> (capture) | ||
| + | (AUTH) --> (refund) | ||
| + | } | ||
| + | </ | ||
| + | |||
| + | ==== Reservieren/ | ||
| + | {{page> | ||
| + | < | ||
| + | left to right direction | ||
| + | skinparam packageStyle rect | ||
| + | |||
| + | rectangle SALE{ | ||
| + | (SALE) --> (refund) | ||
| + | } | ||
| + | </ | ||
| ===== API-Funktionen ===== | ===== API-Funktionen ===== | ||
| Zeile 77: | Zeile 128: | ||
| - Transaktion initiieren | - Transaktion initiieren | ||
| - Bezahlinformation an Händler übermitteln | - Bezahlinformation an Händler übermitteln | ||
| - | - Bezahlinformation mit Käuferbrowserweiterleitung zurück zum Händler (durch Käufer nach Zahlung ausgelöst) | + | - Bezahlinformation mit Käuferbrowserweiterleitung zurück zum Händler (durch Käufer nach Zahlung ausgelöst |
| Im Folgenden werden die API-Felder und Aufrufe näher erläutert. | Im Folgenden werden die API-Felder und Aufrufe näher erläutert. | ||
| Zeile 98: | Zeile 149: | ||
| |amount | |amount | ||
| |currency | |currency | ||
| - | |purpose | + | |purpose |
| - | |shoppingCartType |Optional | String | + | |type |
| - | |shippingAddresseFirstName |(s. Beschr.) |String | + | |shoppingCartType |Optional | String(19) |Typ des Warenkorbs. Folgende Werte sind zulässig: \\ PHYSICAL = Alle Waren im Warenkorb sind physischer Natur, \\ DIGITAL = Alle Waren im Warenkorb sind digitaler Natur (benötigen also keinen Versand), \\ MIXED = Der Warenkorb enthält sowohl physische als auch digitale Waren (dies ist der Default-Wert, |
| - | |shippingAddresseLastName | + | |shippingAddresseFirstName |(s. Beschr.) |String(100) | Vorname des Addressaten, |
| - | |shippingCompany | + | |shippingAddresseLastName |
| - | |shippingAdditionalAddressInformation |Optional | + | |shippingCompany |
| - | |shippingStreet | + | |shippingAdditionalAddressInformation |Optional |
| - | |shippingStreetNumber |Optional | + | |shippingStreet |
| - | |shippingZipCode | + | |shippingStreetNumber |Optional |
| - | |shippingCity | + | |shippingZipCode |
| - | |shippingCountry | + | |shippingCity |
| - | |shippingEmail | + | |shippingCountry |
| - | |merchantReconciliationReferenceNumber | + | |shippingEmail |
| - | |cart | + | |merchantOrderReferenceNumber |
| - | |deliveryType |Optional | String | + | |cart |
| - | |urlRedirect | + | |deliveryType |Optional | String(12) |
| - | |urlNotify | + | |urlRedirect |
| - | |hash | + | |urlNotify |
| + | |kassenzeichen | ||
| + | |giropayCustomerId | ||
| + | |hash | ||
| == Beispiel == | == Beispiel == | ||
| - | {{page> | + | {{page> |
| === Antwort === | === Antwort === | ||
| Zeile 127: | Zeile 181: | ||
| ^Name | ^Name | ||
| |rc | |rc | ||
| - | |msg |Ja | + | |msg |Ja |
| - | |reference | + | |reference |
| - | |redirect | + | |redirect |
| ^HEADER Parameter^^^^ | ^HEADER Parameter^^^^ | ||
| - | |hash | + | |hash |
| == Beispiel im Erfolgsfall == | == Beispiel im Erfolgsfall == | ||
| - | {{page> | + | {{page> |
| == Beispiel im Fehlerfall == | == Beispiel im Fehlerfall == | ||
| - | {{page> | + | {{page> |
| + | |||
| + | ==== SEPA-konforme Zeichen ==== | ||
| + | {{page> | ||
| === cart-Element === | === cart-Element === | ||
| Zeile 143: | Zeile 200: | ||
| ^Name | ^Name | ||
| - | |name | + | |name |
| - | |ean |Optional | + | |ean |Optional |
| - | |quantity | + | |quantity |
| |grossAmount | |grossAmount | ||
| Zeile 177: | Zeile 234: | ||
| == GET Parameter == | == GET Parameter == | ||
| - | ^Name | + | ^Name |
| - | |gcReference | + | |gcReference |
| - | |gcMerchantTxId | + | |gcMerchantTxId |
| - | |gcBackendTxId | + | |gcBackendTxId |
| - | |gcAmount | + | |gcAmount |
| - | |gcCurrency | + | |gcCurrency |
| - | |gcResultPayment | + | |gcResultPayment |
| - | |gcHash | + | |gcHash |
| === Antwort === | === Antwort === | ||
| Zeile 205: | Zeile 262: | ||
| ^Name | ^Name | ||
| ^ | ^ | ||
| - | |gcReference | + | |gcReference |
| - | |gcMerchantTxId | + | |gcMerchantTxId |
| - | |gcBackendTxId | + | |gcBackendTxId |
| |gcAmount | |gcAmount | ||
| - | |gcCurrency | + | |gcCurrency |
| - | |gcResultPayment | + | |gcResultPayment |
| - | |gcHash | + | |gcHash |
| ===== Senderinformationen abrufen ===== | ===== Senderinformationen abrufen ===== | ||
| Zeile 229: | Zeile 286: | ||
| == Beispiel == | == Beispiel == | ||
| - | {{page> | + | {{page> |
| === Antwort === | === Antwort === | ||
| Zeile 237: | Zeile 294: | ||
| ^Name | ^Name | ||
| |rc | |rc | ||
| - | |msg |Ja | + | |msg |Ja |
| - | |accountholder | + | |accountholder |
| - | |iban | + | |iban |
| - | |bic |Optional |String | + | |bic |Optional |String(11) |
| ^HEADER Parameter^^^^ | ^HEADER Parameter^^^^ | ||
| - | |hash | + | |hash |
| == Beispiel im Erfolgsfall == | == Beispiel im Erfolgsfall == | ||
| - | {{page> | + | {{page> |
| == Beispiel im Fehlerfall == | == Beispiel im Fehlerfall == | ||
| - | {{page> | + | {{page> |
| + | ===== Weitere Transaktionsarten ===== | ||
| + | Diese Transaktionen verweisen (referenzieren) auf eine zuvor erfolgte Transaktion. Die Transaktion basiert auf einer Server-zu-Server-Kommunikation und erfordert keine Kundenaktion (Eingabe von Daten). | ||
| + | |||
| + | Bereitzustellen von: GiroCheckout \\ | ||
| + | Aufzurufen von: Händler \\ | ||
| + | |||
| + | ==== Workflow ==== | ||
| + | |||
| + | <uml> | ||
| + | hide footbox | ||
| + | |||
| + | participant " | ||
| + | participant " | ||
| + | participant " | ||
| + | |||
| + | autonumber | ||
| + | |||
| + | shop -> girocheckout: | ||
| + | girocheckout -> gp: | ||
| + | gp -> girocheckout: | ||
| + | girocheckout -> shop: | ||
| + | |||
| + | center footer (c)2024 by S-Public Services GmbH | ||
| + | </ | ||
| + | |||
| + | - Shop sendet referenzierende Transaktion | ||
| + | - GiroCheckout leitet Transaktion zu giropay | ||
| + | - giropay übermittelt Ergebnis an GiroCheckout | ||
| + | - Shop bekommt Rückmeldung über Transaktionsausgang ([[girocheckout: | ||
| + | |||
| + | ==== Buchen (CAPTURE) ==== | ||
| + | {{page> | ||
| + | |||
| + | <uml> | ||
| + | left to right direction | ||
| + | skinparam packageStyle rect | ||
| + | |||
| + | rectangle AUTH { | ||
| + | (auth) --> (CAPTURE) | ||
| + | } | ||
| + | </ | ||
| + | |||
| + | ==== Erstattung (REFUND) ==== | ||
| + | {{page> | ||
| + | <uml> | ||
| + | left to right direction | ||
| + | skinparam packageStyle rect | ||
| + | |||
| + | rectangle SALE{ | ||
| + | (sale) --> (REFUND) | ||
| + | } | ||
| + | rectangle AUTH { | ||
| + | (auth) --> (REFUND ) | ||
| + | } | ||
| + | </ | ||
| + | |||
| + | === POST Parameter === | ||
| + | URL CAPTURE: https:// | ||
| + | URL REFUND: https:// | ||
| + | |||
| + | ^Name | ||
| + | ^::: ^ CAPTURE ^ REFUND ^::: ^::: ^ | ||
| + | |merchantId | ||
| + | |projectId | ||
| + | |merchantTxId | ||
| + | |amount | ||
| + | |currency | ||
| + | |purpose | ||
| + | |reference | ||
| + | |merchantReconciliationReferenceNumber |Optional |Optional | ||
| + | |final | ||
| + | |kassenzeichen | ||
| + | |hash | ||
| + | |||
| + | == Beispiel == | ||
| + | {{page> | ||
| + | |||
| + | === Antwort === | ||
| + | Die Antwort besteht aus einem JSON Objekt. Das Feld resultPayment liefert einen Fehlercode zurück. Wird resultPayment = 4000 zurückgeliefert, | ||
| + | |||
| + | == Parameter == | ||
| + | ^Name | ||
| + | |rc | ||
| + | |msg |Ja | ||
| + | |reference | ||
| + | |merchantTxId | ||
| + | |backendTxId | ||
| + | |amount | ||
| + | |currency | ||
| + | |resultPayment | ||
| + | |hash | ||
| + | |||
| + | == Beispiel im Erfolgsfall == | ||
| + | {{page> | ||
| + | |||
| + | == Beispiel im Fehlerfall == | ||
| + | {{page> | ||
| + | |||
| + | ==== Stornierung (VOID) ==== | ||
| + | {{page> | ||
| + | |||
| + | === POST Parameter === | ||
| + | URL VOID: https:// | ||
| + | |||
| + | ^Name | ||
| + | |merchantId | ||
| + | |projectId | ||
| + | |merchantTxId | ||
| + | |reference | ||
| + | |hash | ||
| + | |||
| + | == Beispiel == | ||
| + | {{page> | ||
| + | |||
| + | === Antwort === | ||
| + | Die Antwort besteht aus einem JSON Objekt. Das Feld rc liefert einen Fehlercode zurück. Wird rc = 0 zurückgeliefert, | ||
| + | |||
| + | == Parameter == | ||
| + | ^Name | ||
| + | |rc | ||
| + | |msg |Ja | ||
| + | |reference | ||
| + | |referenceParent | ||
| + | |merchantTxId | ||
| + | |backendTxId | ||
| + | |amount | ||
| + | |currency | ||
| + | |resultPayment | ||
| + | |hash | ||
| + | |||
| + | == Beispiel im Erfolgsfall == | ||
| + | {{page> | ||
| + | |||
| + | == Beispiel im Fehlerfall == | ||
| + | {{page> | ||