Hier werden die Unterschiede zwischen zwei Versionen angezeigt.
Nächste Überarbeitung | Vorhergehende Überarbeitung | ||
girocheckout:paypal:start [2013/07/18 08:05] 127.0.0.1 Externe Bearbeitung |
girocheckout:paypal:start [2023/05/08 04:14] (aktuell) michaelheumann |
||
---|---|---|---|
Zeile 1: | Zeile 1: | ||
+ | ~~NOCACHE~~ | ||
====== PayPal ====== | ====== PayPal ====== | ||
+ | ===== Testdaten ===== | ||
+ | {{page> | ||
+ | |||
+ | ===== Workflow ===== | ||
+ | |||
+ | <uml> | ||
+ | hide footbox | ||
+ | |||
+ | participant " | ||
+ | participant " | ||
+ | participant " | ||
+ | participant " | ||
+ | |||
+ | autonumber | ||
+ | |||
+ | customer -> shop: | ||
+ | shop -> girocheckout: | ||
+ | girocheckout -> paypal: | ||
+ | paypal -> girocheckout: | ||
+ | girocheckout -> shop: | ||
+ | shop -> customer: | ||
+ | customer -> paypal: | ||
+ | paypal -> customer: | ||
+ | customer -> paypal | ||
+ | paypal -> paypal: | ||
+ | paypal -> girocheckout: | ||
+ | girocheckout -> shop | ||
+ | shop -> shop: | ||
+ | shop -> girocheckout: | ||
+ | girocheckout -> paypal: | ||
+ | paypal -> shop: | ||
+ | |||
+ | |||
+ | center footer (c)2021 by GiroSolution GmbH | ||
+ | </ | ||
+ | |||
+ | - Käufer wählt Zahlart PayPal aus | ||
+ | - Shop initiiert PayPal-Zahlung ([[girocheckout: | ||
+ | - GiroCheckout initialisiert Transaktion bei PayPal | ||
+ | - PayPal übermittelt Ergebnis an GiroCheckout | ||
+ | - Shop bekommt Rückmeldung über Initialisierungsausgang (bei Fehler ist Transaktion beendet) | ||
+ | - Shop sendet Redirect URL an Kundenbrowser | ||
+ | - Kundenbrowser leitet zu PayPal weiter | ||
+ | - PayPal zeigt Zahlformular an | ||
+ | - Kunde autorisiert Transaktion | ||
+ | - PayPal führt Transaktion durch | ||
+ | - PayPal ü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 PayPal | ||
+ | - Kunde klickt " | ||
+ | |||
+ | ===== API-Funktionen ===== | ||
+ | |||
+ | ==== Übersicht ===== | ||
+ | |||
+ | Wie im Workflow dargestellt gibt es mehrere API-Aufrufe während einer PayPal Transaktion. | ||
+ | |||
+ | - Transaktion initiieren | ||
+ | - PayPal Bezahlung durchführen | ||
+ | - 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. | ||
+ | |||
+ | ==== Initialisierung einer PayPal Zahlung ==== | ||
+ | |||
+ | Durch eine erfolgreiche Initialisierung wird eine Referenznummer erstellt sowie eine Weiterleitungs-URL (redirect) an den Händler übermittelt. Der Kunde 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 | ||
+ | |type | ||
+ | |urlRedirect | ||
+ | |urlNotify | ||
+ | |kassenzeichen | ||
+ | |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 | ||
+ | |rc | ||
+ | |msg |Ja | ||
+ | |reference | ||
+ | |redirect | ||
+ | ^HEADER Parameter^^^^ | ||
+ | |hash | ||
+ | |||
+ | == Beispiel im Erfolgsfall == | ||
+ | {{page> | ||
+ | |||
+ | == Beispiel im Fehlerfall == | ||
+ | {{page> | ||
+ | |||
+ | ==== Benachrichtigung über den Zahlungsausgang ==== | ||
+ | |||
+ | Der Ausgang einer Zahlung wird, an die im // | ||
+ | |||
+ | Der Zahlungausgang einer Transaktion steht im Feld gcResultPayment. | ||
+ | |||
+ | === 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 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 ==== | ||
+ | |||
+ | <uml> | ||
+ | hide footbox | ||
+ | |||
+ | participant " | ||
+ | participant " | ||
+ | participant " | ||
+ | |||
+ | autonumber | ||
+ | |||
+ | shop -> girocheckout: | ||
+ | girocheckout -> cc: | ||
+ | cc -> girocheckout: | ||
+ | girocheckout -> shop: | ||
+ | |||
+ | center footer (c)2016 by GiroSolution AG | ||
+ | </ | ||
+ | |||
+ | - Shop sendet referenzierende Kreditkartentransaktion | ||
+ | - GiroCheckout leitet Transaktion zu Kreditkartenabwickler | ||
+ | - Kreditkartenabwickler übermittelt Ergebnis an GiroCheckout | ||
+ | - Shop bekommt Rückmeldung über Transaktionsausgang ([[girocheckout: | ||
+ | |||
+ | ==== Buchung (CAPTURE) ==== | ||
+ | {{page> | ||
+ | |||
+ | ==== Erstattung (REFUND) ==== | ||
+ | {{page> | ||
+ | |||
+ | === POST Parameter === | ||
+ | URL CAPTURE: https:// | ||
+ | URL REFUND: https:// | ||
+ | |||
+ | ^Name | ||
+ | |merchantId | ||
+ | |projectId | ||
+ | |merchantTxId | ||
+ | |amount | ||
+ | |currency | ||
+ | |purpose | ||
+ | |reference | ||
+ | |kassenzeichen | ||
+ | |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 | ||
+ | |rc | ||
+ | |msg |Ja | ||
+ | |reference | ||
+ | |referenceParent | ||
+ | |merchantTxId | ||
+ | |backendTxId | ||
+ | |amount | ||
+ | |currency | ||
+ | |resultPayment | ||
+ | |hash | ||
+ | |||
+ | == Beispiel im Erfolgsfall == | ||
+ | {{page> | ||
+ | |||
+ | == Beispiel im Fehlerfall == | ||
+ | {{page> |