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.

Personalizar PPSE

Resumen

Tal como se define en EMV Book B, el PPSE (Proximity Payment System Environment) es el punto de entrada para los pagos sin contacto. Cada tarjeta digital tiene su propio PPSE, definido en el perfil del token. Contiene la lista de identificadores de aplicación (AID) compatibles, con las etiquetas de aplicación y prioridades correspondientes.

NFC Wallet SDK proporciona la API de gestión del PPSE. Te permite que tu aplicación de billetera digital:

  • Obtener el PPSE (PPSE predeterminado definido en el perfil de la tarjeta digital).

  • Obtener el PPSE auxiliar (PPSE definido en el perfil auxiliar de la tarjeta digital para tarjetas de doble marca).

  • Personalizar un nuevo PPSE (PPSE personalizado).

  • Obtener o restablecer el PPSE personalizado.

NFC Wallet SDK usa el PPSE personalizado cuando está definido para una transacción sin contacto.

Use API de gestión del PPSE para aplicar tu política en un programa de billetera digital de doble marca.

NFC Wallet SDK usa solo el PPSE o el PPSE personalizado. No usa el PPSE auxiliar.

Integración del SDK

La API de gestión del PPSE incluye el PpseFciTemplate la clase y estas DigitalizedCard operaciones:

  • DigitalizedCard.getPpse(): Obtiene el PPSE predeterminado definido en el perfil del token.

  • DigitalizedCard.getAuxiliaryPpse(): Obtiene el PPSE definido en el perfil auxiliar de la tarjeta digital (tarjetas de doble marca).

  • DigitalizedCard.getCustomPpse(): Obtiene el PPSE personalizado. Devuelve null si no está definido.

  • DigitalizedCard.setCustomPpse(): Establece un PPSE personalizado. Pasa null para borrarlo.

Creación de un PPSE personalizado

Crea un PPSE personalizado con PpseFciTemplate de una de estas formas:

  • Usa una plantilla PPSE existente.

  • Usa bytes sin procesar del PPSE.

  • Créalo desde cero.

Método 1: Crear PPSE a partir de una plantilla existente

Usa este enfoque cuando quieras comenzar con el PPSE de la tarjeta digital y hacer modificaciones específicas.

Cuándo usarlo:

  • Quieres personalizar campos específicos del PPSE existente, como la prioridad o las etiquetas.

  • Quieres conservar la estructura PPSE predeterminada mientras realizas cambios selectivos.

  • Necesitas una plantilla base para la personalización.

Método 2: Crear PPSE a partir de bytes sin procesar

Usa este enfoque cuando ya tengas disponibles los datos completos de la respuesta PPSE en formato BER-TLV.

Cuándo usarlo:

  • Ya tienes los datos completos de la respuesta PPSE como bytes sin procesar.

Método 3: Crear PPSE desde cero

Usa este enfoque cuando necesites construir una estructura PPSE de forma programática definiendo cada componente de manera individual.

Cuándo usarlo:

  • Estás creando datos PPSE sin datos de bytes existentes.

  • Necesitas definir las entradas del directorio, los AID, las etiquetas y otros componentes PPSE de forma programática.

  • Quieres una construcción con seguridad de tipos y validación en tiempo de compilación.

  • Prefieres objetos estructurados en lugar de bytes sin procesar.

DigitalizedCard expone la respuesta PPSE como PpseFciTemplate. Puedes crear tu propio PpseFciTemplate. El siguiente ejemplo muestra cómo crearlo.

Borrar un PPSE personalizado

Pasa null para eliminar el PPSE personalizado y restaurar la respuesta PPSE predeterminada.

Reglas de validación

NFC Wallet SDK valida el PPSE personalizado cuando llamas a DigitalizedCard.setCustomPpse(). Garantiza que el PPSE personalizado cumpla los requisitos de EMV y la codificación BER-TLV.

Límites de tamaño

  • La carga útil BER-TLV serializada debe tener 256 bytes o menos.

  • Las claves de etiquetas personalizadas dentro de BF0C o 61 no deben exceder 2 bytes.

Etiquetas requeridas

Tu PpseFciTemplate debe incluir:

  1. Nombre DF — Etiqueta 84

  2. Al menos una entrada de directorio — Etiqueta 61 dentro de BF0C

  3. Un identificador de aplicación en cada entrada de directorio — Etiqueta 4F

Si la validación falla, el SDK lanza InternalComponentException con el código de error ERROR_CODE_INVALID_PPSE_DATA.

Restricciones de bloqueo de AID

Bloquear un AID con LockStatus.LOCKED solo es compatible con tarjetas Visa de una sola marca.

Si estableces LockStatus.LOCKED para una tarjeta no compatible, el SDK lanza InternalComponentException.

Última actualización

¿Te fue útil?