📄 正文
无论您是交易所、钱包还是平台方,都可以使用自有应用中的短信、邮件或站内通知渠道完成持卡人的在线支付验证(3DS)。DCS 作为持牌发卡机构,负责与卡组织完成 3DS 协议交互、生成和校验验证码,并将验证所需的信息安全地转发给接入机构。 3DS(3D Secure)是在线支付的安全验证协议,会在交易过程中对持卡人进行额外身份核验,以降低盗刷风险。在合作伙伴自管模式下,DCS 提供 3 种 3DS 验证方式,接入机构可按自身希望掌控验证流程的程度,选择合适的方式。三种模式速览
采用哪种模式由您的卡 Program 配置决定。配置 3DS 模式:DCS;接入对接:接入机构。如需变更,请联系 DCS 团队。
3DS 转发整体流程
下图为 3DS 验证请求在各方之间转发的整体往返:DCS 收到卡组织的验证请求后转发给接入机构,接入机构(按所选模式)完成验证并原路返回结果,DCS 再以 Webhook 通知挑战状态更新。具体由谁发码、由谁判定,见下方各模式详解。模式一:DCS 直接发送验证码
DCS 直接给持卡人发送短信/邮件验证码并完成校验。这种模式下接入机构无需做任何额外工作,DCS 自动处理验证码的生成、发送与核验,不会下发 3DS Webhook。 适合:尚未自建消息通道、希望最快上线的接入机构。模式二:接入机构发送验证码(OTP_DELEGATE)
由接入机构用自己的渠道把验证码发给持卡人,DCS 负责校验。这种模式下,接入机构需提供 Webhook 接收 DCS 推送的 OTP,解密后转发给用户。Webhook 字段(3DS 挑战通知)
3DS 相关 Webhook 的类型为AUTHORISATION_3DS_CHALLENGE,通过 flowsType 区分模式。模式二下 flowsType=OTP_DELEGATE。
Webhook 的整体投递、外层包裹与签名校验,请见 Webhook 事件与数据结构。
解密 OTP(接入机构)
otpPasscode、phoneNumber、email 使用接入机构的 secretKey,以 AES-GCM 模式加密;Webhook 中随附 iv。接入机构收到后用 secretKey + iv 解密。
- 算法:AES-128-GCM(NoPadding)
- 密钥:接入机构的
secretKey,Base64 编码 - IV:Webhook 的
iv字段,Base64 编码,12 字节 - 认证标签(Auth Tag):128 位,附在密文末尾
- 密文格式:Base64 编码(解码后为
ciphertext + authTag)
模式二中校验仍由 DCS 完成:接入机构只负责把解密后的验证码发送给用户,无需回传验证结果;最终结果通过 status=APPROVED/REJECTED 的 Webhook 通知。
模式三:引导用户到接入机构验证(OOB)
OOB(Out-Of-Band,带外认证)模式下,接入机构通过自有应用或其他渠道引导持卡人完成认证(如生物识别、应用内确认),由接入机构判定是否通过,再将结果返回 DCS。此模式下 Webhook 的flowsType=OOB、challengeMethodType=DELEGATE_SCA_V1,且不会发送 otpPasscode / phoneNumber / email / iv。
回传认证结果(接入机构)
接入机构判定完成后,调用POST /open-api/3ds-challenge/v1/authenticate 把结果回传给 DCS。
最小请求:
响应: 所有
/open-api/ 接口共用统一响应结构 { code, message, messageDetail, data }。成功时 data 回显挑战当前状态:
响应结构说明:业务成败请以code为准(如SYS_SUCCESS;错误码说明见授权拒绝与错误码);message为简要说明;messageDetail是可选的展示对象(含message/title/type/icon/action/linkTitle/linkUrl),仅供前端引导,不应作为判断成败的依据。
接入要点
- Content-Type:所有
/open-api/请求请显式设置Content-Type: application/json。 - 鉴权:调用
/open-api/3ds-challenge/v1/authenticate与接收 Webhook 的签名校验,遵循 鉴权指南。 - Webhook 接口:模式二、模式三都要求接入机构预先配置可接收
AUTHORISATION_3DS_CHALLENGE的 Webhook 地址(由接入机构提供给 DCS)。 - 模式三回传时限:必须在厂商下发的
expiryTime前回传;逾期挑战置为REJECTED。 - OTP 失败处理:模式二同步等待接入机构 Webhook 最多 7 秒。超时、返回失败、解密失败或发送失败时,不会重发,也不会改由 DCS 代发,当前挑战直接置为
REJECTED。接入机构需在 7 秒内完成解密和发送,并同步返回phoneNumberTail/email。

