====== Bluecode ======
Informationen zu Bluecode sind unter https://www.bluecode.com/ zu finden.
===== Testdaten =====
{{page>testdata:bluecode&noheader&nofooter}}
===== Transaktionstypen =====
Detaillierte Informationen zu den [[girocheckout:transactiontypes:start|Transaktionstypen]].
left to right direction
skinparam packageStyle rect
rectangle SALE{
(SALE) --> (REFUND)
}
===== Initialisierung einer Bluecode Zahlung =====
Durch eine erfolgreiche Initialisierung wird eine Referenznummer erstellt sowie ein Weiterleitungslink (redirect) an den Händler übermittelt. Der übermittelte Link führt zum Bezahlformular. Der Kunde muss an diese URL weitergeleitet werden. Dies kann durch einen HTTP-Redirect-Header, eine HTML-Seite mit entsprechendem Meta-Tag oder Javascript erfolgen.
Bereitzustellen von: GiroCheckout\\
Aufzurufen von: Händler\\
==== Workflow ====
hide footbox
participant "Kunde" as customer
participant "Shop" as shop
participant "GiroCheckout" as girocheckout
participant "Bluecode" as bc
autonumber
customer -> shop:
shop -> girocheckout:
girocheckout -> shop:
shop -> bc:
customer -> customer:
bc -> customer:
customer -> bc:
bc -> bc:
bc -> shop:
bc -> girocheckout:
girocheckout -> shop:
shop -> shop:
shop -> customer:
center footer (c)2019 by GiroSolution GmbH
- Käufer wählt Zahlart Bluecode aus
- Shop initiiert Bluecode Transaktion ([[girocheckout:bluecode:start#initialisierung_einer_Bluecode_Zahlung|Initialisierung]])
- Shop bekommt Rückmeldung über Initialisierungsausgang (bei Fehler ist Transaktion beendet) und sendet Redirect URL an Kundenbrowser
- Kundenbrowser leitet zur Bezahlseite für Bluecode weiter, wo ein QR-Code angezeigt wird
- Kunde scannt mit dem Smartphone (Bluecode App) QR-Code ab
- Bluecode sendet Mittelung an Smartphone des Kunden und wartet auf Bestätigung
- Kunde autorisiert auf dem Smartphone die Transaktion
- Bluecode führt Transaktion durch
- Kunde klickt "Zurück zum Shop" ([[girocheckout:bluecode:start#rueckleitung_des_kunden_zum_haendler|Rücksprung]])
- Bluecode übermittelt Ergebnis an GiroCheckout
- GiroCheckout benachrichtigt Shop über Transaktionsausgang ([[girocheckout:bluecode:start#benachrichtigung_ueber_den_zahlungsausgang|Benachrichtigung]])
- Shop verarbeitet Transaktionsausgang
- Shop informiert Käufer über Transaktionsausgang
==== Buchen (SALE) ====
{{page>girocheckout:transactiontypes:descriptions#sale.desc&noheader&nofooter}}
left to right direction
skinparam packageStyle rect
rectangle SALE{
(SALE)
}
==== POST Parameter ====
URL: https://payment.girosolution.de/girocheckout/api/v2/transaction/start
^Name ^Pflicht ^Type ^Beschreibung ^
|merchantId |Ja |Integer |Händler-ID eines Bluecode-Projekts |
|projectId |Ja |Integer |Projekt-ID eines Bluecode-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, gemäß [[http://de.wikipedia.org/wiki/ISO_4217#Aktuell_g.C3.BCltige_W.C3.A4hrungen|ISO 4217]].\\ EUR = Euro |
|purpose |Ja |String(37) |Verwendungszweck der Transaktion. Diese Information erscheint auf der Abrechnung. |
|urlRedirect |Ja |String |URL, an die der Kunde nach der Zahlung weitergeleitet 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:bluecode#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. Sie bekommen als Antwort eine Transaktionsnummer und die redirectURL zur Bluecode-Bezahlseite zurück.
=== 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 auf die Bluecode-Bezahlseite|
^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:bluecode#transactionstart.response.true&noheader&nofooter}}
== Beispiel im Fehlerfall ==
{{page>codesamples:bluecode#transactionstart.response.false&noheader&nofooter}}
==== Benachrichtigung über den Zahlungsausgang ====
Der Ausgang einer Zahlung wird an die im //urlNotify// Parameter 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 Zahlungsausgang einer Transaktion steht im Feld gcResultPayment.
=== 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, Penny |
|gcCurrency |Ja |String | Währung |
|gcResultPayment |Ja |Integer | [[girocheckout:resultcodes#zahlungsausgang|Ergebniscodes der 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 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, Penny |
|gcCurrency |Ja |String | Währung |
|gcResultPayment |Ja |Integer | [[girocheckout:resultcodes#zahlungsausgang|Ergebnis der Zahlung]]|
|gcHash |Ja |String | HMAC MD5 hash über alle Werte des Aufrufs. Siehe [[girocheckout:general:start#hash_generieren|hash generieren]] |
===== Weitere Transaktionsarten =====
==== 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 |
|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 |
|purpose |Optional |String(27) |Verwendungszweck der Erstattung. Diese Information erscheint auf der Kreditkartenabrechnung. |
|reference |Ja |String |GiroCheckout Transaktions-ID, für die eine Buchung oder Erstattung durchgeführt werden soll |
|hash |Ja |String |HMAC MD5 hash über alle Werte des Aufrufs. Siehe [[girocheckout:general:start#hash_generieren|hash generieren]] |
== Beispiel ==
{{page>codesamples:creditcard#capture.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 weitere Informationen zurück.
== Parameter ==
^Name ^Pflicht ^Type ^Beschreibung ^
|rc |Ja |Integer |[[girocheckout:errorcodes|Fehlernummer]] |
|msg |Ja |String |zusätzliche Informationen im Fehlerfall |
|reference |Ja |String | GiroCheckout Transaktions-ID |
|referenceParent |Ja |String | GiroCheckout Transaktions-ID der zugrundeliegenden Ursprungstransaktion |
|merchantTxId |Ja |String | Händler Transaktions-ID |
|backendTxId |Ja |String | Zahlungsabwickler Transaktions-ID |
|amount |Ja |Integer | bei Dezimalwährungen den Betrag in der kleinsten Währungseinheit angeben, z.B. Cent, Penny |
|currency |Ja |String | Währung |
|resultPayment |Ja |Integer | [[girocheckout:resultcodes#zahlungsausgang|Ergebnis der Transaktion]]|
|hash |Ja |String | HMAC MD5 hash über alle Werte des Aufrufs. Siehe [[girocheckout:general:start#hash_generieren|hash generieren]] |
== Beispiel im Erfolgsfall ==
{{page>codesamples:creditcard#transactionstart.response.true&noheader&nofooter}}
== Beispiel im Fehlerfall ==
{{page>codesamples:creditcard#transactionstart.response.false&noheader&nofooter}}