Hier werden die Unterschiede zwischen zwei Versionen angezeigt.
Beide Seiten der vorigen Revision Vorhergehende Überarbeitung Nächste Überarbeitung | Vorhergehende Überarbeitung | ||
girocheckout:paypage:start [2020/12/19 02:08] michaelheumann [3D Secure 2.0] |
girocheckout:paypage:start [2023/05/08 04:11] (aktuell) michaelheumann |
||
---|---|---|---|
Zeile 1: | Zeile 1: | ||
~~NOCACHE~~ | ~~NOCACHE~~ | ||
====== Payment Page ====== | ====== Payment Page ====== | ||
+ | |||
+ | <WRAP center round info> | ||
+ | ==== Wichtiger Hinweis zu giropay und paydirekt ==== | ||
+ | Die Zahlungsarten giropay und paydirekt erfahren derzeit wichtige Änderungen, | ||
+ | |||
+ | Die neuen optionalen Felder sind: | ||
+ | * paydirektShoppingCartTypefg | ||
+ | * paydirektShippingCompany | ||
+ | * paydirektShippingAdditionalAddressInformation | ||
+ | * paydirektShippingStreet | ||
+ | * paydirektShippingStreetNumber | ||
+ | * paydirektShippingEmail | ||
+ | * paydirektMerchantOrderReferenceNumber | ||
+ | * paydirektCart | ||
+ | * paydirektDeliveryType | ||
+ | |||
+ | Beachten Sie ferner den Hinweis bzgl. des Verwendungszwecks weiter unten. | ||
+ | </ | ||
+ | |||
+ | <WRAP center round info 80%> | ||
+ | **Änderung an der API** \\ | ||
+ | Folgende Änderung an der API wird in diesen Tagen durchgeführt: | ||
+ | Der Parameter paydirektMerchantReconciliationReferenceNumber wird ersetzt durch paydirektMerchantOrderReferenceNumber, | ||
+ | </ | ||
+ | |||
+ | |||
+ | <WRAP hide> | ||
+ | Nähere Informationen - insbesondere auch zu Migration und Settlement - finden Sie auf unserer neuen [[girocheckout: | ||
+ | </ | ||
+ | |||
In diesem Dokument werden alle Abläufe und Schnittstellen beschrieben, | In diesem Dokument werden alle Abläufe und Schnittstellen beschrieben, | ||
Zeile 9: | Zeile 39: | ||
{{: | {{: | ||
- | ==== 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 70%> | + | <WRAP center round info> |
- | Die Parameter bzgl. 3-D Secure 2.0 können sich aufgrund | + | ==== Hinweis zum Verwendungszweck ==== |
+ | Je nach Zahlungsart, | ||
+ | |||
+ | 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: | ||
</ | </ | ||
+ | |||
+ | |||
+ | ==== Hinweis zu 3-D Secure 2.0 ==== | ||
+ | |||
+ | Seit dem 01.01.2021 ist 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 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 68: | Zeile 107: | ||
shop -> customer: | shop -> customer: | ||
- | center footer (c)2017 by GiroSolution AG | + | center footer (c)2017 by S-Public Services GmbH |
</ | </ | ||
Zeile 91: | Zeile 130: | ||
**URL:** https:// | **URL:** https:// | ||
- | **Bereitzustellen von: | + | **Bereitzustellen von: |
**Aufzurufen von:** Händler | **Aufzurufen von:** Händler | ||
Zeile 109: | Zeile 148: | ||
^Name | ^Name | ||
|rc | |rc | ||
- | |msg |Ja | + | |msg |Ja |
|projects | |projects | ||
^HEADER Parameter^^^^ | ^HEADER Parameter^^^^ | ||
- | |hash | + | |hash |
== Beispiel == | == Beispiel == | ||
Zeile 126: | Zeile 165: | ||
|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 180: | ||
|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 | ||
+ | |hash | ||
=== SEPA-konforme Zeichen === | === SEPA-konforme Zeichen === | ||
- | {{page>girocheckout: | + | {{page>resources:sepa-chars& |
=== Zulässige Beschreibungszeichen === | === Zulässige Beschreibungszeichen === | ||
Zeile 193: | Zeile 256: | ||
^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 382: | ||
^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 394: | ||
== 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 436: | ||
^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 461: | ||
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> | ||