API de autenticación de APK de Android

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

Activity.RESULT_OK
La autenticación se realizó correctamente.
Activity.RESULT_CANCELED El usuario canceló el flujo de forma manual y este se debe anular.
Activity.RESULT_FIRST_USER La autenticación falló por un motivo irrecuperable y el flujo debería ser se abortó. El servidor de IE mostró una respuesta HTTP 500 al acceder.

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.