Flujo de usuarios de la asociación

Descripción general

El propósito del flujo de asociación es establecer un token de larga duración (también conocido como identificador opaco) que tanto el integrador de pagos (la empresa que configura su forma de pago en nuestro sistema) como Google acuerden el vínculo entre la cuenta de usuario de Google y la cuenta de usuario del integrador. Este token de larga duración se denomina token de pago de Google (GPT). Un instrumento es una forma de pagar servicios y bienes en los diversos ecosistemas y mercados de Google. Los clientes de Google pueden tener más de un instrumento.

Cómo funciona el flujo

  1. Google negocia un token para representar un vínculo entre el cliente de Google y la cuenta de usuario del integrador.
  2. Google recopila la información necesaria de configuración inicial necesaria para crear y establecer GPT.

La prueba de identidad y autenticación debe establecerse primero a través del flujo de autenticación. El resultado del flujo de autenticación se pasa al método associateAccount. Luego, el flujo de asociación asociará la cuenta de usuario de Google con el instrumento de Google. De esta forma, se configura el instrumento para que pueda usarse en los pagos.

A continuación, se muestra un diagrama que detalla el flujo de la asociación:

Diagrama de la secuencia de flujo de la asociación

Diagrama de flujo de la asociación

Esta es una lista de los objetos y lo que representan:

  • Usuario: Es la persona que desea agregar una forma de pago a su Cuenta de Google.
  • IU de Google: Es la interfaz de Google en la que el cliente comienza a configurar una forma de pago.
  • IU de Payment Integrator: La interfaz del integrador (Web o Android) a la que el cliente tiene acceso para esa cuenta.
  • Servidor de Google: Son los servidores de backend de Google que realizan las verificaciones de autenticación y asocian la cuenta del integrador del usuario con un GPT (token de pago de Google).
  • Servidor de integración de pagos: Es el servidor de backend del integrador en el que el usuario tiene una cuenta.

Este es un flujo de asociación, en el que un token de Google vincula la Cuenta de Google del usuario a su cuenta del integrador. Este flujo funciona de la siguiente manera.

  1. El usuario inicia el flujo en la IU de Google (como una interfaz web o de app).
  2. La IU de Google envía un mensaje al servidor de Google para proporcionarle una solicitud de autenticación (Solicitar datos de autenticación).
  3. El servidor de Google envía una solicitud de autenticación (authenticationRequest) a la IU de Google.
  4. La IU de Google conecta al usuario a la IU de Payment Integrator (authenticationRequest).
  5. Se le solicita al usuario su identidad y credenciales.
  6. La IU de Payment Integrator envía la respuesta al servidor de Payment Integrator.
  7. El servidor de integración de pagos autentica la respuesta y la envía (authenticationResponse) a la IU de la integración de pagos.
  8. Esta respuesta de autenticación se reenvía a la IU de Google.
  9. La IU de Google envía un mensaje al servidor de Google para verificar la respuesta del integrador (configura el instrumento de usuario).
  10. Para validar la respuesta, el servidor de Google verifica la firma y, luego, asocia la Cuenta del usuario con el integrador de pagos con un GPT y un ID de asociación (authenticationRequestID, associationID) en Google.
  11. Se envía un mensaje de éxito al servidor de Google.
  12. Se envía un mensaje de éxito a la IU de Google.
  13. Se envía un mensaje de éxito al usuario que indica que el instrumento está listo para usarse.

Prácticas recomendadas y otras consideraciones

Varios instrumentos

El integrador debe permitir que muchas GPT se asocien con una cuenta del integrador de un solo usuario. Por ejemplo, esto es necesario si un usuario borra su instrumento y crea uno nuevo con la misma cuenta de usuario del integrador.

Dos clientes de Google pueden asociarse con la misma cuenta de integrador de un usuario. Si ese fuera el caso, cada usuario tendría un instrumento diferente asociado a cada persona. Para cada instrumento hay un flujo de asociación independiente y un GPT único.

Medidas de seguridad

Si el integrador considera que se produjo una apropiación de cuenta en la cuenta del integrador de un usuario, se pueden rechazar las asociaciones nuevas de esa cuenta, y los instrumentos existentes que ya se asociaron podrían mostrar códigos de rechazo durante compras futuras.

Vida útil de GPT

El objeto GPT es de larga duración y, de forma predeterminada, no tiene vencimiento. Google recomienda que GPT no venza. Esto permite que el usuario tenga una experiencia de compra sin interrupciones.

Para los integradores que no pueden admitir un token que no tiene vencimiento, el integrador puede proporcionar la fecha de vencimiento a través del campo tokenExpirationTime del método associateAccount. Cuando un token esté por vencer, Google enviará al usuario a través del flujo de tokens de actualización para extender su vida útil.

Otros identificadores

Hay otros identificadores además de GPT que se intercambian durante la asociación. A continuación, se incluye una lista con vínculos para obtener más información.

  • AssociationId: Es un token público definido por Google que identifica la asociación entre la cuenta del cliente en Google y el instrumento. Mientras que GPT solo se usa en solicitudes de servidor a servidor, AssociationId es el equivalente de cliente. (Consulta la entrada del glosario para obtener más información).
  • AccountId: Es un identificador definido por el proveedor (a menudo, un número de cuenta) que se usa para descubrir fraudes y comprender las relaciones de las cuentas. Los agentes de operaciones de clientes de Google también lo usan para identificar y diagnosticar los problemas de los clientes. (Consulta la entrada del glosario para obtener más información).
  • AccountNickname (o fullAccountNickname): Es una cadena que los proveedores usan para identificar a sus clientes. También se usa con fines de visualización. El proveedor enmascara la AccountNickname por el bien de la SPII; la fullAccountNickname no está enmascarada.