本番環境
実際の運転免許証や在留カードから読み出したデータを利用する環境です。
検証対象のカード
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 は、同一のインターフェースを用いているため、モック環境向けに作成したコードを本番環境でも利用することができます。
基本的な組み込み方法は同じですので、Getting Startedをベースに、下記注意点を併せてご参照ください。
パッケージ名の違い
本番環境向け SDK は、モック環境向け SDK とパッケージ名が異なりますので、インポートするパッケージを変更する必要があります。
- iOS
- Android
パッケージ名がモック環境と異なり、末尾に Mock がつかない名前となります。
例えば、本番環境向けの在留カードからのデータの読み出しに対応した SDK のパッケージ名は VerifyResidenceCard です。
SDK の URL を入力する際には、
https://repo.platform.p8n.app/VerifyResidenceCard/と入力してください。
Swift で SDK を利用する際には、以下のようにインポートしてください。
import SwiftUI
import VerifyBaseShared
import VerifyResidenceCardShared
import VerifyBase
import VerifyResidenceCard
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-shared = { group = "jp.co.pocketsign.verify", name = "base-shared", version.ref = "pocketsign-verify" }
pocketsign-verify-residencecard-shared = { group = "jp.co.pocketsign.verify", name = "residencecard-shared", version.ref = "pocketsign-verify" }
pocketsign-verify-base = { group = "jp.co.pocketsign.verify", name = "base", version.ref = "pocketsign-verify" }
pocketsign-verify-residencecard = { group = "jp.co.pocketsign.verify", name = "residencecard", 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.driver.ReaderSession
import jp.co.pocketsign.verify.residencecard.ResidenceCard
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
// 本番では `mock` なしのパスからインポートする。
import jp.co.pocketsign.verify.mock.driver.ReaderSession
import jp.co.pocketsign.verify.mock.residencecard.ResidenceCard
typealias ReaderSession = ReaderSession
typealias ResidenceCard = ResidenceCard
AID の設定 (iOS のみ)
iOS では、運転免許証や在留カードを読み取るために「ISO7816 application identifiers for NFC Tag Reader Session」を設定する必要があります。 詳しくはiOS アプリ開発における AID の設定を参照してください。
モック環境で設定した「ISO18092 system codes for NFC Tag Reader Session」は、本番環境では使用しないため、削除することができます。