Benutzer-Werkzeuge

Webseiten-Werkzeuge


girocheckout:creditcard_3ds2:start

Unterschiede

Hier werden die Unterschiede zwischen zwei Versionen angezeigt.

Link zu dieser Vergleichsansicht

Beide Seiten der vorigen Revision Vorhergehende Überarbeitung
girocheckout:creditcard_3ds2:start [2020/12/19 02:14]
michaelheumann gelöscht
— (aktuell)
Zeile 1: Zeile 1:
-~~NOCACHE~~ 
-====== Kreditkarte 3D Secure 2.0 ====== 
- 
-**Dies ist die künftige Version der Kreditkarten-API, die die neuen Felder für 3D Secure 2.0 enthält.  Diese API steht noch nicht auf dem Server zur Verfügung!  Diese Dokumentation ist lediglich eine Vorab-Info der bald verfügbaren API.** 
- 
-Betroffen sind vor allem die Felder, deren Namen mit "tds2" beginnen, s. Transaktionsinitialisierung weiter unten. 
- 
-<WRAP center round info 70%> 
-Die Parameter bzgl. 3-D Secure 2.0 können sich aufgrund von Änderungen der EMVCo 3-D Secure-Spezifikation ändern. 
-</WRAP> 
- 
- 
-===== Testdaten ===== 
-{{page>testdata:creditcard_3ds2&nofooter}} 
- 
-===== Transaktionstypen ===== 
-Detaillierte Informationen zu den [[girocheckout:transactiontypes:start|Transaktionstypen]].  
- 
-==== Reservierung (AUTH) ==== 
-{{page>girocheckout:transactiontypes:descriptions#auth.desc&noheader&nofooter}} 
- 
-<uml> 
-left to right direction 
-skinparam packageStyle rect 
- 
-rectangle AUTH { 
-  (AUTH) --> (CAPTURE) 
-  (AUTH) --> (VOID ) 
-  (CAPTURE) --> (VOID ) 
-  (CAPTURE) --> (REFUND ) 
-  (REFUND ) --> (VOID ) 
-} 
-</uml> 
- 
-==== Verkauf (SALE) ==== 
-{{page>girocheckout:transactiontypes:descriptions#sale.desc&noheader&nofooter}} 
- 
-<uml> 
-left to right direction 
-skinparam packageStyle rect 
- 
-rectangle SALE{ 
-  (SALE) --> (REFUND) 
-  (SALE) --> (VOID) 
-  (REFUND) --> (VOID) 
-} 
-</uml> 
- 
-===== Initialisierung einer Kreditkartenzahlung ===== 
-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, eine HTML-Seite mit entsprechendem Meta-Tag oder Javascript erfolgen. 
- 
-Bereitzustellen von: GiroCheckout\\ 
-Aufzurufen von: Händler\\ 
- 
-==== Workflow ==== 
- 
-<uml> 
-hide footbox 
- 
-participant "Kunde" as customer 
-participant "Shop" as shop 
-participant "GiroCheckout" as girocheckout 
-participant "Kreditkartenabwickler" as cc 
- 
-autonumber 
- 
-customer -> shop:  
-shop -> girocheckout:  
-girocheckout -> cc:  
-cc -> girocheckout:  
-girocheckout -> shop:  
-shop -> customer:  
-customer -> cc: 
-cc -> customer:  
-customer -> cc: 
-cc -> cc:  
-cc -> girocheckout: 
-girocheckout -> shop 
-shop -> shop:  
-shop -> girocheckout:  
-girocheckout -> cc:  
-cc -> shop:  
- 
- 
-center footer (c)2013 by GiroSolution AG 
-</uml> 
- 
-  - Käufer wählt Zahlart Kreditkarte aus 
-  - Shop initiiert Kreditkartentransaktion ([[girocheckout:creditcard:start#reservierung_sale|Initialisierung]]) 
-  - GiroCheckout initialisiert Transaktion bei Kreditkartenabwickler 
-  - Kreditkartenabwickler übermittelt Ergebnis an GiroCheckout 
-  - Shop bekommt Rückmeldung über Initialisierungsausgang (bei Fehler ist Transaktion beendet) 
-  - Shop sendet Redirect URL an Kundenbrowser  
-  - Kundenbrowser leitet zum Kreditkartenabwickler weiter 
-  - Kreditkartenabwickler zeigt Zahlformular an 
-  - Kunde autorisiert Transaktion 
-  - Kreditkartenabwickler führt Transaktion durch 
-  - Kreditkartenabwickler übermittelt Ergebnis an GiroCheckout 
-  - GiroCheckout benachrichtigt Shop über Transaktionsausgang ([[girocheckout:creditcard:start#benachrichtigung_ueber_den_zahlungsausgang|Benachrichtigung]]) 
-  - Shop verarbeitet Transaktionsausgang 
-  - Shop sendet HTTP Statuscode an GiroCheckout 
-  - GiroCheckout sendet Rücksprung zum Händler an Kreditkartenabwickler 
-  - Kunde klickt "Zurück zum Shop" ([[girocheckout:creditcard:start#rueckleitung_des_kunden_zum_haendler|Rücksprung]]) 
- 
-===== API-Funktionen ===== 
- 
-==== Überblick ===== 
- 
-Wie im Workflow zu sehen ist, gibt es unterschiedliche API-Aufrufe während einer Kreditkartentransaktion. Ferner kann während des Bezahlvorganges noch eine zusätzliche 3D-Secure-Überprüfung stattfinden, die allerdings von Händler und PSP völlig unabhängig ist und nur vom kreditkartenverarbeitenden Institut gesteuert wird. 
- 
-  - Transaktion initialisieren 
-  - 3D-Secure-Check (optional) 
-  - Benachrichtigung des Zahlungsergebnisses an den Händler 
-  - Zurückleitung des Käufers auf die Händlerseiten (ausgelöst durch Käufer) 
- 
-==== Reservierung/Sale ===== 
- 
-=== POST Parameter === 
-URL https://payment.girosolution.de/girocheckout/api/v2/transaction/start  
- 
-^Name           ^Pflicht  ^Type        ^Beschreibung   ^ 
-|merchantId     |Ja  |Integer     |Händler-ID eines Kreditkarten Projekts | 
-|projectId      |Ja  |Integer     |Projekt-ID eines Kreditkarten Projekts | 
-|merchantTxId   |Ja  |String(255) |eindeutige Transaktions-ID des Händlers | 
-|amount         |Ja  |Integer     |Bei Dezimalwährungen den Betrag in der kleinsten Währungseinheit angeben, z.B. Cent, Penny | 
-|currency       |Ja  |String(3)   |Währung der Transaktion, gemäß [[http://de.wikipedia.org/wiki/ISO_4217#Aktuell_g.C3.BCltige_W.C3.A4hrungen|ISO 4217]].\\ EUR = Euro | 
-|purpose        |Ja  |String(27)  |Verwendungszweck der Kreditkartentransaktion. Diese Information erscheint auf der Kreditkartenabrechnung. | 
-|type           |Optional |String(4) |Transaktionsart (siehe [[girocheckout:transactiontypes:start]]) \\ SALE = Verkauf wird sofort gebucht (default) \\ AUTH = Reservierung des Betrags| 
-|locale         |Optional |String(4)   |Sprache des Kreditkartenformulars \\ de = deutsch (default) \\ en = englisch \\ es = spanisch \\ fr = französisch \\ it = italienisch \\ ja = japanisch \\ pt = portugiesisch \\ nl = niederländisch \\ cs = tschechisch \\ sv = schwedisch \\ da = dänisch \\ pl = polnisch \\ spde = deutsch Spende \\ spen = englisch Spende | 
-|mobile         |Optional |Integer     |Bezahlseite für mobile Browser optimiert \\ 0 = nein (default) \\ 1 = ja | 
-|pkn            |Optional |String(50)  |Das Feld dient dazu eine erneute Transaktion, ohne erneute Eingabe der Kreditkartendaten, zu starten. \\ create = neue Pseudo-Kartennummer für die verwendete Kreditkarte generieren \\ [Pseudo-Kartennummer] = Kartennumer der zu verwendenden Kreditkarte (siehe [[girocheckout:creditcard:start#pseudo-kartennummer_pkn|Pseudokartennummer]])\\  | 
-|recurring      |Optional |Boolean     |wiederkehrende Zahlung \\ 0 = nein (default) \\ 1 = ja, weitere Informationen  | 
-|urlRedirect    |Ja  |String      |URL, an die der Kunde nach der Zahlung geschickt werden soll. | 
-|urlNotify      |Ja  |String      |URL, an die der Zahlungsausgang gemeldet werden soll. | 
-|tds2Address |Optional |String | Für 3D Secure 2.0: Hauptadresszeile (i.d.R. Straße+Hausnummer) der Rechnungsadresse des Karteninhabers, Format A-Z, a-z, 0-9, Blank, [-/().,&'], max. 50. Wenn angegeben, müssen auch die restlichen tds2-Felder angegeben werden, außer tds2Optional.  | 
-|tds2Postcode |Optional |String | Für 3D Secure 2.0: Postleitzahl der Rechnungsadresse des Karteninhabers, Format A-Z, a-z, 0-9, Blank, [-], max. 11. Wenn angegeben, müssen auch die restlichen tds2-Felder angegeben werden, außer tds2Optional.  | 
-|tds2City |Optional |String | Für 3D Secure 2.0: Ort der Rechnungsadresse des Karteninhabers, Format A-Z, a-z, 0-9, Blank, [-/().,&'], max. 50. Wenn angegeben, müssen auch die restlichen tds2-Felder angegeben werden, außer tds2Optional.  | 
-|tds2Country |Optional |String | Für 3D Secure 2.0: Land der Rechnungsadresse des Karteninhabers, Format A-Z, max. 2. Zweibuchstabiges Länderkürzel nach dem aktuell gültigen Standard ISO 3166. Wenn angegeben, müssen auch die restlichen tds2-Felder angegeben werden, außer tds2Optional. | 
-|tds2Optional |Optional |String | Für 3D Secure 2.0: JSON-String, der weitere optionale Felder enthält. Eine genaue Auflistung der Felder ist unter dieser Tabelle unter [[girocheckout:creditcard_3ds2:start#d_secure_20_optionale_felder_tds2optional|3D Secure 2.0 Optionale Felder (tds2Optional)]] zu finden| 
-|hash           |Ja  |String      |HMAC MD5 hash über alle Werte des Aufrufs. Siehe  [[girocheckout:general:start#hash_generieren|hash generieren]] | 
- 
-=== 3D Secure 2.0 Optionale Felder (tds2Optional) === 
-Hierbei handelt es sich um ein JSON-formatiertes Objekt, das hierarchisch aufgebaut ist (2 Ebenen) und die folgenden Unterobjekte enthält: 
- 
-  * billingAddress (Rechnungsadresse) 
-  * shippingddress (Lieferadresse) 
-  * homePhoneNumber (Telefon zuhause) 
-  * mobilePhoneNumber (Telefon mobil) 
-  * workPhoneNumber (Telefon Arbeit) 
-  * cardholderAccountInfo (Konteninformationen Karteninhaber) 
-  * tdsMerchantRiskIndicators (Risikoindikatoren des Händlers) 
-  * tdsRequestorAuthenticationInformation (Authentifizierungsinformationen des Anfragenden) 
-  * tdsTransactionAttributes (Transaktionsattribute) 
- 
-Insgesamt gibt es folgende Feldern (alle optional, Felder in Unterobjekten sind mit [Unterobjektname].[Feld] dargestellt): 
- 
-^Name           ^Datentyp     ^Beschreibung   ^ 
-|email |String | E-Mail-Adresse des Karteninhabers, Format A-Z, a-z, 0-9, [_.+-@], max. 254. | 
-|addressesMatch |Boolean  | Lieferadresse entspricht Rechnungsadresse, ja="true", nein="false", kein Unterobjekt sondern Feld direkt im Hauptobjekt. | 
-^**//billingAddress//**  ^^^ 
-|billingAddress.line2 |String | Zeile 2 der Rechnungsadresse. Format A-Z, a-z, 0-9, Blank, [-/().,&'], max. 50 | 
-|billingAddress.line3 |String | Zeile 3 der Rechnungsadresse. Format A-Z, a-z, 0-9, Blank, [-/().,&'], max. 50 | 
-|billingAddress.state |String | Bundesland der Rechnungsadresse o.ä. Format A-Z, max. 3, Kürzel gemäß ISO 3166-2 | 
-^**//shippingAddress//**  ^^^ 
-|shippingAddress.line1 |String | Zeile 1 der Lieferadresse. Format A-Z, a-z, 0-9, Blank, [-/().,&'], max. 50 | 
-|shippingAddress.line2 |String | Zeile 2 der Lieferadresse. Format A-Z, a-z, 0-9, Blank, [-/().,&'], max. 50 | 
-|shippingAddress.line3 |String | Zeile 3 der Lieferadresse. Format A-Z, a-z, 0-9, Blank, [-/().,&'], max. 50 | 
-|shippingAddress.postcode |String |Postleitzahl der Lieferadresse, Format A-Z, a-z, 0-9, Blank, [-], max. 11 | 
-|shippingAddress.city |String | Ort der Lieferadresse, Format A-Z, a-z, 0-9, Blank, [-/().,&'], max. 50 | 
-|shippingAddress.state |String | Bundesland der Lieferadresse o.ä. Format A-Z, max. 3, Kürzel gemäß ISO 3166-2 | 
-|shippingAddress.country |String | Land der Lieferadresse, Format A-Z, max. 2. Zweibuchstabiges Länderkürzel nach dem aktuell gültigen Standard ISO 3166. | 
-^**//homePhoneNumber//**  ^^^ 
-|homePhoneNumber.country |Integer | Ländervorwahl der Heim-Telefonnummer, Format 0-9, max. 3. z.B. 49 für Deutschland. | 
-|homePhoneNumber.regional |String | Rest der der Heim-Telefonnummer, Format 0-9, max. 15, ohne führende Nullen, z.B. 73482984938. | 
-^**//mobilePhoneNumber//**  ^^^ 
-|mobilePhoneNumber.country |Integer | Ländervorwahl der Mobil-Telefonnummer, Format 0-9, max. 3. z.B. 49 für Deutschland. | 
-|mobilePhoneNumber.regional |String | Rest der der Mobil-Telefonnummer, Format 0-9, max. 15, ohne führende Nullen, z.B. 73482984938. | 
-^**//workPhoneNumber//**  ^^^ 
-|workPhoneNumber.country |Integer | Ländervorwahl der Arbeits-Telefonnummer, Format 0-9, max. 3. z.B. 49 für Deutschland. | 
-|workPhoneNumber.regional |String | Rest der der Arbeits-Telefonnummer, Format 0-9, max. 15, ohne führende Nullen, z.B. 73482984938. | 
-^**//cardholderAccountInfo//**  ^^^ 
-|cardholderAccountInfo.accountAgeIndicator |String | Alter des Kundenkontos. Mögliche Werte: "never" - Kunde hat kein Kundenkonto, kauft z.B. als Gast ein, "now" - Kunde hat während des aktuellen Einkaufs ein Konto angelegt, "less30" - Konto ist weniger als 30 Tage alt, "more30less60" - Konto ist mindestens 30 aber weniger als 60 Tage alt, "more60" - Kundenkonto ist mindestens 60 Tage alt. | 
-|cardholderAccountInfo.passwordChangeIndicator |String | Gibt an, wann das Passwort des Kundenkontos zuletzt geändert oder zurückgesetzt wurde. Mögliche Werte: "never" - Kunde hat nie sein Passwort geändert, "now" - Kunde hat während des aktuellen Einkaufs sein Passwort geändert, "less30" - Passwort wurde vor weniger als 30 Tagen geändert, "more30less60" - Passwort wurde vor mindestens 30 aber weniger als 60 Tagen geändert, "more60" - Passwort wurde seit mindestens 60 Tagen nicht geändert. | 
-|cardholderAccountInfo.paymentAccountAgeIndicator |String | Gibt an, wann das Zahlungskonto des Kunden angelegt wurde. Mögliche Werte: "never" - Kunde hat kein Zahlungskonto, kauft z.B. als Gast ein, "now" - Kunde hat das Zahlungskonto während des aktuellen Einkaufs angelegt, "less30" - Zahlungskonto wurde vor weniger als 30 Tagen angelegt, "more30less60" - Zahlungskonto wurde vor mindestens 30 aber weniger als 60 Tagen angelegt, "more60" - Zahlungskonto wurde vor mindestens 60 Tagen angelegt. | 
-|cardholderAccountInfo.accountChange |String | Gibt an, wann das Kundenkonto im Shop zuletzt geändert wurde, z.B. Adressänderung oder neue Zahlungsdaten. Mögliche Werte: "now" - Kunde hat während des aktuellen Einkaufs sein Konto geändert, "less30" - Konto wurde vor weniger als 30 Tagen geändert, "more30less60" - Konto wurde vor mindestens 30 aber weniger als 60 Tagen geändert, "more60" - Kundenkonto wurde seit mindestens 60 Tagen nicht geändert. | 
-|cardholderAccountInfo.shippingAddressAgeIndicator |String | Gibt an, wann der Kunde die aktuelle Lieferadresse zum ersten Mal benutzt hat. Mögliche Werte: "now" - Kunde benutzt die Lieferadresse zum ersten Mal, "less30" - Lieferadresse wurde vor weniger als 30 Tagen zum ersten Mal benutzt, "more30less60" - Lieferadresse wurde vor mindestens 30 aber weniger als 60 Tagen zuerst benutzt, "more60" - Lieferadresse wurde vor mindestens 60 Tagen zuerst benutzt. | 
-|cardholderAccountInfo.shippingNameIndicator |String | Gibt an, ob der Name des Karteninhabers und der Name der Lieferadresse identisch sind. Mögliche Werte: "identical" - Namen sind identisch, "different" - Namen sind unterschiedlich. | 
-|cardholderAccountInfo.suspiciousAccountActivity |Boolean | Gibt an, ob für diesen Kunden verdächtige Aktivitäten beobachtet wurden. Mögliche Werte: "false" - nein, "true" - ja. | 
-|cardholderAccountInfo.provisioningDayCount |Integer | Anzahl der "Karte hinzufügen" Versuche in den letzten 24 Stunden. Format 0-9, max. 3. | 
-^**//tdsMerchantRiskIndicators//**  ^^^ 
-|tdsMerchantRiskIndicators.deliveryTimeframe |String | Zeitraum, in dem die Ware an den Kunden geliefert wird. Mögliche Werte: "electronic" - sofortige elektronische Lieferung, "moreThanOneDay" - mehr als ein Tag, "overnight" - über Nacht, "sameDay" - am selben Tag. | 
-|tdsMerchantRiskIndicators.deliveryEmailAddress |String | 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, z.B. 123 bei 123,45 EUR. Format 0-9, max. 10. | 
-|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.preOrderDate |Date | Im Fall einer Vorbestellung: Datum, an dem die Ware voraussichtlich verfügbar ist. Format JJJJ-MM-TT. | 
-|tdsMerchantRiskIndicators.preOrderPurchaseIndicator |String | Mögliche Werte: "available" - die Ware ist bereits verfügbar, "future" - die Ware ist erst in der Zukunft verfügbar. | 
-|tdsMerchantRiskIndicators.reorderItemsIndicator |String | Gibt an, ob der Kunde Artikel bereits zuvor bestellt hat. Mögliche Werte: "first" - erste Bestellung, "reordered" - erneute Bestellung. | 
-|tdsMerchantRiskIndicators.shippingIndicator |String | Gibt an, wohin die Ware geliefert wird. Mögliche Werte: "digital" - digitale Lieferung, "billingAddress" - an die Rechnungsadresse, "differentAddress" - an eine andere Adresse, "verifiedAddress" - an eine geprüfte Adresse, "store" - in ein Geschäft, "other" - sonstiges. | 
-^**//tdsRequestorAuthenticationInformation//**  ^^^ 
-|tdsRequestorAuthenticationInformation.authenticationData |String | Authentifizierungsdaten des Kunden. Format A-Z, a-z, 0-9 [!"#$%$'()*+,./:;<=>?@[\]%%^%%`{%%|%%}~-], max. 2048 | 
-|tdsRequestorAuthenticationInformation.authenticationTimestamp |DateTime | Datum und Uhrzeit, wann sich der Kunde im Shop authentifiziert hat. Format JJJJ-MM-TTTHH:mm:ss | 
-|tdsRequestorAuthenticationInformation.authenticationMethod |String | Gibt an, wie sich der Kunde in Ihrem Shop authentifiziert hat. Mögliche Werte: "none" - gar nicht, z.B. Kunde kauft als Gast ein, "ownCredentials" - Kunde ist mit seinen Daten, z.B. Login-Name und Passwort angemeldet, "federatedId" - föderierte Identität, "issuerCredentials", "thirdParty", "fido", "fidoSigned", "srcAssurance". | 
-^**//tdsTransactionAttributes//**  ^^^ 
-|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.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: "purchase" - Einkauf, "checkAcceptance", "accountFunding", "quasiCash", "prepaidActivation". | 
- 
-== Beispiel eines tds2Optional-Strings (zu Demonstrationszwecken formatiert, sollte normalerweise in einer Zeile angegeben werden) == 
-<code> 
-{ 
-  "email": "myemail@example.com", 
-  "addressesMatch": "false", 
-  "billingAddress": { 
-    "line2": "Beim Nachbarn klingeln", 
-    "line3": "zw. 22-24 Uhr", 
-    "state": "BW" 
-  }, 
-  "shippingAddress": { 
-    "city": "Berlin", 
-    "country": "DE", 
-    "line1": "Unter den Linden 1", 
-    "line2": "Brandenburger Tor", 
-    "line3": "(linker Bogen)", 
-    "state": "BER" 
-  }, 
-  "homePhoneNumber": { 
-    "country": "49", 
-    "regional": "75519209309" 
-  }, 
-  "mobilePhoneNumber": { 
-    "country": "49", 
-    "regional": "17093902978" 
-  }, 
-  "workPhoneNumber": { 
-    "country": "49", 
-    "regional": "8938928938" 
-  }, 
-  "cardholderAccountInfo": { 
-    "accountAgeIndicator": "more30less60", 
-    "passwordChangeIndicator": "never", 
-    "paymentAccountAgeIndicator": "less30", 
-    "accountChange": "now", 
-    "shippingAddressAgeIndicator": "more60", 
-    "shippingNameIndicator": "different", 
-    "suspiciousAccountActivity": "false", 
-    "provisioningDayCount": 10 
-  }, 
-  "tdsMerchantRiskIndicators": { 
-    "deliveryTimeframe": "overnight", 
-    "deliveryEmailAddress": "hans-mueller@example.com", 
-    "giftCardAmount": 0, 
-    "giftCardCount": 2, 
-    "giftCardCurrency": "EUR", 
-    "preOrderDate": "2020-12-20", 
-    "preOrderPurchaseIndicator": "available", 
-    "reorderItemsIndicator": "first", 
-    "shippingIndicator": "store" 
-  }, 
-  "tdsRequestorAuthenticationInformation": { 
-    "authenticationData": "123Hdajkd/dasjdkk", 
-    "authenticationTimestamp": "2020-11-09T12:09:09", 
-    "authenticationMethod": "ownCredentials" 
-  }, 
-  "tdsTransactionAttributes": { 
-    "purchaseInstalmentData": 2, 
-    "recurringExpiry": "2020-11-30", 
-    "recurringFrequency": 1234, 
-    "type": "quasiCash" 
-  } 
-} 
-</code> 
- 
-== Beispiel einer Transaktionsinitialisierung == 
-{{page>codesamples:creditcard#transactionstart.request&noheader&nofooter}} 
- 
-=== Antwort === 
-Die Antwort besteht aus einem JSON Objekt. Das Feld rc liefert einen Fehlercode zurück. Wird rc = 0 zurückgeliefert, wurde die Transaktion erfolgreich initialisiert. Sie bekommen als Antwort eine Transaktionsnummer und die redirectURL zum Kreditkartenformular zurück. 
- 
-== Parameter ==  
-^Name           ^Pflicht  ^Type      ^Beschreibung   ^ 
-|rc             |Ja       |Integer   |[[girocheckout:errorcodes|Fehlernummer]] | 
-|msg            |Ja       |String    |zusätzliche Informationen im Fehlerfall | 
-|reference      |Optional |String    |eindeutige GiroCheckout Transaktions-ID | 
-|redirect       |Optional |String    |Redirect URL zur Weiterleitung des Kunden an sein Online Banking| 
-^HEADER Parameter^^^^ 
-|hash           |Ja       |String    |HMAC MD5 hash über alle Werte der Rückmeldung. Siehe [[girocheckout:general:start#uebermittlung_von_daten_ueber_einen_schnittstellenaufruf_an_den_haendler|hash der Rückantwort]] | 
- 
-== Beispiel im Erfolgsfall == 
-{{page>codesamples:creditcard#transactionstart.response.true&noheader&nofooter}} 
- 
-== Beispiel im Fehlerfall == 
-{{page>codesamples:creditcard#transactionstart.response.false&noheader&nofooter}} 
- 
- 
-==== Benachrichtigung über den Zahlungsausgang ==== 
- 
-Der Ausgang einer Zahlung wird an die im //urlNotify// Parameter angegebene URL übermittelt. Diese Rückmeldung dient dazu, dem Händler den Ausgang der Transaktion mitzuteilen. Durch diese Information kann der Transaktionsstatus beim Händler geändert werden. 
- 
-Der Zahlungsausgang einer Transaktion steht im Feld gcResultPayment. 
- 
-=== Anfrage === 
-**URL:** notifyUrl aus der Transaktionsinitialisierung \\ 
-**Bereitzustellen von:** Händler \\ 
-**Aufzurufen von:** GiroCheckout 
- 
-=== GET Parameter === 
-^Name             ^Pflicht    ^  Type        ^Beschreibung   ^ 
-|gcReference      |Ja       |String      | GiroCheckout Transaktions-ID | 
-|gcMerchantTxId   |Ja       |String      | Händler Transaktions-ID | 
-|gcBackendTxId    |Ja       |String      | Zahlungsabwickler Transaktions-ID | 
-|gcAmount         |Ja       |Integer     | bei Dezimalwährungen den Betrag in der kleinsten Währungseinheit angeben, z.B. Cent, Penny | 
-|gcCurrency       |Ja       |String      | Währung | 
-|gcResultPayment  |Ja       |Integer     | [[girocheckout:resultcodes#zahlungsausgang|Ergebniscodes der Zahlung]]| 
-|gcHash           |Ja       |String      | HMAC MD5 hash über alle Werte des Aufrufs. Siehe  [[girocheckout:general:start#hash_generieren|hash generieren]] | 
- 
-=== Antwort === 
-Als Antwort auf den GET-Request wird einer der folgenden HTTP Statuscodes erwartet. 
- 
-^HTTP Statuscode    ^Beschreibung     ^ 
-|200 (OK)           |Die Benachrichtigung wurde korrekt verarbeitet. | 
-|400 (Bad Request)  |Der Händler hat die Benachrichtigung nicht verarbeitet, möchte aber auch nicht erneut benachrichtigt werden. | 
-|Alle anderen       |Die Benachrichtigung wird max. 10 Mal alle 30 Minuten wiederholt, bis der Händler den HTTP Statuscode 200 oder 400 zurückgibt. | 
- 
-==== 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             ^Pflicht  ^Type        ^Beschreibung   ^ 
-|gcReference      |Ja       |String      | GiroCheckout Transaktions-ID | 
-|gcMerchantTxId   |Ja       |String      | Händler Transaktions-ID | 
-|gcBackendTxId    |Ja       |String      | Zahlungsabwickler Transaktions-ID | 
-|gcAmount         |Ja       |Integer     | bei Dezimalwährungen den Betrag in der kleinsten Währungseinheit angeben, z.B. Cent, Penny | 
-|gcCurrency       |Ja       |String      | Währung | 
-|gcResultPayment  |Ja       |Integer     | [[girocheckout:resultcodes#zahlungsausgang|Ergebnis der Zahlung]]| 
-|gcHash           |Ja       |String      | HMAC MD5 hash über alle Werte des Aufrufs. Siehe  [[girocheckout:general:start#hash_generieren|hash generieren]] | 
- 
- 
-===== 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 "Shop" as shop 
-participant "GiroCheckout" as girocheckout 
-participant "Kreditkartenabwickler" as cc 
- 
-autonumber 
- 
-shop -> girocheckout:  
-girocheckout -> cc:  
-cc -> girocheckout:  
-girocheckout -> shop:  
- 
-center footer (c)2016 by GiroSolution AG 
-</uml> 
- 
-  - Shop sendet referenzierende Kreditkartentransaktion 
-  - GiroCheckout leitet Transaktion zu Kreditkartenabwickler 
-  - Kreditkartenabwickler übermittelt Ergebnis an GiroCheckout 
-  - Shop bekommt Rückmeldung über Transaktionsausgang ([[girocheckout:creditcard:start#benachrichtigung_ueber_den_zahlungsausgang|Benachrichtigung]]) 
- 
-==== Buchung (CAPTURE) ==== 
-{{page>girocheckout:transactiontypes:descriptions#capture.desc&noheader&nofooter}} 
- 
-==== Erstattung (REFUND) ==== 
-{{page>girocheckout:transactiontypes:descriptions#refund.desc&noheader&nofooter}} 
- 
-=== POST Parameter === 
-URL CAPTURE: https://payment.girosolution.de/girocheckout/api/v2/transaction/capture \\ 
-URL REFUND: https://payment.girosolution.de/girocheckout/api/v2/transaction/refund 
- 
-^Name           ^Pflicht  ^Type        ^Beschreibung   ^ 
-|merchantId     |Ja       |Integer     |Händler-ID eines Kreditkarten Projekts | 
-|projectId      |Ja       |Integer     |Projekt-ID eines Kreditkarten Projekts | 
-|merchantTxId   |Ja       |String(255) |eindeutige Transaktions-ID des Händlers | 
-|amount         |Ja       |Integer     |Bei Dezimalwährungen den Betrag in der kleinsten Währungseinheit angeben, z.B. Cent, Penny | 
-|currency       |Ja       |String(3)   |Währung der Transaktion, gemäß [[http://de.wikipedia.org/wiki/ISO_4217#Aktuell_g.C3.BCltige_W.C3.A4hrungen|ISO 4217]].\\ EUR = Euro | 
-|purpose        |Optional |String(27)  |Verwendungszweck der Erstattung. Diese Information erscheint auf der Kreditkartenabrechnung. | 
-|reference      |Ja       |String      |GiroCheckout Transaktions-ID, für die eine Buchung oder Erstattung durchgeführt werden soll | 
-|hash           |Ja       |String      |HMAC MD5 hash über alle Werte des Aufrufs. Siehe  [[girocheckout:general:start#hash_generieren|hash generieren]] | 
- 
-== Beispiel == 
-{{page>codesamples:creditcard#capture.request&noheader&nofooter}} 
- 
-=== Antwort === 
-Die Antwort besteht aus einem JSON Objekt. Das Feld rc liefert einen Fehlercode zurück. Wird rc = 0 zurückgeliefert, wurde die Transaktion erfolgreich initialisiert. Sie bekommen als Antwort eine Transaktionsnummer und weitere Informationen zurück. 
- 
-== Parameter == 
-^Name             ^Pflicht  ^Type        ^Beschreibung   ^ 
-|rc             |Ja       |Integer   |[[girocheckout:errorcodes|Fehlernummer]] | 
-|msg            |Ja       |String    |zusätzliche Informationen im Fehlerfall | 
-|reference      |Ja       |String      | GiroCheckout Transaktions-ID | 
-|referenceParent      |Ja       |String      | GiroCheckout Transaktions-ID der zugrundeliegenden Ursprungstransaktion | 
-|merchantTxId   |Ja       |String      | Händler Transaktions-ID | 
-|backendTxId    |Ja       |String      | Zahlungsabwickler Transaktions-ID | 
-|amount         |Ja       |Integer     | bei Dezimalwährungen den Betrag in der kleinsten Währungseinheit angeben, z.B. Cent, Penny | 
-|currency       |Ja       |String      | Währung | 
-|resultPayment  |Ja       |Integer     | [[girocheckout:resultcodes#zahlungsausgang|Ergebnis der Transaktion]]| 
-|hash           |Ja       |String      | HMAC MD5 hash über alle Werte des Aufrufs. Siehe  [[girocheckout:general:start#hash_generieren|hash generieren]] | 
- 
-== Beispiel im Erfolgsfall == 
-{{page>codesamples:creditcard#transactionstart.response.true&noheader&nofooter}} 
- 
-== Beispiel im Fehlerfall == 
-{{page>codesamples:creditcard#transactionstart.response.false&noheader&nofooter}} 
- 
-==== Stornierung (VOID) ==== 
-{{page>girocheckout:transactiontypes:descriptions#void.desc&noheader&nofooter}} 
- 
-=== POST Parameter === 
-URL VOID: https://payment.girosolution.de/girocheckout/api/v2/transaction/void 
- 
-^Name           ^Pflicht  ^Type        ^Beschreibung   ^ 
-|merchantId     |Ja       |Integer     |Händler-ID eines Kreditkarten Projekts | 
-|projectId      |Ja       |Integer     |Projekt-ID eines Kreditkarten Projekts | 
-|merchantTxId   |Ja       |String(255) |eindeutige Transaktions-ID des Händlers | 
-|reference      |Ja       |String      |GiroCheckout Transaktions-ID, für die eine Stornierung durchgeführt werden soll | 
-|hash           |Ja       |String      |HMAC MD5 hash über alle Werte des Aufrufs. Siehe  [[girocheckout:general:start#hash_generieren|hash generieren]] | 
- 
-== Beispiel == 
-{{page>codesamples:creditcard#void.request&noheader&nofooter}} 
- 
-=== Antwort === 
-Die Antwort besteht aus einem JSON Objekt. Das Feld rc liefert einen Fehlercode zurück. Wird rc = 0 zurückgeliefert, wurde die Transaktion erfolgreich initialisiert. Sie bekommen als Antwort eine Transaktionsnummer und weitere Informationen zurück. 
- 
-== Parameter == 
-^Name             ^Pflicht  ^Type        ^Beschreibung   ^ 
-|rc             |Ja       |Integer   |[[girocheckout:errorcodes|Fehlernummer]] | 
-|msg            |Ja       |String    |zusätzliche Informationen im Fehlerfall | 
-|reference      |Ja       |String      | GiroCheckout Transaktions-ID | 
-|referenceParent      |Ja       |String      | GiroCheckout Transaktions-ID der zugrundeliegenden Ursprungstransaktion | 
-|merchantTxId   |Ja       |String      | Händler Transaktions-ID | 
-|backendTxId    |Ja       |String      | Zahlungsabwickler Transaktions-ID | 
-|amount         |Ja       |Integer     | Stornierter Betrag, bei Dezimalwährungen den Betrag in der kleinsten Währungseinheit angeben, z.B. Cent, Penny | 
-|currency       |Ja       |String      | Währung | 
-|resultPayment  |Ja       |Integer     | [[girocheckout:resultcodes#zahlungsausgang|Ergebnis der Transaktion]]| 
-|hash           |Ja       |String      | HMAC MD5 hash über alle Werte des Aufrufs. Siehe  [[girocheckout:general:start#hash_generieren|hash generieren]] | 
- 
-== Beispiel im Erfolgsfall == 
-{{page>codesamples:creditcard#void.response.true&noheader&nofooter}} 
- 
-== Beispiel im Fehlerfall == 
-{{page>codesamples:creditcard#void.response.false&noheader&nofooter}} 
- 
-===== Pseudo-Kartennummer (PKN) ===== 
-<WRAP center round important 60%> 
-Für diese Funktion ist eine separate Einrichtung erforderlich und es fallen einmalige Einrichtungsgebühren an. 
-</WRAP> 
-Eine Pseudo-Kartennummer ist eine Referenz auf eine vom Käufer verwendete Kreditkarte (Kreditkartennummer und Gültigkeitsdatum). Durch dieser Referenz wird dem Händler ermöglicht eine bereits verwendete Kreditkarte zur Auswahl anzubieten. Wird die Nummer bei der Initialisierung einer Kreditkartentransaktion mitgeschickt, wird die Kreditkartennummer und das Gültigkeitsdatum im Zahlformular vorausgefüllt. Der Kunde muss nur die Kartenprüfnummer eingeben und kann die Zahlung durchführen. 
- 
-==== Pseudo-Kartennummer Informationen abfragen ==== 
-Durch diese Funktion werden PKN-Informationen bereitgestellt. Sie liefert als Ergebnis eine PKN sowie die hinterlegten Kreditkarteninformationen (maskierte Kreditkartennummer, Gültigkeitsdatum) , welche für eine bereits durchgeführte Transaktion verwendet wurde. 
- 
-**URL:** https://payment.girosolution.de/girocheckout/api/v2/creditcard/pkninfo \\ 
-**Bereitzustellen von:** GiroCheckout \\ 
-**Aufzurufen von:** Händler 
- 
-==== POST Parameter ==== 
-^Name           ^Pflicht  ^Type      ^Beschreibung   ^ 
-|merchantId     |Ja       |Integer   |Händler-ID eines Kreditkarten Projekts | 
-|projectId      |Ja       |Integer   |Projekt-ID eines Kreditkarten Projekts | 
-|reference      |Ja       |String(36)|Eindeutige GiroCheckout Transaktions-ID | 
-|hash           |Ja       |String(32)|HMAC MD5 hash über alle Werte des Aufrufs. Siehe  [[girocheckout:general:start#hash_generieren|hash generieren]]| 
- 
-== Beispiel == 
-{{page>codesamples:creditcard#pkninfo.request&noheader&nofooter}} 
- 
-==== Antwort ==== 
-Die Antwort besteht aus einem JSON Objekt. Das Feld rc liefert einen Fehlercode zurück. Wird rc = 0 zurückgeliefert, wurde die Anfrage erfolgreich abgesetzt. Die Antwort enthält die PKN-Nummer, die Kreditkartennummer und das Gültigkeitsdatum. 
- 
-== Parameter == 
-^Name           ^Pflicht  ^Type      ^Beschreibung   ^ 
-|rc             |Ja       |Integer   |[[girocheckout:errorcodes|Fehlernummer]] | 
-|msg            |Ja       |String    |zusätzliche Informationen im Fehlerfall | 
-|pkn            |Ja       |String    |Pseudo-Kartennummer | 
-|cardnumber     |Ja       |String    |maskierte Kreditkartennummer, z.B. 411111%%******%%1111 | 
-|expiremonth    |Ja       |String    |Monat des Gültigkeitsdatums der Kreditkarte | 
-|expireyear     |Ja       |String    |Jahr des Gültigkeitsdatums der Kreditkarte | 
-^HEADER Parameter^^^^ 
-|hash           |Ja       |String    |HMAC MD5 hash über alle Werte der Rückmeldung. Siehe [[girocheckout:general:start#uebermittlung_von_daten_ueber_einen_schnittstellenaufruf_an_den_haendler|hash der Rückantwort]] | 
- 
-== Beispiel im Erfolgsfall == 
-{{page>codesamples:creditcard#pkninfo.response.true&noheader&nofooter}} 
- 
-== Beispiel im Fehlerfall == 
-{{page>codesamples:creditcard#pkninfo.response.false&noheader&nofooter}} 
- 
-===== Durchführen einer wiederkehrenden Kreditkartenzahlung (recurring payment) ===== 
- 
-Die Transaktionsdaten werden übermittelt und das Ergebnis der Kreditkartenzahlung wird umgehend zurückgeliefert. Diese Funktion wird für wiederkehrende Kreditkartenzahlungen, z.B. für Abonnements, verwendet.   
- 
-Folgende Schritte sind durchzuführen, um eine wiederkehrende Zahlung zu implementieren: 
- 
-  - Normale Kreditkartentransaktion durchführen (s. [[#initialisierung_einer_kreditkartenzahlung|Initialisierung einer Zahlung]]) 
-  - Pseudokartennummer (PKN) ermitteln (s. [[#pseudo-kartennummer_informationen_abfragen|PKN-Infos abfragen]]) 
-  - Diese PKN speichern 
-  - Bei der nächsten wiederkehrenden Zahlung, eine Payment-Transaktion initialisieren (Endpoint beachten, s. [[#recurring_oder_pkn-transaktion|Recurring oder PKN-Transaktion]]), aber Parameter pkn setzen und Parameter recurring=1. 
- 
-===== Recurring Transaktion ===== 
- 
-Um eine wiederkehrende (recurring) Zahlung ohne Kundenintervention durchzuführen, ist die folgende Schnittstelle zu verwenden. 
- 
-==== POST Parameter ==== 
-URL https://payment.girosolution.de/girocheckout/api/v2/transaction/payment  
- 
-^Name           ^Pflicht  ^Type        ^Beschreibung   ^ 
-|merchantId     |Ja  |Integer     |Händler-ID eines Kreditkarten Projekts | 
-|projectId      |Ja  |Integer     |Projekt-ID eines Kreditkarten Projekts | 
-|merchantTxId   |Ja  |String(255) |eindeutige Transaktions-ID des Händlers | 
-|amount         |Ja  |Integer     |Bei Dezimalwährungen den Betrag in der kleinsten Währungseinheit angeben, z.B. Cent, Penny | 
-|currency       |Ja  |String(3)   |Währung der Transaktion, gemäß [[http://de.wikipedia.org/wiki/ISO_4217#Aktuell_g.C3.BCltige_W.C3.A4hrungen|ISO 4217]].\\ EUR = Euro | 
-|purpose        |Ja  |String(27)  |Verwendungszweck der Kreditkartenransaktion. Diese Information erscheint auf der Kreditkartenabrechnung. | 
-|type           |Optional |String |Transaktionsart (siehe [[girocheckout:transactiontypes:start]]) \\ SALE = Verkauf wird sofort gebucht (default) \\ AUTH = Reservierung des Betrags| 
-|pkn            |Optional |String(50)  |Das Feld dient dazu eine erneute Transaktion, ohne erneute Eingabe der Kreditkartendaten, zu starten. \\ [Pseudo-Kartennummer] = Kartennumer der zu verwendenden Kreditkarte (siehe [[girocheckout:creditcard:start#pseudo-kartennummer_pkn|Pseudokartennummer]])\\  | 
-|recurring      |Optional |Boolean     |wiederkehrende Zahlung \\ 0 = nein (default) \\ 1 = ja, weitere Informationen  | 
-|urlNotify      |Optional |String      |URL, an die der Zahlungsausgang gemeldet werden soll. | 
-|hash           |Ja  |String      |HMAC MD5 hash über alle Werte des Aufrufs. Siehe  [[girocheckout:general:start#hash_generieren|hash generieren]] | 
- 
-== Beispiel == 
-{{page>codesamples:creditcard#recurringpayment.request&noheader&nofooter}} 
- 
-==== Antwort ==== 
-Die Antwort besteht aus einem JSON Objekt. Das Feld rc liefert einen Fehlercode zurück. Wird rc = 0 zurückgeliefert, wurde die Transaktion erfolgreich initialisiert. Sie bekommen als Antwort eine Transaktionsnummer und die das Transaktionsergebnis zurück. 
- 
-=== Parameter === 
-^Name           ^Pflicht  ^Type      ^Beschreibung   ^ 
-|rc             |Ja       |Integer   |[[girocheckout:errorcodes|Fehlernummer]] | 
-|msg            |Ja       |String    |zusätzliche Informationen im Fehlerfall | 
-|reference      |Ja       |String    |eindeutige GiroCheckout Transaktions-ID | 
-|backendTxId    |Ja       |String    | Zahlungsabwickler Transaktions-ID | 
-|resultPayment  |Ja       |Integer   | [[girocheckout:resultcodes#zahlungsausgang|Ergebnis der Transaktion]]| 
-^HEADER Parameter^^^^ 
-|hash           |Ja       |String    |HMAC MD5 hash über alle Werte der Rückmeldung. Siehe [[girocheckout:general:start#uebermittlung_von_daten_ueber_einen_schnittstellenaufruf_an_den_haendler|hash der Rückantwort]] | 
- 
-== Beispiel im Erfolgsfall == 
-{{page>codesamples:creditcard#recurringpayment.response.true&noheader&nofooter}} 
- 
-== Beispiel im Fehlerfall == 
-{{page>codesamples:creditcard#recurringpayment.response.false&noheader&nofooter}} 
  

Seiten-Werkzeuge