Einleitung

Acquirer und Verbindung

Computop Paygate unterstützt viele verschiedene Kreditkartenverbindungen zu verschiedenen Acquirern / Prozessoren mit unterschiedlichen Protokollen.

Hier finden Sie eine Übersicht aller unterschiedlichen Kreditkartenschnittstellen: Zahlungen per Kreditkarte.

Zusätzliche Funktionen (z.B. AVS (Address Verification Service), Rückerstattung, 3D Secure, ...) können von der spezifischen Integration und vom Acquirer abhängen.

Integration mit Computop Paygate

Allgemein bieten wir zwei verschiedene Möglichkeiten der Integration an:


Zahlungsseite (payssl.aspx)Direkte Integration (direct.aspx)
Handhabung von Kreditkartennummern (PAN)
  • Wird direkt über die Zahlungsseite abgewickelt.
  • Kreditkartennummer, Ablaufdatum, CVV, ... werden im Zahlungsformular abgefragt
  • Sie kommen nicht mit dern PAN in Kontakt, was die Compliance zu PCI DSS deutlich vereinfacht.
  • Sie erhalten optional eine PseudoCardNumber (PcNr) als Paygate internen Token zur Repräsentation der PAN.
  • Ihr System verarbeitet PAN direkt, sodass Sie "volle Kontrolle" haben.
  • Da Ihr System mit der Kreditkartennummer (PAN) in Kontakt kommt, unterliegt ihr System vollständig dem PCI-DSS-Fokus.
Handhabung von 3-D Secure
  • Sie müssen nur KVP "MsgVer=2.0" hinzufügen, um anzuzeigen, dass Ihr System für 3-D Secure 2.x bereit ist
  • Der Rest (Weiterleitung an die Bank des Ausstellers zur Authentifizierung des Verbrauchers) wird von derPaygate Zahlungsseite abgewickelt.
  • Sie müssen nur KVP "MsgVer=2.0" hinzufügen, um anzuzeigen, dass Ihr System für 3-D Secure 2.x bereit ist
  • Ihr System muss im Falle einer Verbraucherauthentifizierung eine Verbraucherumleitung zur Emittentenbank durchführen
Zusätzliche Daten
  • Zusätzliche Daten können über zusätzliche JSON-Parameter übermittelt werden, z.B.:
    • "credentialOnFile" (für wiederkehrende Zahlungen)
    • Adressdaten (für AVS)
    • 3-D Secure Richtliniendaten
Shop-/System-Integration
  • Die Zahlungsseite kann durch selbst erstellte Vorlagen an Ihre Firmenidentität angepasst werden (Logos, Farben, Positionen, ...).
  • Der Verbraucher wird auf die Zahlungsseite weitergeleitet, um Kreditkartendaten (PAN, Ablaufdatum, CVV, ...) einzugeben.
  • Ihr Shop wird über das Paygate Notify über das Ergebnis der Zahlung im Prozess informiert.
  • Ihr System hat volle Kontrolle über die Eingabefelder für Kreditkartendaten
  • Der Verbraucher wird nicht umgeleitet und Ihr System erhält das Ergebnis des API-Aufrufs über direkte Antwortwerte
Weitere Aktionen
  • Nach dem Auslösen des Zahlungsvorgangs können Sie weitere Aktionen wie Buchung, Gutschrift/Rückerstattung, Stornierungen, ... starten.
  • Diese Aktionen beziehen sich auf einen vorherigen Zahlungsprozess, der durch eine PayID identifiziert wird – was völlig außerhalb vom PCI-DSS-Fokus liegt.
Schlussfolgerung

Empfohlen für Standardintegrationen – aufgrund einfacher Integration und vereinfachter Compliance..

  • Paygate übernimmt die PAN-Handhabung für Sie → vereinfachte PCI DSS Handhabung.
  • Sie können die Paygate Zahlungsseite mittels Vorlagen anpassen.

Empfohlen, wenn Sie die volle Kontrolle benötigen und keine Weiterleitung des Verbrauchers wünschen.

  • Ihr System befindet sich im vollen Geltungsbereich von PCI DSS.

(info) Die nachfolgende Dokumentation gliedert sich daher immer in zwei Abschnitte:

  • Integration über Zahlungsseite (Zahlungsformular)
    • mit allgemeinen Parametern zur Integration des Computop Paygate Zahlungsformulars
    • mit Parametern zur Anpassung des Zahlungsformulars
    • mit spezifischen Parametern für den gewünschten Acquirer / Prozessor
  • Integration über (direkte) Server-2-Server-Integration
    • mit allgemeinen Parametern zur Integration des Computop Paygate Zahlungsformulars
    • mit spezifischen Parametern für den gewünschten Acquirer / Prozessor

Implementierung von 3-D Secure (2.x)

Allgemeine Hinweise zu 3-D Secure

3-D Secure ist ein Verfahren, das den Karteninhaber authentifiziert und sicherstellt, dass der Verbraucher, der die Kreditkartendaten verwendet, wirklich der Karteninhaber ist.

3-D Secure soll den Missbrauch von Kreditkartendaten verhindern – insbesondere im E-Commerce.

3-D Secure 1.x wurde implementiert und fragt den Karteninhaber typischerweise bei jeder Kartennutzung nach einem Passwort.

3-D Secure 2.x wurde implementiert, um:

  • eine starke Kundenauthentifizierung (SCA) zu ermöglichen, indem sie den Karteninhaber mit 2 unabhängigen Faktoren dieser 3 Faktoren anthentifiziert:
    • etwas, das der Karteninhaber weiß, z.B. ein Kennwort
    • etwas, das der Karteninhaber besitzt, z.B. ein Gerät (wie ein Telefon, um einen Token per SMS zu empfangen oder ein anderes OTP, Token-Generator, ...)
    • etwas, das der Karteninhaber ist, z.B. Biometrie (wie Fingerabdruck, Gesichts-ID, ...)
  • eine nahtlose Authentisierung zu ermöglichen, wenn der Verbraucher nicht authentifiziert wird und nicht aufgefordert wird, sich selbst zu authentifizieren.

3-D Secure mit Computop Paygate

Bereiten Sie sich / Ihre Integration auf 3-D Secure 2.x ready vor – hier eine kurze Übersicht mit einigen technischen Details.


3-D Secure 1.x3-D Secure 2.x3-D Secure 2.x Beispiel
Hängt von Ihrer Integration ab: Zahlungsformular ./. Server-2-Server
Zahlungsseite / Zahlungsformular

Ihre vorhandene Integration

Ergänzen Sie einfach den API-Parameter "MsgVer=2.0", der Rest wird automatisch erledigt vomComputop Paygate

Ergänzen Sie den Parameter "MsgVer=2.0" bei Ihrem bestehenden API-Aufruf für den Start des Zahlungsformulars.
URL-VerarbeitungURLFailure und URLSuccess arbeiten mit http-GETURLFailure und URLSuccess arbeiten mit http-POST (wegen der Datenmenge). Seien Sie bereit, beides (GET + POST) zu handhaben.

Server-2-Server Integration

Use KVP:

CCNrKreditkartennummer (PAN)
CCExpiryAblaufdatum der Kreditkarte
CCCVCKreditkartenprüfnummer
CCBrandKreditkartenmarke

Übergeben Sie die Kartendaten mittels "card"-JSON an die API



z.B.:

{
    "securityCode": "569",
    "expiryDate": "202508",
    "cardholderName": "William Thomas",
    "number": "4111111111111111",
    "brand": "VISA"
}

card=ewogICAgInNlY3VyaXR5Q29kZSI6ICI1NjkiLAogICAgImV4cGlyeURhdGUiOiAiMjAyNTA4IiwKICAgICJjYXJkaG9sZGVyTmFtZSI6ICJXaWxsaWFtIFRob21hcyIsCiAgICAibnVtYmVyIjogIjQxMTExMTExMTExMTExMTEiLAogICAgImJyYW5kIjogIlZJU0EiCn0=

Für spezielle Anwendungsfälle finden Sie hier weitere Anwendungsbeispiele: 3DS 2.0 Händler-Anwendungsfälle
Anwendungsfall3-D Secure 1.x3-D Secure 2.x3-D Secure 2.x Beispiel
Wiederkehrende Zahlungen (initial)

Nutzen Sie den Parameter "RTF=I".

Sie erhalten eventuell eine TransactionID als spezifische Transaktions-ID des Karten-Schemes.

Ändern Sie "RTF" zum Parameter "credentialOnFile"-JSON mit "recurring" und "initial=true".

Sie erhalten eventuell eine schemeReferenceID als spezifische Transaktions-ID des Karten-Schemes.

z.B.:

Recurring mit initial=true
{
    "type": {
        "recurring": {
            "recurringFrequency": 30,
            "recurringStartDate": "2021-09-14",
            "recurringExpiryDate": "2022-09-14"
        }
    },
    "initialPayment": true
}

Das JSON muss Base64-codiert sein und dann als Wert für den Parameter credentialOnFile verwendet werden (Bitte beachten Sie, dass Sie den vollständigen Base64-codierten String verwenden einschließlich "=" am Ende.)

credentialOnFile=ewogICAgInR5cGUiOiB7CiAgICAgICAgInJlY3VycmluZyI6IHsKICAgICAgICAgICAgInJlY3VycmluZ0ZyZXF1ZW5jeSI6IDMwLAogICAgICAgICAgICAicmVjdXJyaW5nU3RhcnREYXRlIjogIjIwMjEtMDktMTQiLAogICAgICAgICAgICAicmVjdXJyaW5nRXhwaXJ5RGF0ZSI6ICIyMDIyLTA5LTE0IgogICAgICAgIH0KICAgIH0sCiAgICAiaW5pdGlhbFBheW1lbnQiOiB0cnVlCn0=

Wiederkehrende Zahlungen (nachfolgend)

Nutzen Sie den Parameter "RTF=R"

und übermitteln die TransactionID als spezifische Transaktions-ID des Karten-Schemes

Ändern Sie "RTF" zum Parameter "credentialOnFile"-JSON mit "recurring" und "initial=false"

und übermitteln die schemeReferenceID als spezifische Transaktions-ID des Karten-Schemes

z.B.

Recurring mit initial=false
{
    "type": {
        "recurring": {
            "recurringFrequency": 30,
            "recurringStartDate": "2021-09-14",
            "recurringExpiryDate": "2022-09-14"
        }
    },
    "initialPayment": false
}

Nach der Base64-Codierung:

credentialOnFile=ewogICAgInR5cGUiOiB7CiAgICAgICAgInJlY3VycmluZyI6IHsKICAgICAgICAgICAgInJlY3VycmluZ0ZyZXF1ZW5jeSI6IDMwLAogICAgICAgICAgICAicmVjdXJyaW5nU3RhcnREYXRlIjogIjIwMjEtMDktMTQiLAogICAgICAgICAgICAicmVjdXJyaW5nRXhwaXJ5RGF0ZSI6ICIyMDIyLTA5LTE0IgogICAgICAgIH0KICAgIH0sCiAgICAiaW5pdGlhbFBheW1lbnQiOiBmYWxzZQp9

Vom Kunden ausgelöst (initial)

Nutzen Sie Parameter "RTF=E".

Sie erhalten eventuell eine TransactionID als spezifische Transaktions-ID des Karten-Schemes.

Ändern Sie "RTF" zum Parameter "credentialOnFile"-JSON mit "CIT" und "initial=true".

Sie erhalten eventuell eine schemeReferenceID als spezifische Transaktions-ID des Karten-Schemes.

z.B.

CIT (CustomerInitiated) mit initial=true
{
    "type": {
        "unscheduled": "CIT"
    },
    "initialPayment": true
}

Nach der Base64-Codierung (nochmal: vergessen Sie nicht das "=" am Ende; es muss Bestandteil des Wertes sein):

credentialOnFile=ewogICAgInR5cGUiOiB7CiAgICAgICAgInVuc2NoZWR1bGVkIjogIkNJVCIKICAgIH0sCiAgICAiaW5pdGlhbFBheW1lbnQiOiB0cnVlCn0=

Vom Händler ausgelöst (nachfolgend)

Nutzen Sie Parameter "RTF=M"

und übermitteln die TransactionID als spezifische Transaktions-ID des Karten-Schemes

Ändern Sie "RTF" zum Parameter "credentialOnFile"-JSON mit "MIT" und "initial=false"

und übermitteln die schemeReferenceID als spezifische Transaktions-ID des Karten-Schemes

z.B.

MIT (MerchantInitiated) mit initial=false
{
    "type": {
        "unscheduled": "MIT"
    },
    "initialPayment": false
}

Nach der Base64-Codierung:

credentialOnFile=ewogICAgInR5cGUiOiB7CiAgICAgICAgInVuc2NoZWR1bGVkIjogIk1JVCIKICAgIH0sCiAgICAiaW5pdGlhbFBheW1lbnQiOiBmYWxzZQp9

Adressverifizierungsdienst (AVS)

(abhängig vom Acquirer / Prozessor)

Nutzen Sie die Parameter

  • AddrStreet
  • AddrStreetNr
  • AddrZip
  • AddrCity
  • ....
Ändern Sie die Adressdaten zu address"-JSON

z.B.

Adresse in JSON-Struktur geben
{
    "city": "New York",
    "country": {
        "countryA3": "USA"
    },
    "addressLine1": {
        "street": "Park Avenue",
        "streetNumber": "270"
    },
    "postalCode": "10017-2070",
    "state": "NY"
}

billingAddress=ewogICAgImNpdHkiOiAiTmV3IFlvcmsiLAogICAgImNvdW50cnkiOiB7CiAgICAgICAgImNvdW50cnlBMyI6ICJVU0EiCiAgICB9LAogICAgImFkZHJlc3NMaW5lMSI6IHsKICAgICAgICAic3RyZWV0IjogIlBhcmsgQXZlbnVlIiwKICAgICAgICAic3RyZWV0TnVtYmVyIjogIjI3MCIKICAgIH0sCiAgICAicG9zdGFsQ29kZSI6ICIxMDAxNy0yMDcwIiwKICAgICJzdGF0ZSI6ICJOWSIKfQ==

Antrag für reibungslose Zahlungsabwicklung
  • nicht unterstützt bei 3-D Secure 1.x
  • jede Zahlung wird authentisiert

Stellen Sie zusätzliche Daten bereit als JSON-KVP: JSON-Objekte

z.B.:

Kunden-Challenge explizit anfordern
{
    "challengePreference ": "mandateChallenge"
}

Nach der Base64-Codierung (nochmal: vergessen Sie nicht das "=" am Ende; es muss Bestandteil des Wertes sein):

threeDSPolicy=ewogICAgImNoYWxsZW5nZVByZWZlcmVuY2UgIjogIm1hbmRhdGVDaGFsbGVuZ2UiCn0=