跳到主要内容

XMDT(身份验证)

XMDT 是面向 copub 游戏的身份验证:姓名、出生日期、手机号码(通过 OTP 验证)以及同意书(consent)。这是一个独立的 SDK —— alogame-kyc-sdk —— 不属于 SDK v2,集成 v2 也不会自动获得它。

环境
环境Base URL
Devhttps://api-xmdt.dev.alogame.vn
Prodhttps://api-xmdt.alogame.vn

两者都已上线。你的 gameId 必须先由 Alogame 运营方开通 XMDT,两个环境才能使用——参见服务器集成。

界面长什么样​

SDK 自带的界面——竖屏时是底部弹出层,横屏时是居中对话框。Android 和 iOS 上完全一致。

XMDT 界面,竖屏XMDT 界面,横屏

为什么会有这个机制​

玩家身份数据(姓名、出生日期、手机号码)绝不能经过你的游戏服务器。Copub 游戏服务器由开发者自行搭建,不在 Alogame 的管控范围内,因此无法审计该服务器记录或保留了什么内容。XMDT 的整体设计原则就是:这些数据只走设备 → Alogame 直连,你的服务器唯一涉及的环节,是一次已签名的调用,并且这次调用本身不包含任何这类数据。

各方分别实现什么​

需要实现能看到玩家 PII 吗?
你的游戏服务器一次已签名的 HTTP 调用,用于生成(mint)session token——其响应也会告诉你该玩家是否已经验证过否
你的游戏客户端(Android/iOS)三个 SDK 调用:init、setGameRole、show否——SDK 自己管理自己的界面
玩家的设备剩下的一切——真正的姓名/出生日期/手机号/OTP 表单——

你的客户端从不直接调用 Alogame 的身份认证 API,你的服务器也从不会看到姓名、出生日期、手机号码或 OTP 验证码。双方始终只处理不透明(opaque)的 token。

整体流程​

最后一步只是一个界面信号,不是证明:被修改过的客户端可以随时自行上报 Success。不要只依赖这一步——在真正需要信任这个答案的那个时刻(例如让玩家进入一场对局之前),再次调用 POST /xmdt/session,并从这次响应中读取 xmdtCompleted。这仍然是同一种经 HMAC 签名的服务器对服务器调用;该字段之所以可信,是因为它直接来自 Alogame,从未经过玩家设备转发。参见服务器集成。

下一步​

  • 服务器集成 —— 你的服务器唯一需要的调用,同时用于生成 session 和检查真实验证状态。
  • Android —— 安装 SDK 与三步调用集成。
  • iOS —— 安装 SDK 与三步调用集成。
  • Unity —— 封装两套原生 SDK 的 UPM 包;无需改动 Gradle 或 Xcode。
  • Cocos Creator —— 纯 TypeScript,完全没有原生代码;无需真机即可在编辑器中运行。

什么时候调用 show()​

完全由你决定——SDK 本身不强制设卡,ekycx 也不知道也不关心你在什么时候调用它。常见做法:

  • 首次登录时,在让新玩家进入游戏之前。
  • 在玩家第一次付费之前。
  • 从设置/账号菜单中触发,作为可选项。

无论你选择哪种方式,你服务器生成的 session 都会告诉 SDK 这个表单是否可以被关闭(xmdtRequired)——参见服务器集成。