La recarga puede realizarse en tres entornos diferentes:
- App para Android del integrador de pagos
- Sitio web móvil del integrador de pagos
- Sitio web para computadoras del integrador de pagos
Independientemente del flujo, Google transfiere la interacción del usuario al equipo de Pago. software del integrador. El integrador de pagos implementa una IU similar. al usuario, pero el flujo debe estar dedicado específicamente a completar saldo del usuario, lo que significa que se debe dirigir al usuario a través de un proceso de recarga en lugar de hacerlo en una IU de uso general en la que se espera que navegar hacia un flujo de recarga.
Todos los flujos hacen que el integrador produzca TopUpRedirectResponse. Esta respuesta se firmó y se envió a Google.
Los sitios web móviles y para computadoras de escritorio deben seguir las Especificación de la API para agregar dinero en la Web, mientras que el flujo de la app para Android debe seguir la especificación de la API de recarga de Android.
Los integradores deben implementar una solución de APK de Android para autenticar al usuario y luego dirigirlos a través de un flujo en el que puedan recargar su saldo. Esta "recargar" es una modalidad diferente, pero tiene el mismo propósito que "recargar" que proporciona el Recarga de la Web:
Un usuario ingresa al flujo en la app de integración de pagos a través de un Actividad de Android. El intent de recarga se puede invocar directamente desde una app de Play en la que el usuario tiene la intención de realizar una compra. Para evitar que Android cierre Play en el en segundo plano durante la recarga, el integrador debe incluir lo siguiente en el tema de la actividad.
<item name="android:windowIsTranslucent">true</item>
Definición del método
El intent debe tener las siguientes propiedades:
Propiedades del método | |
---|---|
Acción |
com.google.android.payments.standard.TOPUP_V1 |
Categoría | android.intent.category.DEFAULT |
Solicitud
Campos | |
---|---|
gspTopUpRequest
|
TopUpRedirectRequest
Solicitud de recarga. |
gspAssociationId
|
string
Contiene un identificador que el integrador usa para buscar credenciales para la cuenta que el usuario está recargando. Este es el ID de la asociación que se envía durante la vinculación de cuentas en AssociateAccountRequest. |
Respuesta
Una vez que el usuario completa el flujo de recarga, tu aplicación debe enviar un la intención del resultado a Google. Si la recarga es exitosa, crea un intent y Agrega los gspTopUpResponse y los redirectRequestId codificados encriptados como extras. Luego, configura la actividad resultado al código de resultado adecuado.
...
result.setExtra("gspTopUpResponse", gspTopUpResponse);
result.setExtra("redirectRequestId", redirectRequestId);
setResult(Activity.RESULT_OK, result);
...
finish();
Resultado
Campos | |||||||
---|---|---|---|---|---|---|---|
resultado |
int
|
Adicionales
Campos | |
---|---|
gspTopUpResponse |
TopUpRedirectResponse
OBLIGATORIO: Respuesta de recarga. Este valor codificado no debe exceder 1 KB. |
redirectRequestId |
string OBLIGATORIO: El requestId que se envió en la solicitud de pago por redireccionamiento original o que iniciaba el proceso. Google verificará que coincida con la requestId enviada y el flujo de redireccionamiento completo fallará si no coincide.
|
Otros requisitos de actividad
La actividad que admite la acción TOPUP_V1
mencionada anteriormente debe
También verifica que los emisores de la API provengan solo de aplicaciones firmadas por Google.
Esto ayudará a evitar que otras apps intenten invocar tu actividad y
recuperar datos del usuario. Esto se puede hacer usando los recursos
StandardPaymentUtils.verifyCallingActivityIsGoogleSigned
inmediatamente después
super.onCreate
en tu
Actividad
para implementarlos.
A continuación, le presentamos una muestra:
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
StandardPaymentsUtils.verifyCallingActivityIsGoogleSigned(this);
....
}
Todas las actividades invocadas dentro del flujo de recarga deben proporcionar una actividad
tema que tiene windowIsTranslucent=true
. Esto debe hacerse con el
El atributo android:theme de AndroidManifest y no usa Context.setTheme()
.
De manera programática, la configuración del tema no funciona correctamente para la ventana
la translucidez. Google exigirá que la primera actividad iniciada sea posterior a esta
pero las subactividades que se inicien también deberán seguir este
. De lo contrario, es posible que las compras de desarrolladores externos no funcionen.