L'authentification peut s'effectuer dans trois environnements différents:
- Application Android de l'intégrateur de paiements
- Site Web mobile de l'intégrateur de paiements
- Site Web pour ordinateur de l'intégrateur de paiements
Quel que soit le flux de travail, Google transmet l'interaction utilisateur le logiciel de l'intégrateur. L'intégrateur de paiement peut choisir de présenter à l'utilisateur interface ou renvoyer immédiatement immédiatement s'il dispose déjà des données appropriées. Pour tous les flux, l'intégrateur génère une AuthenticationResponse. Ce est signée et renvoyée à Google.
Les sites Web pour mobile et pour ordinateur doivent respecter l'API WebRedirect Authentication. Spécification, tandis que le flux de l'application Android doit respecter Spécification de l'API Authentication.
Les intégrateurs doivent implémenter une solution APK Android pour authentifier les utilisateurs. Cette authentification est une modalité différente, mais la même fonction que l'authentification fournie par l'agent Web authentification.
Un utilisateur s'authentifie auprès de l'intégrateur de paiement via un Android Activité. L'intent d'authentification est appelé lors de l'association du compte et pour les défis des utilisateurs. Pour empêcher Android de fermer Play dans le en arrière-plan lors de l'authentification, l'intégrateur doit inclure suivre dans le thème de l’activité.
<item name="android:windowIsTranslucent">true</item>
Définition de la méthode
L'intent doit comporter les propriétés suivantes:
Propriétés de la méthode | |
---|---|
Action |
com.google.android.payments.standard.AUTHENTICATE_V1 |
Catégorie | android.intent.category.DEFAULT |
Requête
Champs | |
---|---|
gspAuthenticationRequest
|
AuthenticationRequest
Requête d'authentification. |
gspAssociationId
|
string
S'il est présent, il contient un identifiant que l'intégrateur utilise pour rechercher les identifiants de l'utilisateur interrogé. S'il n'est pas présent, l'utilisateur a la possibilité de modifier l'identification du compte. |
Réponse
Une fois que l'utilisateur a terminé l'authentification, votre application doit envoyer un résultat vos intentions à Google. Si l'authentification réussit, créez un intent et ajoutez-y la réponse gspAuthenticationResponse encodée chiffrée en tant que extra. Ensuite, définissez le résultat de l'activité sur le code de résultat approprié.
...
result.setExtra("gspAuthenticationResponse", gspAuthenticationResponse);
setResult(Activity.RESULT_OK, result);
...
finish();
Résultat
Champs | |||||||
---|---|---|---|---|---|---|---|
résultat |
int
|
Bonus
Champs | |
---|---|
gspAuthenticationResponse |
AuthenticationResponse
Réponse d'authentification. Cette valeur encodée ne doit pas dépasser 1 Ko. |
Autres exigences concernant l'activité
L'activité compatible avec l'action AUTHENTICATE_V1
mentionnée ci-dessus doit
vérifient également que les appelants de l'API ne proviennent que d'applications signées par Google.
Cela évitera que d'autres applis essaient d'appeler votre activité et
pour récupérer des jetons d'identité. Pour ce faire, utilisez les attributs
StandardPaymentUtils.verifyCallingActivityIsGoogleSigned
juste après super.onCreate
dans votre
Activité
la mise en œuvre.
Voici un exemple :
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
StandardPaymentsUtils.verifyCallingActivityIsGoogleSigned(this);
....
}
Toutes les activités appelées dans le flux authenticate
doivent fournir une activité
thème contenant windowIsTranslucent=true
. Pour ce faire, utilisez
l'attribut android:theme d'AndroidManifest, et que Context.setTheme()
n'est pas utilisé.
Par programmation, la définition du thème ne fonctionne pas correctement pour la fenêtre
la translucidité. Google s'assurera que la première activité lancée suit cette
mais toutes les sous-activités également lancées doivent également
du modèle. Si ce n'est pas le cas, les achats auprès de développeurs tiers risquent de ne pas fonctionner.