~~NOCACHE~~ ====== eps ====== Informationen zu eps sind unter https://www.girosolution.de/girocheckout/fuer-haendler/ zu finden. eps kann **ausschließlich** mit der Währung **EURO** verwendet werden. ===== Testdaten ===== {{page>testdata:eps&noheader&nofooter}} ===== Workflow ===== hide footbox participant "Käufer/Kunde" as customer participant "Shop" as shop participant "GiroCheckout" as girocheckout participant "eps" as eps participant "Online-Banking" as bank autonumber customer -> shop: shop -> girocheckout: girocheckout -> eps: eps -> girocheckout: girocheckout -> shop: shop -> customer: customer -> eps: eps -> bank: bank -> customer: customer -> bank: bank -> bank: bank -> eps: eps -> girocheckout: girocheckout -> shop shop -> shop: shop -> girocheckout: girocheckout -> eps: eps -> shop: center footer (c)2013 by GiroSolution AG - Käufer/Kunde wählt eps und gibt BIC seiner Bank ein - Shop initiiert eps Transaktion ([[girocheckout:eps:start#initialisierung_einer_eps_zahlung|Initialisierung]]) - GiroCheckout initialisiert Transaktion bei eps - eps übermittelt Ergebnis an GiroCheckout - Shop bekommt Rückmeldung über Initialisierungsausgang (bei Fehler ist Transaktion beendet) - Shop sendet Redirect URL an Käufer-/Kundenbrowser - Käufer-/Kundenbrowser leitet zu eps weiter, wo die Bankauswahl erfolgt (optional, falls nicht schon im Browser gesp[eichert) - eps leitet dann an das Online-Banking der entsprechenden Bank weiter - Online-Banking zeigt Loginseite an - Käufer/Kunde autorisiert Transaktion - Bank führt Auftrag durch - Bank übermittelt Ergebnis an eps - eps übermittelt Ergebnis an GiroCheckout - GiroCheckout benachrichtigt Shop über Ausgang ([[girocheckout:eps:start#Benachrichtigung_über_den_Zahlungsausgang|Benachrichtigung]]) - Shop verarbeitet Ausgang - Shop sendet HTTP Statuscode an GiroCheckout - GiroCheckout sendet Rücksprung zum Händler an eps - Käufer/Kunde klickt "Zurück zum Shop" ([[girocheckout:eps:start#Rückleitung_des_Kunden_zum_Händler|Rücksprung]]) ===== API-Funktionen ===== ==== Übersicht ===== Wie im Workflow dargestellt gibt es mehrere API-Aufrufe während einer eps Transaktion. - Bankstatus prüfen - 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. ==== Bankstatus prüfen ==== **Dieser Aufruf sollte nicht mehr verwendet werden, alle eps-Transaktionen werden jetzt mit einer externen Bankenabfrage durchgeführt!** Es wird geprüft ob eine Bank am eps Bezahlverfahren teilnimmt. Diesbezüglich wird die BIC des Käufer-Girokontos übermittelt. Die Antwort zeigt ob eine eps Transaktion möglich ist. Es wid empfohlen vor jeder Initiierung einer eps Transaktion den Bankstatus zu prüfen, da dadurch unnötige Verkaufsabbrüche verhindert werden können. === API-Aufruf === **URL:** https://payment.girosolution.de/girocheckout/api/v2/eps/bankstatus \\ **Bereitzustellen von:** GiroCheckout \\ **Aufzurufen von:** Händler == POST-Parameter == ^Name ^Pflicht ^Type ^Beschreibung ^ |merchantId |Ja |Integer |Händler-ID eines eps Projekts | |projectId |Ja |Integer |Projekt-ID eines eps Projekts | |bic |Ja |String(11)|BIC der Käuferbank (8 oder 11-stellig), die geprüft 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:eps#bankstatus.request&noheader&nofooter}} === Antwort === Die Antwort besteht aus einem JSON Objekt. Das Feld rc liefert einen Fehlercode. Wird **rc = 0** zurückgeliefert, unterstützt die angefragte Bank eps, sonst enthält er einen entsprechenden Fehlercode. Zusätzliche Informationen zur Unterstützung von eps ist dem Element //eps// zu entnehmen. Sind zusätzliche Informationen zur Bank bekannt, werden diese ebenfalls zurückgeliefert. == JSON-Parameter == ^Name ^Pflicht ^Type ^Beschreibung ^ |rc |Ja |Integer |[[girocheckout:errorcodes|Fehlernummer]] | |msg |Ja |String |zusätzliche Informationen im Fehlerfall | |bankcode |Optional |Integer |Bankleitzahl| |bic |Optional |String |BIC, wenn vorhanden | |bankname |Optional |String |Bankname | |eps |Optional |Integer |0 = eps Zahlung wird nicht unterstützt \\ 1 = eps Zahlung wird unterstützt | ^HEADER Parameter^^^^ |hash |Ja |String |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:eps#bankstatus.response&noheader&nofooter}} ==== eps Bankenabfrage ==== **Dieser Aufruf sollte nicht mehr verwendet werden, alle eps-Transaktionen werden jetzt mit einer externen Bankenabfrage durchgeführt!** Gibt eine Liste zurück, welche alle eps Banken enthält. Aus dieser Bankenliste muss der Käufer seine Bank auswählen. **URL:** https://payment.girosolution.de/girocheckout/api/v2/eps/issuer \\ **Bereitzustellen von:** GiroSolution AG \\ **Aufzurufen von:** Händler == POST Parameter == ^Name ^Pflicht ^Type ^Beschreibung ^ |merchantId |Ja |Integer |Händler-ID eines eps Projekts | |projectId |Ja |Integer |Projekt-ID eines eps Projekts | |hash |Ja |String(32)|HMAC MD5 hash über alle Werte des Aufrufs. Siehe [[girocheckout:general:start#hash_generieren|hash generieren]]| == Beispiel == {{page>codesamples:eps#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 |Zusätzliche Informationen im Fehlerfall | |issuer |Optional |Array |Liste der eps issuer Banken bestehend aus dem Key BIC und dem Bankname | ^HEADER Parameter^^^^ |hash |Ja |String |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:eps#issuer.response&noheader&nofooter}} ==== Initialisierung einer eps 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 eps Projekts | |projectId |Ja |integer |Projekt-ID eines eps Projekts | |merchantTxId |Ja |String(255) |eindeutige Transaktions-ID des Händlers | |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\\ EUR = Euro| |purpose |Ja |String(27) |Verwendungszweck der eps Überweisung | |bic |**deprecated** |String(11) |**Dieser Parameter darf nicht mehr verwendet werden, alle eps-Transaktionen werden jetzt mit einer externen Bankenabfrage durchgeführt!** BIC der Käuferbank (8 oder 11-stellig)| |urlRedirect |Ja |String |URL, an die der Kunde nach der Zahlung geschickt werden soll. | |urlNotify |Ja |String |URL, an die der Zahlungsausgang gemeldet werden soll. | |hash |Ja |String |HMAC MD5 hash über alle Werte des Aufrufs. Siehe [[girocheckout:general:start#hash_generieren|hash generieren]] | == Beispiel == {{page>codesamples:eps#transactionstart.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. 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 |zusätzliche Informationen im Fehlerfall | |reference |Optional |String |eindeutige GiroCheckout Transaktions-ID | |redirect |Optional |String |Redirect URL zur Weiterleitung des Kunden an sein Online Banking| ^HEADER Parameter^^^^ |hash |Ja |String |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:eps#transactionstart.response.true&noheader&nofooter}} == Beispiel im Fehlerfall == {{page>codesamples:eps#transactionstart.response.false&noheader&nofooter}} ==== Benachrichtigung über den Zahlungsausgang ==== Der Ausgang einer eps 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 eps Transaktion steht im Feld gcResultPayment. Aufgrund des eps 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 | GiroCheckout Transaktions-ID | |gcMerchantTxId |Ja |String | Händler Transaktions-ID | |gcBackendTxId |Ja |String | Zahlungsabwickler Transaktions-ID | |gcAmount |Ja |Integer | bei Dezimalwährungen den Betrag in der kleinsten Währungseinheit angeben, z.B. Cent | |gcCurrency |Ja |String | Währung | |gcResultPayment |Ja |Integer | [[girocheckout:resultcodes#zahlungsausgang|Ergebniscodes der eps Zahlung]]| |gcHash |Ja |String | 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 eps 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 | GiroCheckout Transaktions-ID | |gcMerchantTxId |Ja |String | Händler Transaktions-ID | |gcBackendTxId |Ja |String | Zahlungsabwickler Transaktions-ID | |gcAmount |Ja |Integer | bei Dezimalwährungen den Betrag in der kleinsten Währungseinheit angeben, z.B. Cent | |gcCurrency |Ja |String | Währung | |gcResultPayment |Ja |Integer | [[girocheckout:resultcodes#zahlungsausgang|Ergebniscodes der eps Zahlung]]| |gcHash |Ja |String | HMAC MD5 hash über alle Werte des Aufrufs. Siehe [[girocheckout:general:start#hash_generieren|hash generieren]] |