Mostrar metadatos de la tarjeta
Última actualización
¿Te fue útil?
¿Te fue útil?
fun getCardMetaData(d1Task: D1Task, cardID: String, activity: FragmentActivity) {
activity.lifecycleScope.launch {
try {
val cardMetadata = d1Task.secureCardDisplayService.getCardMetadata(cardID).await()
// Últimos 4 dígitos del PAN
val last4Pan = cardMetadata.last4Pan
// CardAsset se utiliza para mostrar la imagen de la tarjeta
val cardAssets = cardMetadata.getAssetList().await()
// Continúa con la lógica de la aplicación
} catch (exception: D1Exception) {
// Consulte la sección Integración del SDK de D1 – Gestión de errores
}
}
}fun getCardMetaData(d1Task: D1Task) {
var cardID = "" // ID de tarjeta recibido del backend.
val callback = object : D1Task.Callback<CardMetadata> {
override fun onSuccess(cardMetadata: CardMetadata) {
// Últimos 4 dígitos del PAN.
val last4Pan = cardMetadata.last4Pan
// CardAsset se utiliza para mostrar la imagen de la tarjeta.
cardMetadata.getAssetList(object : D1Task.Callback<List<CardAsset>> {
override fun onSuccess(cardAssets: List<CardAsset>) {
// Continúa con la lógica de la aplicación.
}
override fun onError(e: D1Exception) {
// Maneja el error. Por ejemplo, regístralo, muéstralo, etc.
}
})
}
override fun onError(exception: D1Exception) {
// Consulte la sección Integración del SDK de D1 – Gestión de errores.
}
}
d1Task.getCardMetadata(cardID, callback)
}let cardID = "" // obtenido, por ejemplo, del servidor
do {
let service = try d1Task.secureCardDisplayService()
let cardMetadata = try await service.cardMetadata(cardID)
// Continúa con los flujos posteriores, por ejemplo, actualizar la interfaz de usuario
print("Esquema: \(cardMetadata.cardScheme.rawValue)")
print("Estado: \(cardMetadata.cardState.rawValue)")
print("Caducidad: \(cardMetadata.cardExpiry)")
print("Últimos 4: **** **** **** \(cardMetadata.cardLast4)")
// por ejemplo, muestra el primer arte de la tarjeta
let assets = try await cardMetadata.cardAssetArray()
if let cardAssetContent = assets.first?.contentArray.first,
let cardImageData = Data(base64Encoded: cardAssetContent.encodedData, options: .ignoreUnknownCharacters) {
let image = UIImage.init(data: cardImageData)
}
} catch let d1Error as D1Error {
// Consulte la sección Integración del SDK de D1 – Gestión de errores
} catch let error {
// Manejar otro error
}let cardID = "" // Obtenido, por ejemplo, del servidor.
d1Task.cardMetadata(cardID) { cardMetadata, error in
if let error = error {
// Consulte la sección Integración del SDK de D1 – Gestión de errores.
} else if let cardMetadata = cardMetadata {
// Continúa con flujos posteriores. Por ejemplo, actualiza la interfaz de usuario.
print("Esquema: \(cardMetadata.cardScheme.rawValue)")
print("Estado: \(cardMetadata.cardState.rawValue)")
print("Caducidad: \(cardMetadata.cardExpiry)")
print("Últimos 4: **** **** **** \(cardMetadata.cardLast4)")
print("motivo: \(cardMetadata.reason.rawValue)")
print("Operación en curso: \(cardMetadata.ongoingOperation.rawValue)")
// Por ejemplo, muestra el primer arte de la tarjeta.
cardMetadata.cardAssetArray { assets, error in
if let cardAssetContent = assets?.first?.contentArray.first,
let cardImageData = Data(base64Encoded: cardAssetContent.encodedData, options: .ignoreUnknownCharacters) {
let image = UIImage.init(data: cardImageData)
}
}
}
}