Android APK-Authentifizierungs-API

Die Authentifizierung kann in drei verschiedenen Umgebungen erfolgen:

  • Android-App des Zahlungsintegrators
  • Mobile Website des Zahlungsintegrators
  • Desktop-Website des Zahlungsintegrators

Unabhängig vom Ablauf gibt Google die Nutzerinteraktion an die Software des Zahlungsintegrators weiter. Der Zahlungsintegrator kann der Benutzeroberfläche eine Oberfläche anzeigen oder sofort zurückkehren, wenn die entsprechenden Daten bereits vorliegen. Alle Abläufe führen dazu, dass der Integrator eine AuthenticationResponse erzeugt. Diese Antwort wird signiert und an Google zurückgesendet.

Die mobilen und die Desktop-Websites müssen der Spezifikation der WebWeiterleitung Authentication API entsprechen, während der Ablauf der Android-App der Android Authentication API-Spezifikation entsprechen muss.

Integratoren sollten eine Android APK-Lösung implementieren, um die Nutzer zu authentifizieren. Diese Authentifizierung ist eine andere Modalität, aber derselbe Zweck wie die Authentifizierung, die durch die Webauthentifizierung bereitgestellt wird.

Ein Nutzer authentifiziert sich über eine Android Activity (Android-Aktivität) beim Zahlungsintegrator. Der Authentifizierungs-Intent wird während der Kontoverknüpfung und für Nutzerfragen aufgerufen. Damit Android während der Authentifizierung die Wiedergabe im Hintergrund nicht beendet, muss der Integrator Folgendes in das Aktivitätsthema aufnehmen.

<item name="android:windowIsTranslucent">true</item>

Methodendefinition

Der Intent muss folgende Attribute haben:

Methodenattribute
Aktion com.google.android.payments.standard.AUTHENTICATE_V1
Kategorie android.intent.category.DEFAULT

Anfragen

Felder
gspAuthenticationRequest AuthenticationRequest

Authentifizierungsanfrage.

gspAssociationId string

Falls vorhanden, enthält sie eine Kennung, mit der der Integrator die Anmeldedaten des betroffenen Nutzers abruft. Wenn diese Option nicht vorhanden ist, kann der Nutzer die Kontokennung ändern.

Antwort

Nachdem der Nutzer die Authentifizierung abgeschlossen hat, muss Ihre Anwendung einen Ergebnis-Intent zurück an Google senden. Wenn die Authentifizierung erfolgreich ist, erstellen Sie einen Intent und fügen Sie die verschlüsselte codierte gspAuthenticationResponse als Extra hinzu. Als Nächstes legen Sie den entsprechenden Ergebniscode als Aktivitätsergebnis fest.

...
result.setExtra("gspAuthenticationResponse", gspAuthenticationResponse);
setResult(Activity.RESULT_OK, result);
...
finish();

Ergebnis

Felder
Ergebnis int

Activity.RESULT_OK
Die Authentifizierung war erfolgreich.
Activity.RESULT_CANCELED Der Nutzer hat den Vorgang manuell abgebrochen und der Vorgang sollte abgebrochen werden.
Activity.RESULT_FIRST_USER Bei der Authentifizierung ist ein schwerwiegender Fehler aufgetreten. Der Vorgang sollte abgebrochen werden. Der IE-Server hat bei der Anmeldung den HTTP-Fehler 500 zurückgegeben.

Extras

Felder
gspAuthenticationResponse AuthenticationResponse

Authentifizierungsantwort. Dieser codierte Wert darf 1 KB nicht überschreiten.

Weitere Aktivitätsanforderungen

Die Aktivität, die die oben genannte AUTHENTICATE_V1-Aktion unterstützt, muss außerdem prüfen, ob Aufrufer der API nur von von Google signierten Anwendungen stammen. Dadurch wird verhindert, dass andere Apps versuchen, Ihre Aktivität aufzurufen und Identitätstokens abzurufen. Verwenden Sie dazu das bereitgestellte StandardPaymentUtils.verifyCallingActivityIsGoogleSigned direkt nach super.onCreate in Ihrer Activity-Implementierung.

Beispiel:


@Override
protected void onCreate(Bundle savedInstanceState) {
  super.onCreate(savedInstanceState);
  StandardPaymentsUtils.verifyCallingActivityIsGoogleSigned(this);

  ....
}

Alle Aktivitäten, die im Ablauf authenticate aufgerufen werden, müssen ein Aktivitätsthema mit windowIsTranslucent=true angeben. Dazu musst du das AndroidManifest-Attribut „android:theme“ verwenden und nicht Context.setTheme(). Die programmatische Festlegung des Designs funktioniert für die Fenstertransparenz nicht richtig. Google erzwingt, dass die erste gestartete Aktivität diesem Muster folgt. Alle Unteraktivitäten, die ebenfalls gestartet werden, müssen diesem Muster entsprechen. Andernfalls funktionieren Käufe bei Drittanbietern möglicherweise nicht.