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.

Implementar pago remoto DSRP

Descripción general

Utilice el pago remoto Mastercard DSRP para generar datos de pago para la aceptación remota (por ejemplo, comercio electrónico).

En este flujo, su aplicación de billetera digital genera los datos de pago. Luego, pasa esos datos a su sistema de comercio o pasarela de pago para su autorización.

Antes de implementar pagos remotos DSRP, complete Tokenización. Consulte Tokenizar una tarjeta.

Integración del SDK

Comprueba los requisitos previos

Confirme que la tarjeta digital admite el pago remoto DSRP mediante DigitalCard.Details.isPaymentTypeSupported() con PaymentType.dsrp.

func checkCardSupportForDSRP(card: DigitalCard) async throws -> Bool {
    return try await card.details.isPaymentTypeSupported(.dsrp)
}

Crear los datos de entrada de pago DSRP

Antes de generar datos de pago DSRP, debe proporcionar los datos de entrada en RemotePaymentInputData.

RemotePaymentSession.RemotePaymentInputData tiene los siguientes campos:

Datos de entrada
Tipo
Formato
Descripción

amount

Cadena

Numérico, en unidades menores

Obligatorio Importe de la transacción en unidades menores (sin separador decimal). Por ejemplo, 119.00 USD es 11900 (luego añada ceros a la izquierda si su integración requiere longitud fija).

currencyCode

Cadena

Numérico ISO 4217 de 3 dígitos

Obligatorio Código de moneda de la transacción. Por ejemplo, USD es 840.

countryCode

Cadena

Numérico ISO 3166-1 de 3 dígitos

Obligatorio Código de país del comerciante. Por ejemplo, Estados Unidos es 840.

transactionType

Enum

.purchase

Obligatorio Tipo de transacción financiera. Para pagos DSRP, use .purchase.

cryptogramType

Enum

.ucaf o .de55

Obligatorio Formato de datos del criptograma devuelto por el SDK.

unpredictableNumber

Cadena

Numérico

Obligatorio Número aleatorio generado por el comerciante o la pasarela de pago.

Generar datos de pago DSRP

En su aplicación de billetera digital, llame a RemotePaymentSession.generateRemotePayment().

Esta API puede generar un error. Consulte Maneja los errores.

Si tiene éxito, la API devuelve RemotePaymentOutputData con los siguientes campos:

Parámetro
Descripción

cryptogramData

Matriz de bytes que contiene la respuesta formateada. Esto puede ser datos UCAF o TLV para que el comerciante complete DE-55.

pan

PAN con cualquier F relleno eliminado (si lo hay).

panSequenceNumber

Número de secuencia del PAN (PSN) de la tarjeta utilizada.

track2EquivalentData

Elementos de datos de la pista 2 según ISO/IEC 7813 (excluyendo el sentinel de inicio, el sentinel de fin y el LRC): PAN, separador de campo (D), fecha de expiración (AAMM), código de servicio, datos discrecionales y F relleno opcional.

par

Referencia de cuenta de pago (PAR), si la proporciona la red de pago.

expirationDate

Fecha de expiración de la tarjeta.

cryptogramDataType

Formato del criptograma devuelto (UCAF o DE55).

Maneja los errores

Si generateRemotePayment() lanza un error, considere que el pago ha fallado. Restablezca el estado de su interfaz. Guíe al usuario final hacia la siguiente mejor acción.

Error
Descripción

deviceEnvironmentUnsafe

El dispositivo no cumple los requisitos de seguridad.

sessionInProgress

Otra sesión de pago aún se está ejecutando.

invalidInputData

Uno o más campos en RemotePaymentInputData faltan o tienen un formato incorrecto.

noPaymentKeys

No hay claves de pago disponibles para la transacción.

cardNotSupported

La tarjeta digital no admite el pago remoto DSRP.

cardNotActive

La tarjeta digital no está activa.

noDefaultCard

No se ha configurado ninguna tarjeta predeterminada.

clientError

El flujo de pago remoto falló debido a un error del lado del cliente (por ejemplo, un problema de red).

authenticationKeyInvalidated

Se deshabilitó el código de acceso del dispositivo y el almacenamiento seguro se borró.

biometricNotEnrolled

La biometría no está disponible o no está registrada.

Cada error puede incluir un mensaje que explique el fallo. Úselo para la solución de problemas y el diagnóstico de soporte.

Ejemplo completo de implementación

Use esta muestra de código para entender cómo encajan los pasos anteriores.

Última actualización

¿Te fue útil?