POST/cib/sendLoginVerifyCode管理后台

短信-发送验证码

开放与对接 / 工商银行 CIB· CibController#sendVerifyCode

基本信息

  • 接口状态开放/回调用(服务端) 置信度 中 免鉴权
  • 接口URLPOSThttps://dscp-dev.hn12301.net/manage-api/cib/sendLoginVerifyCode
  • 请求方式POST
  • Content-Typeapplication/json
  • 暴露渠道管理后台 前缀 /manage-api
  • 名称来源源码注释
  • 调用方本次扫描未发现调用 不等于可以下线
  • 需求上下文核销员
  • 维护人 / 最后改动liuhao 2025-03-18 最近提交:核销员
  • 读写数据表openapi_channel_business、system_user 反查该表全部接口 →
  • 控制器com.jxxx.dscp.api.controller.openapi.CibController#sendVerifyCode
  • 源码位置jxxx-dscp/dscp-service-business/src/main/java/com/jxxx/dscp/api/controller/openapi/CibController.java:169
  • 判定依据渠道为开放/回调且有实现链路,由第三方或支付回调触发

请求参数

Header 请求参数

参数名参数值是否必填参数类型描述说明
无(渠道统一鉴权头见《认证方式》)

Query 请求参数

参数名参数值是否必填参数类型描述说明
无

路径参数及说明

参数名参数值是否必填参数类型描述说明
无

Body 请求参数

Body 类型 VerifyCodeSendRequest
参数名参数值是否必填参数类型描述说明
smsType…否SmsType发送验证码类型 → sms_log.sms_type 1=兴业银行激活平台登录 2=兴业银行激活平台激活 3=兴业银行H5登录 99=未知
mobile…否String手机号 → system_user.mobile

认证方式

免鉴权:@Route(auth = false) —— 该接口不校验登录态,改动前确认调用方与签名校验。

响应参数

data 类型 OpenapiResponse
参数名参数值是否必填参数类型描述说明
code…否Integer → sms_log.code
msg…否String
data…否Object

响应示例

成功响应示例 code=0

{
  "errcode": 0,
  "errmsg": "",
  "data": {
    "code": "1",
    "msg": "\"string\"",
    "data": "…"
  }
}

失败响应示例

{
  "data": null,
  "可能返回": [
    {
      "errcode": "99999",
      "errmsg": "服务内部错误"
    }
  ]
}
示例来自源码/导出内容,仅结构参考,非线上真实数据。

附录 · 实现细节

调用链 / 数据表 / 调用点证据 / 源码注释 / 逻辑摘要
涉及数据表:openapi_channel_business、system_user 反查全部引用接口 →
  • CibController#sendVerifyCode
  • OpenapiChannelBusinessService#queryList(OpenapiChannelBusinessServiceImpl)
  • OpenapiChannelBusinessMapper#queryList
  • CacheService#putIfAbsent
  • SendSmsService#sendVerifyCode(SendSmsServiceImpl)
  • SmsService#sendSms
其它依赖:CacheService.putIfAbsent、RedisCacheService.put、AuthService.setAuthValue、SendSmsService.sendVerifyCode、SmsService.sendSms
逻辑摘要:查询详情(userService.get);列表查询(openapiChannelBusinessService.queryList);调用 putIfAbsent(cacheService.putIfAbsent)
源码内联注释(旧站解析结果)
  • 确保短信类型已设置,默认为CIB_OTHER
  • 1. 查询用户是否有卡
  • 如果没有找到卡号,则返回错误
  • 2. 过滤出已激活成功的卡片(状态为1-已绑定)
  • List<OpenapiChannelBusiness> activatedCards = businessList.stream()
  • .filter(card -> card.getActiveStatus() != null && card.getActiveStatus() == 1)
  • .collect(Collectors.toList());
  • //if (activatedCards.isEmpty()) {
旧站环境备注:pro:(仓库 .env.pro 指向 uat;生产域名未确认,此处沿用 uat 主机示意)
可能抛出的业务码:99999 服务内部错误 错误码字典 →
由 tools/build.py 从 data/apis.json 生成 · 生成时间 2026-09-12 19:49 · 数据口径见说明 · 本页数字非手写,均来自同一份数据