Hier werden die Unterschiede zwischen zwei Versionen angezeigt.
Beide Seiten der vorigen Revision Vorhergehende Überarbeitung Nächste Überarbeitung | Vorhergehende Überarbeitung | ||
girocheckout:ideal:start [2013/10/10 09:42] thorstenmarx |
girocheckout:ideal:start [2023/05/07 08:01] (aktuell) michaelheumann |
||
---|---|---|---|
Zeile 1: | Zeile 1: | ||
+ | ~~NOCACHE~~ | ||
====== iDEAL ====== | ====== iDEAL ====== | ||
- | Dokumentation steht ab Mitte Oktober | + | ===== Testdaten ===== |
+ | |||
+ | {{page> | ||
+ | |||
+ | ===== Workflow ===== | ||
+ | < | ||
+ | hide footbox | ||
+ | |||
+ | participant " | ||
+ | participant " | ||
+ | participant " | ||
+ | participant " | ||
+ | participant " | ||
+ | |||
+ | autonumber | ||
+ | |||
+ | customer -> shop: | ||
+ | shop -> girocheckout: | ||
+ | girocheckout -> shop: | ||
+ | shop -> girocheckout: | ||
+ | girocheckout -> ideal: | ||
+ | ideal -> girocheckout: | ||
+ | girocheckout -> shop: | ||
+ | shop -> customer: | ||
+ | customer -> bank: | ||
+ | bank -> customer: | ||
+ | customer -> bank: | ||
+ | bank -> bank: | ||
+ | bank -> ideal: | ||
+ | ideal -> girocheckout: | ||
+ | girocheckout -> shop | ||
+ | shop -> shop: | ||
+ | shop -> girocheckout: | ||
+ | girocheckout -> ideal: | ||
+ | ideal -> shop: | ||
+ | |||
+ | |||
+ | center footer (c)2013 by GiroSolution AG | ||
+ | </ | ||
+ | |||
+ | - Käufer wählt Zahlart iDEAL aus | ||
+ | - Shop prüft teilnehmende Banken ([[girocheckout: | ||
+ | - Shop bekommt Rückmeldung, | ||
+ | - Shop initiiert iDEAL Transaktion ([[girocheckout: | ||
+ | - GiroCheckout initialisiert Transaktion bei iDEAL | ||
+ | - iDEAL übermittelt Ergebnis an GiroCheckout | ||
+ | - Shop bekommt Rückmeldung über Initialisierungsausgang (bei Fehler ist Transaktion beendet) | ||
+ | - Shop sendet Redirect URL an Kundenbrowser | ||
+ | - Kundenbrowser leitet zum Online-Banking weiter | ||
+ | - Online-Banking zeigt Kundenloginseite an | ||
+ | - Kunde autorisiert Transaktion | ||
+ | - Bank führt Überweisung durch | ||
+ | - Bank übermittelt Ergebnis an iDEAL | ||
+ | - iDEAL übermittelt Ergebnis an GiroCheckout | ||
+ | - GiroCheckout benachrichtigt Shop über Transaktionsausgang ([[girocheckout: | ||
+ | - Shop verarbeitet Transaktionsausgang | ||
+ | - Shop sendet HTTP Statuscode an GiroCheckout | ||
+ | - GiroCheckout sendet Rücksprung zum Händler an iDEAL | ||
+ | - Kunde klickt " | ||
+ | ===== API-Funktionen ===== | ||
+ | |||
+ | ==== Übersicht ===== | ||
+ | |||
+ | Wie im Workflow dargestellt gibt es mehrere API-Aufrufe während einer iDEAL Transaktion. | ||
+ | |||
+ | - iDEAL Bankenabfrage | ||
+ | - Transaktion initiieren | ||
+ | - Bezahlinformation an Händler übermitteln | ||
+ | - 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 erleutert. | ||
+ | |||
+ | |||
+ | ==== iDEAL Bankenabfrage ==== | ||
+ | Gibt eine Liste zurück, welche alle iDEAL Banken enthält. Aus dieser Bankenliste muss der Käufer seine Bank auswählen. | ||
+ | |||
+ | **URL:** https:// | ||
+ | **Bereitzustellen von:** GiroSolution AG \\ | ||
+ | **Aufzurufen von:** Händler | ||
+ | |||
+ | == POST Parameter == | ||
+ | ^Name | ||
+ | |merchantId | ||
+ | |projectId | ||
+ | |hash | ||
+ | |||
+ | == Beispiel == | ||
+ | {{page> | ||
+ | |||
+ | === Antwort === | ||
+ | Die Antwort enthält ein JSON Objekt. Wenn **rc = 0** zurückgeliefert wird, enthält das Element **issuer** die zur Verfügung | ||
+ | |||
+ | == Parameter == | ||
+ | ^Name | ||
+ | |rc | ||
+ | |msg |Ja | ||
+ | |issuer | ||
+ | ^HEADER Parameter^^^^ | ||
+ | |hash | ||
+ | |||
+ | == Beispiel == | ||
+ | {{page> | ||
+ | |||
+ | |||
+ | |||
+ | ==== Initialisierung einer iDEAL Zahlung ==== | ||
+ | |||
+ | Durch eine erfolgreiche Initialisierung wird eine Referenznummer erstellt sowie ein Weiterleitunslink (redirect) an den Händler übermittelt. Der übermittelte Link führt zum Onlinebanking des Käufers. Er muss an diese URL weitergeleitet werden. Dies kann durch einen HTTP-Redirect-Header, | ||
+ | |||
+ | === Anfrage === | ||
+ | **URL:** https:// | ||
+ | **Bereitzustellen von:** GiroCheckout \\ | ||
+ | **Aufzurufen von:** Händler | ||
+ | |||
+ | == POST Parameter == | ||
+ | ^Name | ||
+ | |merchantId | ||
+ | |projectId | ||
+ | |merchantTxId | ||
+ | |amount | ||
+ | |currency | ||
+ | |purpose | ||
+ | |issuer | ||
+ | |urlRedirect | ||
+ | |urlNotify | ||
+ | |kassenzeichen | ||
+ | |hash | ||
+ | |||
+ | |||
+ | == Beispiel == | ||
+ | {{page> | ||
+ | |||
+ | === Antwort === | ||
+ | Die Antwort enthält ein JSON Objekt. Das Feld rc liefert einen Fehlercode zurück. Wird rc = 0 zurückgeliefert, | ||
+ | |||
+ | == Parameter == | ||
+ | ^Name | ||
+ | |rc | ||
+ | |msg |Ja | ||
+ | |reference | ||
+ | |redirect | ||
+ | ^HEADER Parameter^^^^ | ||
+ | |hash | ||
+ | |||
+ | == Beispiel im Erfolgsfall == | ||
+ | {{page> | ||
+ | |||
+ | == Beispiel im Fehlerfall == | ||
+ | {{page> | ||
+ | |||
+ | ==== Benachrichtigung über den Zahlungsausgang ==== | ||
+ | |||
+ | Der Ausgang einer iDEAL Zahlung wird, an die im // | ||
+ | |||
+ | Aufgrund des iDEAL Ablaufes findet **keine automatische Rückleitung des Käufers** an die im Parameter // | ||
+ | |||
+ | === Anfrage === | ||
+ | **URL:** notifyUrl aus der Transaktionsinitialisierung \\ | ||
+ | **Bereitzustellen von:** Händler \\ | ||
+ | **Aufzurufen von:** GiroCheckout | ||
+ | |||
+ | == GET Parameter == | ||
+ | ^Name | ||
+ | |gcReference | ||
+ | |gcMerchantTxId | ||
+ | |gcBackendTxId | ||
+ | |gcAmount | ||
+ | |gcCurrency | ||
+ | |gcResultPayment | ||
+ | |gcHash | ||
+ | |||
+ | === Antwort === | ||
+ | Als Antwort auf den GET-Request wird einer der folgenden HTTP Statuscodes erwartet. | ||
+ | |||
+ | ^HTTP Statuscode | ||
+ | |200 (OK) |Die Benachrichtigung wurde korrekt verarbeitet. | | ||
+ | |400 (Bad Request) | ||
+ | |Alle anderen | ||
+ | |||
+ | ==== Rückleitung des Kunden zum Händler ==== | ||
+ | Nach Beendigung der iDEAL Zahlung kann der Kunde über einen Link zurück zum Händler kommen. Eine Weiterleitung erfolgt erst, wenn der Käufer den „Abbrechen“ oder „Zurück zum Shop“ Button drückt. Diese Rückleitung erfolgt nicht automatisch. | ||
+ | |||
+ | === Anfrage === | ||
+ | **URL:** redirectUrl aus der Transaktionsinitialisierung \\ | ||
+ | **Bereitzustellen von:** Händler \\ | ||
+ | **Aufzurufen von:** GiroCheckout | ||
+ | |||
+ | == GET Parameter == | ||
+ | ^Name | ||
+ | |gcReference | ||
+ | |gcMerchantTxId | ||
+ | |gcBackendTxId | ||
+ | |gcAmount | ||
+ | |gcCurrency | ||
+ | |gcResultPayment | ||
+ | |gcHash | ||
+ | |||
+ | ===== Weitere Transaktionsarten ===== | ||
+ | Diese Transaktionen 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 ==== | ||
+ | |||
+ | < | ||
+ | hide footbox | ||
+ | |||
+ | participant " | ||
+ | participant " | ||
+ | participant " | ||
+ | |||
+ | autonumber | ||
+ | |||
+ | shop -> girocheckout: | ||
+ | girocheckout -> ip: | ||
+ | ip -> girocheckout: | ||
+ | girocheckout -> shop: | ||
+ | |||
+ | center footer (c)2016 by GiroSolution AG | ||
+ | </ | ||
+ | |||
+ | - Shop sendet referenzierende Transaktion | ||
+ | - GiroCheckout leitet Transaktion zu Abwickler | ||
+ | - Abwickler übermittelt Ergebnis an GiroCheckout | ||
+ | - Shop bekommt Rückmeldung über Transaktionsausgang ([[girocheckout: | ||
+ | |||
+ | ==== Erstattung (REFUND) ==== | ||
+ | {{page> | ||
+ | |||
+ | |||
+ | ==== POST Parameter ==== | ||
+ | URL REFUND: https:// | ||
+ | |||
+ | ^Name | ||
+ | |merchantId | ||
+ | |projectId | ||
+ | |merchantTxId | ||
+ | |amount | ||
+ | |currency | ||
+ | |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 | ||
+ | |reference | ||
+ | |merchantTxId | ||
+ | |backendTxId | ||
+ | |amount | ||
+ | |currency | ||
+ | |resultPayment | ||
+ | |hash | ||
+ | |||
+ | == Beispiel im Erfolgsfall == | ||
+ | {{page> | ||
+ | |||
+ | == Beispiel im Fehlerfall == | ||
+ | {{page> | ||
+ | |||
+ | ===== Senderinformationen abrufen ===== | ||
+ | Mit dieser Funktion können die Senderinformationen einer erfolgreich durchgeführten Transaktion abgerufen werden. Anhand der angegebenen Referenz wird Kontoinhaber, | ||
+ | |||
+ | === API-Aufruf === | ||
+ | **URL:** https:// | ||
+ | **Bereitzustellen von:** GiroCheckout \\ | ||
+ | **Aufzurufen von:** Händler | ||
+ | |||
+ | == POST-Parameter == | ||
+ | ^Name | ||
+ | |merchantId | ||
+ | |projectId | ||
+ | |reference | ||
+ | |hash | ||
+ | |||
+ | == Beispiel == | ||
+ | {{page> | ||
+ | |||
+ | === Antwort === | ||
+ | Die Antwort besteht aus einem JSON Objekt. Das Feld rc liefert einen Fehlercode. Wird **rc = 0** zurückgeliefert, | ||
+ | |||
+ | == JSON-Parameter == | ||
+ | ^Name | ||
+ | |rc | ||
+ | |msg |Ja | ||
+ | |accountholder | ||
+ | |iban | ||
+ | |bic |Optional |String(11) | ||
+ | ^HEADER Parameter^^^^ | ||
+ | |hash | ||
+ | |||
+ | == Beispiel im Erfolgsfall == | ||
+ | {{page> | ||
+ | |||
+ | == Beispiel im Fehlerfall == | ||
+ | {{page> |