API Android APK Top Up

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

Activity.RESULT_OK
Ricarica riuscita.
Activity.RESULT_CANCELED L'utente ha annullato manualmente il flusso, che dovrebbe essere interrotto.
Activity.RESULT_FIRST_USER Ricarica non riuscita per un motivo irreversibile e il flusso dovrebbe essere è stata interrotta. Il server IE ha restituito una risposta HTTP 500 all'accesso.

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.