Welcome to our new developer portal! Use the "Ask" button to chat with our AI Agent.
For the complete documentation index, see llms.txt. This page is also available as Markdown.

5. Realizar la verificación CDCVM

Resumen

Durante una transacción sin contacto, NFC Wallet SDK puede requerir que el usuario final se autentique para completar la verificación de CDCVM.

Tu aplicación de cartera digital debe realizar esta autenticación usando el método CDCVM que configuraste anteriormente. Ver Establecer método CDCVM.

Integración del SDK

Gestionar la autenticación en ContactlessPaymentServiceListener.onAuthenticationRequired(). Consulte Implementar devoluciones de llamada de pago sin contacto.

Para autenticar al usuario final, usa el CHVerificationMethod proporcionado por el SDK. Úsalo para obtener un DeviceCVMVerifier instancia, luego inicia la autenticación y escucha el resultado usando DeviceCVMVerifyListener.

cvmResetTimeout te indica cuánto tiempo sigue siendo válida la verificación. Úsalo para guiar al usuario final en el segundo toque.

Verificación CDCVM con la pantalla de bloqueo del dispositivo

Cuando la pantalla de bloqueo del dispositivo se usa como método CDCVM:

//Desde una implementación de ContactlessPaymentServiceListener()
//...

@Override
public void onAuthenticationRequired(
  PaymentService activatedPaymentService,
  CHVerificationMethod cvm,
  long cvmResetTimeout) {

    // comprueba el tipo de CDCVM
    if(cvm == CHVerificationMethod.DEVICE_KEYGUARD) {
        // Inicia la Activity implementada para gestionar la pantalla de autenticación de Keyguard
        // En este ejemplo la activity se llama 'KeyguardActivity'
        Intent intent = new Intent(getApplicationContext(), KeyguardActivity.class);
        intent.putExtra(Tags.CVM, cvm);
        intent.addFlags(Intent.FLAG_ACTIVITY_NEW_TASK);
        startActivity(intent);
    }
}

//...

Implemente KeyguardActivity en tu aplicación de cartera digital. Debe extender DeviceCVMKeyguardActivity. Esto habilita la verificación CDCVM usando las credenciales del dispositivo.

El siguiente ejemplo muestra la implementación de la KeyguardActivity clase:

Verificación CDCVM con biometría (ejemplo de huella digital)

Usa este método cuando el dispositivo admita autenticación biométrica (la huella digital se muestra en el ejemplo).

El siguiente ejemplo muestra cómo se puede implementar este mecanismo:

Implementa una Activity que extienda DeviceCVMKeyguardActivity. Esto permite recurrir a la pantalla de bloqueo del dispositivo cuando falla la verificación biométrica.

Si la aplicación de cartera digital pasa a segundo plano, deja de escuchar la autenticación por huella digital.

Esto se puede lograr usando el siguiente fragmento de código:

Compatibilidad con escenarios de pantalla de bloqueo (opcional)

Si necesitas admitir solicitudes de autenticación cuando el dispositivo está bloqueado, verifica lo siguiente:

  • Las actividades mostradas durante el pago se declaran con showOnLockScreen=true.

  • Se adquiere un wake lock y se establecen banderas de ventana para mostrar la interfaz en la pantalla de bloqueo.

  • Libera el wakeLock cuando finalice el pago para reducir el uso de la batería.

Configura los siguientes ajustes en el manifiesto e implementa el código de ejemplo según sea necesario:

Autenticación delegada

La autenticación delegada permite que tu aplicación de cartera digital solicite autenticación al usuario final y luego informe al SDK de que el pago puede continuar.

La autenticación puede usar la pantalla de bloqueo del dispositivo o la biometría para desbloquear el almacén de claves subyacente protegido por la autenticación del usuario.

Este flujo se aplica cuando el SDK solicita autenticación durante el pago. Tu aplicación de cartera digital puede:

  • Solicitar autenticación al usuario final y luego llamar a DeviceCVMVerifier.onDelegatedAuthPerformed(timeOfAuth).

  • Reutilizar una autenticación reciente y exitosa (dentro del período de validez de la clave configurado) y llamar a DeviceCVMVerifier.onDelegatedAuthPerformed(timeOfAuth) de inmediato.

Si el usuario final aborta la transacción, llama a DeviceCVMVerifier.onDelegatedAuthCancelled().

Última actualización

¿Te fue útil?