La recharge peut être effectuée dans trois environnements différents:
- Application Android de l'intégrateur de paiements
- Site Web mobile de l'intégrateur de paiements
- Site Web de bureau de l'intégrateur de paiements
Quel que soit le flux, Google transmet l'interaction utilisateur au logiciel de l'intégrateur de paiements. L'intégrateur de paiements implémente une interface utilisateur qui semble familière à l'utilisateur, mais le flux doit être spécifiquement dédié à l'approvisionnement de l'utilisateur, ce qui signifie que celui-ci doit être redirigé via un processus de rechargement de crédit plutôt que dans une interface utilisateur à usage général, au cours de laquelle il devrait avoir recours à une procédure de recharge de crédit.
Tous les flux font en sorte que l'intégrateur génère une réponse TopUpRedirectResponse. Cette réponse est signée et renvoyée à Google.
Les sites Web pour mobile et pour ordinateur doivent respecter la spécification de l'API Web Top Up, tandis que le flux de l'application Android doit respecter la spécification de l'API Android Top Up.
Les intégrateurs doivent implémenter une solution APK Android pour authentifier l'utilisateur, puis le diriger vers un flux leur permettant de recharger leur solde. Il s'agit d'une modalité différente, mais ayant le même objectif que la recharge de crédit fournie par la Crédit Web.
Un utilisateur accède au flux de l'application d'intégrateur de paiement via une activité Android. L'intent de recharge de crédit peut être appelé directement à partir d'une application Play dans laquelle l'utilisateur a l'intention d'effectuer un achat. Pour empêcher Android d'arrêter Play en arrière-plan pendant la recharge de crédit, l'intégrateur doit inclure les éléments suivants dans le thème de l'activité.
<item name="android:windowIsTranslucent">true</item>
Définition de la méthode
L'intent doit avoir les propriétés suivantes:
Propriétés des méthodes | |
---|---|
Action |
com.google.android.payments.standard.TOPUP_V1 |
Catégorie | android.intent.category.DEFAULT |
Requête
Champs | |
---|---|
gspTopUpRequest
|
TopUpRedirectRequest
Demande de recharge de crédit. |
gspAssociationId
|
string
Contient un identifiant que l'intégrateur utilise pour rechercher les identifiants du compte que l'utilisateur complète. Il s'agit de l'ID d'association envoyé lors de l'association de comptes dans la demande AssociateAccountRequest. |
Réponse
Une fois que l'utilisateur a terminé le flux de recharge de crédit, votre application doit renvoyer un intent de résultat à Google. Si la recharge aboutit, créez un intent et ajoutez les éléments gspTopUpResponse et redirectRequestId encodés et chiffrés en tant qu'extras. Ensuite, définissez le résultat de l'activité sur le code de résultat approprié.
...
result.setExtra("gspTopUpResponse", gspTopUpResponse);
result.setExtra("redirectRequestId", redirectRequestId);
setResult(Activity.RESULT_OK, result);
...
finish();
Résultat
Champs | |||||||
---|---|---|---|---|---|---|---|
résultat |
int
|
Bonus
Champs | |
---|---|
gspTopUpResponse |
TopUpRedirectResponse
OBLIGATOIRE: réponse de recharge de crédit. Cette valeur encodée ne doit pas dépasser 1 Ko. |
redirectRequestId |
string OBLIGATOIRE: requestId envoyé dans la demande de paiement de redirection initiale ou qui a initié la demande. Google vérifiera qu'il s'agit du requestId envoyé. Sinon, le flux "Complete Redirect" échouera.
|
Autres exigences liées aux activités
L'activité compatible avec l'action TOPUP_V1
mentionnée ci-dessus doit également vérifier que les appelants de l'API ne proviennent que d'applications signées par Google.
Cela empêchera d'autres applications d'appeler votre activité et de récupérer des données utilisateur. Pour ce faire, utilisez le StandardPaymentUtils.verifyCallingActivityIsGoogleSigned
fourni juste après super.onCreate
dans l'implémentation d'Activity.
Voici un exemple :
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
StandardPaymentsUtils.verifyCallingActivityIsGoogleSigned(this);
....
}
Toutes les activités appelées dans le flux de recharge de crédit doivent fournir un thème d'activité avec windowIsTranslucent=true
. Cette opération doit être effectuée avec l'attribut AndroidManifest android:theme et non Context.setTheme()
.
En programmation, la définition du thème ne fonctionne pas correctement pour la translucidité des fenêtres. Google s'assurera que la première activité lancée suit ce schéma, mais toutes les sous-activités qui sont également lancées doivent également suivre ce schéma. Si ce n'est pas le cas, les achats effectués par des développeurs tiers risquent de ne pas fonctionner.