本番環境
実際の運転免許証や在留カードから読み出したデータを利用する環境です。
検証対象のカード
Verify SDK は、実際の運転免許証や在留カードからデータや電子署名を読み出します。 Verify CardInfo API は、これらのデータのパース・電子署名の検証を行います。 モック環境で利用していたカードは利用できません。
本番環境の利用方法
Verify CardInfo API の本番環境を利用するには、以下のように設定を行う必要があります。
Verify CardInfo API
本番環境でのテナント作成は、ご利用手続きが完了した事業者にのみに限らせていただいております。 テナント作成を希望される場合は、PocketSign Platform のお手続きページより、申し込みください。
本番環境における Verify CardInfo API のエンドポイントは https://verify.p8n.app です。
例えば、在留カードから読み出した電子署名の検証・データのパースを行う場合の URL は、
https://verify.p8n.app/pocketsign.cardinfo.v1.ResidenceCardService/ParseFrontSideContent となります。
Verify SDK
モック環境と本番環境では使用する Verify SDK が異なります。 これらの SDK は、同一のインターフェースを用いているため、モック環境向けに作成したコードを本番環境でも利用することができます。
基本的な組み込み方法は同じですので、下記注意点を参照しながらSDKの組み込みを進めてください。
パッケージ名の違い
本番環境向け SDK は、モック環境向け SDK とパッケージ名が異なりますので、インポートするパッケージを変更する必要があります。
- iOS
- Android
- Web(PaSoRi)
- Flutter
- React Native
パッケージ名がモック環境と異なり、末尾に Mock がつかない名前となります。
例えば、本番環境向けの在留カードからのデータの読み出しに対応した SDK のパッケージ名は VerifyResidenceCard です。
SDK の URL を入力する際には、
https://repo.platform.p8n.app/VerifyResidenceCard/と入力してください。
Swift で SDK を利用する際には、以下のようにインポートしてください。
/* ... */
// 共通して必要
import VerifyBase
import VerifyBaseShared
// 運転免許証から読み出す場合に必要
import VerifyDriversLicense
import VerifyDriversLicenseShared
// 在留カードから読み出す場合に必要
import VerifyResidenceCard
import VerifyResidenceCardShared
// マイナンバーカードの券面系APから読み出す場合に必要
import VerifyCardInfo
import VerifyCardInfoShared
func run(pin: String) async throws -> String {
// カードへの接続準備を行います。
let session = ReaderSession(dispatchQueue: DispatchQueue.main)
// ここに実装を追加します。
session.close()
return "not implemented"
}
/* ... */
パッケージ名がモック環境と異なり、末尾に -mock がつかない名前となります。
例えば、本番環境向けの在留カードからのデータの読み出しに対応した SDK のパッケージ名は jp.co.pocketsign.verify:residencecard です。
libs.versions.toml に依存関係を追加する際に、
# 共通して必要
pocketsign-verify-base = { group = "jp.co.pocketsign.verify", name = "base", version.ref = "pocketsign-verify" }
pocketsign-verify-base-shared = { group = "jp.co.pocketsign.verify", name = "base-shared", version.ref = "pocketsign-verify" }
# 運転免許証から読み出す場合に必要
pocketsign-verify-driverslicense = { group = "jp.co.pocketsign.verify", name = "driverslicense", version.ref = "pocketsign-verify" }
pocketsign-verify-driverslicense-shared = { group = "jp.co.pocketsign.verify", name = "driverslicense-shared", version.ref = "pocketsign-verify" }
# 在留カードから読み出す場合に必要
pocketsign-verify-residencecard = { group = "jp.co.pocketsign.verify", name = "residencecard", version.ref = "pocketsign-verify" }
pocketsign-verify-residencecard-shared = { group = "jp.co.pocketsign.verify", name = "residencecard-shared", version.ref = "pocketsign-verify" }
# マイナンバーカードの券面系APから読み出す場合に必要
pocketsign-verify-cardinfo = { group = "jp.co.pocketsign.verify", name = "cardinfo", version.ref = "pocketsign-verify" }
pocketsign-verify-cardinfo-shared = { group = "jp.co.pocketsign.verify", name = "cardinfo-shared", version.ref = "pocketsign-verify" }
と入力してください。
また、インポートパスが異なります。
jp.co.pocketsign.verify.mock を jp.co.pocketsign.verify に変更することで、本番環境向けのクラスを利用できます。
例えば、モック環境でインポートするクラスが jp.co.pocketsign.verify.mock.residencecard.ResidenceCard であれば、
jp.co.pocketsign.verify.residencecard.ResidenceCard が本番環境でインポートするクラスとなります。
具体的なクラス名はSDK リファレンスをご覧ください。
Kotlin で SDK を利用する際には、以下のようにインポートしてください。
/* ... */
// 共通して必要
import jp.co.pocketsign.verify.reader.ReaderSession
// 運転免許証から読み出す場合に必要
import jp.co.pocketsign.verify.driverslicense.DriversLicense
// 在留カードから読み出す場合に必要
import jp.co.pocketsign.verify.residencecard.ResidenceCard
// マイナンバーカードの券面系APから読み出す場合に必要
import jp.co.pocketsign.verify.cardinfo.InputSupportAP
import jp.co.pocketsign.verify.cardinfo.ConfirmationAP
class MainActivity : ComponentActivity() {
suspend fun run(pin: String): String {
// カードへの接続準備を行います。
val session = ReaderSession(this, this)
// ここに実装を追加します。
session.close()
return "not implemented"
}
/* ... */
}
下記のようなタイプエイリアスファイルを作成し、product flavor 等に応じて読み込むファイルを切り替えることで、モック環境用実装と本番環境用実装を自動で切り替えることができます。
package jp.co.pocketsign.verify.example
import jp.co.pocketsign.verify.mock.reader.ReaderSession
import jp.co.pocketsign.verify.mock.driverslicense.DriversLicense
import jp.co.pocketsign.verify.mock.residencecard.ResidenceCard
import jp.co.pocketsign.verify.mock.cardinfo.InputSupportAP
import jp.co.pocketsign.verify.mock.cardinfo.ConfirmationAP
// 本番では、こちらに切り替えてください。
// import jp.co.pocketsign.verify.reader.ReaderSession
// import jp.co.pocketsign.verify.driverslicense.DriversLicense
// import jp.co.pocketsign.verify.residencecard.ResidenceCard
// import jp.co.pocketsign.verify.cardinfo.InputSupportAP
// import jp.co.pocketsign.verify.cardinfo.ConfirmationAP
typealias ReaderSession = ReaderSession
typealias DriversLicense = DriversLicense
typealias ResidenceCard = ResidenceCard
typealias InputSupportAP = InputSupportAP
typealias ConfirmationAP = ConfirmationAP
Web(PaSoRi)SDKは現在準備中です。
Flutter SDKは現在準備中です。
React Native SDKは現在準備中です。
AID の設定
- iOS
- Android
- Web(PaSoRi)
- Flutter
- React Native
運転免許証や在留カードを読み取るために「ISO7816 application identifiers for NFC Tag Reader Session」を設定する必要があります。 詳しくはiOS アプリ開発における AID の設定を参照してください。
モック環境で設定した「ISO18092 system codes for NFC Tag Reader Session」は、本番環境では使用しないため、削除することができます。
この設定は、Androidでは不要です。
この設定は、Webアプリでは不要です。
Flutter SDKは現在準備中です。
React Native SDKは現在準備中です。