Display Card Metadata
Last updated
Was this helpful?
Was this helpful?
String cardID = ""; //card id received from backend
D1Task.Callback<CardMetadata> callback = new D1Task.Callback<CardMetadata>() {
@Override
public void onSuccess(CardMetadata cardMetadata) {
// Last 4 digits of PAN
String last4Pan = cardMetadata.getLast4Pan();
StateReason reason = cardMetadata.getStateReason();
OngoingOperation ongoingOperation = cardMetadata.getOngoingOperation();
// CardAsset is used to display Card Artwork
cardMetadata.getAssetList(new D1Task.Callback<List<CardAsset>>() {
@Override
public void onSuccess(List<CardAsset> cardAssets) {
// Proceeds with the application logic
}
@Override
public void onError(@NonNull D1Exception e) {
// Handles the error. For example, log it, display it, and so on.
}
});
}
@Override
public void onError(D1Exception exception) {
// Refer to D1 SDK Integration – Error Management section.
}
};
d1Task.getCardMetadata(cardID, callback);let cardID = "" // Obtained for example, from server.
d1Task.cardMetadata(cardID) { cardMetadata, error in
if let error = error {
// Refer to D1 SDK Integration – Error Management section.
} else if let cardMetadata = cardMetadata {
// Proceeds with subsequent flows. For example, update UI.
print("Scheme: \(cardMetadata.cardScheme.rawValue)")
print("State: \(cardMetadata.cardState.rawValue)")
print("Exp: \(cardMetadata.cardExpiry)")
print("Last4: **** **** **** \(cardMetadata.cardLast4)")
print("reason: \(cardMetadata.reason.rawValue)")
print("Ongoing operation: \(cardMetadata.ongoingOperation.rawValue)")
// For example, shows the first card artwork.
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)
}
}
}
}