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 übergibt Google die Nutzerinteraktion an die Zahlung Integratorsoftware. Der Zahlungsintegrator kann dem Nutzer eine oder sofort zurückkehren, wenn sie bereits über die entsprechenden Daten verfügt. Alle Abläufe führen dazu, dass der Integrator eine AuthenticationResponse erzeugt. Dieses wird signiert und an Google zurückgesendet.

Die Mobil- und Desktop-Websites müssen der WebWeiterleitungs-Authentifizierungs-API entsprechen. Spezifikation, der Android-App-Ablauf muss jedoch den Authentication API-Spezifikation.

Integratoren sollten zur Authentifizierung der Nutzer eine Android-APK-Lösung implementieren. Diese Authentifizierung ist eine andere Modalität, aber der gleiche Zweck wie die Authentifizierung durch das Web Authentifizierung.

Ein Nutzer authentifiziert sich über eine Android-App Aktivität: Der Authentifizierungs-Intent wird während der Kontoverknüpfung und für Herausforderungen der Nutzenden. Um zu verhindern, dass Android Play im Hintergrund während der Authentifizierung erklärt werden muss, muss der Integrator im Aktivitätsthema folgen.

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

Methodendefinition

Der Intent muss die folgenden Attribute haben:

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

Anfrage

Felder
gspAuthenticationRequest AuthenticationRequest

Authentifizierungsanfrage.

gspAssociationId string

Falls vorhanden, enthält es eine Kennung, die der Integrator verwendet, um nachzusehen, Anmeldedaten für den angeforderten Nutzer eingeben. Ist dies nicht der Fall, Der Nutzer hat die Möglichkeit, die Kontoidentifikation zu ändern.

Antwort

Nachdem der Nutzer die Authentifizierung abgeschlossen hat, muss Ihre Anwendung ein Ergebnis senden an Google zu senden. Wenn die Authentifizierung erfolgreich ist, erstellen Sie einen Intent und fügen Sie die verschlüsselte codierte gspAuthenticationResponse als Extrahierung an. Legen Sie als Nächstes für das Aktivitätsergebnis den entsprechenden Ergebniscode fest.

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

Ergebnis

Felder
Ergebnis int

Activity.RESULT_OK
Authentifizierung war erfolgreich.
Activity.RESULT_CANCELED Der Nutzer hat den Vorgang manuell abgebrochen und er sollte abgebrochen werden.
Activity.RESULT_FIRST_USER Die Authentifizierung ist aus einem schwerwiegenden Grund fehlgeschlagen. Der Ablauf sollte folgendermaßen aussehen: abgebrochen Der IE-Server hat bei der Anmeldung eine HTTP 500-Antwort zurückgegeben.

Extras

Felder
gspAuthenticationResponse AuthenticationResponse

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

Sonstige Aktivitätsanforderungen

Die Aktivität, die die oben genannte AUTHENTICATE_V1-Aktion unterstützt, muss Vergewissern Sie sich außerdem, dass die API-Aufrufer nur von Google-signierten Anwendungen stammen. So wird verhindert, dass andere Apps versuchen, Ihre Aktivitäten aufzurufen und Identitätstokens abrufen können. Dies erfolgt mithilfe der bereitgestellten StandardPaymentUtils.verifyCallingActivityIsGoogleSigned direkt nach super.onCreate in Ihrem Aktivität Implementierung.

Beispiel:


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

  ....
}

Alle im authenticate-Ablauf aufgerufenen Aktivitäten müssen eine Aktivität angeben Design mit windowIsTranslucent=true. Dies muss mit dem Das AndroidManifest-Attribut „android:theme“ und nicht Context.setTheme(). Programmgesteuert funktioniert das Design für Fenster nicht Lichtdurchlässigkeit. Google erzwingt, dass die erste gestartete Aktivität nach dieser Muster angewendet werden. Alle Unteraktivitäten, die ebenfalls gestartet werden, müssen jedoch ebenfalls diesem Muster folgen, Muster zu ändern. Andernfalls funktionieren Käufe von Drittanbietern möglicherweise nicht.