カード詳細を表示する
最終更新
役に立ちましたか?
役に立ちましたか?
fun getCardDetails(d1Task: D1Task, cardID: String, activity: FragmentActivity) {
activity.lifecycleScope.launch {
try {
val cardDetails = d1Task.secureCardDisplayService.getCardDetails(cardID).await()
// サーバーから受け取った cardDetails オブジェクトを処理し、バイト配列型を文字列に変換します
val cardHolderName: String? =
cardDetails.cardHolderName?.let { String(it, Charsets.UTF_8) }
val pan = String(cardDetails.pan, Charsets.UTF_8)
val expiryDate = String(cardDetails.expiryDate, Charsets.UTF_8)
val cvv = String(cardDetails.cvv, Charsets.UTF_8)
// cardDetails オブジェクトのバイト配列変数を消去します
cardDetails.wipe()
} catch (exception: D1Exception) {
// D1 SDK の統合 – エラー管理セクションを参照してください
}
}
}fun getCardDetails(d1Task: D1Task) {
var cardID = "" // バックエンドから受け取ったカード ID
val callback = object : D1Task.Callback<CardDetails> {
override fun onSuccess(cardDetails: CardDetails) {
// サーバーから受け取った cardDetails オブジェクトを処理し、バイト配列型を文字列に変換します。
val cardHolderName: String? = cardDetails.cardHolderName?.let { String(it,Charsets.UTF_8) }
val pan = String(cardDetails.pan, Charsets.UTF_8)
val expiryDate = String(cardDetails.expiryDate, Charsets.UTF_8)
val cvv = String(cardDetails.cvv, Charsets.UTF_8)
// cardDetails オブジェクトのバイト配列変数を消去します。
cardDetails.wipe()
}
override fun onError(exception: D1Exception) {
// D1 SDK の統合 – エラー管理セクションを参照してください。
}
}
d1Task.getCardDetails(cardID,callback)
}let cardID = "" // 例: サーバーから取得
do {
let service = try d1Task.secureCardDisplayService()
var cardDetails = try await service.cardDetails(cardID)
// その後のフローを継続します。例: UI を更新
print("有効期限: \((String(data: cardDetails.expiryDate, encoding: .utf8) ?? ""))")
print("CVV: \((String(data: cardDetails.cvv, encoding: .utf8) ?? ""))")
print("名前: \(String(data: cardDetails.cardHolderName ?? Data(), encoding: .utf8) ?? "")")
print("PAN: \((String(data: cardDetails.pan, encoding: .utf8) ?? ""))")
// 使用後、バイト配列の cardDetails を消去します
cardDetails.wipe()
} catch let d1Error as D1Error {
// D1 SDK の統合 – エラー管理セクションを参照してください
} catch let error {
// その他のエラーを処理します
}let cardID = "" // 例: サーバーから取得
d1Task.cardDetails(cardID) { cardDetails, error in
if let error = error {
// D1 SDK の統合 – エラー管理セクションを参照してください
} else if var cardDetails = cardDetails {
// その後のフローを継続します。例: UI を更新
print("有効期限: \((String(data: cardDetails.expiryDate, encoding: .utf8) ?? ""))")
print("CVV: \((String(data: cardDetails.cvv, encoding: .utf8) ?? ""))")
print("名前: \(String(data: cardDetails.cardHolderName ?? Data(), encoding: .utf8) ?? "")")
print("PAN: \((String(data: cardDetails.pan, encoding: .utf8) ?? ""))")
// 使用後、バイト配列の cardDetails を消去します
cardDetails.wipe()
}
}fun displayCardDetails(d1Task: D1Task, cardID: String, cardDetailsUI: CardDetailsUI, activity: FragmentActivity) {
activity.lifecycleScope.launch(Dispatchers.Main) {
try {
d1Task.secureCardDisplayService.displayCardDetails(cardID, cardDetailsUI)
.await()
// UI が更新されます
} catch (exception: D1Exception) {
// D1 SDK の統合 – エラー管理セクションを参照してください
}
}
// UI が更新されます
}fun displayCardDetails (d1Task: D1Task) {
var view: View? = null // レイアウトをここでインフレートします。
val panTextView: DisplayTextView? = null // view?.findViewById(R.id.panText)
val expiryDateTextView: DisplayTextView? = null //view?.findViewById(R.id.expiryDateText)
val cvvTextView: DisplayTextView? = null //view?.findViewById(R.id.cvvText)
val cardHolderNameTextView: DisplayTextView? = null //view?.findViewById(R.id.cardHolderNameText)
val cardDetailsUI = CardDetailsUI.getInstance(panTextView, expiryDateTextView,
cvvTextView, cardHolderNameTextView)
var cardID = "" // バックエンドから受け取ったカード ID。
val callback = object : D1Task.Callback<Void> {
override fun onSuccess(ignore: Void?) {
// UI が更新されます。
}
override fun onError(exception: D1Exception) {
// D1 SDK の統合 – エラー管理セクションを参照してください。
}
}
d1Task.displayCardDetails(cardID, cardDetailsUI, callback)
}let panTextField = D1DisplayTextField()
let cvvTextField = D1DisplayTextField()
let expiryDateTextField = D1DisplayTextField()
let cardHolderNameTextField = D1DisplayTextField()
/* 例: テキストフィールドをレイアウトします */
let cardDetailsUI = SecureCardDisplayService.CardDetailsUI(panTextField: panTextField,
expiryDateTextField: expiryDateTextField,
cvvTextField: cvvTextField,
cardHolderNameTextField: cardHolderNameTextField)
let cardID = "" // 例: サーバーから取得
do {
let service = try d1Task.secureCardDisplayService()
try await service.displayCardDetails(cardID, cardDetailsUI: cardDetailsUI)
} catch let d1Error as D1Error {
// D1 SDK の統合 – エラー管理セクションを参照してください
} catch let error {
// その他のエラーを処理します
}let panTextField = D1DisplayTextField()
let cvvTextField = D1DisplayTextField()
let expiryDateTextField = D1DisplayTextField()
let cardHolderNameTextField = D1DisplayTextField()
/* 例: テキストフィールドをレイアウトします */
let cardDetailsUI = CardDetailsUI(panTextField: panTextField,
expiryDateTextField: expiryDateTextField,
cvvTextField: cvvTextField,
cardHolderNameTextField: cardHolderNameTextField)
let cardID = "" // 例: サーバーから取得
d1Task.displayCardDetails(cardID, cardDetailsUI: cardDetailsUI) { error in
if let error = error {
// D1 SDK の統合 – エラー管理セクションを参照してください
} else {
// UI が更新されます
}
}fun showCardDetails(cardDetailsUI: CardDetailsUI, activity: FragmentActivity) {
activity.lifecycleScope.launch {
try {
// カード情報をマスクします
cardDetailsUI.maskCardDetails()
// カード情報を再度表示します
cardDetailsUI.showCardDetails().await()
// UI が更新されます
} catch (exception: D1Exception) {
// D1 SDK の統合 – エラー管理セクションを参照してください
}
}
}fun showCardDetails (cardDetailsUI: CardDetailsUI) {
// カード情報をマスクします。
cardDetailsUI.maskCardDetails()
val callback = object : D1Task.Callback<Void> {
override fun onSuccess(ignore: Void?) {
// UI が更新されます。
}
override fun onError(exception: D1Exception) {
// D1 SDK の統合 – エラー管理セクションを参照してください。
}
}
// カード情報を再度表示します。
cardDetailsUI.showCardDetails(callback)
}// カード情報をマスクします
cardDetailsUI.maskCardDetails()
// カード情報を再度表示します
do {
try await cardDetailsUI.showCardDetails()
// その後のフローを継続します
} catch let d1Error as D1Error {
// D1 SDK の統合 – エラー管理セクションを参照してください
} catch let error {
// その他のエラーを処理します
}// カード情報をマスクします
cardDetailsUI.maskCardDetails()
// カード情報を再度表示します
cardDetailsUI.showCardDetails() { error in
if let error = error {
// D1 SDK の統合 – エラー管理セクションを参照してください
} else {
// UI が更新されます
}
}