深色模式
天星银行 Airstar
本页说明
讲什么:天星银行 BST 渠道侧 REST API 规范 + moomoo 侧适配逻辑 适合谁:PM 了解对接细节 / 开发定位代码 / 运营理解银行特性 前置阅读:内银系 BST 总览、银行能力矩阵预计阅读:10 分钟 负责人:出入金产品团队
核心要点:天星是唯一使用 REST API(非 Socket)的 BST 银行,轮询模式决定了响应时间为分钟级而非秒级,但对接复杂度低于招行/民生。
能力总览
| 能力 | 支持情况 | 协议/通道 | 核心服务 |
|---|---|---|---|
| BST 银证入金 | ✅ | REST API(RSA-OAEP 加密) | airstar_service (Go) |
| BST 银证出金 | ✅ | auto_bs 银证自动出金 | airstar_service (Go) |
| Mandate 授权 | ✅ | REST API | airstar_service (Go) |
| 线上开户 | ✅ | 三合一流程(开户+授权+首笔入金) | airstar_service (Go) |
| eDDA 授权 | ❌ | — | — |
| eDDI 代扣 | ❌ | — | — |
| FPS | ❌ | — | — |
天星银行是 moomoo 接入的唯一虚拟银行 BST 通道——与招行/民生的传统二进制专线不同,天星采用现代 REST API 架构,支持 moomoo 端主动发起所有操作,且是唯一全面支持 CNH 的 BST 银行。
核心标识
| 标识 | 值 | 说明 |
|---|---|---|
| IMPORT_BANK_ID | 55 | 系统内银行唯一编号 |
| TransType | 304 (ASB_BST) | 天星银证转账专用类型 |
| AUTO_SETTING_ID | 3 | 自动出金配置 ID |
| 服务名 | airstar_service | 核心银证服务 |
| Proto 文件 | airstar_service/proto/airstar_service.proto | 接口定义 |
| 代码语言 | Go | 与招行/民生的 Python 不同 |
渠道接口概览
| 维度 | 说明 |
|---|---|
| 协议类型 | HTTP REST API |
| 加密方式 | RSA-OAEP(SHA1, 200字节分块, Base64 编码) |
| 数据格式 | JSON(加密后: {"messageBody": "base64..."} ) |
| 通信模式 | HTTP 请求-响应 + 轮询(polling) |
| 编码 | UTF-8 |
| 认证方式 | RSA 密钥对(非证书) |
为什么天星用 REST 而非 Socket?
天星是香港持牌虚拟银行(2019 年获牌),技术架构全面云原生。传统银行(招行/民生)因历史原因使用 Socket 专线通信,天星则直接提供标准 REST API——对开发更友好,但需要 moomoo 侧自行实现轮询机制来获取异步结果。
渠道侧接口详情 — 11 个银行侧 REST API + 14 个内部 RPC 方法
天星提供 11 个银行侧 REST API + 14 个内部 RPC 方法,覆盖授权、入金、出金全生命周期:
授权类接口(4 个)
| API 名称 | Endpoint | 方向 | 用途 |
|---|---|---|---|
| CreateAuth | /authorization/apply | moomoo → 银行 | 创建 eDDA 授权(Mandate) |
| QueryAuth | /authorization/status | moomoo → 银行 | 查询授权状态 |
| CancelAuth | /authorization/cancel | moomoo → 银行 | 取消授权 |
| NotifyAuthResult | /authorization/result | moomoo → 银行 | 通知授权审批结果 |
入金类接口(2 个)
| API 名称 | Endpoint | 方向 | 用途 |
|---|---|---|---|
| CreateTransfer(direction=deposit) | /transfer/init | moomoo → 银行 | 发起入金请求 |
| QueryTransfer(direction=deposit) | /transfer/status | moomoo → 银行 | 查询入金状态(轮询用) |
统一 Transfer 接口
天星 API 使用统一的 Transfer 接口,通过 transfer_direction 字段区分入金(deposit)和出金(withdraw),而非独立的入金/出金端点。
出金/退款类接口(2 个)
| API 名称 | Endpoint | 方向 | 用途 |
|---|---|---|---|
| CreateWithdrawRefund | /transfer/withdraw/reversal | moomoo → 银行 | 创建出金退款 |
| QueryRefund | /transfer/withdraw/reversal/status | moomoo → 银行 | 查询退款状态 |
账户类接口(2 个)
| API 名称 | Endpoint | 方向 | 用途 |
|---|---|---|---|
| QuerySecAccount | /account/info | moomoo → 银行 | 查询证券账户信息(余额等) |
| NotifyDepositApproval | /transfer/approval | moomoo → 银行 | 通知入金审批结果 |
所有接口均由 moomoo 主动调用
与民生银行(银行主动推送数据给 moomoo)不同,天星的银行侧接口全部由 moomoo 端主动发起调用。这意味着 moomoo 侧拥有完全的流程控制权,但也需要承担轮询、超时处理等额外逻辑。
核心接口字段详情
CreateAuthReq — 创建授权请求
用户在 moomoo App 端发起 Mandate 授权时的请求参数:
| 字段 | 类型 | 必填 | 描述 |
|---|---|---|---|
| request_id | string(16-50) | ✅ | 唯一请求 ID。幂等性保证,不可重复 |
| cid | uint64 | ✅ | 客户 ID。moomoo UID |
| bank_card_number | string(12) | ✅ | 银行卡号。天星银行卡固定 12 位 |
| id_card_type | string | ✅ | 证件类型。取值 "HKID" 或 "CNID" |
| id_card_number | string(1-35) | ✅ | 证件号码。身份证/回乡证号 |
| en_name | string(1-127) | ✅ | 英文姓名。与银行预留姓名一致 |
| phone_number | string | ✅ | 手机号。格式 "+86-1XXX" 或 "+852-XXX" |
银行卡号固定 12 位
天星银行卡号统一为 12 位数字。与传统银行的 16~19 位卡号不同,开发时需注意长度校验规则。
CreateAuthRsp — 授权响应
| 字段 | 类型 | 描述 |
|---|---|---|
| code | uint32 | 200 = 成功,其他 = 失败 |
| total | uint32 | 关联的 UID 总数 |
| securities_client_nos | array[uint64] | UID 列表 |
注意响应方向
注意:此处 CreateAuthRsp 为银行发起授权时 moomoo 侧的响应字段,非 moomoo 发起授权后的返回。moomoo 主动创建授权的响应为空(无额外字段)。
CreateDepositReq — 发起入金请求
| 字段 | 类型 | 必填 | 描述 |
|---|---|---|---|
| request_id | string(16-50) | ✅ | 请求 ID。幂等性保证 |
| cid | uint64 | ✅ | 客户 ID。moomoo UID |
| market_id | uint32 | ✅ | 市场 ID。取值 1=HK, 2=US |
| account_id | uint32 | ✅ | 账户 ID。证券账户 ID |
| currency | string | ✅ | 币种。取值 HKD / USD / CNH |
| amount | string | ✅ | 金额。字符串格式,如 "50000.00" |
| bank_card_number | string(12) | ✅ | 银行卡号。12 位天星卡号 |
| en_name | string(1-127) | ✅ | 英文姓名。与 Mandate 授权时一致 |
QueryDepositRsp — 入金查询响应
轮询入金状态时返回的完整信息:
| 字段 | 类型 | 描述 |
|---|---|---|
| deposit_id | uint64 | 入金任务 ID(系统内唯一) |
| request_id | string | 请求 ID(与 CreateDepositReq 对应) |
| cid | uint64 | 客户 ID |
| currency | string | 币种 |
| amount | string | 金额 |
| bank_card_number | string | 银行卡号 |
| en_name | string | 客户姓名 |
| ref_id | string | moomoo 侧参考号 |
| bank_ref_id | string | 银行侧参考号(对账关键) |
| status | string | 入金状态(见下表) |
| fail_code | string | 失败代码(仅失败时有值) |
| fail_reason | string | 失败原因描述 |
| source | string | 来源:1=moomoo 端,2=银行端 |
入金状态值
| 状态 | 含义 | 说明 | 是否终态 |
|---|---|---|---|
| new | 新建 | 刚发起入金请求 | ❌ |
| pending | 处理中 | 银行正在处理 | ❌ |
| success | 成功 | 入金完成,资金已到账 | ✅ |
| failed | 失败 | 银行拒绝(余额不足/限额等) | ✅ |
| refunded | 已退款 | 天星独有——入金成功后银行退回 | ✅ |
QuerySecuritiesAccountRsp — 证券账户查询响应
查询用户在天星授权下的完整证券账户信息:
| 字段 | 类型 | 描述 |
|---|---|---|
| code | uint32 | 200 = 成功 |
| status | string | 授权状态(Mandate 状态) |
| deposit | object | 入金限制信息 |
| withdraw | object | 出金限制信息 |
| securities_accounts | array | 证券账户列表 |
| bankcard_info | object | 银行卡信息 |
SecuritiesAccount — 证券账户详情
| 字段 | 类型 | 描述 |
|---|---|---|
| market_id | uint32 | 市场 ID(1=HK, 2=US) |
| account_number | string | 证券账号(16 位) |
| capital_infos | array[CapitalInfo] | 各币种资金信息 |
| account_name_en | string | 英文账户名 |
| account_name_cn | string | 中文账户名(简体) |
| account_name_hk | string | 繁体账户名 |
CapitalInfo — 资金信息
| 字段 | 类型 | 描述 | 单位 |
|---|---|---|---|
| currency | string | 币种 | HKD/USD/CNH |
| cash_withdrawal_amount | uint64 | 可提取现金 | 分(需除以 100) |
| max_withdrawal_amount | uint64 | 最大可提取金额 | 分(需除以 100) |
金额单位为"分"
CapitalInfo 中的金额字段单位是分(cents),不是元。例如 cash_withdrawal_amount = 5000000 表示 50,000.00 元。开发和运营在使用时需注意单位转换,避免金额错误。
与招行/民生的关键差异
| 维度 | 招行/民生 | 天星 |
|---|---|---|
| 协议 | SM2 加密 Socket / Protobuf | REST API + RSA-OAEP |
| 通信模式 | Socket 双向链路(银行推送) | HTTP 请求-响应 + 轮询 |
| CNH 支持 | 受限 / 完全不支持 | 全面支持 HKD + USD + CNH |
| 处理时段 | 08:40 ~ 15:59 | 08:30 ~ 15:59(提前 10 分钟) |
| 入金结果获取 | Socket 实时推送 | 最多 60 次轮询 |
| 出金结果获取 | Socket 实时推送 | 最多 10 次轮询 + 2h 兜底同步 |
| 退款机制 | 无 | 有 REFUNDED 状态(需冲正) |
| 授权模型 | 银证签约(2 状态) | Mandate 授权(6 状态) |
| 线上开户 | 不支持 | 支持三合一流程 |
| 发起方 | 仅 moomoo / 仅银行(视接口) | moomoo + 银行双向 |
| 代码语言 | Python | Go |
| 接口数量 | 9 个 RPC | 11 个银行侧 REST API + 14 个内部 RPC 方法 |
| 数据格式 | 二进制 / Protobuf | JSON |
一句话总结:招行/民生是银行主导的专线通信(推送模式),天星是 moomoo 主导的 API 调用(轮询模式)。
RSA-OAEP 加密方案
加密参数
| 参数 | 值 | 说明 |
|---|---|---|
| 算法 | RSA-OAEP | 非对称加密 + OAEP 填充 |
| 哈希函数 | SHA1 | OAEP 填充使用 SHA1 |
| 分块大小 | 200 字节/块 | 明文超过 200 字节需分块加密 |
| 编码方式 | Base64 | 加密后 Base64 编码 |
加密流程
请求/响应格式
加密后的请求体:
json
{
"messageBody": "dGhpcyBpcyBhIGJhc2U2NCBlbmNvZGVkIGVuY3J5cHRlZCBtZXNzYWdl..."
}解密流程(收到响应后):
- 从
messageBody取出 Base64 字符串 - Base64 解码得到密文
- 按块 RSA-OAEP 解密
- 拼接明文 → 解析 JSON
与民生 SM2 的安全性对比
| 维度 | 民生 SM2 | 天星 RSA-OAEP |
|---|---|---|
| 算法类型 | 国密椭圆曲线 | RSA 非对称 |
| 密钥长度 | 256 位 | 2048+ 位 |
| 合规要求 | 中国境内银行必须 | 国际通用 |
| 分块处理 | 不需要 | 200 字节/块 |
| 性能 | 更快 | 较慢(大密钥) |
| 天星作为香港虚拟银行,不受中国国密算法合规要求约束,因此使用国际通用的 RSA 方案。 |
轮询策略
天星不支持 Socket 推送,所有异步操作结果都通过**轮询(polling)**获取。这是天星接入中最需要关注的技术细节。
入金轮询
| Job 名称 | 职责 | 轮询上限 | 后续动作 |
|---|---|---|---|
| AsbBstCreateJob | 发送入金请求到天星 | — | 创建成功后进入轮询 |
| AsbBstCreateResultJob | 轮询入金结果 | 最多 60 次 | 成功→入账 / 失败→通知 / 超时→人工 |
| AsbBstDepositJob | 确认成功后执行入账 | — | 创建入金流水、更新余额 |
出金轮询
| Job 名称 | 职责 | 轮询上限 | 后续动作 |
|---|---|---|---|
| AsbBstTransfer | 出金指令 + 结果轮询 | 最多 10 次 | 成功/失败→处理 / 超时→兜底 |
| SyncAsbBstWithdraw | 超时后的兜底同步 | 2 小时窗口 | 窗口内有结果→处理 / 超时→人工 |
轮询超时 ≠ 交易失败
轮询超时只意味着 moomoo 侧未在预期时间内获得银行侧结果。交易可能仍在银行侧处理中。运营遇到此类情况需主动联系天星确认交易状态,切勿直接判定为失败。
限额体系
三层限额配置
天星采用与招行/民生相同的三层限额体系,但具体数值不同:
| 币种 | 单笔上限(max) | 累计报警(alarm) | 每日熔断(stop) |
|---|---|---|---|
| HKD | 3,000,000 | 40,000,000 | 15,000,000 |
| USD | 500,000 | 10,000,000 | 3,000,000 |
| CNH | 0(无限制) | 0(不报警) | 0(不熔断) |
CNH 无限额
天星的 CNH 限额全部设为 0,表示不设限制。这与 CNH 作为天星独家优势的产品定位一致——鼓励人民币出入金。但实际操作中仍受银行侧自有限额约束。
熔断机制
熔断触发条件:当日累计金额 - 出金金额 < stop_amount
| 熔断阶段 | 系统动作 |
|---|---|
| 触发 | 自动关闭当日该币种的自动出金 |
| 告警 | 飞书消息通知运营团队 |
| 恢复 | 运营确认风险可控后手动恢复,或次日自动重置 |
线上开户最低入金
| 币种 | 最低入金 | 说明 |
|---|---|---|
| HKD | 10,000 | 确保新客有足够交易资金 |
| USD | 1,500 | — |
| CNH | 10,000 | — |
普通入金无最低金额要求,此限额仅针对线上开户三合一流程的首笔入金。
REFUNDED 退款状态(天星独有)
REFUNDED 是天星区别于所有其他 BST 银行的独特状态——入金成功到账后银行又发起退款。
REFUNDED vs FAILED 对比
| 维度 | FAILED(失败) | REFUNDED(退款) |
|---|---|---|
| 含义 | 银行拒绝入金请求 | 入金已成功到账后银行退回 |
| 资金 | 从未到达证券账户 | 已到账后被退回 |
| 余额影响 | 无(从未增加) | 已增加后需扣回 |
| 冲正操作 | 不需要 | 必须执行(自动冲正) |
| 用户体验 | 入金失败提示 | 入金成功后又收到退款通知 |
| 普遍性 | 所有银行都有 | 仅天星 |
冲正流程
REFUNDED 触发场景
| 场景 | 说明 |
|---|---|
| 银行反欺诈 | 入金后银行风控系统检测到异常交易 |
| 合规要求 | 监管部门要求退回特定交易 |
| 用户投诉 | 用户在银行端投诉未授权交易 |
| 系统错误 | 银行侧重复入账后修正 |
冲正时余额不足
如果用户在入金成功后已将资金用于交易(买入股票等),冲正时可能出现余额不足无法全额扣回的情况。此时需要运营人工介入处理——这是 REFUNDED 状态最复杂的异常场景。
安全检查(天星独有)
天星银行在授权和入金流程中加入了风险等级评估,这是传统 BST 银行没有的机制:
风险等级处理
| 风险等级 | 等级值 | 系统动作 | 说明 |
|---|---|---|---|
| Level 0-2 | APPROVE | 正常通过 | 低风险交易,自动放行 |
| Level 3 | MANUAL | 转人工审核 | 中风险,需运营人工审核后决定 |
| Level 4 | REJECT | 直接拒绝 | 高风险,自动拒绝交易 |
| VERIFY | — | 需要额外验证 | 要求用户完成额外身份验证 |
风险等级来源
风险等级由天星银行侧返回,moomoo 侧据此决定处理方式。银行侧的风控模型考虑以下因素:
- 交易金额是否异常
- 交易频率是否异常
- 客户历史行为
- 设备/IP 风险
- 反洗钱(AML)规则
与 moomoo 侧风控的协作
双重风控意味着:一笔交易可能通过了 moomoo 侧的风控(不在黑名单、不超限额),但被天星侧的风控拦截(Level 3/4)。运营在排查入金/出金失败时需同时检查两侧的风控日志。
入金流程
两种入金来源
| 来源 | source 值 | 说明 |
|---|---|---|
| moomoo 端发起 | 1 | 用户在 moomoo App 点击入金 |
| 银行端发起 | 2 | 用户在天星银行 App 发起转账到证券账户 |
银行端发起(source=2)是天星独有——招行/民生的 BST 入金只能从 moomoo 端发起。
完整入金流程
入金时段
| 时段 | 时间范围 | 说明 |
|---|---|---|
| 正常交易时段 | 08:30 ~ 15:59 | 比招行/民生提前 10 分钟开始 |
| 非交易时段 | 16:00 ~ 次日 08:29 | 不接受新请求 |
出金流程
完整出金流程
auto_bs 自动出金条件
天星出金走 auto_bs 自动出金通道,AUTO_SETTING_ID = 3:
| 条件 | 说明 |
|---|---|
| Mandate 状态 = OPEN | 授权关系有效 |
| 账户状态正常 | 非冻结、非销户 |
| 不在出金黑名单 | 黑名单检查通过 |
| 单笔不超限 | HKD ≤ 300万 / USD ≤ 50万 |
| 每日不熔断 | 当日累计未触发 stop 阈值 |
| 交易时段内 | 08:30 ~ 15:59 |
| 风险等级 ≤ Level 2 | 天星侧风控通过 |
不满足任一条件则转人工审批。注意第 7 条(风险等级)是天星独有的自动出金前置条件。
线上开户(天星独有)
天星支持三合一线上开户——新客户在 moomoo App 内一站式完成:
三合一 vs 传统流程
| 步骤 | 传统流程(招行/民生) | 三合一(天星) |
|---|---|---|
| 开户 | moomoo App 完成 | moomoo App 完成 |
| 签约 | 去银行柜台/网银签约 | moomoo App 内完成 Mandate |
| 入金 | 返回 moomoo App 入金 | 紧接着完成首笔入金 |
| 总耗时 | 1~3 天(含银行签约) | 数分钟 |
首笔入金限额
| 币种 | 最低入金 | 普通入金最低 | 倍数 |
|---|---|---|---|
| HKD | 10,000 | 无要求 | — |
| USD | 1,500 | 无要求 | — |
| CNH | 10,000 | 无要求 | — |
首笔入金设置较高最低限额的目的是确保新客户有足够资金进行交易,避免"注册但不交易"的无效用户。
异常场景手册
授权异常(5 类)
| # | 异常 | 症状 | 原因 | 处理 |
|---|---|---|---|---|
| 1 | 授权停在 PROCESSING | Mandate 长时间无状态变更 | 银行处理延迟 | 查询 QueryAuth 确认状态 |
| 2 | 授权 FAIL | CreateAuth 返回失败 | 姓名/证件不匹配 | 核实用户信息,引导重试 |
| 3 | 授权 CANCEL | 用户在银行端取消 | 用户主动操作 | 确认用户意图 |
| 4 | 部分市场映射失败 | 3 市场中部分绑定异常 | 市场配置问题 | 手动补充绑定关系 |
| 5 | CancelAuth 失败 | 取消授权请求被拒绝 | Mandate 非 OPEN 状态 | 检查当前状态后重试 |
入金异常(7 类)
| # | 异常 | 症状 | 原因 | 处理 |
|---|---|---|---|---|
| 1 | 入金创建失败 | CreateDeposit 返回错误 | 参数异常/Mandate 非 OPEN | 检查参数和 Mandate 状态 |
| 2 | 轮询 60 次超时 | status 始终为 pending | 银行处理异常 | 人工联系天星确认 |
| 3 | 入金失败 | status=failed | 银行拒绝 | 查看 fail_code/fail_reason |
| 4 | 入金退款 | status=refunded | 银行发起退款 | 执行冲正,通知用户 |
| 5 | 冲正余额不足 | REFUNDED 后扣回失败 | 用户已消费入金资金 | 运营人工介入处理 |
| 6 | 银行端入金未同步 | source=2 但 moomoo 未收到 | API 调用丢失 | 手动查询天星 API 补录 |
| 7 | 重复入金 | 同一笔创建多条记录 | request_id 去重失败 | 通过 request_id/bank_ref_id 排查 |
出金异常(5 类)
| # | 异常 | 症状 | 原因 | 处理 |
|---|---|---|---|---|
| 1 | 出金指令失败 | AsbBstTransfer 报错 | 参数异常/银行拒绝 | 检查错误码,释放冻结 |
| 2 | 10 次轮询超时 | AsbBstTransfer 用尽 | 银行处理慢 | 进入 SyncAsbBstWithdraw |
| 3 | 2h 兜底超时 | SyncAsbBstWithdraw 窗口结束 | 银行处理异常 | 人工联系天星确认 |
| 4 | 冻结未释放 | 出金失败但资金仍冻结 | 释放流程异常 | 手动释放冻结资金 |
| 5 | 银行端出金未同步 | 用户从天星 App 发起出金 | 回调丢失 | 手动查询 API 执行扣款 |
常见客诉 Top 3
| # | 用户反馈 | 原因 | 客服话术 |
|---|---|---|---|
| 1 | "余额不足无法入金" | 140630005 银行余额不够 | "请确认天星银行账户余额充足后重试" |
| 2 | "授权一直处理中" | Mandate 停在 PendingAuthorise | "银行正在审核您的授权申请,通常 1-2 个工作日内完成" |
| 3 | "入金成功后资金被退回" | REFUNDED 状态 | "银行因合规原因退回了本次入金,请联系客服了解详情" |
监控与告警
天星 13 项关键告警
| # | 告警项 | 触发条件 | 严重度 | 处理方式 |
|---|---|---|---|---|
| 1 | 授权创建超时 | Mandate 在 PROCESSING 超过阈值 | 高 | 检查天星 API 连通性 |
| 2 | 授权失败率突增 | 单位时间内 FAIL 数量超限 | 高 | 排查银行侧异常 |
| 3 | 入金创建失败 | AsbBstCreateJob 连续失败 | 高 | 检查请求参数和 API 状态 |
| 4 | 入金轮询超时 | 60 次轮询用尽 | 高 | 人工联系天星确认 |
| 5 | 入金退款(REFUNDED) | 收到 REFUNDED 状态 | 严重 | 立即冲正,通知用户和运营 |
| 6 | 出金轮询超时 | 10 次轮询用尽 | 高 | 进入 SyncAsbBstWithdraw |
| 7 | 出金兜底超时 | 2h 窗口结束仍 pending | 严重 | 人工确认银行侧状态 |
| 8 | 冻结未释放 | 出金失败但冻结未回滚 | 严重 | 手动释放冻结 |
| 9 | 每日熔断触发 | 当日累计达到 stop 阈值 | 中 | 运营确认后决定是否恢复 |
| 10 | 累计报警触发 | 累计达到 alarm 阈值 | 中 | 运营关注,评估风险 |
| 11 | 重复交易检测 | request_id 重复 | 高 | 检查去重逻辑 |
| 12 | API 连通性异常 | 天星 API 响应超时或错误率升高 | 严重 | 联系天星银行技术支持 |
| 13 | 银行端发起量异常 | source=2 交易量突增 | 中 | 排查是否为正常业务波动 |
代码位置与服务部署
| 维度 | 说明 |
|---|---|
| 服务名 | airstar_service |
| 代码语言 | Go |
| Proto 文件 | airstar_service/proto/airstar_service.proto |
| 依赖 | RSA 加密库、HTTP 客户端、JSON 序列化 |
关键代码模块
| 模块 | 职责 |
|---|---|
airstar_service/api/ | 11 个银行侧 REST API 的请求/响应处理 |
airstar_service/crypto/ | RSA-OAEP 加解密(200 字节分块) |
airstar_service/job/ | 轮询 Job(CreateResult/Transfer/Sync) |
airstar_service/mandate/ | Mandate 授权状态机 |
airstar_service/deposit/ | 入金逻辑(含 REFUNDED 冲正) |
airstar_service/withdraw/ | 出金逻辑(含熔断检查) |
airstar_service/proto/ | Protobuf 接口定义 |
airstar_service/config/ | 银行连接配置、RSA 密钥、限额参数 |
需求变更指引
| 变更需求 | 改动位置 | 说明 |
|---|---|---|
| 修改限额 | SQL seed + config | HKD/USD/CNH 三层限额 |
| 修改轮询次数 | job/ 中的轮询逻辑 | 调整 60 次/10 次上限 |
| 修改处理时段 | 时段校验逻辑 | 当前 08:30 开始 |
| 新增支持币种 | CreateDepositReq + 限额配置 | 需天星侧同步支持 |
| 修改 RSA 密钥 | config/ + crypto/ | 需与天星协调密钥轮换 |
| 调整风险等级策略 | 安全检查处理逻辑 | Level 3 改为自动拒绝等 |
| 修改冲正逻辑 | deposit/ REFUNDED 处理 | 调整冲正失败的兜底策略 |
| 修改自动出金条件 | auto_bs 配置 + AUTO_SETTING_ID=3 | 参考 出金规则手册 |
| 新增 API 接口 | 天星提供新 API 文档 → 实现对应 handler | 需天星侧先发布接口 |
| 调整告警阈值 | 监控配置 | 根据业务量调整灵敏度 |
读完之后
| 我想... | 去看 |
|---|---|
| 看三家 BST 银行的整体对比 | 内银系 BST 总览 |
| 了解民生的 Protobuf/SRPC 方案 | 民生银行 MS |
| 看出金自动审批条件和三层限额 | 出金规则手册 |
| 查天星错误码(140630xxx / 140670xxx) | 统一错误码中心 |
| 看 BST 任务的运行频率和告警 | 定时任务与监控 |
| 看所有银行的能力对比 | 银行能力矩阵 |
| 了解 SBA 资金编排的冻结-释放机制 | SBA 服务架构 |
这个页面有帮助吗?