Hier werden die Unterschiede zwischen zwei Versionen angezeigt.
Beide Seiten der vorigen Revision Vorhergehende Überarbeitung Nächste Überarbeitung | Vorhergehende Überarbeitung | ||
girocheckout:paypage:start [2021/04/12 14:32] 127.0.0.1 Externe Bearbeitung |
girocheckout:paypage:start [2025/08/08 03:46] (aktuell) michaelheumann |
||
---|---|---|---|
Zeile 1: | Zeile 1: | ||
~~NOCACHE~~ | ~~NOCACHE~~ | ||
====== Payment Page ====== | ====== Payment Page ====== | ||
+ | |||
In diesem Dokument werden alle Abläufe und Schnittstellen beschrieben, | In diesem Dokument werden alle Abläufe und Schnittstellen beschrieben, | ||
Zeile 7: | Zeile 8: | ||
**Beispiel** | **Beispiel** | ||
- | {{: | + | {{: |
- | ==== Hinweis zu 3-D Secure 2.0 ==== | ||
- | Ab dem 01.01.2021 wird das neue Sicherheitsverfahren für Kreditkartenzahlungen "3D Secure 2.0", das im Zuge von PSD2 eingeführt wird, für alle Zahlungsanbieter Pflicht. Die vorliegende API-Beschreibung enthält bereits die hierfür notwendigen Felder (beginnend mit " | + | <WRAP center round info> |
+ | ==== Hinweis zum Verwendungszweck ==== | ||
+ | Je nach Zahlungsart, | ||
- | <WRAP center round info 70%> | + | Der finale Verwendungszweck wird von der Payment Page bei Bedarf entsprechend angepasst, indem unzulässige Zeichen entfernt und das Ergebnis dann auf die maximal zulässige Länge gekürzt wird (s. auch Dokumentationen der jeweiligen Zahlungsarten). So sind im Endergebnis bei giropay z.B. nur SEPA-konforme Zeichen zulässig (s. [[girocheckout: |
- | Die Parameter bzgl. 3-D Secure 2.0 können sich aufgrund von Änderungen der EMVCo 3-D Secure-Spezifikation ändern. | + | |
</ | </ | ||
+ | |||
+ | |||
+ | ==== Hinweis zu 3-D Secure 2.0 ==== | ||
+ | |||
+ | Seit dem 01.01.2021 ist das Sicherheitsverfahren für Kreditkartenzahlungen "3D Secure 2.0", das im Zuge von PSD2 eingeführt wird, für alle Zahlungsanbieter Pflicht. Die vorliegende API-Beschreibung enthält alle hierfür notwendigen Felder (beginnend mit " | ||
+ | |||
+ | **Beachten Sie**: Die Parameter bzgl. 3-D Secure 2.0 können sich aufgrund von Änderungen der EMVCo 3-D Secure-Spezifikation ändern. | ||
+ | |||
===== Unterstützte Zahlungsarten ===== | ===== Unterstützte Zahlungsarten ===== | ||
Zeile 21: | Zeile 30: | ||
^ Zahlungsart ^ Code ^ | ^ Zahlungsart ^ Code ^ | ||
- | | giropay | 1 | | ||
- | | giropay-ID + giropay | 17 | | ||
- | | giropay mit Zahlungsbestätigung | 18 | | ||
| eps | 2 | | | eps | 2 | | ||
| iDEAL | 12 | | | iDEAL | 12 | | ||
Zeile 32: | Zeile 38: | ||
| Maestro | 33 | | | Maestro | 33 | | ||
| PayPal | 14 | | | PayPal | 14 | | ||
- | | paydirekt | + | | Klarna |
- | | SOFORT-Überweisung | + | | Direktüberweisung| 37 | |
+ | | Apple Pay| 36 | | ||
+ | | Google Pay| 39 | | ||
===== Initialisierung einer Zahlung über die Payment Page ===== | ===== Initialisierung einer Zahlung über die Payment Page ===== | ||
Zeile 68: | Zeile 77: | ||
shop -> customer: | shop -> customer: | ||
- | center footer (c)2017 by GiroSolution AG | + | center footer (c)2017 by S-Public Services GmbH |
</ | </ | ||
Zeile 79: | Zeile 88: | ||
- Paypage leitet Kunden auf Zahlungsformular beim Abwickler weiter, Kunde gibt Daten ein und bezahlt | - Paypage leitet Kunden auf Zahlungsformular beim Abwickler weiter, Kunde gibt Daten ein und bezahlt | ||
- Zahlungsabwickler informiert GiroCheckout über Transaktionsausgang | - Zahlungsabwickler informiert GiroCheckout über Transaktionsausgang | ||
- | - 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 sendet HTTP Statuscode an GiroCheckout | ||
Zeile 91: | Zeile 100: | ||
**URL:** https:// | **URL:** https:// | ||
- | **Bereitzustellen von: | + | **Bereitzustellen von: |
**Aufzurufen von:** Händler | **Aufzurufen von:** Händler | ||
Zeile 109: | Zeile 118: | ||
^Name | ^Name | ||
|rc | |rc | ||
- | |msg |Ja | + | |msg |Ja |
|projects | |projects | ||
^HEADER Parameter^^^^ | ^HEADER Parameter^^^^ | ||
- | |hash | + | |hash |
== Beispiel == | == Beispiel == | ||
Zeile 126: | Zeile 135: | ||
|merchantId | |merchantId | ||
|projectId | |projectId | ||
- | |merchantTxId | + | |merchantTxId |
|amount | |amount | ||
|currency | |currency | ||
- | |purpose | + | |purpose |
|description | |description | ||
|pagetype | |pagetype | ||
- | |expirydate | + | |expirydate |
|single | |single | ||
- | |timeout | + | |timeout |
|type | |type | ||
|locale | |locale | ||
Zeile 141: | Zeile 150: | ||
|organization | |organization | ||
|freeamount | |freeamount | ||
- | |fixedvalues | + | |fixedvalues |
|minamount | |minamount | ||
|maxamount | |maxamount | ||
|orderid | |orderid | ||
|projectlist | |projectlist | ||
- | |pkn |Optional |String | + | |pkn |Optional |String(50) |Das Feld dient dazu eine erneute Transaktion, |
|test | |test | ||
|certdata | |certdata | ||
- | |otherpayments | + | |otherpayments |
- | |paydirektShippingFirstName |Optional | + | |paydirektShoppingCartType |Optional | String(19) |
- | |paydirektShippingLastName | + | |paydirektShippingFirstName |Optional |
- | |paydirektShippingZipCode | + | |paydirektShippingLastName |
- | |paydirektShippingCity | + | |paydirektShippingCompany |
- | |paydirektShippingCountry | + | |paydirektShippingAdditionalAddressInformation |Optional |
- | |successUrl | + | |paydirektShippingStreet |
- | |backUrl | + | |paydirektShippingStreetNumber |Optional |
- | |failUrl | + | |paydirektShippingZipCode |
- | |notifyUrl | + | |paydirektShippingCity |
- | |tds2Address |Optional |String | Für 3D Secure 2.0: Hauptadresszeile (i.d.R. Straße+Hausnummer) der Rechnungsadresse des Karteninhabers, | + | |paydirektShippingCountry |
- | |tds2Postcode |Optional |String | Für 3D Secure 2.0: Postleitzahl der Rechnungsadresse des Karteninhabers, | + | |paydirektShippingEmail |
- | |tds2City |Optional |String | Für 3D Secure 2.0: Ort der Rechnungsadresse des Karteninhabers, | + | |paydirektMerchantOrderReferenceNumber |
- | |tds2Country |Optional |String | Für 3D Secure 2.0: Land der Rechnungsadresse des Karteninhabers, | + | |paydirektCart |
- | |tds2Optional |Optional |String | Für 3D Secure 2.0: JSON-String, | + | |paydirektDeliveryType |Optional | String(12) |
- | |hash | + | |successUrl |
+ | |backUrl | ||
+ | |failUrl | ||
+ | |notifyUrl | ||
+ | |tds2Address |Optional |String(50) | Für 3D Secure 2.0: Hauptadresszeile (i.d.R. Straße+Hausnummer) der Rechnungsadresse des Karteninhabers, | ||
+ | |tds2Postcode |Optional |String(10) | Für 3D Secure 2.0: Postleitzahl der Rechnungsadresse des Karteninhabers, | ||
+ | |tds2City |Optional |String(50) | Für 3D Secure 2.0: Ort der Rechnungsadresse des Karteninhabers, | ||
+ | |tds2Country |Optional |String(2) | Für 3D Secure 2.0: Land der Rechnungsadresse des Karteninhabers, | ||
+ | |tds2Optional |Optional |JSON-String | Für 3D Secure 2.0: JSON-String, | ||
+ | |mandateReference | Optional |String(35) | ||
+ | Ziffern: 0 – 9 | ||
+ | Buchstaben: A – Z und a – z | ||
+ | Sonderzeichen: | ||
+ | | | ||
+ | |mandateSignedOn | Optional |String(10)| Datum im Format JJJJ-MM-TT, wann das SEPA-Lastschriftmandat erteilt wurde. Wenn kein Datum angegeben wird, wird das aktuelle Datum verwendet. | | ||
+ | |mandateReceiverName |Optional |String(70)| Names des Empfängers, | ||
+ | Ziffern: 0 – 9 | ||
+ | Buchstaben: A – Z und a – z | ||
+ | Sonderzeichen: | ||
+ | | | ||
+ | |mandateSequence | Optional |Integer |Sequenztyp der SEPA-Lastschrift. Falls nichts angegeben, wird eine Einmalzahlung angenommen. \\ 1 = Einmalzahlung (default) \\ 2 = erste Zahlung einer Sequenz \\ 3 = Folgezahlung \\ 4 = letzte Zahlung einer Sequenz | | ||
+ | |informationText | Optional | String(300) | Hinweistext, | ||
+ | |kassenzeichen | ||
+ | |qrcodeReturn | ||
+ | |billingAddress | ||
+ | |shippingAddress |Optional | JSON-String | Optionales Feld für Klarna, Apple Pay und Google Pay, das die Lieferadresse des Käufers enthalten kann. Fehlt diese Information, | ||
+ | |customerInfo | ||
+ | |basket | ||
+ | |hash | ||
=== SEPA-konforme Zeichen === | === SEPA-konforme Zeichen === | ||
- | {{page>girocheckout: | + | {{page>resources:sepa-chars& |
=== Zulässige Beschreibungszeichen === | === Zulässige Beschreibungszeichen === | ||
Zeile 193: | Zeile 230: | ||
^Name | ^Name | ||
- | |email |String | E-Mail-Adresse des Karteninhabers, | + | |email |String(254) | E-Mail-Adresse des Karteninhabers, |
|addressesMatch |Boolean | |addressesMatch |Boolean | ||
^**// | ^**// | ||
- | |billingAddress.line2 |String | Zeile 2 der Rechnungsadresse. Format A-Z, a-z, 0-9, Blank, [-/ | + | |billingAddress.line2 |String(50) | Zeile 2 der Rechnungsadresse. Format A-Z, a-z, 0-9, Blank, [-/ |
- | |billingAddress.line3 |String | Zeile 3 der Rechnungsadresse. Format A-Z, a-z, 0-9, Blank, [-/ | + | |billingAddress.line3 |String(50) | Zeile 3 der Rechnungsadresse. Format A-Z, a-z, 0-9, Blank, [-/ |
- | |billingAddress.state |String | Bundesland der Rechnungsadresse o.ä. Format A-Z, max. 3, Kürzel gemäß ISO 3166-2 | | + | |billingAddress.state |String(3) | Bundesland der Rechnungsadresse o.ä. Format A-Z, max. 3, Kürzel gemäß ISO 3166-2 | |
^**// | ^**// | ||
- | |shippingAddress.line1 |String | Zeile 1 der Lieferadresse. Format A-Z, a-z, 0-9, Blank, [-/ | + | |shippingAddress.line1 |String(50) | Zeile 1 der Lieferadresse. Format A-Z, a-z, 0-9, Blank, [-/ |
- | |shippingAddress.line2 |String | Zeile 2 der Lieferadresse. Format A-Z, a-z, 0-9, Blank, [-/ | + | |shippingAddress.line2 |String(50) | Zeile 2 der Lieferadresse. Format A-Z, a-z, 0-9, Blank, [-/ |
- | |shippingAddress.line3 |String | Zeile 3 der Lieferadresse. Format A-Z, a-z, 0-9, Blank, [-/ | + | |shippingAddress.line3 |String(50) | Zeile 3 der Lieferadresse. Format A-Z, a-z, 0-9, Blank, [-/ |
- | |shippingAddress.postcode |String |Postleitzahl der Lieferadresse, | + | |shippingAddress.postcode |String(10) |Postleitzahl der Lieferadresse, |
- | |shippingAddress.city |String | Ort der Lieferadresse, | + | |shippingAddress.city |String(50) | Ort der Lieferadresse, |
- | |shippingAddress.state |String | Bundesland der Lieferadresse o.ä. Format A-Z, max. 3, Kürzel gemäß ISO 3166-2 | | + | |shippingAddress.state |String(50) | Bundesland der Lieferadresse o.ä. Format A-Z, max. 3, Kürzel gemäß ISO 3166-2 | |
- | |shippingAddress.country |String | Land der Lieferadresse, | + | |shippingAddress.country |String(2) | Land der Lieferadresse, |
^**// | ^**// | ||
|homePhoneNumber.country |Integer | Ländervorwahl der Heim-Telefonnummer, | |homePhoneNumber.country |Integer | Ländervorwahl der Heim-Telefonnummer, | ||
- | |homePhoneNumber.regional |String | Rest der der Heim-Telefonnummer, | + | |homePhoneNumber.regional |String(15) | Rest der der Heim-Telefonnummer, |
^**// | ^**// | ||
|mobilePhoneNumber.country |Integer | Ländervorwahl der Mobil-Telefonnummer, | |mobilePhoneNumber.country |Integer | Ländervorwahl der Mobil-Telefonnummer, | ||
- | |mobilePhoneNumber.regional |String | Rest der der Mobil-Telefonnummer, | + | |mobilePhoneNumber.regional |String(15) | Rest der der Mobil-Telefonnummer, |
^**// | ^**// | ||
|workPhoneNumber.country |Integer | Ländervorwahl der Arbeits-Telefonnummer, | |workPhoneNumber.country |Integer | Ländervorwahl der Arbeits-Telefonnummer, | ||
- | |workPhoneNumber.regional |String | Rest der der Arbeits-Telefonnummer, | + | |workPhoneNumber.regional |String(50) | Rest der der Arbeits-Telefonnummer, |
^**// | ^**// | ||
- | |cardholderAccountInfo.accountAgeIndicator |String | Alter des Kundenkontos. Mögliche Werte: " | + | |cardholderAccountInfo.accountAgeIndicator |String(12) | Alter des Kundenkontos. Mögliche Werte: " |
- | |cardholderAccountInfo.passwordChangeIndicator |String | Gibt an, wann das Passwort des Kundenkontos zuletzt geändert oder zurückgesetzt wurde. Mögliche Werte: " | + | |cardholderAccountInfo.passwordChangeIndicator |String(12) | Gibt an, wann das Passwort des Kundenkontos zuletzt geändert oder zurückgesetzt wurde. Mögliche Werte: " |
- | |cardholderAccountInfo.paymentAccountAgeIndicator |String | Gibt an, wann das Zahlungskonto des Kunden angelegt wurde. Mögliche Werte: " | + | |cardholderAccountInfo.paymentAccountAgeIndicator |String(12) | Gibt an, wann das Zahlungskonto des Kunden angelegt wurde. Mögliche Werte: " |
- | |cardholderAccountInfo.accountChange |String | Gibt an, wann das Kundenkonto im Shop zuletzt geändert wurde, z.B. Adressänderung oder neue Zahlungsdaten. Mögliche Werte: " | + | |cardholderAccountInfo.accountChange |String(12) | Gibt an, wann das Kundenkonto im Shop zuletzt geändert wurde, z.B. Adressänderung oder neue Zahlungsdaten. Mögliche Werte: " |
- | |cardholderAccountInfo.shippingAddressAgeIndicator |String | Gibt an, wann der Kunde die aktuelle Lieferadresse zum ersten Mal benutzt hat. Mögliche Werte: " | + | |cardholderAccountInfo.shippingAddressAgeIndicator |String(12) | Gibt an, wann der Kunde die aktuelle Lieferadresse zum ersten Mal benutzt hat. Mögliche Werte: " |
- | |cardholderAccountInfo.shippingNameIndicator |String | Gibt an, ob der Name des Karteninhabers und der Name der Lieferadresse identisch sind. Mögliche Werte: " | + | |cardholderAccountInfo.shippingNameIndicator |String(9) | Gibt an, ob der Name des Karteninhabers und der Name der Lieferadresse identisch sind. Mögliche Werte: " |
|cardholderAccountInfo.suspiciousAccountActivity |Boolean | Gibt an, ob für diesen Kunden verdächtige Aktivitäten beobachtet wurden. Mögliche Werte: " | |cardholderAccountInfo.suspiciousAccountActivity |Boolean | Gibt an, ob für diesen Kunden verdächtige Aktivitäten beobachtet wurden. Mögliche Werte: " | ||
|cardholderAccountInfo.provisioningDayCount |Integer | Anzahl der "Karte hinzufügen" | |cardholderAccountInfo.provisioningDayCount |Integer | Anzahl der "Karte hinzufügen" | ||
^**// | ^**// | ||
- | |tdsMerchantRiskIndicators.deliveryTimeframe |String | Zeitraum, in dem die Ware an den Kunden geliefert wird. Mögliche Werte: " | + | |tdsMerchantRiskIndicators.deliveryTimeframe |String(4) | Zeitraum, in dem die Ware an den Kunden geliefert wird. Mögliche Werte: " |
- | |tdsMerchantRiskIndicators.deliveryEmailAddress |String | Liefer-E-Mail-Adresse des Kunden im Fall einer elektronischen Lieferung. Format A-Z, a-z, 0-9, [_.+-@], max. 254. | | + | |tdsMerchantRiskIndicators.deliveryEmailAddress |String(254) | Liefer-E-Mail-Adresse des Kunden im Fall einer elektronischen Lieferung. Format A-Z, a-z, 0-9, [_.+-@], max. 254. | |
|tdsMerchantRiskIndicators.giftCardAmount |Integer | Betrag der Geschenkkarte in größter Währungseinheit, | |tdsMerchantRiskIndicators.giftCardAmount |Integer | Betrag der Geschenkkarte in größter Währungseinheit, | ||
|tdsMerchantRiskIndicators.giftCardCount |Integer | Anzahl der gekauften Geschenkkarten. Format 0-9, max. 2. | | |tdsMerchantRiskIndicators.giftCardCount |Integer | Anzahl der gekauften Geschenkkarten. Format 0-9, max. 2. | | ||
|tdsMerchantRiskIndicators.giftCardCurrency |Integer | Währungscode der Geschenkkarte gemäß ISO 4217. Format A-Z, max. 3. | | |tdsMerchantRiskIndicators.giftCardCurrency |Integer | Währungscode der Geschenkkarte gemäß ISO 4217. Format A-Z, max. 3. | | ||
|tdsMerchantRiskIndicators.preOrderDate |Date | Im Fall einer Vorbestellung: | |tdsMerchantRiskIndicators.preOrderDate |Date | Im Fall einer Vorbestellung: | ||
- | |tdsMerchantRiskIndicators.preOrderPurchaseIndicator |String | Mögliche Werte: " | + | |tdsMerchantRiskIndicators.preOrderPurchaseIndicator |String(9) | Mögliche Werte: " |
- | |tdsMerchantRiskIndicators.reorderItemsIndicator |String | Gibt an, ob der Kunde Artikel bereits zuvor bestellt hat. Mögliche Werte: " | + | |tdsMerchantRiskIndicators.reorderItemsIndicator |String(9) | Gibt an, ob der Kunde Artikel bereits zuvor bestellt hat. Mögliche Werte: " |
- | |tdsMerchantRiskIndicators.shippingIndicator |String | Gibt an, wohin die Ware geliefert wird. Mögliche Werte: " | + | |tdsMerchantRiskIndicators.shippingIndicator |String(16) | Gibt an, wohin die Ware geliefert wird. Mögliche Werte: " |
^**// | ^**// | ||
- | |tdsRequestorAuthenticationInformation.authenticationData |String | Authentifizierungsdaten des Kunden. Format A-Z, a-z, 0-9 [!"# | + | |tdsRequestorAuthenticationInformation.authenticationData |String(2048) |
|tdsRequestorAuthenticationInformation.authenticationTimestamp |DateTime | Datum und Uhrzeit, wann sich der Kunde im Shop authentifiziert hat. Format JJJJ-MM-TTTHH: | |tdsRequestorAuthenticationInformation.authenticationTimestamp |DateTime | Datum und Uhrzeit, wann sich der Kunde im Shop authentifiziert hat. Format JJJJ-MM-TTTHH: | ||
- | |tdsRequestorAuthenticationInformation.authenticationMethod |String | Gibt an, wie sich der Kunde in Ihrem Shop authentifiziert hat. Mögliche Werte: " | + | |tdsRequestorAuthenticationInformation.authenticationMethod |String(17) | Gibt an, wie sich der Kunde in Ihrem Shop authentifiziert hat. Mögliche Werte: " |
^**// | ^**// | ||
|tdsTransactionAttributes.purchaseInstalmentData |Integer | Maximal erlaubte Anzahl von Autorisierungen bei Ratenzahlungen. Format 0-9, max. 3, Wert muss > 1 sein. | | |tdsTransactionAttributes.purchaseInstalmentData |Integer | Maximal erlaubte Anzahl von Autorisierungen bei Ratenzahlungen. Format 0-9, max. 3, Wert muss > 1 sein. | | ||
|tdsTransactionAttributes.recurringExpiry |Date | Datum, nach dem keine weiteren Autorisierungen mehr stattfinden sollen. Format JJJJ-MM-TT. | | |tdsTransactionAttributes.recurringExpiry |Date | Datum, nach dem keine weiteren Autorisierungen mehr stattfinden sollen. Format JJJJ-MM-TT. | | ||
|tdsTransactionAttributes.recurringFrequency |Integer | Minimale Anzahl von Tagen zwischen zwei Autorisierungen. Format 0-9, max. 4. | | |tdsTransactionAttributes.recurringFrequency |Integer | Minimale Anzahl von Tagen zwischen zwei Autorisierungen. Format 0-9, max. 4. | | ||
- | |tdsTransactionAttributes.type |String | Art der 3-D Secure 2.0 Zahlung. Mögliche Werte: " | + | |tdsTransactionAttributes.type |String(17) | Art der 3-D Secure 2.0 Zahlung. Mögliche Werte: " |
== Beispiel eines tds2Optional-Strings (zu Demonstrationszwecken formatiert, sollte normalerweise in einer Zeile angegeben werden) == | == Beispiel eines tds2Optional-Strings (zu Demonstrationszwecken formatiert, sollte normalerweise in einer Zeile angegeben werden) == | ||
Zeile 319: | Zeile 356: | ||
^Name | ^Name | ||
|rc | |rc | ||
- | |msg |Ja | + | |msg |Ja |
- | |reference | + | |reference |
- | |url | + | |url |Optional |String(255) |URL zur Payment Page, an die der Kunde weitergeleitet werden muss.| |
+ | |qrcode | ||
^HEADER Parameter^^^^ | ^HEADER Parameter^^^^ | ||
- | |hash | + | |hash |
== Beispiel im Erfolgsfall == | == Beispiel im Erfolgsfall == | ||
Zeile 330: | Zeile 368: | ||
== Beispiel im Fehlerfall == | == Beispiel im Fehlerfall == | ||
{{page> | {{page> | ||
+ | |||
+ | === cart-Element === | ||
+ | JSON Array mit item Objekten: | ||
+ | |||
+ | ^Name | ||
+ | |name | ||
+ | |ean |Optional | ||
+ | |quantity | ||
+ | |grossAmount | ||
+ | |||
+ | == Beispiel == | ||
+ | < | ||
+ | [ { | ||
+ | " | ||
+ | " | ||
+ | " | ||
+ | " | ||
+ | }, { | ||
+ | " | ||
+ | " | ||
+ | " | ||
+ | } ] | ||
+ | </ | ||
+ | |||
Zeile 348: | Zeile 410: | ||
^Name | ^Name | ||
- | |gcPaymethod | + | |gcPaymethod |
- | |gcType | + | |gcType |
- | |gcProjectId | + | |gcProjectId |
- | |gcReference | + | |gcReference |
- | |gcMerchantTxId | + | |gcMerchantTxId |
- | |gcBackendTxId | + | |gcBackendTxId |
|gcAmount | |gcAmount | ||
- | |gcCurrency | + | |gcCurrency |
|gcResultPayment | |gcResultPayment | ||
- | |gcPkn | + | |gcPkn |
- | |gcCardnumber | + | |gcCardnumber |
- | |gcCardExpDate | + | |gcCardExpDate |
- | |gcAccountHolder | + | |gcAccountHolder |
- | |gcIban | + | |gcIban |
- | |gcHash | + | |gcHash |
=== Redirect === | === Redirect === | ||
Zeile 373: | Zeile 435: | ||
Die success- und failUrl werden mit der POST-Methode aufgerufen und erhalten die selben Parameter wie oben beim Notify angegeben. | Die success- und failUrl werden mit der POST-Methode aufgerufen und erhalten die selben Parameter wie oben beim Notify angegeben. | ||
+ | |||
+ | ===== 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). | ||
+ | Im Falle der Payment Page beachte man hierbei, dass diese Transaktionsarten (Buchung und Erstattung) sich dann jeweils auf die zugrundeliegende vorher durchgeführte Transaktion beziehen und somit ist die Aktion nur erlaubt, wenn die entsprechende Zahlungsart dies unterstützt. | ||
+ | |||
+ | **Beispiel: | ||
+ | |||
+ | Wird ein Payment-Link dazu verwendet, eine Rechnung zu bezahlen, und der Kunde wählt die Zahlungsart Kreditkarte aus, so kann hinterher mit der Referenznummer der Payment-Page-Transaktion diese Zahlung erstattet werden. | ||
+ | |||
+ | Weiterhin ist zu beachten, dass je nachdem, wie eine Payment- oder Spendenseite initialisiert wurde (Stichwort: single-Parameter), | ||
+ | |||
+ | 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)2022 by S-Public Services GmbH | ||
+ | </ | ||
+ | |||
+ | - 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 | ||
+ | |txreference | ||
+ | |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> | ||