Crear vinculación de dispositivo (flujo amarillo)
Vinculación de dispositivo con Visa Cloud Token Framework (CTF) flujo amarillo ocurre cuando el emisor requiere autenticación de escalado usando un ID&V método.
Este flujo comienza de la misma manera que el Crear vinculación de dispositivo (flujo verde), luego se pausa hasta que el usuario final complete la autenticación de escalado.
Prerrequisitos:
La tarjeta de pago ya está tokenizada.
Tienes un
vProvisionedTokenId.El usuario final puede autenticarse en el dispositivo (PIN, código de acceso, huella dactilar, Face ID, etc.).
El usuario final puede completar el método ID&V seleccionado (por ejemplo, OTP).
Flujo
1
Inicia el flujo de vinculación de dispositivo desde la aplicación del comerciante usando el SDK de Thales.
2
El SDK de Thales genera un ID de dispositivo y un par de claves CTF, luego almacena de forma segura el par de claves CTF en el dispositivo.
3
El SDK de Thales desencadena la autenticación del usuario final en el dispositivo.
4
El SDK de Thales genera y firma la carga útil definida por Visa.
5
El SDK de Thales envía la carga útil firmada y la clave pública CTF al backend de Thales.
6
El backend de Thales convierte la clave pública en un certificado usando una CA de Visa.
7
El backend de Thales registra el dispositivo y solicita la vinculación del dispositivo a VTS.
8
VTS verifica la decisión del emisor.
9
El emisor requiere autenticación de escalado y proporciona métodos ID&V compatibles (por ejemplo, OTP o app-to-app).
10
El backend de Thales es informado sobre la decisión del emisor.
11
El SDK de Thales obtiene la lista de métodos ID&V y los pasa a la aplicación del comerciante.
12
La aplicación del comerciante muestra las distintas opciones al usuario final.
Integración del SDK
Crear una vinculación
Llamar createBinding desde el SDK de Thales.
Si el emisor requiere autenticación de escalado, el SDK devuelve un IDVSession en:
onIssuerAuthenticationRequired(Android)idvSessionHandler(iOS)
Obtener la lista de métodos ID&V
La lista de métodos ID&V puede recuperarse del IDVSession objeto.
Usa el IDVSession objeto para llamar a getIdvMethods para obtener la lista de ID&V métodos compatibles.
Usa el IDVSession objeto que se devuelve desde la createBinding función para llamar a idvMethods para obtener la lista de ID&V métodos compatibles.
Seleccionar un método ID&V
Si el método seleccionado se basa en OTP, el SDK llama a onIssuerAuthenticationReady y proporciona OtpActivationStatus.
OtpActivationStatus se devuelve solo para OTP_EMAIL, OTP_SMS, y OTP_ONLINE_BANKING.
Para los métodos basados en OTP, selectIDVMethod devuelve OtpActivationStatus. De lo contrario devuelve nil.
Los errores se devuelven en completionHandler.
OtpActivationStatus se devuelve solo para OTP_EMAIL, OTP_SMS, y OTP_ONLINE_BANKING.
Activar la vinculación
Activar la vinculación en función del método ID&V seleccionado:
APP_TO_APP: ver Activar la vinculación del dispositivo con app-to-app.CUSTOMER_SERVICE: ver Flujo de servicio al cliente.OTP_EMAIL,OTP_SMS, yOTP_ONLINE_BANKING: ver Flujo OTP.
Si el flujo se interrumpe mientras el estado de la vinculación es PENDING_ACTIVATION, reanúdalo usando resumeBinding.
Reanudar una vinculación pendiente
Use resumeBinding cuando el estado de la vinculación es PENDING_ACTIVATION.
Obtener el IDVSession objeto
IDVSession objetoEn los casos en que ocurra un error, el onError callback será llamado, de lo contrario se devolverá un IDVSession objeto.
Después de resumeBinding devuelve un IDVSession, úsalo para obtener la lista de métodos ID&V, seleccionar uno y activar la vinculación como se mencionó arriba.
Opcional: ejemplos de reanudación de flujo (Android/iOS)
List<IDVMethod> idvMethods = idvSession.getIdvMethods();guard let idvSession = VisaService.shared.idvSession else { // no hay sesión idv return}// 1. Mostrar lista de métodos idvdo { let idvMethods = try idvSession.idvMethods} catch let error { // 2. manejar error}
Seleccionar un método ID&V
IDVMethod selectedIdvMethod;idvSession.selectIdvMethod(selectedIdvMethod);Una vez que la aplicación envía el método ID&V seleccionado, el callback onIssuerAuthenticationReady será devuelto a la aplicación.guard let idvSession = VisaService.shared.idvSession else { // no hay sesión idv return}// 1. Mostrar lista de métodos idvdo { let idvMethods = try idvSession.idvMethods let selectedIdvMethod = idvMethods[0] // el usuario selecciona 1 de los idvMethods disponibles // 2. enviar el método idv idvSession.selectIDVMethod(selectedIdvMethod) { (result) in if let otpActivationStatus = result { // 3.1. mostrar página para introducir el valor OTP } else { // 3.2. manejar el idv seleccionado que no está relacionado con otp, por ejemplo, solicitar Atención al Cliente } }} catch let error { // manejar error}// 4. El fallo en el paso 2, selectIDVMethod, se gestionará en completionHandler.VisaService.shared.completionHandler = { (session, error) in // 5. Comprobar si es un error de selectIDVMethod. if let session = session, let error = error, error.description == TMGError.invalidIdvMethod.description { VisaService.shared.idvSession = session // 6. Reintentar el flujo IDV. }}TMGError ilustrado arriba no es exhaustivo. Usa el código de error más apropiado para tu caso.
Activar la vinculación
La activación de la vinculación se puede hacer siguiendo los pasos para el método seleccionado:
APP_TO_APP: ver Activar la vinculación con app-to-app.CUSTOMER_SERVICE: ver Flujo de servicio al cliente.OTP_EMAIL,OTP_SMS, yOTP_ONLINE_BANKING: ver Flujo OTP.
Última actualización
¿Te fue útil?