券面記載事項・顔写真の読み出し
このページでは、Verify SDK を使用して第二世代在留カードから券面記載事項、氏名イメージ・顔画像、署名・証明書を読み出します。
第二世代在留カードのデータの読み出しには SecondGenerationResidenceCard クラスを使用します。
このクラスは、券面記載事項や顔画像などをまとめて読み出す readSecondGenerationResidenceCardContent のほか、目的のデータだけを個別に読み出すメソッドを提供します。
あらかじめSDK のセットアップを完了しておいてください。
第二世代在留カードのデータを読み出すには、券面に記載された在留カード等番号の入力が必要です。 在留カード等番号の仕様については在留カードの暗証番号をご覧ください。
ただし、後述の「カード種別の読み出し」には在留カード等番号は不要です。
シーケンス
実装例
以下は、在留カード等番号を用いて券面記載事項・氏名イメージ・顔画像・署名・証明書を読み出す例です。
- iOS
- Android
- Web(PaSoRi)
- Flutter
- React Native
func run(cardNumber: String) async throws -> String {
// 第二世代在留カードへの接続準備を行います。
let session = ReaderSession(dispatchQueue: DispatchQueue.main)
// 第二世代在留カードを操作するクラスを初期化します。
let card = SecondGenerationResidenceCard(session: session)
// 第二世代在留カードに対して券面記載事項、氏名イメージ・顔画像、署名・証明書の読み出しを行います。
let result = try await card.readSecondGenerationResidenceCardContent(cardNumber: cardNumber)
session.close()
return "cardInfo: \(result.cardInfo.base64EncodedString())\n\n" +
"nameImageAndFaceImage: \(result.nameImageAndFaceImage.base64EncodedString())\n\n" +
"signatureAndCertificate: \(result.signatureAndCertificate.base64EncodedString())\n"
}
suspend fun run(cardNumber: String): String {
// 第二世代在留カードへの接続準備を行います。
val session = ReaderSession(this, this)
// 第二世代在留カードを操作するクラスを初期化します。
val card = SecondGenerationResidenceCard(session)
// 第二世代在留カードに対して券面記載事項、氏名イメージ・顔画像、署名・証明書の読み出しを行います。
val result = card.readSecondGenerationResidenceCardContent(cardNumber)
session.close()
return "cardInfo: ${Base64.encodeToString(result.cardInfo, Base64.NO_WRAP)}\n\n" +
"nameImageAndFaceImage: ${Base64.encodeToString(result.nameImageAndFaceImage, Base64.NO_WRAP)}\n\n" +
"signatureAndCertificate: ${Base64.encodeToString(result.signatureAndCertificate, Base64.NO_WRAP)}\n"
}
Web(PaSoRi)での第二世代在留カードからのデータ読み出し機能は現在準備中です。
Flutter での第二世代在留カードからのデータ読み出し機能は現在準備中です。
React Native での第二世代在留カードからのデータ読み出し機能は現在準備中です。
モック環境では、FeliCa カード(交通系 IC カード、Edy、WAON など)や、ISO/IEC 14443-4 Type-A カード(クレジットカードなど)をタッチすると、第二世代在留カードの挙動がシミュレートされます。 詳しくはAndroid SDK リファレンスやiOS SDK リファレンスをご覧ください。
カード種別の読み出し
SecondGenerationResidenceCard は、在留カード等番号の入力を求める前に利用できる readSecondGenerationResidenceCardType() を提供します。
このメソッドは、カード種別(第二世代在留カードか第二世代特別永住者証明書か)を読み出します。
資格外活動許可欄・在留期間等更新申請欄は第二世代在留カードにのみ存在するため、読み出しの前にカード種別を確認したい場合に利用できます。
個別に読み出せるデータ
readSecondGenerationResidenceCardContent 以外にも、以下のメソッドで目的のデータを個別に読み出せます。
いずれのメソッドも在留カード等番号を引数に取り、読み出したバイト列を返します。
| メソッド | 読み出すデータ | 対応するカード種別 |
|---|---|---|
readResidenceCardNumberContent | 在留カード等番号 | 第二世代在留カード・第二世代特別永住者証明書 |
readAddressImageContent | 住居地イメージ | 第二世代在留カード・第二世代特別永住者証明書 |
readMiscellaneousContent | その他の記載事項 | 第二世代在留カード・第二世代特別永住者証明書 |
readActivityPermissionContent | 資格外活動許可欄 | 第二世代在留カードのみ |
readApplicationStatusForExtensionOfPeriodOfStayContent | 在留期間等更新申請欄 | 第二世代在留カードのみ |
第二世代特別永住者証明書に対して第二世代在留カードのみのメソッドを呼び出すと、UnsupportedCardTypeException(iOS では UnsupportedCardTypeError)が発生します。
実行結果
第二世代在留カードからのデータ読み出しに成功すると、以下のように Base64 エンコードされた券面記載事項、氏名イメージ・顔画像、署名・証明書が得られます。 第二世代在留カードのデータのパース・検証時には、これらのデータを Verify CardInfo API に送信します。
次のステップ
第二世代在留カードから取得したデータのパース・検証を行い、券面記載事項や顔画像を取得しましょう。
その他、SDK の詳しい使い方やエラーの詳細等については、Android SDK リファレンスやiOS SDK リファレンスをご覧ください。