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/14 18:05] michaelheumann |
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 6: | Zeile 36: | ||
**Beispiel** | **Beispiel** | ||
- | |||
{{: | {{: | ||
+ | |||
+ | |||
+ | |||
+ | <WRAP center round info> | ||
+ | ==== 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 61: | Zeile 107: | ||
shop -> customer: | shop -> customer: | ||
- | center footer (c)2017 by GiroSolution AG | + | center footer (c)2017 by S-Public Services GmbH |
</ | </ | ||
Zeile 84: | Zeile 130: | ||
**URL:** https:// | **URL:** https:// | ||
- | **Bereitzustellen von: | + | **Bereitzustellen von: |
**Aufzurufen von:** Händler | **Aufzurufen von:** Händler | ||
Zeile 102: | Zeile 148: | ||
^Name | ^Name | ||
|rc | |rc | ||
- | |msg |Ja | + | |msg |Ja |
|projects | |projects | ||
^HEADER Parameter^^^^ | ^HEADER Parameter^^^^ | ||
- | |hash | + | |hash |
== Beispiel == | == Beispiel == | ||
Zeile 119: | 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 134: | 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 |
- | |tds2Email |Optional |String | Für 3D Secure 2.0: E-Mail-Adresse des Karteninhabers, | + | |paydirektDeliveryType |Optional | String(12) |
- | |tds2Optional |Optional |String | Für 3D Secure 2.0: JSON-String, | + | |successUrl |
- | |hash | + | |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 183: | Zeile 252: | ||
* tdsRequestorAuthenticationInformation (Authentifizierungsinformationen des Anfragenden) | * tdsRequestorAuthenticationInformation (Authentifizierungsinformationen des Anfragenden) | ||
* tdsTransactionAttributes (Transaktionsattribute) | * tdsTransactionAttributes (Transaktionsattribute) | ||
- | * tdsBrowserData (Browserdaten) | ||
- | * tdsCommunicationData (Kommunikationsdaten) | ||
Insgesamt gibt es folgende Feldern (alle optional, Felder in Unterobjekten sind mit [Unterobjektname].[Feld] dargestellt): | Insgesamt gibt es folgende Feldern (alle optional, Felder in Unterobjekten sind mit [Unterobjektname].[Feld] dargestellt): | ||
^Name | ^Name | ||
+ | |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: " |
- | ^**// | + | |
- | |tdsBrowserData.browserAcceptHeader |String | " | + | |
- | |tdsBrowserData.browserColorDepth |Integer | Farbtiefe des Browsers des Kunden in Bit. Gültige Werte: 1, 4, 8, 15, 16, 24, 32, 48. | | + | |
- | |tdsBrowserData.browserIP | String | IP-Adresse (IPv4 oder IPv6) des Browsers des Kunden. Format A-Z, a-z, 0-9, [.:], max. 39. | | + | |
- | |tdsBrowserData.browserJavaEnabled | Boolean | Gibt an, ob im Browser des Kunden Java aktiv ist (true) oder nicht (false). | | + | |
- | |tdsBrowserData.browserJavaScriptEnabled | Boolean | Gibt an, ob im Browser des Kunden JavaScript aktiv ist (true) oder nicht (false). | | + | |
- | |tdsBrowserData.browserLanguage | String | Sprache des Browsers des Kunden. Format A-Z, a-z, [-], Max. 8., Bsp. en-US | | + | |
- | |tdsBrowserData.browserScreenHeight | Integer | Höhe des Bildschirms des Kunden in Pixeln. Format 0-9, Max. 6. | | + | |
- | |tdsBrowserData.browserScreenWidth | Integer | Breite des Bildschirms des Kunden in Pixeln. Format 0-9, Max. 6. | | + | |
- | |tdsBrowserData.browserTimeZone | Integer | Differenz in Minuten zwischen der Zeitzone des Kunden und UTC. Wird von der JavaScript-Methode getTimezoneOffset() zurückgegeben. Format 0-9, [-], Max. 5. | | + | |
- | |tdsBrowserData.browserUserAgent | String | " | + | |
- | ^**// | + | |
- | |tdsCommunicationData.cResNotificationURL | String | URL des Shops, an welche der ACS die CRes-Nachricht senden soll. Format A-Z, a-z, 0-9, [: | + | |
- | |tdsCommunicationData.methodNotificationURL | String | URL des Shops, an welche der ACS die Benachrichtigung über die „3DS Method“ senden soll. Format A-Z, a-z, 0-9, [: | + | |
- | |tdsCommunicationData.challengeWindowSize | String | Größe des Fensters, das dem Kunden zur Autorisierung einer 3-D Secure 2.0 Zahlung angezeigt werden soll. Falls nicht angegeben wird " | + | |
== 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 315: | Zeile 369: | ||
" | " | ||
" | " | ||
- | }, | ||
- | " | ||
- | " | ||
- | " | ||
- | " | ||
- | " | ||
- | " | ||
- | " | ||
- | " | ||
- | " | ||
- | " | ||
- | " | ||
- | }, | ||
- | " | ||
- | " | ||
- | " | ||
- | " | ||
} | } | ||
} | } | ||
Zeile 345: | 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 356: | 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 374: | 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 399: | 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> | ||