La autenticación puede ocurrir 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 puede optar por mostrarle al usuario o regresar de inmediato si ya tiene los datos adecuados. Todos los flujos hacen que el integrador produzca una AuthenticationResponse. Esta se firma y se envía de vuelta a Google.
Los sitios web para dispositivos móviles y para computadoras deben seguir la API de WebRedirect Authentication especificación, aunque el flujo de la app para Android debe seguir la Especificación de la API de Authentication.
Los integradores deben implementar una solución de APK de Android para autenticar a los usuarios. Esta autenticación es una modalidad diferente, pero tiene el mismo propósito que de autenticación proporcionada por la Web autenticación.
Un usuario se autentica con el integrador de pagos mediante un Android Activity. El intent de autenticación se invoca durante la asociación de la cuenta y para los desafíos de los usuarios. Para evitar que Android cierre Play en el durante la autenticación, el integrador debe incluir el siguientes 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.AUTHENTICATE_V1 |
Categoría | android.intent.category.DEFAULT |
Solicitud
Campos | |
---|---|
gspAuthenticationRequest
|
AuthenticationRequest
Solicitud de autenticación. |
gspAssociationId
|
string
Si está presente, contiene un identificador que el integrador usa para buscar las credenciales del usuario al que se enfrenta el desafío. Si no está presente, el usuario tiene la opción de cambiar la identificación de la cuenta. |
Respuesta
Una vez que el usuario completa la autenticación, tu aplicación debe enviar un resultado a Google. Si la autenticación es exitosa, crea un intent y agrega la gspAuthenticationResponse codificada encriptada como un extra. A continuación, establece el resultado de la actividad en el código de resultado apropiado.
...
result.setExtra("gspAuthenticationResponse", gspAuthenticationResponse);
setResult(Activity.RESULT_OK, result);
...
finish();
Resultado
Campos | |||||||
---|---|---|---|---|---|---|---|
resultado |
int
|
Adicionales
Campos | |
---|---|
gspAuthenticationResponse |
AuthenticationResponse
Respuesta de autenticación. Este valor codificado no debe exceder 1 KB. |
Otros requisitos de actividad
La actividad que admite la acción AUTHENTICATE_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 tokens de identidad. Esto se puede hacer usando los recursos
StandardPaymentUtils.verifyCallingActivityIsGoogleSigned
justo después de 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 authenticate
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.