Hier werden die Unterschiede zwischen zwei Versionen angezeigt.
Beide Seiten der vorigen Revision Vorhergehende Überarbeitung Nächste Überarbeitung | Vorhergehende Überarbeitung | ||
girocheckout:bluecode:start [2016/08/31 16:30] michaelheumann [Initialisierung einer Paydirekt Zahlung] |
girocheckout:bluecode:start [2023/05/08 02:01] (aktuell) michaelheumann |
||
---|---|---|---|
Zeile 1: | Zeile 1: | ||
- | ====== | + | ====== |
- | Informationen zu Blue Code sind unter https:// | + | Informationen zu Bluecode |
===== Testdaten ===== | ===== Testdaten ===== | ||
Zeile 14: | Zeile 14: | ||
rectangle SALE{ | rectangle SALE{ | ||
- | (SALE) | + | (SALE) --> (REFUND) |
} | } | ||
</ | </ | ||
- | ===== Initialisierung einer Blue Code Zahlung ===== | + | ===== Initialisierung einer Bluecode |
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, | 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, | ||
Zeile 32: | Zeile 32: | ||
participant " | participant " | ||
participant " | participant " | ||
- | participant "Paydirekt" as pd | + | participant "Bluecode" as bc |
autonumber | autonumber | ||
Zeile 38: | Zeile 38: | ||
customer -> shop: | customer -> shop: | ||
shop -> girocheckout: | shop -> girocheckout: | ||
- | girocheckout -> pd: | + | girocheckout -> shop: |
- | pd -> girocheckout: | + | shop -> bc: |
+ | customer -> customer: | ||
+ | bc -> customer: | ||
+ | customer -> bc: | ||
+ | bc -> bc: | ||
+ | bc -> shop: | ||
+ | bc -> girocheckout: | ||
girocheckout -> shop: | girocheckout -> shop: | ||
+ | shop -> shop: | ||
shop -> customer: | shop -> customer: | ||
- | customer -> pd: | ||
- | pd -> customer: | ||
- | customer -> pd: | ||
- | pd -> pd: | ||
- | pd -> girocheckout: | ||
- | girocheckout -> shop | ||
- | shop -> shop: | ||
- | shop -> girocheckout: | ||
- | girocheckout -> pd: | ||
- | pd -> shop: | ||
- | center footer (c)2013 by GiroSolution | + | center footer (c)2019 by GiroSolution |
</ | </ | ||
- | - Käufer wählt Zahlart | + | - Käufer wählt Zahlart |
- | - Shop initiiert | + | - Shop initiiert |
- | - GiroCheckout initialisiert Transaktion bei Paydirekt | + | - Shop bekommt Rückmeldung über Initialisierungsausgang (bei Fehler ist Transaktion beendet) |
- | - Paydirekt übermittelt Ergebnis an GiroCheckout | + | - Kundenbrowser leitet |
- | - Shop bekommt Rückmeldung über Initialisierungsausgang (bei Fehler ist Transaktion beendet) | + | - Kunde scannt mit dem Smartphone (Bluecode App) QR-Code ab |
- | - Shop sendet Redirect URL an Kundenbrowser | + | - Bluecode sendet Mittelung |
- | - Kundenbrowser leitet | + | - Kunde autorisiert |
- | - Paydirekt zeigt Zahlformular | + | - Bluecode |
- | - Kunde autorisiert Transaktion | + | - Kunde klickt " |
- | - Paydirekt | + | - Bluecode |
- | - Paydirekt | + | - GiroCheckout benachrichtigt Shop über Transaktionsausgang ([[girocheckout: |
- | - GiroCheckout benachrichtigt Shop über Transaktionsausgang ([[girocheckout: | + | |
- Shop verarbeitet Transaktionsausgang | - Shop verarbeitet Transaktionsausgang | ||
- | - Shop sendet HTTP Statuscode an GiroCheckout | + | - Shop informiert Käufer über Transaktionsausgang |
- | - GiroCheckout sendet Rücksprung zum Händler an Paydirekt | + | |
- | - Kunde klickt " | + | |
- | + | ==== Buchen (SALE) ==== | |
- | ==== Reservieren (AUTH) ==== | + | |
- | {{page> | + | |
- | < | + | |
- | left to right direction | + | |
- | skinparam packageStyle rect | + | |
- | + | ||
- | rectangle AUTH { | + | |
- | (AUTH) --> (capture) | + | |
- | (AUTH) --> (refund) | + | |
- | } | + | |
- | </ | + | |
- | ==== Reservieren/ | + | |
{{page> | {{page> | ||
<uml> | <uml> | ||
Zeile 93: | Zeile 75: | ||
rectangle SALE{ | rectangle SALE{ | ||
- | (SALE) --> (refund) | + | (SALE) |
} | } | ||
</ | </ | ||
Zeile 101: | Zeile 83: | ||
^Name | ^Name | ||
- | |merchantId | + | |merchantId |
- | |projectId | + | |projectId |
- | |merchantTxId | + | |merchantTxId |
|amount | |amount | ||
|currency | |currency | ||
|purpose | |purpose | ||
- | |type | + | |urlRedirect |
- | |customerId | + | |urlNotify |
- | |shippingAmount | + | |kassenzeichen |
- | |shippingAddresseFirstName |Ja |String | + | |hash |
- | |shippingAddresseLastName | + | |
- | |shippingCompany | + | |
- | |shippingAdditionalAddressInformation |Optional |String | Addresszusatz | | + | |
- | |shippingStreet | + | |
- | |shippingStreetNumber |Optional |String | + | |
- | |shippingZipCode | + | |
- | |shippingCity | + | |
- | |shippingCountry | + | |
- | |orderAmount | + | |
- | |orderId | + | |
- | |cart | + | |
- | |invoiceId | + | |
- | |customerMail | + | |
- | |minimumAge | + | |
- | |urlRedirect | + | |
- | |urlNotify | + | |
- | |hash | + | |
== Beispiel == | == Beispiel == | ||
- | {{page> | + | {{page> |
- | |||
- | === cart === | ||
- | JSON Array mit item Objekten | ||
- | |||
- | ^Name | ||
- | |name | ||
- | |ean |Optional | ||
- | |quantity | ||
- | |grossAmount | ||
- | |||
- | == Beispiel == | ||
- | < | ||
- | [ { | ||
- | " | ||
- | " | ||
- | " | ||
- | " | ||
- | }, { | ||
- | " | ||
- | " | ||
- | " | ||
- | } ] | ||
- | </ | ||
==== Antwort ==== | ==== Antwort ==== | ||
- | Die Antwort besteht aus einem JSON Objekt. Das Feld rc liefert einen Fehlercode zurück. Wird rc = 0 zurückgeliefert, | + | Die Antwort besteht aus einem JSON Objekt. Das Feld rc liefert einen Fehlercode zurück. Wird rc = 0 zurückgeliefert, |
=== Parameter === | === Parameter === | ||
^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> |
Zeile 187: | Zeile 129: | ||
=== GET Parameter === | === GET Parameter === | ||
^Name | ^Name | ||
- | |gcReference | + | |gcReference |
- | |gcMerchantTxId | + | |gcMerchantTxId |
- | |gcBackendTxId | + | |gcBackendTxId |
|gcAmount | |gcAmount | ||
- | |gcCurrency | + | |gcCurrency |
|gcResultPayment | |gcResultPayment | ||
- | |gcHash | + | |gcHash |
=== Antwort === | === Antwort === | ||
Zeile 213: | Zeile 155: | ||
== GET Parameter == | == GET Parameter == | ||
^Name | ^Name | ||
- | |gcReference | + | |gcReference |
- | |gcMerchantTxId | + | |gcMerchantTxId |
- | |gcBackendTxId | + | |gcBackendTxId |
|gcAmount | |gcAmount | ||
- | |gcCurrency | + | |gcCurrency |
|gcResultPayment | |gcResultPayment | ||
- | |gcHash | + | |gcHash |
===== Weitere Transaktionsarten ===== | ===== 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 \\ | + | ==== Erstattung (REFUND) ==== |
- | Aufzurufen von: Händler \\ | + | |
- | ==== Workflow ==== | ||
- | |||
- | <uml> | ||
- | hide footbox | ||
- | |||
- | participant " | ||
- | participant " | ||
- | participant " | ||
- | |||
- | autonumber | ||
- | |||
- | shop -> girocheckout: | ||
- | girocheckout -> pd: | ||
- | pd -> girocheckout: | ||
- | girocheckout -> shop: | ||
- | |||
- | center footer (c)2016 by GiroSolution AG | ||
- | </ | ||
- | |||
- | - Shop sendet referenzierende Transaktion | ||
- | - GiroCheckout leitet Transaktion zu Paydirekt | ||
- | - Paydirekt ü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> | {{page> | ||
- | <uml> | ||
- | left to right direction | ||
- | skinparam packageStyle rect | ||
- | rectangle SALE{ | + | === POST Parameter === |
- | | + | URL REFUND: https:// |
- | } | + | |
- | rectangle AUTH { | + | |
- | (auth) --> (REFUND ) | + | |
- | } | + | |
- | </uml> | + | |
- | ==== POST Parameter ==== | + | ^Name |
- | URL CAPTURE: https:// | + | |merchantId |
- | URL REFUND: https:// | + | |projectId |
- | + | |merchantTxId | |
- | ^Name | + | |amount |
- | ^::: ^ CAPTURE ^ REFUND ^::: ^::: ^ | + | |currency |
- | |merchantId | + | |purpose |
- | |projectId | + | |reference |
- | |merchantTxId | + | |hash |
- | |amount | + | |
- | |currency | + | |
- | |purpose | + | |
- | |reference | + | |
- | |final | + | |
- | |hash | + | |
== Beispiel == | == Beispiel == | ||
- | {{page> | + | {{page> |
- | ==== Antwort | + | === Antwort === |
- | Die Antwort besteht aus einem JSON Objekt. Das Feld resultPayment | + | Die Antwort besteht aus einem JSON Objekt. Das Feld rc liefert einen Fehlercode zurück. Wird rc = 0 zurückgeliefert, |
- | === Parameter | + | == Parameter == |
^Name | ^Name | ||
- | |rc | + | |rc |
- | |msg |Ja | + | |msg |Ja |
- | |reference | + | |reference |
- | |merchantTxId | + | |referenceParent |
- | |backendTxId | + | |merchantTxId |
- | |amount | + | |backendTxId |
- | |currency | + | |amount |
- | |resultPayment | + | |currency |
- | |hash | + | |resultPayment |
+ | |hash | ||
== Beispiel im Erfolgsfall == | == Beispiel im Erfolgsfall == | ||
- | {{page> | + | {{page> |
== Beispiel im Fehlerfall == | == Beispiel im Fehlerfall == | ||
- | {{page> | + | {{page> |