Diese Dokumentation beschreibt im Detail, wie mit einem mobilen Gerät mit der Web-Service-API kommuniziert wird. Die Kommunikation
soll über eine WebView oder eine ähnliche Technik erfolgen. Die Grundannahme ist, dass die mobile App in der Lage ist,
durch den Aufruf von JavaScript-Funktionen innerhalb der WebView sowie durch das Abhören von URLs, die von der `WebView' aufgerufen werden, zu kommunizieren.
Die mobile Anwendung benötigt unter Umständen direkten Zugriff auf die Web-Services. Der MAC-Schlüssel des Anwendungsbenutzers sollte jedoch nicht
auf das mobile Gerät übertragen werden, da ein bösartiges mobiles Gerät diese Details andernfalls wiederherstellen könnte. Daher
stellen wir eine dedizierte Web-Service-Methode bereit, um für eine bestimmte Zahlungstransaktion TransactionCredentials zu erstellen. Diese
Zugangsdaten gewähren vorübergehend (15 Minuten) die Berechtigung, mit der Transaktion zu arbeiten, mit der die Zugangsdaten verknüpft sind.
Ausserdem gewähren die Zugangsdaten, wenn sie später verwendet werden, dieselben Berechtigungen wie der Benutzer, der die temporären Zugangsdaten erstellt hat. Dies bedeutet, dass das mobile Gerät dieselben Berechtigungen hat wie der Benutzer.
Der Ablauf ist ähnlich wie bei der iFrame-Integration. Die folgenden Schritte fassen zusammen, wie die SDK-Integration verwendet wird. Wir gehen davon aus, dass die
Transaktion erstellt wurde und die Transaktions-Zugangsdaten auf das mobile Gerät übertragen wurden:
Rufen Sie die verfügbaren Zahlarten mit der Operation fetchPossiblePaymentMethodsWithCredentials auf dem Transaction Service ab.
Zeigen Sie dem Benutzer eine Liste der Zahlarten an.
Betten Sie für die gewählte Zahlart das Formular ein, indem Sie die Operation buildMobileSdkUrlWithCredentials auf dem Transaction Service aufrufen. Die
zurückgegebene URL enthält die gewählte Zahlart nicht. Diese muss hinzugefügt werden, indem der URL-Parameter paymentMethodConfigurationId mit
der ID der zu verwendenden Zahlart-Konfiguration angehängt wird. Die URL sollte innerhalb einer WebView aufgerufen werden.
Sobald der Benutzer angibt, die Zahlung abzuschliessen (zum Beispiel durch Drücken eines continue-Buttons), muss die Validierung ausgelöst werden. Dazu muss der
MobileSdkHandler aufgerufen werden. Das Ergebnis der Validierung sollte schliesslich verwendet werden, um dem Benutzer eine angemessene Rückmeldung zu geben. In diesem Fall
lösen wir den Callback validationCallback aus.
Sobald die Zahlung verarbeitet werden soll (zum Beispiel weil der Benutzer den pay-Button gedrückt hat), muss das Formular innerhalb der WebView abgeschickt werden. Dies
kann durch den Aufruf der Methode submit auf dem MobileSdkHandler erfolgen. Nach dem Absenden des Formulars wird unter Umständen ein externer Dienst aufgerufen
(zum Beispiel 3-D secure). Dieser Dienst benötigt möglicherweise den gesamten Bildschirm. Sobald die Zahlung abgeschlossen wurde, rufen wir einen der folgenden Callbacks auf:
awaitingFinalResultCallback, successCallback oder failureCallback
Einige Zahlarten erfordern einen komplexeren Prozess in mehreren Schritten. Standardmässig ist im Zahlungsformular ein Button enthalten, um durch diese Schritte zu navigieren. Es ist jedoch möglich, diese Buttons auszublenden und den primären Absende-Button in Ihrer Anwendung zu verwenden, um die Ereignisse auszulösen.
Immer wenn die primäre Aktion ersetzt wird, wird ein replacePrimaryAction-Callback mit der neuen Beschriftung als Parameter aufgerufen, mit der der primäre Button aktualisiert werden soll. Zusätzlich muss der Button so geändert werden, dass er die Aktion MobileSdkHandler.trigger() auslöst.
Wenn der Kunde alle notwendigen Schritte erfolgreich durchlaufen hat, wird der Callback resetPrimaryAction aufgerufen, was dazu führen sollte, dass der primäre Button auf das Standardverhalten zurückgesetzt wird, das heisst die ursprüngliche Beschriftung trägt und die Aktionen MobileSdkHandler.validate(); und MobileSdkHandler.submit(); auslöst.
Um die Buttons im Zahlungsformular auszublenden, hängen Sie den URL-Parameter replace-primary-action=1 an die Zahlungs-URL an.
Callbacks werden ausgelöst, um der mobilen Anwendung die Möglichkeit zu geben, auf diese Ereignisse zu reagieren. Ein Callback wird durch den Aufruf einer URL mit dem Präfix https://localhost/mobile-sdk-callback/ ausgelöst.
Die URL enthält einen Namen für den Callback und optional einige angehängte Daten. Beispiel: https://localhost/mobile-sdk-callback/some-callback?data={"data":"object"}
Die WebView muss auf URLs überwacht werden, die aufgerufen werden und mit https://localhost/mobile-sdk-callback/ beginnen. Diese URLs stellen Callbacks dar.
Wenn das Fenster vollständig geladen wurde und alle Listener angehängt sind, wird der Callback initializeCallback aufgerufen. Es werden keine weiteren Daten übermittelt.
Wenn sich die Höhe des Frames ändert, wird der Callback heightChangeCallback mit der Höhe (in px) im Datenparameter aufgerufen.
Wird die primäre Aktion des Zahlungsformulars ersetzt, wird der Callback replacePrimaryAction mit der Beschriftung der Aktion als Parameter aufgerufen. Der Absende-Button in Ihrer Anwendung sollte mit der übergebenen Beschriftung aktualisiert werden und beim Drücken die Aktion trigger auslösen.
Wurde die primäre Aktion des Zahlungsformulars ersetzt und wird sie auf das Standardverhalten zurückgesetzt, wird der Callback resetPrimaryAction aufgerufen. Die Beschriftung des Absende-Buttons sollte auf den ursprünglichen Wert zurückgesetzt werden, und beim Drücken sollte die Aktion submit ausgelöst werden.
Wenn die Validierung ausgelöst wird, wird deren Ergebnis über den Callback validationCallback zurückgemeldet. Der Datenparameter enthält
ein Ergebnisobjekt:
{
success: false,
errors: [
'Message 1',
'Message 2'
]
}
Wenn der Zahlungsprozess abgeschlossen wurde, kann es vorkommen, dass noch kein endgültiges Ergebnis (Erfolg / Fehlschlag) vorliegt. In diesem Fall rufen wir den Callback awaitingFinalResultCallback auf.
Der Datenparameter enthält die Transaktions-ID. Normalerweise wird ein endgültiger Status (Erfolg oder Fehlschlag) innerhalb von Sekunden erreicht. Manchmal kann es auch Minuten dauern.
Wenn der Zahlungsprozess erfolgreich abgeschlossen wird, wird der Callback successCallback aufgerufen. Der Datenparameter enthält die Transaktions-ID. Erfolgreich bedeutet, dass die
Transaktion mindestens authorized ist.
<script>
// This triggers the validation.
MobileSdkHandler.validate();
// This triggers the primary action if it has been replaced by the 'replacePrimaryAction' callback.
MobileSdkHandler.trigger();
// This will submit the form and triggers the processing of the payment.
MobileSdkHandler.submit();
</script>
Die verfügbaren Tokens können mit der Operation fetchOneClickTokensWithCredentials auf dem Transaction Service abgerufen werden. Die Verarbeitung einer Transaktion
mit einem solchen Token kann über processOneClickTokenWithCredentials erfolgen. Das Löschen eines Tokens kann mit der
Operation deleteOneClickTokenWithCredentials ausgeführt werden.
Weitere Operationen können über den regulären Token Service und Token Version Service ausgeführt werden.