Benutzer-Werkzeuge

Webseiten-Werkzeuge


girocheckout:ideal:start

Unterschiede

Hier werden die Unterschiede zwischen zwei Versionen angezeigt.

Link zu dieser Vergleichsansicht

Beide Seiten der vorigen Revision Vorhergehende Überarbeitung
Nächste Überarbeitung
Vorhergehende Überarbeitung
girocheckout:ideal:start [2014/01/13 08:37]
thorstenmarx
girocheckout:ideal:start [2023/05/07 08:01] (aktuell)
michaelheumann
Zeile 1: Zeile 1:
 +~~NOCACHE~~
 ====== iDEAL ====== ====== iDEAL ======
-iDEAL ist die niederländische Online-Überweisung.  
  
-{{indexmenu>:girocheckout:ideal#1|msort}}+===== Testdaten ===== 
 + 
 +{{page>testdata:ideal&noheader&nofooter}} 
 + 
 +===== Workflow ===== 
 +<uml> 
 +hide footbox 
 + 
 +participant "Kunde" as customer 
 +participant "Shop" as shop 
 +participant "GiroCheckout" as girocheckout 
 +participant "iDEAL" as ideal 
 +participant "Online-Banking" as bank 
 + 
 +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 
 +</uml> 
 + 
 +  - Käufer wählt Zahlart iDEAL aus 
 +  - Shop prüft teilnehmende Banken ([[girocheckout:ideal:start#ideal_bankenabfrage|Bankenabfrage]]) 
 +  - Shop bekommt Rückmeldung, welche Banken iDEAL unterstützt 
 +  - Shop initiiert iDEAL Transaktion ([[girocheckout:ideal:start#initialisierung_einer_ideal_zahlung|Initialisierung]]) 
 +  - 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:ideal:start#benachrichtigung_ueber_den_zahlungsausgang|Benachrichtigung]]) 
 +  - Shop verarbeitet Transaktionsausgang 
 +  - Shop sendet HTTP Statuscode an GiroCheckout 
 +  - GiroCheckout sendet Rücksprung zum Händler an iDEAL 
 +  - Kunde klickt "Zurück zum Shop" ([[girocheckout:ideal:start#rueckleitung_des_kunden_zum_händler|Rücksprung]]) 
 +===== 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://payment.girosolution.de/girocheckout/api/v2/ideal/issuer \\ 
 +**Bereitzustellen von:** GiroSolution AG \\ 
 +**Aufzurufen von:** Händler 
 + 
 +== POST Parameter == 
 +^Name           ^Pflicht  ^Type      ^Beschreibung   ^ 
 +|merchantId     |Ja       |Integer   |Händler-ID eines iDEAL Projekts | 
 +|projectId      |Ja       |Integer   |Projekt-ID eines iDEAL Projekts | 
 +|hash           |Ja       |String(32)|HMAC MD5 hash über alle Werte des Aufrufs. Siehe  [[girocheckout:general:start#hash_generieren|hash generieren]]| 
 + 
 +== Beispiel == 
 +{{page>codesamples:ideal#issuer.request&noheader&nofooter}} 
 + 
 +=== Antwort === 
 +Die Antwort enthält ein JSON Objekt. Wenn **rc = 0** zurückgeliefert wird, enthält das Element **issuer** die zur Verfügung stehenden Banken.  
 + 
 +== Parameter == 
 +^Name           ^Pflicht  ^Type      ^Beschreibung   ^ 
 +|rc             |Ja       |Integer   |[[girocheckout:errorcodes|Fehlernummer]] | 
 +|msg            |Ja       |String(255)  |Zusätzliche Informationen im Fehlerfall | 
 +|issuer         |Optional |Array     |Liste der iDEAL issuer Banken | 
 +^HEADER Parameter^^^^ 
 +|hash           |Ja       |String(32) |HMAC MD5 hash über alle Werte der Rückmeldung. Siehe [[girocheckout:general:start#uebermittlung_von_daten_ueber_einen_schnittstellenaufruf_an_den_haendler|hash der Rückantwort]] | 
 + 
 +== Beispiel == 
 +{{page>codesamples:ideal#issuer.response&noheader&nofooter}} 
 + 
 + 
 + 
 +==== 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, eine HTML-Seite mit entsprechendem Meta-Tag oder Javascript erfolgen.  
 + 
 +=== Anfrage === 
 +**URL:** https://payment.girosolution.de/girocheckout/api/v2/transaction/start \\ 
 +**Bereitzustellen von:** GiroCheckout \\ 
 +**Aufzurufen von:** Händler 
 + 
 +== POST Parameter == 
 +^Name           ^Pflicht  ^Type        ^Beschreibung   ^ 
 +|merchantId     |Ja       |Integer     |Händler-ID eines iDEAL Projekts | 
 +|projectId      |Ja       |integer     |Projekt-ID eines iDEAL Projekts | 
 +|merchantTxId   |Ja       |String(255) |Eindeutige Transaktions-ID des Händlers. Zulässige Zeichen: beliebige Buchstaben (inkl. sprachl. Sonderzeichen), 0-9, Zeichen & = + , : ; . _ ! ? # /  | 
 +|amount         |Ja       |Integer     |Betrag in Cent\\ Wenn kind = 2, dann als Betrag 0 angeben | 
 +|currency       |Ja       |String(3)   |Währung der Transaktion\\ EUR = Euro (default) | 
 +|purpose        |Ja       |String(27)  |Verwendungszweck der iDEAL Überweisung | 
 +|issuer         |Optional       |String(20) |iDEAL Issuer Bank. Wenn nicht angegeben, wird zu einer Bankauswahlseite weitergeleitet. | 
 +|urlRedirect    |Ja       |String(2048) |URL, an die der Kunde nach der Zahlung geschickt werden soll. | 
 +|urlNotify      |Ja       |String(2048) |URL, an die der Zahlungsausgang gemeldet werden soll. | 
 +|kassenzeichen  |Optional |String(255)  |Optionales Feld für die Übergabe eines Kassenzeichens.  Dieses wird dann im GiroCockpit in den Transaktionsdetails angezeigt (und bald auch exportiert) und es kann dort auch danach gesucht werden. Zulässige Zeichen sind alle UTF-8-Zeichen. | 
 +|hash           |Ja       |String(32)   |HMAC MD5 hash über alle Werte des Aufrufs. Siehe  [[girocheckout:general:start#hash_generieren|hash generieren]] | 
 + 
 + 
 +== Beispiel == 
 +{{page>codesamples:ideal#transactionstart.request&noheader&nofooter}} 
 + 
 +=== Antwort === 
 +Die Antwort enthält ein JSON Objekt. Das Feld rc liefert einen Fehlercode zurück. Wird rc = 0 zurückgeliefert, wurde die Transaktion erfolgreich initialisiert. Es wird als Antwort eine Transaktionsnummer und die redirectURL zum Online Banking des Käufers zurückgeliefert. 
 + 
 +== Parameter == 
 +^Name           ^Pflicht  ^Type      ^Beschreibung   ^ 
 +|rc             |Ja       |Integer   |[[girocheckout:errorcodes|Fehlernummer]] | 
 +|msg            |Ja       |String(255) |Zusätzliche Informationen im Fehlerfall | 
 +|reference      |Ja       |String(36)  |Eindeutige GiroCheckout Transaktions-ID | 
 +|redirect       |Ja       |String(2048)|Redirect URL zur Weiterleitung des Kunden zum Online Banking| 
 +^HEADER Parameter^^^^ 
 +|hash           |Ja       |String(32)  |HMAC MD5 hash über alle Werte der Rückmeldung. Siehe [[girocheckout:general:start#uebermittlung_von_daten_ueber_einen_schnittstellenaufruf_an_den_haendler|hash der Rückantwort]] | 
 + 
 +== Beispiel im Erfolgsfall == 
 +{{page>codesamples:ideal#transactionstart.response.true&noheader&nofooter}} 
 + 
 +== Beispiel im Fehlerfall == 
 +{{page>codesamples:ideal#transactionstart.response.false&noheader&nofooter}} 
 + 
 +==== Benachrichtigung über den Zahlungsausgang ==== 
 + 
 +Der Ausgang einer iDEAL Zahlung wird, an die im //urlNotify// Paramter angegebene URL, übermittelt. Diese Rückmeldung dient dazu, dem Händler den Ausgang der Transaktion mitzuteilen. Durch diese Information kann der Transaktionsstatus beim Händler geändert werden. Der Zahlungausgang der iDEAL Transaktion steht im Feld gcResultPayment.  
 + 
 +Aufgrund des iDEAL Ablaufes findet **keine automatische Rückleitung des Käufers** an die im Parameter //urlRedirect// angegebene URL statt. Eine Weiterleitung erfolgt erst, wenn der Käufer den "Abbrechen" oder "Zurück zum Shop" Button drückt. 
 + 
 +=== Anfrage === 
 +**URL:** notifyUrl aus der Transaktionsinitialisierung \\ 
 +**Bereitzustellen von:** Händler \\ 
 +**Aufzurufen von:** GiroCheckout 
 + 
 +== GET Parameter == 
 +^Name             ^Pflicht    ^  Type        ^Beschreibung   ^ 
 +|gcReference      |Ja       |String(36)   | GiroCheckout Transaktions-ID | 
 +|gcMerchantTxId   |Ja       |String(255)  | Händler Transaktions-ID | 
 +|gcBackendTxId    |Ja       |String(8)    | Zahlungsabwickler Transaktions-ID | 
 +|gcAmount         |Ja       |Integer     | bei Dezimalwährungen den Betrag in der kleinsten Währungseinheit angeben, z.B. Cent | 
 +|gcCurrency       |Ja       |String(3)   | Währung | 
 +|gcResultPayment  |Ja       |Integer     | [[girocheckout:resultcodes#zahlungsausgang|Ergebniscodes der iDEAL Zahlung]]| 
 +|gcHash           |Ja       |String(32)  | HMAC MD5 hash über alle Werte des Aufrufs. Siehe  [[girocheckout:general:start#hash_generieren|hash generieren]] | 
 + 
 +=== Antwort === 
 +Als Antwort auf den GET-Request wird einer der folgenden HTTP Statuscodes erwartet. 
 + 
 +^HTTP Statuscode    ^Beschreibung     ^ 
 +|200 (OK)           |Die Benachrichtigung wurde korrekt verarbeitet. | 
 +|400 (Bad Request)  |Der Händler hat die Benachrichtigung nicht verarbeitet, möchte aber auch nicht erneut benachrichtigt werden. | 
 +|Alle anderen       |Die Benachrichtigung wird max. 10 Mal alle 30 Minuten wiederholt, bis der Händler den HTTP Statuscode 200 oder 400 zurückgibt. | 
 + 
 +==== 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             ^Pflicht  ^Type        ^Beschreibung   ^ 
 +|gcReference      |Ja       |String(36)  | GiroCheckout Transaktions-ID | 
 +|gcMerchantTxId   |Ja       |String(255) | Händler Transaktions-ID | 
 +|gcBackendTxId    |Ja       |String(8)   | Zahlungsabwickler Transaktions-ID | 
 +|gcAmount         |Ja       |Integer     | bei Dezimalwährungen den Betrag in der kleinsten Währungseinheit angeben, z.B. Cent | 
 +|gcCurrency       |Ja       |String(3)   | Währung | 
 +|gcResultPayment  |Ja       |Integer     | [[girocheckout:resultcodes#zahlungsausgang|Ergebnis der iDEAL Zahlung]]| 
 +|gcHash           |Ja       |String(32)  | HMAC MD5 hash über alle Werte des Aufrufs. Siehe  [[girocheckout:general:start#hash_generieren|hash generieren]] | 
 + 
 +===== 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 ==== 
 + 
 +<uml> 
 +hide footbox 
 + 
 +participant "Shop" as shop 
 +participant "GiroCheckout" as girocheckout 
 +participant "IcePay" as ip 
 + 
 +autonumber 
 + 
 +shop -> girocheckout:  
 +girocheckout -> ip:  
 +ip -> girocheckout:  
 +girocheckout -> shop:  
 + 
 +center footer (c)2016 by GiroSolution AG 
 +</uml> 
 + 
 +  - Shop sendet referenzierende Transaktion 
 +  - GiroCheckout leitet Transaktion zu Abwickler 
 +  - Abwickler übermittelt Ergebnis an GiroCheckout 
 +  - Shop bekommt Rückmeldung über Transaktionsausgang ([[girocheckout:ideal:start#benachrichtigung_ueber_den_zahlungsausgang|Benachrichtigung]]) 
 + 
 +==== Erstattung (REFUND) ==== 
 +{{page>girocheckout:transactiontypes:descriptions#refund.desc&noheader&nofooter}} 
 + 
 + 
 +==== POST Parameter ==== 
 +URL REFUND: https://payment.girosolution.de/girocheckout/api/v2/transaction/refund 
 + 
 +^Name           ^Pflicht  ^Type        ^Beschreibung   ^ 
 +|merchantId     |Ja       |Integer     |Händler-ID eines Kreditkarten Projekts | 
 +|projectId      |Ja       |Integer     |Projekt-ID eines Kreditkarten Projekts | 
 +|merchantTxId   |Ja       |String(255) |eindeutige Transaktions-ID des Händlers. Zulässige Zeichen: beliebige Buchstaben (inkl. sprachl. Sonderzeichen), 0-9, Zeichen & = + , : ; . _ ! ? # /  | 
 +|amount         |Ja       |Integer     |Bei Dezimalwährungen den Betrag in der kleinsten Währungseinheit angeben, z.B. Cent, Penny | 
 +|currency       |Ja       |String(3)   |Währung der Transaktion, gemäß [[http://de.wikipedia.org/wiki/ISO_4217#Aktuell_g.C3.BCltige_W.C3.A4hrungen|ISO 4217]].\\ EUR = Euro | 
 +|reference      |Ja       |String(36)  |GiroCheckout Transaktions-ID, für die eine Buchung oder Erstattung durchgeführt werden soll | 
 +|hash           |Ja       |String(32)  |HMAC MD5 hash über alle Werte des Aufrufs. Siehe  [[girocheckout:general:start#hash_generieren|hash generieren]] | 
 + 
 +== Beispiel == 
 +{{page>codesamples:ideal#refund.request&noheader&nofooter}} 
 + 
 +==== Antwort ==== 
 +Die Antwort besteht aus einem JSON Objekt. Das Feld rc liefert einen Fehlercode zurück. Wird rc = 0 zurückgeliefert, wurde die Transaktion erfolgreich initialisiert. Sie bekommen als Antwort eine Transaktionsnummer und die redirectURL zum Kreditkartenformular zurück. 
 + 
 +=== Parameter === 
 +^Name             ^Pflicht  ^Type        ^Beschreibung   ^ 
 +|reference      |Ja       |String(36)  | GiroCheckout Transaktions-ID | 
 +|merchantTxId   |Ja       |String(255) | Händler Transaktions-ID | 
 +|backendTxId    |Ja       |String(8)   | Zahlungsabwickler Transaktions-ID | 
 +|amount         |Ja       |Integer     | bei Dezimalwährungen den Betrag in der kleinsten Währungseinheit angeben, z.B. Cent, Penny | 
 +|currency       |Ja       |String(3)   | Währung | 
 +|resultPayment  |Ja       |Integer     | [[girocheckout:resultcodes#zahlungsausgang|Ergebnis der Transaktion]]| 
 +|hash           |Ja       |String(32)  | HMAC MD5 hash über alle Werte des Aufrufs. Siehe  [[girocheckout:general:start#hash_generieren|hash generieren]] | 
 + 
 +== Beispiel im Erfolgsfall == 
 +{{page>codesamples:ideal#refund.response.true&noheader&nofooter}} 
 + 
 +== Beispiel im Fehlerfall == 
 +{{page>codesamples:ideal#refund.response.false&noheader&nofooter}} 
 + 
 +===== Senderinformationen abrufen ===== 
 +Mit dieser Funktion können die Senderinformationen einer erfolgreich durchgeführten Transaktion abgerufen werden. Anhand der angegebenen Referenz wird Kontoinhaber, IBAN und BIC des Absenders geliefert.  Diese Information kann dann für eine Rücküberweisung an den Zahler genutzt werden. 
 + 
 +=== API-Aufruf === 
 +**URL:** https://payment.girosolution.de/girocheckout/api/v2/ideal/senderinfo \\ 
 +**Bereitzustellen von:** GiroCheckout \\ 
 +**Aufzurufen von:** Händler 
 + 
 +== POST-Parameter == 
 +^Name           ^Pflicht  ^Type      ^Beschreibung   ^ 
 +|merchantId     |Ja       |Integer   |Händler-ID eines iDEAL Projekts | 
 +|projectId      |Ja       |Integer   |Projekt-ID eines iDEAL Projekts | 
 +|reference      |Ja       |String(36)|GiroCheckout Transaktions-ID | 
 +|hash           |Ja       |String(32)|HMAC MD5 hash über alle Werte des Aufrufs (siehe [[girocheckout:general:start#hash_generieren|hash generieren]])| 
 + 
 +== Beispiel == 
 +{{page>codesamples:ideal#senderinfo.request&noheader&nofooter}} 
 + 
 +=== Antwort === 
 +Die Antwort besteht aus einem JSON Objekt. Das Feld rc liefert einen Fehlercode. Wird **rc = 0** zurückgeliefert, enthalten die entsprechenden Felder die Senderinformationen. 
 + 
 +== JSON-Parameter == 
 +^Name           ^Pflicht  ^Type      ^Beschreibung   ^ 
 +|rc             |Ja       |Integer   |[[girocheckout:errorcodes|Fehlernummer]] | 
 +|msg            |Ja       |String(255) |zusätzliche Informationen im Fehlerfall | 
 +|accountholder  |Optional |String(255) |Inhaber des Absenderkontos| 
 +|iban           |Optional |String(36)  |IBAN des Absenderkontos | 
 +|bic            |Optional |String(11)  |BIC des Absenderkontos | 
 +^HEADER Parameter^^^^ 
 +|hash           |Ja       |String(32)  |HMAC MD5 hash über alle Werte der Rückmeldung. Siehe [[girocheckout:general:start#uebermittlung_von_daten_ueber_einen_schnittstellenaufruf_an_den_haendler|hash der Rückantwort]] | 
 + 
 +== Beispiel im Erfolgsfall == 
 +{{page>codesamples:ideal#senderinfo.response.true&noheader&nofooter}} 
 + 
 +== Beispiel im Fehlerfall == 
 +{{page>codesamples:ideal#senderinfo.response.false&noheader&nofooter}} 
girocheckout/ideal/start.1389598673.txt.gz · Zuletzt geändert: 2021/04/12 14:30

Seiten-Werkzeuge