Kartentransaktionen: Anpassung der Benutzeroberfläche

  Zuletzt aktualisiert: 

Der Drop-In-Controller enthält Anpassungsoptionen, die es Ihnen ermöglichen, das Erscheinungsbild Ihres Checkouts besser an das Branding Ihrer App anzupassen. Es gibt Optionen, mit denen Sie sowohl das Aussehen des Zahlungsformulars als auch das des Overlays, das vom Access Control Server (ACS) als Teil des 3-D Secure Prozesses angezeigt wird, ändern können.

 

Einstellung von Standard-Stilmanagern

let inputViewStyleManager = InputViewStyleManager.default()
let payButtonStyleManager = PayButtonStyleManager.default()

let dropInViewStyleManager = DropInViewStyleManager(
inputViewStyleManager: inputViewStyleManager,
requestButtonStyleManager: payButtonStyleManager,
backgroundColor: .white,
spacingBeetwenInputViews: 25,
insets: UIEdgeInsets(top: 25, left: 35, bottom: -30, right: -35)
)

 

Style Manager mit allen Optionen

let inputViewStyleManager = InputViewStyleManager(
titleColor: UIColor.gray,
textFieldBorderColor: UIColor.black.withAlphaComponent(0.8),
textFieldBackgroundColor: .clear,
textColor: .black,
placeholderColor: UIColor.lightGray.withAlphaComponent(0.8),
errorColor: UIColor.red.withAlphaComponent(0.8),
textFieldImageColor: .black,
titleFont: UIFont.systemFont(ofSize: 16, weight: .regular),
textFont: UIFont.systemFont(ofSize: 16, weight: .regular),
placeholderFont: UIFont.systemFont(ofSize: 16, weight: .regular),
errorFont: UIFont.systemFont(ofSize: 12, weight: .regular),
textFieldImage: nil,
titleSpacing: 5,
errorSpacing: 3,
textFieldHeightMargins: HeightMargins(top: 10, bottom: 10),
textFieldBorderWidth: 1,
textFieldCornerRadius: 6
)

let payButtonStyleManager = PayButtonStyleManager(
titleColor: .white,
enabledBackgroundColor: .black,
disabledBackgroundColor: UIColor.lightGray.withAlphaComponent(0.6),
borderColor: .clear,
titleFont: UIFont.systemFont(ofSize: 16, weight: .medium),
spinnerStyle: .white,
spinnerColor: .white,
buttonContentHeightMargins: HeightMargins(top: 15, bottom: 15),
borderWidth: 0,
cornerRadius: 6
)

let dropInViewStyleManager = DropInViewStyleManager(
inputViewStyleManager: inputViewStyleManager,
requestButtonStyleManager: payButtonStyleManager,
backgroundColor: .white,
spacingBeetwenInputViews: 25,
insets: UIEdgeInsets(top: 25, left: 35, bottom: -30, right: -35)
)

 

DropInViewStyleManager

  Parameter Beschreibung
  Optional backgroundColor Die Hintergrundfarbe der Drop-In-Ansicht.
  Optional inputViewStyleManager Dient zur Gestaltung der Eingabeansichten.
  Optional insets Legt die Einsätze (Abstände) des Formulars relativ zur übergeordneten Ansicht fest.
  Optional requestButtonStyleManager Dient zur Gestaltung der Bezahlschaltfläche.
  Optional spacingBetweenInputViews Die Größe der Abstände zwischen allen Eingabefeldern des Formulars.

 

InputViewStyleManager

  Parameter Beschreibung
  Optional errorColor Die Farbe des Validierungsfehlers.
  Optional errorFont Die Schriftart des Validierungsfehlers.
  Optional errorSpacing Der Abstand der Fehlerbeschriftung vom Textfeld.
  Optional placeholderColor Die Farbe des Platzhalters.
  Optional placeholderFont Die Schriftart des Platzhalters.
  Optional textColor Die Farbe des Textes.
  Optional textFieldBackgroundColor Die Hintergrundfarbe des Textfeldes.
  Optional textFieldBorderColor Die Farbe des Rahmens des Textfeldes.
  Optional textFieldBorderWidth Die Breite des Randes des Textfeldes.
  Optional textFieldCornerRadius Der Radius der Ecke des Textfeldes.
  Optional textFieldHeightMargins Der Rand des Textfeldes wird eingefügt. Dies ändert die Höhe des Textfeldes.
  Optional textFieldImage Das Bild wird links vom Textfeld angezeigt.
  Optional textFieldImageColor Die Farbe des Bildes des Textfeldes.
  Optional textFont Die Schriftart des Textes.
  Optional titleColor Die Farbe des Titels.
  Optional titleFont Die Schriftart des Titels.
  Optional titleSpacing Der Abstand der Titelbeschriftung vom Textfeld.

 

PayButtonStyleManager

  Parameter Beschreibung
  Optional borderColor Die Farbe des Rahmens der Schaltfläche.
  Optional borderWidth Die Breite des Rahmens der Schaltfläche.
  Optional buttonContentHeightMargins Der Rand des Schaltflächeninhalts wird eingefügt. Dadurch wird die Höhe der Schaltfläche geändert.
  Optional cornerRadius Der Radius der Ecke der Schaltfläche.
  Optional disabledBackgroundColor Die Farbe der Schaltfläche, wenn sie deaktiviert ist.
  Optional enabledBackgroundColor Die Farbe der Schaltfläche, wenn sie aktiviert ist.
  Optional spinnerColor Die Farbe der Ladeschleuder.
  Optional spinnerStyle Der Stil der Ladespinne.
  Optional titleColor Die Farbe des Schaltflächentitels.
  Optional titleFont Die Schriftart des Schaltflächentitels.

 

CardinalToolbarStyleManager

Im Folgenden finden Sie ein Beispiel für die Komponenten des View Controllers für Cardinal Commerce (ACS):

let toolbarStyleManager = CardinalToolbarStyleManager(textColor: .black, textFont: nil, backgroundColor: .white, headerText: "Trust payment checkout", buttonText: nil)
let labelStyleManager = CardinalLabelStyleManager(textColor: .gray, textFont: nil, headingTextColor: .black, headingTextFont: nil)
let verifyButtonStyleManager = CardinalButtonStyleManager(textColor: .white, textFont: nil, backgroundColor: .black, cornerRadius: 6)
let continueButtonStyleManager = CardinalButtonStyleManager(textColor: .white, textFont: nil, backgroundColor: .black, cornerRadius: 6)
let resendButtonStyleManager = CardinalButtonStyleManager(textColor: .black, textFont: nil, backgroundColor: nil, cornerRadius: 0)
let cancelButtonStyleManager = CardinalCancelButtonStyleManager(textColor: .black, textFont: nil)
let textBoxStyleManager = CardinalTextBoxStyleManager(textColor: .black, textFont: nil, borderColor: .black, cornerRadius: 6, borderWidth: 1)

let cardinalStyleManager = CardinalStyleManager(toolbarStyleManager: toolbarStyleManager, labelStyleManager: labelStyleManager, verifyButtonStyleManager: verifyButtonStyleManager, continueButtonStyleManager: continueButtonStyleManager, resendButtonStyleManager: resendButtonStyleManager, cancelButtonStyleManager: cancelButtonStyleManager, textBoxStyleManager: textBoxStyleManager)
  Parameter Beschreibung
  Optional CardinalButtonStyleManager Gestaltung der Schaltflächen auf dem vom ACS gehosteten Formular.
  Optional CardinalCancelButtonStyleManager Styling für die Schaltfläche "Abbrechen" auf dem vom ACS gehosteten Formular.
  Optional CardinalLabelStyleManager Gestaltung des Etiketts auf dem vom ACS gehosteten Formular.
  Optional CardinalTextBoxStyleManager Styling für das Textfeld auf dem vom ACS gehosteten Formular.
  Optional CardinalToolbarStyleManager Styling für die Symbolleiste auf dem vom ACS gehosteten Formular.

 

So konfigurieren Sie die Sichtbarkeit von Drop-In View Controller-Komponenten

DropInViewController hat eine Eigenschaft namens visibleFields: [DropInViewVisibleFields].

Damit können Sie festlegen, welche Eingabefelder im Kassenformular für den Kunden sichtbar sind (wenn Sie z. B. eine tokenisierte Zahlung durchführen, möchten Sie vielleicht alle Felder außer dem Sicherheitscode ausblenden). Wenn Sie diesen Parameter aus der Datei init Funktion sind alle Felder sichtbar. Sie können alle Komponenten in einem Array einstellen, die Sie anzeigen möchten.

Die folgenden Fälle werden unterstützt und können in folgende Dokumente aufgenommen werden visibleFields:

@objc public enum DropInViewVisibleFields: Int, CaseIterable {
case pan = 0
case expiryDate
case securityCode3
case securityCode4
}

 

Benutzerdefinierte Komponenten in den Drop-In View Controller einbinden

Dadurch wird eine Ansicht erstellt, die mit der DropInViewProtocol wenn Sie die gesamte Ansicht außer Kraft setzen wollen.

Wenn Sie eine benutzerdefinierte Ansicht hinzufügen möchten, z. B. eine Umschalttaste zum Speichern von Kartendetails, Rechnungs- und Lieferansichten, dann entsprechen Sie der DropInView und fügen ihn der Stapelhierarchie hinzu:

public override func setupViewHierarchy() {
super.setupViewHierarchy()
stackView.insertArrangedSubview(saveCardOptionView, at: max(stackView.arrangedSubviews.count - 1, 0))
}

 

Anpassen von Fehlermeldungen

Sie können für Fehlermeldungen, die dem Kunden in Ihrer Anwendung angezeigt werden, einen alternativen Wortlaut festlegen, der den standardmäßig angezeigten Text überschreibt.

  Vorteile

  • Geben Sie alternative Formulierungen zu den zurückgegebenen Standardphrasen an, um die Stimme Ihrer Marke besser wiederzugeben.
  • Geben Sie zusätzliche Informationen an, die für Ihr Unternehmen spezifisch sein können (z. B. eine Bestellnummer).

Um einen individuellen Wortlaut festzulegen, müssen Sie Folgendes angeben LocalizableKeys in der SDK-Initialisierung. Das folgende Beispiel zeigt, wie man einen benutzerdefinierten Wortlaut für die Eingabefehlertasten in englischer Sprache angeben kann:

TrustPayments.instance.configure(
username: "username", gateway: .eu, environment: .staging, locale: Locale(identifier: "en_GB"), translationsForOverride: [
Locale(identifier: "en_GB"): [
LocalizableKeys.Errors.general.key: "Something went wrong",
LocalizableKeys.CardNumberInputView.error.key: "Invalid Pan",
LocalizableKeys.CardNumberInputView.emptyError.key: "Pan input empty",
LocalizableKeys.CvcInputView.error.key: "Security Code error",
LocalizableKeys.CvcInputView.emptyError.key: "Security Code empty",
LocalizableKeys.ExpiryDateInputView.error.key: "Expiration date error",
LocalizableKeys.ExpiryDateInputView.emptyError.key: "Expiration date empty"
]
]
)

 

Liste aller LocalizableKeys (einschließlich Standardtext)

public enum LocalizableKeys {
// MARK: Pay Button
public enum PayButton: LocalizableKey {
case title
}

// MARK: DropIn View Controller
public enum DropInViewController: LocalizableKey {
case successfulPayment
}

// MARK: Errors
public enum Errors: LocalizableKey {
case general
}

// MARK: CardNumberInputView
public enum CardNumberInputView: LocalizableKey {
case title
case placeholder
case error
case emptyError
}

// MARK: CvcInputView
public enum CvcInputView: LocalizableKey {
case title
case placeholder3
case placeholder4
case placeholderPiba
case error
case emptyError
}

// MARK: ExpiryDateInputView
public enum ExpiryDateInputView: LocalizableKey {
case title
case placeholder
case error
case emptyError
}

// MARK: AddCardButton
public enum AddCardButton: LocalizableKey {
case title
}

// MARK: Alerts
public enum Alerts: LocalizableKey {
case processing
}
}

 

Wie geht es weiter?

  Prüfung

Nachdem Sie das SDK in Ihrer Anwendung initialisiert haben, sollten Sie nun in der Lage sein, Testtransaktionen zu verarbeiten.

Klicken Sie hier, um zu erfahren, wie.

  Ausführen zusätzlicher Anfragen

Für fortgeschrittene Konfigurationen können im Drop-In View Controller zusätzliche Anfragen referenziert werden, um zusätzliche Aktionen durchzuführen.

Klicken Sie hier, um zu erfahren, wie.

War dieser Artikel hilfreich?
0 von 0 Personen fanden dies hilfreich