📄 正文
无论您是交易所、钱包还是平台方,只要拿到 DCS 交付的一对密钥,就可以用一套统一的签名规则调用所有/open-api/ 接口——本页帮您把鉴权一次配通。作为持牌、自有 BIN 的发卡机构,DCS 对每一次接口调用都要求可验证的来源与防重放保护。
本页覆盖三件事:调用接口的 HMAC 签名、生产环境密钥的安全提取、以及授权通知所用的 RSA 公钥生成。
1. 密钥与请求头
您会从 DCS 拿到什么
沙盒环境的apiKey/secretKey请联系 DCS 团队获取;生产环境必须走 安全提取流程。
每个请求必带的头
接入机构对/open-api/ 的每次调用,都需在 HTTP 头中携带(请求体为 JSON 时还需带 Content-Type: application/json,官网示例未列出,但缺失会导致 415 错误):
2. 接口签名(HMAC-SHA256)
签名规则
使用 HmacSHA256 算法,以secretKey 为密钥,对拼接串签名:
签名算法固定为 HmacSHA256,请一律使用该算法。
防重放(谁做:DCS 校验 / 接入机构生成)
- TIMESTAMP:DCS 默认只接受 5 秒内 的请求;超时请求一律拒绝。接入机构请确保本地时钟与 UTC 同步。
- NONCE:每次请求生成一个
[10000, 99999]的随机数,请勿复用。接入机构仍需为业务写操作设置幂等键,并避免在 5 秒窗口内重放完全相同的请求。
签名实现示例
JavaScript(Postman Pre-request Script)完整请求示例(GET)
此例中payload = cardOrderRef=14(GET 的查询参数)。验证您的实现时,先用 DCS 提供的同一组apiKey/timestamp/nonce/payload复算出相同的X-DAPI-SIGN,再上线。
统一响应结构
所有/open-api/ 接口返回统一结构:
判断成功请以code == "SYS_SUCCESS"为准;失败时code为具体错误码(见错误码页)。
3. 生产环境密钥的安全提取
为避免生产环境的apiKey/secretKey 在交付途中泄露,生产密钥不直接发给您,而是走一次性安全提取流程。
沙盒环境无需此流程,直接联系 DCS 团队获取即可。
流程(谁做)
- 接入机构提供:一个安全邮箱地址 + 一个用于提取的请求 IP。
- 邮箱用于接收提取指引;该 IP 会被加入「提取密钥」白名单。
- DCS 发送:安全邮箱收到一封邮件,内含一个仅一次有效的临时安全链接。
- 接入机构提取:把
extractUrl与extractSecretKey拼接后,在指定 IP 的机器上执行,即可领取apiKey/secretKey。
邮件中的字段
成功响应
4. RSA 公钥(授权通知专用)
授权转发通知(DCS → 接入机构auth_url)对敏感数据(如交易金额、币种)采用 RSA-2048 双向签名 + 加密,与上文调用接口用的 HMAC 是两套独立机制。授权通知没有额外的 AES/IV 层:业务字段整体以 RSA 分段加密,签名算法为 SHA256withRSA。
- HMAC:接入机构调用
/open-api/接口时使用(本页第 1–2 节)。 - RSA:DCS 向接入机构推送授权通知时使用,保护授权流程上的敏感字段。
external_public_key)交给 DCS,私钥自己保管。
生成方式(谁做:接入机构)
external_public_key,连同 auth_url 一并提供给 DCS。
DCS RSA 公钥(谁给:DCS)
接入机构验证 DCS 通知签名、加密返回数据时,使用 DCS 的 RSA 公钥。- 沙盒环境:
- 生产环境:请联系 DCS 团队获取。
加解密与签名 Java 示例
签名算法为SHA256withRSA,密钥 2048 位,加解密按块分段(加密块 245 字节 / 解密块 256 字节):
授权通知的完整加解密与验签细节见 授权转发与加密。
5. IP 白名单(三类,缺一不可)
DCS 对所有交互均设白名单。接入机构需向 DCS 提供沙盒与生产各自的静态出口 IP,分别用于以下三个方向:沙盒与生产环境分别配置,请勿混用。生产密钥的「提取 IP」(第 3 节)与「接口调用 IP」可以不同,请分别向 DCS 说明用途。

