A recarga pode ocorrer em três ambientes diferentes:
- App Android do integrador de pagamentos
- Site para dispositivos móveis do integrador de pagamentos
- Site para computadores do integrador de pagamentos
Independentemente do fluxo, o Google transfere a interação do usuário para a equipe de integrador. O integrador de pagamentos implementa uma interface que parece familiar para o usuário, mas o fluxo deve ser dedicado especificamente para completar o saldo do usuário, ou seja, o usuário deve ser direcionado por um processo de recarga em vez de serem colocados em uma interface de uso geral, navegar mais para um fluxo de recarga.
Todos os fluxos fazem com que o integrador produza uma TopUpRedirectResponse. Esta resposta é assinada e enviada ao Google.
Os sites para dispositivos móveis e desktop precisam seguir as Especificação da API Web Top Up, enquanto o fluxo do app Android precisa seguir a especificação da API Android Top Up.
Os integradores precisam implementar uma solução de APK do Android para autenticar o usuário e, em seguida, guie o cliente por um fluxo em que é possível recarregar o saldo. Isso a recarga é uma modalidade diferente, mas tem a mesma finalidade da recarga fornecida pelo as Recarga pela Web.
Um usuário entra no fluxo no app do integrador de pagamentos por meio de um Atividade no Android. A intent de recarga pode ser invocada diretamente de um app do Google Play em que o usuário que pretende fazer uma compra. Para impedir que o Android encerre o Google Play na segundo plano durante a recarga, o integrador precisa incluir o seguinte na o tema da atividade.
<item name="android:windowIsTranslucent">true</item>
Definição de método
A intent precisa ter estas propriedades:
Propriedades do método | |
---|---|
Ação |
com.google.android.payments.standard.TOPUP_V1 |
Categoria | android.intent.category.DEFAULT |
Solicitação
Campos | |
---|---|
gspTopUpRequest
|
TopUpRedirectRequest
Solicitação de recarga. |
gspAssociationId
|
string
Contém um identificador que o integrador usa para procurar credenciais da conta que o usuário está completando. Este é o ID da associação que é enviado durante a vinculação da conta no AssociateAccountRequest. |
Resposta
Depois que o usuário conclui o fluxo de recarga, seu aplicativo precisa enviar uma de resultado da pesquisa de volta para o Google. Se a recarga for bem-sucedida, crie uma intent e adiciona o criptografado gspTopUpResponse e redirecionadoRequestId como extras. Em seguida, defina a atividade resultado para o código de resultado adequado.
...
result.setExtra("gspTopUpResponse", gspTopUpResponse);
result.setExtra("redirectRequestId", redirectRequestId);
setResult(Activity.RESULT_OK, result);
...
finish();
Resultado
Campos | |||||||
---|---|---|---|---|---|---|---|
resultado |
int
|
Extras
Campos | |
---|---|
gspTopUpResponse |
TopUpRedirectResponse
OBRIGATÓRIO: resposta de recarga. Esse valor codificado não pode exceder 1 KB. |
redirectRequestId |
string OBRIGATÓRIO: o requestId enviado na solicitação de pagamento de redirecionamento original/de início. O Google vai verificar se isso corresponde ao requestId enviado, e o fluxo de redirecionamento completo vai falhar se não corresponder.
|
Outros requisitos de atividade
A atividade compatível com a ação TOPUP_V1
mencionada acima precisa
verifique também se os autores das chamadas da API vêm apenas de aplicativos assinados pelo Google.
Isso vai ajudar a evitar que outros apps tentem invocar sua atividade e
recuperar dados do usuário. Isso pode ser feito usando o
StandardPaymentUtils.verifyCallingActivityIsGoogleSigned
logo depois
super.onCreate
na sua
Atividade
implementação.
Veja uma amostra:
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
StandardPaymentsUtils.verifyCallingActivityIsGoogleSigned(this);
....
}
Todas as atividades invocadas no fluxo de recarga precisam fornecer uma atividade
tema que tem windowIsTranslucent=true
. Isso deve ser feito com o
O atributo android:theme do AndroidManifest e não usa Context.setTheme()
.
De maneira programática, a definição do tema não funciona corretamente para a janela.
translucência. O Google vai exigir que a primeira atividade iniciada siga essa
mas quaisquer subatividades que também forem iniciadas devem seguir este
padrão Caso contrário, as compras de desenvolvedores terceirizados podem não funcionar.