Skip to main content

授权:把决策权交回您手里

无论您是想完全自管用户额度、还是按自己的风控规则逐笔放行交易,授权转发都让您在持卡人每一次刷卡的瞬间,亲自决定批准还是拒绝。DCS 是持牌发卡机构、自有 BIN,我们负责把卡组织的实时授权请求安全地转发给您,资金的冻结与解冻由我们代为执行——额度由接入机构掌握,授权由接入机构决策 授权(Authorisation)发生在持卡人发起消费的那一刻,是一次实时决策,不产生实际资金扣除。真正的资金扣减发生在后续的清算环节(详见交易流水授权与清算)。

一笔授权的处理流程

一笔授权的处理流程时序图一笔授权的处理流程时序图
在合作伙伴自管模式下,决策权始终在接入机构;DCS 的转发通道额外做了 RSA 双向加密 + 加签,业务字段不以明文出现在请求体中。

交易方向(direction)

退款有原授权、撤销等 INCOMING 授权同样经 authUrl 转发。DCS 建议接入机构对这类 INCOMING 授权直接返回 00(放行);当 INCOMING 的解冻金额大于已冻结金额等异常场景时,接入机构可以拒绝该授权。

授权类型(authType)

authType 标识一条授权记录的产生方式,帮助接入机构区分「实时授权」与「系统补建/释放」。 NORMAL 类型授权经 authUrl 转发给接入机构实时决策;FORCE_AUTH / EXPIRED_RELEASE / STATUS_DIFF_RELEASE 为系统侧授权,不经 authUrl,只通过 AUTHORISATION_RESULT Webhook 推送回执。 该字段同时出现在 Webhook 授权请求每日授权报告中(详见授权报告)。
授权转发通知中的 authType 与沙盒模拟接口 APISimulationAuthRequest.authTypeEXPEND/REFUND/REVERSAL)是两套独立枚举,分别用于真实授权回调与沙盒触发,请勿混用。

授权交易类型(transactionType)

transactionType 标识持卡人这笔交易的性质,便于授权决策与对账分类。

授权结果(responseCode)—— 接入机构的回应

接入机构完成决策后,把结果通过 responseCode 返回给 DCS:
授权转发通知的应答字段为 responseCode;事后记录规则固定为 00 → approveFlag=A01/11/21 及其他非 00 值 → approveFlag=DapproveFlag 用于事后 Webhook 与每日授权报告。生产环境授权同步应答窗口统一为 2.5 秒,接入机构必须在该窗口内同步返回;超时按 responseCode=21 / DAPI_AUTH_ENTERPRISE_TIMEOUT_REJECT 处理,实时授权不会重试。

授权转发通知:安全交互规范(谁做什么)

授权请求并非普通 Webhook,而是一条经过 RSA 双向加密 + 加签的安全通道。所有业务字段都封装在 encryptedData 里,不以明文出现。

前置条件(接入机构)

  • 已创建企业(Enterprise),并配置好 authUrlexternalPublicKey(您的 RSA 公钥)。详见前置准备
  • 已设置授权转发通知的 IP 白名单
  • 已成功申请卡
沙盒环境的 DCS RSA 公钥可在鉴权指南页直接复制;生产环境公钥请联系 DCS 团队领取。

完整流程

签名算法:RSA-SHA256(SHA256withRSA;密钥长度 2048 位;加解密分段(加密块 245 字节 / 解密块 256 字节)。完整 Java 示例代码见鉴权指南页。
RSA 双向加密与加签流程RSA 双向加密与加签流程
通知 URL 模板:https://{domain}/xxx/v1/auth-notification(DCS → 接入机构 authUrl 的 POST 请求)。

请求与响应结构

请求头

请求体

时区提示:授权通知与对账文件中的时间字段均带 +08:00 偏移(UTC+8);例外是卡限额查询接口的日期字段为 UTC。存储时请显式记录时区,避免跨接口比对错位。

encryptedData 解密后业务字段

cardAcceptorNameLocation

该字段为固定 40 字符的定长文本,各段内容左对齐、不足右补空格。
Visa
Mastercard

响应体

encryptData 解密后结构:
请求侧加密字段为 data.encryptedData(位于 data 对象内),响应侧加密字段为 encryptData(顶层、命名不同),两者命名不一致,集成时请按各自结构取值,勿混用。

授权请求体最小示例

响应(接入机构 → DCS):
该授权转发通知是 DCS → 接入机构 authUrl独立安全通道,不使用 /open-api/ 业务接口的统一响应结构 {code, message, messageDetail, data}。该响应结构用于您主动发起的业务接口,详见鉴权指南

跟一笔授权走一遍

以一笔真实形态的消费为例,把上述字段与流程串起来:您的持卡人持一张 USD 卡,在东京一家超市刷卡消费 3,000 JPY。 三个值得注意的细节:
  • 两组金额字段不是重复acquirerAmount/acquirerCurrency(3,000 JPY)是持卡人在商户侧的原始消费,amount/currency(20.45 USD)是按卡组织汇率折算后的结算口径——冻结、清算与对账都以结算口径为准。
  • 您只做决策,不动资金:返回 00 之后的冻结由 DCS 在卡组织侧完成;若您返回 01(资金不足)或 11(交易不允许),流程在第三行终止,持卡人侧显示交易失败,不产生任何资金动作。
  • 决策窗口是 2.5 秒:超时按 21(无响应)拒绝处理,实时授权不会重试,请把验签、解密与额度校验的整链路耗时控制在窗口内。
这笔交易的资金生命周期到这里只完成了一半——冻结中的 20.45 USD 如何在清算日真正扣款、清算金额与冻结不一致时怎么办,见授权与清算全场景

与授权相关联的模块

  • 企业主体(Enterprise):授权决策由接入机构完成;资金冻结/解冻关联企业保证金账户或其维护的持卡人额度。
  • 卡片(Card):授权请求绑定 cardId,卡片激活/冻结/注销状态直接影响授权有效性;冻结卡片会触发授权释放。
  • Outstanding(账单):连接授权与清算的桥梁——授权阶段累加冻结金额,清算阶段扣减至零。详见授权与清算
  • 交易流水(Transaction):授权是交易的前置环节,一笔流水可关联多个 authId,仅授权通过的交易才生成资金流转记录。

下一步

  • 想先在沙盒里跑通一笔授权而不接卡组织?用沙盒·模拟交易POST /open-api/simulation/v1/fund-auth 触发一笔授权(请求参数 cardId/authType/amount/currency,返回 approved + errorCode)。
  • 想了解授权之后资金如何清算?见授权与清算
  • 想配置 Webhook 与各类事件?见Webhook·配置
  • 拒绝原因与错误码对照,见授权拒绝与错误码