La ricarica può avvenire in tre diversi ambienti:
- App per Android dell'integratore di pagamenti
- Sito web mobile dell'integratore dei pagamenti
- Sito web desktop dell'integratore di pagamenti
Indipendentemente dal flusso, Google trasferisce l'interazione dell'utente al team il software dell'integratore. L'integratore dei pagamenti implementa un'interfaccia utente familiare all'utente, ma il flusso deve essere dedicato specificamente al ricaricamento saldo dell'utente, il che significa che l'utente deve essere indirizzato tramite una procedura di ricarica. anziché essere inseriti in un'interfaccia utente generica in cui ci si aspetta per passare poi a un flusso di ricarica.
Tutti i flussi portano l'integratore a produrre un TopUpRedirectResponse. Questa risposta è stata firmata e inviata a Google.
I siti web per dispositivi mobili e computer desktop devono rispettare le specifica dell'API Web Top Up, mentre il flusso di app per Android deve seguire la specifica dell'API Android Top Up.
Gli integratori devono implementare una soluzione APK Android per autenticare l'utente e poi indirizzarli attraverso un flusso in cui possono ricaricare il loro equilibrio. Questo la ricarica è una modalità diversa, ma lo stesso scopo della ricarica fornita da il Ricarica web.
Un utente accede al flusso nell'app dell'integratore dei pagamenti tramite un Attività su Android. L'intent di ricarica può essere richiamato direttamente da un'app di Google Play in cui l'utente intendono effettuare un acquisto. Per impedire ad Android di terminare la riproduzione sul durante la ricarica, l'integratore deve includere quanto segue tema attività.
<item name="android:windowIsTranslucent">true</item>
Definizione del metodo
L'intent deve avere le seguenti proprietà:
Proprietà del metodo | |
---|---|
Azione |
com.google.android.payments.standard.TOPUP_V1 |
Categoria | android.intent.category.DEFAULT |
Richiesta
Campi | |
---|---|
gspTopUpRequest
|
TopUpRedirectRequest
Richiesta di ricarica. |
gspAssociationId
|
string
Contiene un identificatore utilizzato dall'integratore per cercare le credenziali per l'account che l'utente sta ricaricando. Questo è l'ID associazione inviato durante il collegamento dell'account nella richiesta AssociateAccountRequest. |
Risposta
Dopo che l'utente ha completato il flusso di ricarica, l'applicazione deve inviare un a Google. Se la ricarica va a buon fine, crea un intent e aggiungi gspTopUpResponse e RedirectRequestId con codifica criptata come extra. Quindi, imposta l'attività al codice risultato appropriato.
...
result.setExtra("gspTopUpResponse", gspTopUpResponse);
result.setExtra("redirectRequestId", redirectRequestId);
setResult(Activity.RESULT_OK, result);
...
finish();
Risultato
Campi | |||||||
---|---|---|---|---|---|---|---|
risultato |
int
|
Extra
Campi | |
---|---|
gspTopUpResponse |
TopUpRedirectResponse
OBBLIGATORIO: risposta di ricarica. Questo valore codificato non deve superare 1 kB. |
redirectRequestId |
string OBBLIGATORIO: il valore requestId ha inviato nella richiesta di pagamento di reindirizzamento originale o che ha avviato l'operazione. Google verificherà che corrisponda al valore requestId inviato e, in caso contrario, il flusso di reindirizzamento completo non andrà a buon fine.
|
Altri requisiti per le attività
L'attività che supporta l'azione TOPUP_V1
sopra citata deve
Verificare inoltre che i chiamanti dell'API provengano solo da applicazioni firmate da Google.
Ciò aiuterà a impedire ad altre app di tentare di richiamare la tua attività e
per recuperare i dati utente. A questo scopo, utilizza lo strumento
StandardPaymentUtils.verifyCallingActivityIsGoogleSigned
subito dopo
super.onCreate
nel tuo
Attività
implementazione.
Ecco un esempio:
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
StandardPaymentsUtils.verifyCallingActivityIsGoogleSigned(this);
....
}
Tutte le attività richiamate nel flusso di ricarica devono fornire un'attività
tema con windowIsTranslucent=true
. Questa operazione deve essere eseguita utilizzando
Attributo android:theme di AndroidManifest e non utilizzare Context.setTheme()
.
L'impostazione del tema in modo programmatico non funziona correttamente per la finestra
traslucenza. Google richiederà che la prima attività avviata segua questo
ma anche le eventuali attività secondarie avviate devono seguire questo
pattern. In caso contrario, gli acquisti effettuati da sviluppatori di terze parti potrebbero non funzionare.