Integrar Bounce Provisioning
Captura a tus clientes que buscan agregar su tarjeta desde Google Wallet y llévalos directo a tu app.
Introducción
Cuando tu cliente quiere agregar una tarjeta a Google Wallet, no siempre empieza por tu app. Muchas veces abre Google Wallet directamente y busca su banco o fintech desde ahí. Sin Bounce Provisioning, ese cliente tiene que salir de Google Wallet, abrir tu app por su cuenta y volver a empezar. Buena parte de esos intentos se pierde en el camino.
Bounce Provisioning conecta esos dos mundos: Google Wallet muestra tu app en el listado de emisores disponibles y, cuando tu cliente la elige, la abre directo en la pantalla para agregar la tarjeta. El flujo de tokenización sigue siendo el tuyo, con tu marca y tus controles de seguridad, pero el punto de entrada pasa a ser Google Wallet.
pushTokenize ni construir las opciones extra: consulta el SDK de Google Pay para Android.
Funcionamiento
- Tu cliente abre Google Wallet y presiona "Agregar tarjeta de pago".
- Google Wallet busca en el dispositivo todas las apps que declararon la acción
ACTION_INITIATE_PROVISIONINGy consulta a sus servidores cuáles están habilitadas. - Google Wallet muestra el listado de emisores habilitados y tu cliente elige tu app.
- Google Wallet abre la activity que declaraste, que tiene que mostrar la tarjeta lista para agregar.
- Tu cliente presiona "Add to Google Wallet" y tu app llama a
pushTokenizeindicando que el flujo se originó en Google Wallet. - Completada la tokenización, tu app muestra la confirmación y tu cliente queda con la tarjeta agregada en Google Wallet.
Habilitación con Google
Empieza por aquí, antes de escribir código. Google valida contra sus servidores qué apps puede mostrar en el listado, así que tu package name tiene que estar habilitado para Bounce Provisioning además del allowlisting que ya hiciste para Push Provisioning.
1. Agrega tu app package al allowlist
Agrega el package name de tu aplicación en Issuer Console.
2. Completa el formulario de onboarding
Una vez que tu app esté en el allowlist, completa el formulario de onboarding de Bounce Provisioning con tu Merchant ID y el package name que participa del flujo.
Implementación
18.5.1 o superior del TapAndPay SDK. Las versiones anteriores no lo soportan.
1. Declara la acción en tu AndroidManifest.xml
Google Wallet descubre las apps compatibles buscando esta acción en los dispositivos. Declárala en la activity que quieres que Google Wallet abra.
<category android:name="android.intent.category.DEFAULT" /> es obligatoria. Sin ella tu app no aparece en el listado de Google Wallet, aunque el resto de la configuración sea correcta.
2. Detecta el origen del flujo
En la activity que recibe el intent, revisa la acción para saber si tu cliente llegó desde Google Wallet.
El origen del flujo es una propiedad de la sesión de navegación, no de la pantalla actual. Si la activity que recibe el intent no es la misma que ejecuta la tokenización, propaga el valor por Intent extra, argumento de navegación o el mecanismo que uses en tu app.
3. Marca la tokenización como Bounce Provisioning
Al construir el PushTokenizeRequest, agrega el objeto PushTokenizeExtraOptions con el valor que detectaste en el paso anterior.
Estos son los métodos que agrega el SDK para este flujo:
| Método | Descripción |
|---|---|
| setPushTokenizeExtraOptions(PushTokenizeExtraOptions) | Método de PushTokenizeRequest.Builder. Define las opciones extra de la tokenización. |
| setIsBounceProvisioned(Boolean) | Método de PushTokenizeExtraOptions.Builder. Indica que el token se agregó a través de Bounce Provisioning. |
El resto de la llamada a pushTokenize no cambia. Si ya tienes Push Provisioning funcionando, el único ajuste en la tokenización es agregar estas opciones.
El manejo del resultado tampoco cambia: muestra la confirmación como lo haces en el flujo de Push Provisioning habitual. No necesitas cerrar tu activity ni devolver a tu cliente a Google Wallet.
Experiencia de usuario
Google evalúa la experiencia de este flujo antes de habilitarlo. Estos son los criterios que tienes que cumplir:
- Tras la autenticación, tu cliente tiene que llegar directo a la pantalla con la lista de tarjetas elegibles para tokenización, sin overlays ni popovers antes de esa pantalla. Si tu cliente tiene una sola tarjeta, muéstrale esa; si tiene varias, muéstrale el selector para que elija cuál agregar.
- Si tu app requiere autenticación, resuélvela sin pasos adicionales innecesarios. Tu cliente ya tomó la decisión de agregar la tarjeta en Google Wallet.
- Respeta los lineamientos de marca de Google Pay en el botón "Add to Google Wallet".
Repositorio de ejemplo
Para complementar esta guía, te compartimos un repositorio de ejemplo con una implementación de punta a punta de UPP que ya incluye Bounce Provisioning.
En la app Android encuentras:
- La declaración del
intent-filteren elAndroidManifest.xml. - La detección del intent de Google Wallet en la Activity.
- El
PushTokenizeRequestarmado conPushTokenizeExtraOptions.
Preguntas frecuentes
¿Tengo que cambiar mi integración de Push Provisioning existente?
No. El flujo de tokenización, la generación del OPC y el manejo de resultados siguen igual. Solo agregas el intent-filter en el manifest y las opciones extra en el PushTokenizeRequest.
¿Puedo usar el mismo intent-filter en la activity principal de mi app?
Sí, siempre que esa activity lleve a tu cliente directo a la pantalla para agregar la tarjeta. Si tu activity principal es un login o una home con varias secciones, te conviene declarar el intent en una activity dedicada.
¿Mi app aparece en Google Wallet apenas publico la versión con el intent-filter?
No. Google consulta en sus servidores qué apps están habilitadas antes de mostrar el listado. Hasta que tu package name esté habilitado para Bounce Provisioning, tu app no aparece aunque el intent esté declarado correctamente.
¿Dónde encuentro la documentación oficial de Google?
En la guía de Bounce Provisioning para Android. Ahí están el detalle de la API, el diagrama del flujo completo y los requisitos que Google evalúa antes de habilitar tu app.