Didit Android SDK 中的 NFC 文档验证教程 (ZH)
本教程提供了一份全面的指南,介绍如何使用 Didit Android SDK 将 NFC 文档验证集成到 Android 应用程序中。通过 NFC 技术,从电子护照和电子身份证直接读取加密签名数据,提供比单独视觉检查更高水平的安全性,提高用户体验,并有助于满足 KYC/AML 规定并显著降低身份欺诈风险。.

增强安全性NFC 验证直接从电子护照和电子身份证读取加密签名数据,提供比单独的视觉检查更高水平的保证。
简化用户体验通过 NFC 自动提取数据减少了手动输入错误,并加快了用户的入职流程。
合规性与欺诈预防利用 NFC 验证有助于企业满足严格的 KYC/AML 法规,并通过验证文档真实性显著降低身份欺诈风险。
Didit 的无缝集成Didit 的 Android SDK 简化了复杂的 NFC 验证过程,提供了一个模块化的、AI 原生的解决方案,内置活体检测和免费的核心 KYC 层。
NFC 在身份验证中的强大作用
近场通信 (NFC) 彻底改变了身份验证,特别是对于电子护照和电子身份证等文件。与仅依赖视觉数据的传统光学字符识别 (OCR) 不同,NFC 验证直接读取这些文件内部嵌入的芯片。该芯片包含持有人的生物识别数据、个人信息和关键安全功能,所有这些都受到加密保护。这种方法提供了无与伦比的安全性,使得欺诈者极难伪造或篡改身份文件。
对于企业而言,集成 NFC 验证意味着在欺诈预防和合规性方面取得了重大飞跃。它确保所提交的身份不仅在视觉上有效,而且还通过发行机构的数字验证。这降低了合成身份欺诈、深度伪造以及其他可能绕过不太严格验证方法的复杂攻击的风险。
用户体验也受益匪浅。用户不再需要手动输入详细信息或依赖可能容易出错的 OCR 扫描,只需将文件轻触支持 NFC 的智能手机即可。这种快速准确的过程最大限度地减少了入职期间的摩擦,从而提高了转化率和客户满意度。Didit 的 NFC 验证产品旨在利用这些优势,提供一个强大且用户友好的解决方案。
为 Didit NFC 验证设置您的 Android 项目
将 Didit 的 NFC 验证集成到您的 Android 应用程序中是一个简单的过程,这得益于其文档齐全且模块化的 SDK。在深入研究代码之前,请确保您的开发环境满足以下要求:
- Android API 23+ (Android 6.0 Marshmallow)
- Kotlin 1.9+, Gradle 8.0+
- 用于测试的具有 NFC 功能的 Android 设备。
分步安装:
首先,您需要将 Didit SDK 添加到您的项目中。这涉及配置 Maven 仓库并添加 SDK 依赖项。
1. 添加 Maven 仓库
在您的 settings.gradle.kts 文件中,确保包含 Didit Maven 仓库:
dependencyResolutionManagement {
repositories {
google()
mavenCentral()
maven { url = uri("https://raw.githubusercontent.com/didit-protocol/sdk-android/main/repository") }
}
}
2. 添加依赖项
接下来,在您的 app/build.gradle.kts 文件中,添加 Didit SDK 实现:
dependencies {
implementation("me.didit:didit-sdk:3.2.0")
}
3. 添加打包排除项
为防止构建冲突,请在 app/build.gradle.kts 的 android { } 块中添加此打包排除项:
android {
packaging {
resources {
excludes += "META-INF/versions/9/OSGI-INF/MANIFEST.MF"
}
}
}
Didit Android SDK 会自动合并其清单中必要的权限,如 INTERNET、ACCESS_NETWORK_STATE、CAMERA 和 NFC,从而简化您的清单配置。
使用 Didit SDK 实现 NFC 验证
安装 SDK 后,下一步是启动 NFC 验证会话。Didit 的方法以开发人员为先,提供简洁的 API 以实现无缝集成。该过程通常涉及在您的后端创建验证会话,然后将会话令牌传递给您的 Android 应用程序。
后端会话创建(您的服务器):
您的后端将使用 Didit 的 API 启动会话。这确保了安全的通信和适当的工作流编排。
POST https://verification.didit.me/v3/session/
Headers: { "x-api-key": DIDIT_API_KEY, "Content-Type": "application/json" }
Body: { "workflow_id": DIDIT_WORKFLOW_ID, "vendor_data": "user-id" }
Response: { "session_id": "uuid", "session_token": "jwt-token", "verification_url": "...", "status": "Not Started" }
从此响应中收到的 session_token 至关重要;您将把它发送到您的 Android 应用程序。
Android 应用集成:
在您的 Android 应用程序中,您将使用 DiditSdk 类来处理验证流程。SDK 支持完整的 UI 体验和用于自定义 UI 的无头模式。
选项 A:使用来自您后端的会话令牌
这是编排复杂工作流和维护后端控制的推荐方法。
import me.didit.DiditSdk
// ... 在您的 Activity 或 Fragment 中
val sessionToken = "YOUR_SESSION_TOKEN_FROM_BACKEND"
DiditSdk.start(this, sessionToken) { result ->
when (result) {
is DiditSdk.VerificationResult.Success -> {
// 验证成功,处理结果
Log.d("Didit", "Verification Success: ${result.sessionId}")
}
is DiditSdk.VerificationResult.Error -> {
// 验证失败或已取消
Log.e("Didit", "Verification Error: ${result.message}")
}
}
}
SDK 将引导用户完成 NFC 扫描过程,包括提示将文档放置在手机上。它无缝集成了身份验证(OCR、MRZ、条形码)、被动和主动活体检测以及关键的 NFC 验证(电子护照/电子身份证),以确保全面且安全的身份检查。
实现流畅用户体验的最佳实践
尽管 Didit SDK 处理了大部分复杂性,但优化 NFC 验证的用户体验是成功实施的关键:
- 清晰的说明:向用户提供清晰、简洁的说明,说明如何放置其电子护照或电子身份证进行 NFC 扫描。视觉提示或动画会非常有帮助。
- 错误处理:实施强大的错误处理和用户反馈。如果 NFC 扫描失败,请指导用户了解潜在问题(例如,设备未启用 NFC,文档未正确放置)。
- 情境提示:解释为什么需要 NFC 验证(例如,“为了增强安全性和更快的验证”),建立信任并减少用户的犹豫。
- 性能:NFC 验证通常很快,但请确保您的应用程序在此过程中保持响应。
- 备用选项:虽然 NFC 非常安全,但请考虑为可能拥有旧文档或未启用 NFC 的设备的用户提供其他验证方法(例如,手动上传、照片验证),尽管要清楚地传达 NFC 的安全优势。
Didit 的模块化架构使您可以轻松地将 NFC 验证与其他强大工具(例如被动和主动活体检测)结合使用,以打击深度伪造并确保提交文档的人是其合法所有者。这种多层方法为身份欺诈创建了强大的防御。
Didit 如何提供帮助
Didit 是 AI 原生、开发人员优先的身份平台,旨在使强大的身份验证变得可访问和可扩展。对于 NFC 文档验证,Didit 的 Android SDK 通过提供全面、易于集成的解决方案而脱颖而出。我们的 NFC 验证产品无缝读取电子护照和电子身份证中的数据,确保最高级别的文档真实性。这是我们更广泛的身份验证套件的一部分,该套件包括 OCR、MRZ 和条形码扫描,使 Didit 成为基于文档的身份检查的一站式商店。
Didit 的独特之处在于其对模块化和开发人员友好性的承诺。您可以即插即用身份检查,通过我们的无代码引擎或通过简洁的 API 编排复杂的工作流。我们提供免费的核心 KYC 层,允许各种规模的企业无需前期成本即可开始验证身份。我们的 AI 原生方法确保了欺诈检测的高准确性和持续改进,包括复杂的活体检查以防止欺骗和深度伪造攻击。Didit 没有设置费,采用按成功检查付费的模式,为全球身份验证需求提供了经济高效且功能强大的解决方案。
准备好开始了吗?
准备好亲身体验 Didit 了吗?立即获取免费演示。
使用Didit 的免费层开始免费验证身份。