カードメタデータを表示する
最終更新
役に立ちましたか?
役に立ちましたか?
fun getCardMetaData(d1Task: D1Task, cardID: String, activity: FragmentActivity) {
activity.lifecycleScope.launch {
try {
val cardMetadata = d1Task.secureCardDisplayService.getCardMetadata(cardID).await()
// PAN の下 4 桁
val last4Pan = cardMetadata.last4Pan
// CardAsset は カードデザイン の表示に使用されます
val cardAssets = cardMetadata.getAssetList().await()
// アプリケーションのロジックを続行します
} catch (exception: D1Exception) {
// D1 SDK Integration – Error Management セクションを参照してください
}
}
}fun getCardMetaData(d1Task: D1Task) {
var cardID = "" // バックエンドから受信した Card ID。
val callback = object : D1Task.Callback<CardMetadata> {
override fun onSuccess(cardMetadata: CardMetadata) {
// PAN の下 4 桁。
val last4Pan = cardMetadata.last4Pan
// CardAsset は カードデザイン の表示に使用されます。
cardMetadata.getAssetList(object : D1Task.Callback<List<CardAsset>> {
override fun onSuccess(cardAssets: List<CardAsset>) {
// アプリケーションのロジックを続行します。
}
override fun onError(e: D1Exception) {
// エラーを処理します。たとえば、ログに記録したり、表示したりします。
}
})
}
override fun onError(exception: D1Exception) {
// D1 SDK Integration – Error Management セクションを参照してください。
}
}
d1Task.getCardMetadata(cardID, callback)
}let cardID = "" // たとえばサーバーから取得
do {
let service = try d1Task.secureCardDisplayService()
let cardMetadata = try await service.cardMetadata(cardID)
// 以降のフローを続行します。たとえば UI を更新します
print("スキーム: \(cardMetadata.cardScheme.rawValue)")
print("状態: \(cardMetadata.cardState.rawValue)")
print("有効期限: \(cardMetadata.cardExpiry)")
print("下4桁: **** **** **** \(cardMetadata.cardLast4)")
// たとえば最初のカードデザインを表示します
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 {
// D1 SDK Integration – Error Management セクションを参照してください
} catch let error {
// その他のエラーを処理します
}let cardID = "" // たとえばサーバーから取得します。
d1Task.cardMetadata(cardID) { cardMetadata, error in
if let error = error {
// D1 SDK Integration – Error Management セクションを参照してください。
} else if let cardMetadata = cardMetadata {
// 以降のフローを続行します。たとえば UI を更新します。
print("スキーム: \(cardMetadata.cardScheme.rawValue)")
print("状態: \(cardMetadata.cardState.rawValue)")
print("有効期限: \(cardMetadata.cardExpiry)")
print("下4桁: **** **** **** \(cardMetadata.cardLast4)")
print("理由: \(cardMetadata.reason.rawValue)")
print("進行中の操作: \(cardMetadata.ongoingOperation.rawValue)")
// たとえば最初のカードデザインを表示します。
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)
}
}
}
}