post-bank-point-mall/docs/需求文档-PRD.md

33 KiB
Raw Blame History

虚拟商品充值服务商系统 - 产品需求文档

1. 功能模块划分

1.1 模块结构

服务商系统
├── 接口服务模块(对接邮储银行服务开放平台)
│   ├── 服务预约接口
│   ├── 服务取消接口
│   ├── 服务完成通知接口
│   ├── 订单过期积分查询接口
│   └── 服务状态查询接口
├── 券码管理模块对接蓝色兄弟营销开放API
│   ├── 券码获取功能
│   ├── 券码查询功能
│   ├── 券码作废功能
│   └── 券码状态回调接收
├── 订单管理模块
│   ├── 订单创建
│   ├── 订单状态管理
│   ├── 订单查询
│   └── 订单对账
├── 对账管理模块
│   ├── 对账文件查询
│   ├── 对账文件下载
│   └── 对账数据核对
└── 安全与加密模块
    ├── SM2/SM4加解密邮储银行
    ├── RSA/AES加解密蓝色兄弟
    └── 签名验签

1.2 模块关系

模块 调用方/被调用方 内部依赖 说明
接口服务模块 被下游邮储银行调用 订单管理模块、券码管理模块 接收邮储银行请求,转发至内部处理
券码管理模块 调用上游蓝色兄弟API 订单管理模块 负责券码全生命周期管理
订单管理模块 - 券码管理模块、对账管理模块 核心业务数据管理
对账管理模块 调用下游邮储银行API 订单管理模块 月度对账处理
安全与加密模块 - 所有模块 提供安全基础能力

2. 功能详细说明

2.1 接口服务模块

2.1.1 服务预约接口

功能描述:接收邮储银行服务开放平台的预约请求,为客户预约虚拟商品充值服务

业务规则

  1. 解密请求报文,验证签名
  2. 校验权益码有效性20分钟有效期
  3. 调用蓝色兄弟API获取券码
  4. 创建订单记录,状态设为"已预约"(200)
  5. 返回预约成功响应

输入

字段 类型 必填 说明
rightsCode String M 兑换预约码格式16800G-VN4724-NX874-30VHR
serviceType String M 服务类型编码
providerCode String M 服务厂商编号
custName String C 客户名称(电话银行渠道可选)
personalCertTypeCode String C 证件类型
personalCertNo String C 证件号码

输出

字段 类型 必填 说明
respCode String M 返回码000000表示成功
respMsg String M 返回信息
rightsCode String C 兑换预约码
tradeRespCode String M 业务响应码
tradeRespMsg String M 业务响应码描述

验收标准

  • 能正确解密SM4加密的请求报文
  • 能正确验证SM2签名
  • 权益码超过20分钟返回失效错误(161026)
  • 预约成功后订单状态为200
  • 预约成功后能获取到蓝色兄弟券码

2.1.2 服务取消接口

功能描述:接收邮储银行服务开放平台的取消请求,取消已预约的服务

业务规则

  1. 校验订单状态必须为"已预约"(200)
  2. 调用蓝色兄弟API作废券码
  3. 更新订单状态为"已取消"(400)
  4. 返回取消成功响应

输入

字段 类型 必填 说明
rightsCode String M 兑换预约码
serviceType String M 服务类型编码
providerCode String M 服务厂商编号

输出

字段 类型 必填 说明
respCode String M 返回码
respMsg String M 返回信息
tradeRespCode String M 业务响应码
tradeRespMsg String M 业务响应码描述

验收标准

  • 非"已预约"状态订单返回错误(161024)
  • 已完成订单不允许取消(161014)
  • 取消成功后蓝色兄弟券码状态为已作废(3)
  • 取消成功后订单状态为400

2.1.3 服务完成通知接口

功能描述:接收蓝色兄弟券码核销回调,主动通知邮储银行服务完成

业务规则

  1. 接收蓝色兄弟券码状态变更回调
  2. 当券码状态变为"已核销"(2)时
  3. 调用邮储银行服务完成接口
  4. 更新订单状态为"已完成"(300)
  5. 服务完成状态更新需在T+2日内完成

输入

字段 类型 必填 说明
rightsCode String M 兑换预约码
serviceType String M 服务类型编码
providerCode String M 服务厂商编号
completionTime String M 实际完成时间格式yyyyMMddHHmmss

输出

字段 类型 必填 说明
respCode String M 返回码
respMsg String M 返回信息

验收标准

  • 能正确接收蓝色兄弟回调通知
  • 回调验签通过后正确响应"ok"
  • 服务完成通知在T+2日内发送
  • 已取消订单不允许完成(161014)
  • 完成成功后订单状态为300

2.1.4 订单过期积分查询接口

功能描述:查询订单退还时已过期的幸福点信息,用于取消前提醒客户

业务规则

  1. 根据权益码或原交易流水号查询订单
  2. 计算订单涉及的总幸福点
  3. 计算已过期的幸福点数量
  4. 返回过期幸福点提醒信息

输入

字段 类型 必填 说明
rightsCode String C 兑换预约码(已预约取消场景必填)
orgTranSq String C 原交易流水号(已兑换未预约取消场景必填)
cstmName String C 客户名称
paperType String C 证件类型
paperId String C 证件号码

输出

字段 类型 必填 说明
respCode String M 返回码
respMsg String M 返回信息
tranIntglNum int C 交易总幸福点
ovdueIntglNum int C 已过期的幸福点
noticeMsg String C 提醒信息文本

验收标准

  • 能正确查询订单积分信息
  • 过期幸福点计算准确
  • 返回友好的提醒信息

2.1.5 服务状态查询接口

功能描述:根据权益码查询服务预约状态

业务规则

  1. 根据权益码查询订单
  2. 返回当前服务状态

输入

字段 类型 必填 说明
rightsCode String M 兑换权益码
tranChnl String M 渠道标识

输出

字段 类型 必填 说明
respCode String M 返回码
respMsg String M 返回信息
serviceState String M 预约服务状态码100-未预约200-已预约300-已完成400-已取消500-已过期
serviceStateMsg String M 预约服务状态描述

验收标准

  • 能正确查询订单状态
  • 状态码与状态描述一致

2.2 券码管理模块

2.2.1 券码获取功能

功能描述调用蓝色兄弟API获取虚拟商品券码

业务规则

  1. 生成唯一外部业务号(out_biz_no)
  2. 构造请求参数并AES加密
  3. 使用RSA私钥签名
  4. 调用获取券码接口
  5. 保存券码信息与订单关联

输入

字段 类型 必填 说明
out_biz_no String M 外部业务号长度2~32位幂等
activity_no String M 活动编号长度32位内
number int M 数量只支持1
account String N 账号
notify_url String N 回调通知地址

输出

字段 类型 必填 说明
out_biz_no String M 外部业务号
trade_no String M 交易号
key String N key码
url String N 短链接
status uint8 M 状态1-正常2-已核销3-已作废
valid_begin_time String M key码有效期开始
valid_end_time String M key码有效期结束
usable_num uint32 M 可兑换次数

验收标准

  • 能正确加密业务参数(AES)
  • 能正确签名请求(RSA)
  • 幂等请求返回相同结果
  • 获取成功后保存券码信息

2.2.2 券码查询功能

功能描述:查询已获取券码的当前状态

业务规则

  1. 支持通过外部业务号或交易号查询
  2. 返回券码完整状态信息

输入

字段 类型 必填 说明
out_biz_no String C 外部业务号与trade_no二选一
trade_no String C 交易号,优先使用

输出

字段 类型 必填 说明
status uint8 M 状态1-正常2-已核销3-已作废4-已过期
usage_num uint32 M 已兑换次数
usage_time String N 最后一次核销时间

验收标准

  • 能正确查询券码状态
  • 状态信息完整准确

2.2.3 券码作废功能

功能描述:作废待使用或已过期的券码

业务规则

  1. 只能作废待使用(1)、已过期(4)状态的券码
  2. 已核销券码不允许作废

输入

字段 类型 必填 说明
out_biz_no String C 外部业务号与trade_no二选一
trade_no String C 交易号,优先使用

验收标准

  • 正常状态券码能成功作废
  • 已核销券码作废返回错误
  • 作废成功后券码状态为3

2.2.4 券码状态回调接收

功能描述:接收蓝色兄弟的券码状态变更通知

业务规则

  1. 验证回调签名
  2. 解析回调数据
  3. 更新本地券码状态
  4. 当status=2(已核销)时触发服务完成通知
  5. 响应httpCode=200和字符串"ok"

回调重试策略

  • 首次间隔120s
  • 第二次间隔240s
  • 第三次间隔360s
  • 大于5分钟后间隔5分钟
  • 大于10分钟后间隔10分钟
  • 超过120分钟后不再重试

验收标准

  • 能正确验证回调签名
  • 状态更新及时准确
  • 核销状态触发服务完成通知
  • 响应格式正确(httpCode=200, body="ok")

2.3 订单管理模块

2.3.1 订单创建

功能描述:创建权益服务订单

业务规则

  1. 生成唯一订单号
  2. 关联权益码、券码、客户信息
  3. 初始状态为"已预约"(200)

验收标准

  • 订单号全局唯一
  • 订单信息完整

2.3.2 订单状态管理

功能描述:管理订单全生命周期状态流转

状态定义

状态码 状态名称 说明
100 服务未预约 已兑换但未预约
200 服务已预约 已预约待使用
300 服务已完成 券码已核销
400 服务已取消 用户主动取消
500 服务已过期 超过90天未预约

状态流转规则

  • 200(已预约) → 300(已完成):券码核销
  • 200(已预约) → 400(已取消):用户取消
  • 300(已完成) 和 400(已取消) 为终态,不可变更

验收标准

  • 状态流转符合规则
  • 终态不可变更
  • 状态变更有日志记录

2.3.3 订单查询

功能描述:支持多维度订单查询

查询维度

  • 按权益码查询
  • 按订单号查询
  • 按客户信息查询
  • 按状态查询
  • 按时间范围查询

验收标准

  • 支持所有查询维度
  • 查询结果准确

2.4 对账管理模块

2.4.1 对账文件查询

功能描述:查询邮储银行生成的对账文件列表

业务规则

  1. 每月3号查询上月对账文件
  2. 只包含服务完成(300)状态的订单

输入

字段 类型 必填 说明
accountingDate String M 会计日期YYYYMMDD
fileIntfcName String M 文件接口名

验收标准

  • 能正确查询对账文件列表
  • 返回文件ID、名称等完整信息

2.4.2 对账文件下载

功能描述:下载对账文件内容

输入

字段 类型 必填 说明
fileId String M 文件唯一标识
fileIntfcName String M 文件接口名
sm4Key String M 对账文件SM4加密密钥

对账文件内容

字段 说明
统计月份 YYYYMMDD
一分机构序号 -
一分机构名称 -
网点机构属性 01-自营02-代理
积分客户服务编码 -
服务内容 -
预约时间 -
实际完成时间 -
权益兑换码 -

验收标准

  • 能正确解密对账文件
  • 能解析对账文件内容
  • 与本地订单数据核对

2.5 安全与加密模块

2.5.1 邮储银行加解密SM2/SM4

功能描述:实现与邮储银行通信的加解密

加密规则

  1. 随机生成SM4 key
  2. 使用SM4 key对请求报文加密CBC模式
  3. 使用邮储银行公钥SM2加密SM4 key

签名规则

  1. 拼接request + encryptKey + accessToken
  2. 使用SM3计算摘要
  3. 使用私钥SM2加密摘要

验收标准

  • SM4加解密正确
  • SM2加解密正确
  • SM3签名验签正确

2.5.2 蓝色兄弟加解密RSA/AES

功能描述:实现与蓝色兄弟通信的加解密

业务参数加密规则

  1. 业务参数去掉"零"值
  2. 按字母排序转成JSON字符串
  3. 使用应用key进行AES加密

签名规则

  1. 拼接appId + timestamp + ciphertext
  2. 使用私钥RSA签名

验收标准

  • AES加解密正确
  • RSA签名验签正确
  • 回调验签正确

3. 数据需求

3.1 数据实体

3.1.1 订单表(t_order)

字段名 类型 长度 必填 说明
id bigint 20 M 主键
order_no varchar 32 M 订单号
rights_code varchar 32 M 权益码
service_type varchar 6 M 服务类型
provider_code varchar 4 M 服务商编号
status int 3 M 订单状态100/200/300/400/500
cust_name varchar 40 N 客户名称
cert_type varchar 2 N 证件类型
cert_no varchar 30 N 证件号码
cust_id varchar 32 N 客户编号
partner_tx_sri_no varchar 24 M 合作方交易流水号
req_time datetime - M 请求时间
appointment_time datetime - N 预约时间
completion_time datetime - N 完成时间
cancel_time datetime - N 取消时间
create_time datetime - M 创建时间
update_time datetime - M 更新时间

3.1.2 券码表(t_coupon)

字段名 类型 长度 必填 说明
id bigint 20 M 主键
order_id bigint 20 M 关联订单ID
out_biz_no varchar 32 M 外部业务号
trade_no varchar 32 M 交易号
key_code varchar 64 N 券码
url varchar 256 N 短链接
status int 1 M 状态1-正常2-已核销3-已作废4-已过期
activity_no varchar 32 M 活动编号
usable_num int 10 M 总兑换次数
usage_num int 10 M 已兑换次数
valid_begin_time datetime - M 有效期开始
valid_end_time datetime - M 有效期结束
usage_time datetime - N 核销时间
discard_time datetime - N 作废时间
create_time datetime - M 创建时间
update_time datetime - M 更新时间

3.1.3 对账记录表(t_reconciliation)

字段名 类型 长度 必填 说明
id bigint 20 M 主键
recon_month varchar 6 M 对账月份YYYYMM
file_id varchar 32 M 文件ID
file_name varchar 128 M 文件名
recon_status int 1 M 对账状态0-待对账1-已对账2-有差异
total_count int 10 M 总记录数
match_count int 10 M 匹配记录数
diff_count int 10 M 差异记录数
create_time datetime - M 创建时间
update_time datetime - M 更新时间

3.2 数据规则

  1. 订单号生成规则:渠道号(2位) + 日期(8位) + 序列号(8位)
  2. 外部业务号生成规则:订单号 + 随机数(4位),保证唯一性和幂等性
  3. 状态流转:只允许 200→300、200→400 的状态变更
  4. 数据保留订单数据保留至少2年

4. 流程图

4.1 服务预约流程

@startuml 服务预约流程
actor 客户 as Customer
participant "邮储银行\n服务开放平台" as Bank
participant "服务商系统" as Provider
participant "蓝色兄弟\n营销开放API" as LSB
database "服务商数据库" as DB

Customer -> Bank: 1.发起服务预约
activate Bank

Bank -> Provider: 2.调用预约接口\n(SM2/SM4加密)
activate Provider

Provider -> Provider: 3.解密验签\n校验权益码有效性

Provider -> LSB: 4.获取券码\n(RSA/AES加密)
activate LSB

LSB -> LSB: 5.生成券码

LSB --> Provider: 6.返回券码信息\n(key/url)
deactivate LSB

Provider -> DB: 7.创建订单\n保存券码信息
activate DB
DB --> Provider: 8.保存成功
deactivate DB

Provider --> Bank: 9.返回预约成功\n(SM2/SM4加密)
deactivate Provider

Bank --> Customer: 10.显示预约成功\n展示券码/链接
deactivate Bank

@enduml

4.2 服务完成流程

@startuml 服务完成流程
actor 客户 as Customer
participant "蓝色兄弟\n营销开放API" as LSB
participant "服务商系统" as Provider
participant "邮储银行\n服务开放平台" as Bank
database "服务商数据库" as DB

Customer -> LSB: 1.使用券码核销
activate LSB

LSB -> LSB: 2.核销券码\n状态变更为已核销(2)

LSB -> Provider: 3.回调通知\n券码状态变更
activate Provider

Provider -> Provider: 4.验证回调签名

Provider -> DB: 5.更新券码状态
activate DB
DB --> Provider: 6.更新成功
deactivate DB

Provider --> LSB: 7.响应"ok"
deactivate LSB

Provider -> Bank: 8.通知服务完成\n(SM2/SM4加密)\n[T+2日内]
activate Bank

Bank -> Bank: 9.更新订单状态\n已预约(200)→已完成(300)

Bank --> Provider: 10.返回完成成功
deactivate Bank

Provider -> DB: 11.更新订单状态为300
deactivate Provider

@enduml

4.3 服务取消流程

@startuml 服务取消流程
actor 客户 as Customer
participant "邮储银行\n服务开放平台" as Bank
participant "服务商系统" as Provider
participant "蓝色兄弟\n营销开放API" as LSB
database "服务商数据库" as DB

Customer -> Bank: 1.发起服务取消
activate Bank

Bank -> Provider: 2.查询过期积分
activate Provider

Provider -> DB: 3.查询订单积分信息
activate DB
DB --> Provider: 4.返回积分信息
deactivate DB

Provider --> Bank: 5.返回过期积分信息
deactivate Provider

alt 存在过期幸福点
    Bank --> Customer: 6a.提示"存在已过期幸福点\n取消后只退还未过期部分"
    Customer -> Bank: 6b.确认取消
end

Bank -> Provider: 7.调用取消接口
activate Provider

Provider -> DB: 8.查询订单和券码
activate DB
DB --> Provider: 9.返回订单信息
deactivate DB

Provider -> LSB: 10.作废券码
activate LSB
LSB --> Provider: 11.作废成功
deactivate LSB

Provider -> DB: 12.更新订单状态为400
activate DB
DB --> Provider: 13.更新成功
deactivate DB

Provider --> Bank: 14.返回取消成功
deactivate Provider

Bank --> Customer: 15.显示取消成功\n已退还XX幸福点
deactivate Bank

@enduml

4.4 月度对账流程

@startuml 月度对账流程
participant "定时任务" as Scheduler
participant "服务商系统" as Provider
participant "邮储银行\n服务开放平台" as Bank
database "服务商数据库" as DB

Scheduler -> Provider: 1.每月3号触发对账任务
activate Provider

Provider -> Bank: 2.查询对账文件列表\n(上月已完成订单)
activate Bank
Bank --> Provider: 3.返回文件列表
deactivate Bank

Provider -> Bank: 4.下载对账文件
activate Bank
Bank --> Provider: 5.返回对账文件内容\n(SM4加密)
deactivate Bank

Provider -> Provider: 6.解密对账文件

Provider -> DB: 7.查询本地已完成订单
activate DB
DB --> Provider: 8.返回订单列表
deactivate DB

Provider -> Provider: 9.数据核对比对

alt 存在差异
    Provider -> Provider: 10a.生成差异报告\n人工介入处理
else 无差异
    Provider -> DB: 10b.更新对账状态为已对账
end

deactivate Provider

@enduml

4.5 错误处理流程

@startuml 错误处理流程
participant "调用方" as Caller
participant "服务商系统" as Provider
participant "下游服务" as Downstream
database "服务商数据库" as DB

Caller -> Provider: 1.发起请求
activate Provider

alt 参数校验失败
    Provider --> Caller: 2a.返回参数错误\n(900001/900002)
else 签名验证失败
    Provider --> Caller: 2b.返回签名错误\n(900005/900011)
else 权益码无效
    Provider --> Caller: 2c.返回权益码错误\n(161026/161027)
else 业务规则不满足
    Provider --> Caller: 2d.返回业务错误\n(161014/161024)
else 下游服务异常
    Provider -> Downstream: 3.调用下游服务
    activate Downstream
    Downstream --> Provider: 4.返回异常
    deactivate Downstream
    
    Provider -> DB: 5.记录异常日志
    Provider --> Caller: 6.返回系统繁忙\n(900000/990172)
else 处理成功
    Provider -> Downstream: 3.调用下游服务
    activate Downstream
    Downstream --> Provider: 4.返回成功
    deactivate Downstream
    
    Provider -> DB: 5.更新业务数据
    Provider --> Caller: 6.返回成功(000000)
end

deactivate Provider

@enduml

5. 用户故事

5.1 服务预约

US-001: 预约虚拟商品服务

As a 邮储银行高端客户
I want 使用幸福点兑换的权益码预约虚拟商品服务
So that 我可以获得虚拟商品券码并使用

Acceptance Criteria:

  • Given 有效的权益码20分钟内When 调用预约接口Then 返回预约成功并获得券码
  • Given 权益码已超过20分钟有效期When 调用预约接口Then 返回161026错误码
  • Given 相同的业务主ID重复请求When 调用预约接口Then 返回幂等结果

5.2 服务取消

US-002: 取消已预约服务

As a 邮储银行高端客户
I want 取消已预约但未使用的服务
So that 我可以退回幸福点

Acceptance Criteria:

  • Given 订单状态为已预约(200)When 调用取消接口Then 券码被作废订单状态变为400幸福点退还
  • Given 订单状态为已完成(300)When 调用取消接口Then 返回161014错误码
  • Given 存在已过期幸福点When 取消前查询Then 返回过期积分提醒信息

5.3 服务完成

US-003: 券码核销后服务完成

As a 服务商系统
I want 在收到券码核销回调后通知邮储银行服务完成
So that 完成服务状态同步,确保对账数据一致

Acceptance Criteria:

  • Given 收到蓝色兄弟核销回调(status=2)When 处理回调Then 在T+2日内通知邮储银行服务完成
  • Given 订单状态为已取消(400)When 通知服务完成Then 邮储银行返回161014错误
  • Given 回调验签失败When 处理回调Then 不触发服务完成通知

5.4 服务状态查询

US-004: 查询服务状态

As a 邮储银行服务开放平台
I want 查询权益服务当前状态
So that 展示给客户了解服务进展

Acceptance Criteria:

  • Given 有效的权益码When 调用状态查询接口Then 返回正确的状态码和描述
  • Given 不存在的权益码When 调用状态查询接口Then 返回161027错误码

5.5 月度对账

US-005: 下载并核对对账文件

As a 服务商运营人员
I want 每月下载邮储银行的对账文件并与本地数据核对
So that 确保交易数据一致性,完成结算

Acceptance Criteria:

  • Given 每月3号When 触发对账任务Then 自动下载上月对账文件
  • Given 对账文件下载成功When 数据核对Then 生成对账结果(匹配/差异)
  • Given 存在对账差异When 核对完成Then 生成差异报告供人工处理

附录

附录A专业术语说明

A.1 下游系统(邮储银行服务开放平台)

术语 英文 说明
幸福点 Happiness Points 邮储银行高端客户积分,可兑换权益服务
权益码 Rights Code 客户兑换权益服务后获得的唯一标识码格式如16800G-VN4724-NX874-30VHR
服务开放平台 Open Platform 邮储银行对外开放的API服务平台
SM2 SM2 国密非对称加密算法,用于密钥交换和数字签名
SM3 SM3 国密哈希算法,用于消息摘要
SM4 SM4 国密对称加密算法,用于报文加密
业务主ID busiMainId 请求的业务唯一标识,规则:渠道号(2位)+日期(8位)+序列号(8位)
对账 Reconciliation 每月核对服务商与银行之间的交易数据一致性
T+2 T+2 服务完成后2个工作日内需完成状态同步
高端客户 VIP Customer 邮储银行AUM资产管理规模≥50万的客户
AUM Assets Under Management 资产管理规模

A.2 服务商系统(当前系统)

术语 英文 说明
合作方交易流水号 partnerTxSriNo 服务商生成的交易唯一标识,规则:渠道号(2位)+日期(8位)+序列号(8位)
订单号 Order No 服务商系统内部订单唯一标识
服务状态 Service Status 订单服务状态100-未预约200-已预约300-已完成400-已取消500-已过期

A.3 上游系统蓝色兄弟营销开放API

术语 英文 说明
蓝色兄弟 LSB (Lan Se Xiong Di) 第三方虚拟商品供应商,提供券码服务
券码 Coupon Key 蓝色兄弟平台生成的虚拟商品兑换码
RSA RSA 非对称加密算法,用于蓝色兄弟接口签名
AES AES 对称加密算法,用于蓝色兄弟业务参数加密
外部业务号 out_biz_no 调用蓝色兄弟API的幂等标识长度2~32位
交易号 trade_no 蓝色兄弟返回的平台交易唯一标识
活动编号 activity_no 蓝色兄弟平台的营销活动唯一标识
券码状态 Key Status 券码状态1-正常2-已核销3-已作废4-已过期

附录B接口业务响应码

B.1 下游系统(邮储银行服务开放平台)响应码

公共响应码

响应码 描述 处理建议
000000 交易成功 -
900000 未知系统异常 稍后重试或联系技术支持
900001 非法参数 检查请求参数格式
900002 必填参数缺失 补充必填参数
900005 签名错误 检查签名算法和密钥
900006 请求非法 检查请求格式
900008 幂等错误 检查流水号是否重复
900011 签名验证失败 检查签名和公钥
990172 系统繁忙 稍后重试
990272 系统繁忙 稍后重试
990772 系统繁忙 稍后重试

权益积分业务响应码

响应码 描述 处理建议
161006 交易数据不存在 检查权益码或流水号
161008 未知渠道错误 检查渠道标识
161014 服务已完成或取消,不允许再操作 业务状态已终结
161016 无权益服务可操作 检查订单状态
161024 服务未预约,不允许完成或取消操作 需先完成预约
161026 兑换权益码已失效 权益码超过20分钟有效期
161027 兑换权益码错误 检查权益码格式
161033 实际完成时间不满足对账规范 检查completionTime格式
727101 系统异常,请稍后重试 稍后重试
727102 未查询到当前分类的积分信息 检查查询条件
729006 未找到原交易 检查原交易流水号
729011 客户名称不能为空 补充客户名称
729012 客户证件类型不能为空 补充证件类型
729013 证件号码不能为空 补充证件号码
729024 证件号码格式不正确 检查证件号码格式
729033 客户编号格式不正确 检查客户编号格式
720502 原交易流水号不能为空 补充原交易流水号
720503 原交易流水号格式不正确 检查流水号格式
729809 系统繁忙,请稍后再试 稍后重试
729909 不能为空 补充必填字段
729910 格式不正确 检查字段格式
729917 长度不符合要求 检查字段长度
729918 不能包含特殊字符 移除特殊字符
729922 查询结束时间不得小于查询开始时间 调整时间范围
729928 查询起始日期必须在12个月内 调整查询日期

文件接口响应码

响应码 描述 处理建议
062005 查询失败,请稍后再试 稍后重试
063001 系统繁忙,请稍后再试 稍后重试

B.2 上游系统蓝色兄弟营销开放API响应码

公共响应码

code reason 描述 处理建议
200 - 成功 -
400 SIGNATURE_FAIL 签名错误 检查签名密钥和算法
400 SDK_INI_FAIL SDK错误 检查应用配置信息
400 PARAM_FAIL 参数错误 检查业务参数
400 PARAM_DECRYPT_FAIL 参数解密错误 检查加密方式
500 PANIC 系统错误 联系平台处理

业务响应码

code reason 描述 处理建议
401 ACTIVITY_NOT_AUTH 活动未授权 检查活动授权状态
401 MERCHANT_NOT_EXIST 客户不存在 检查客户是否存在
401 MERCHANT_NOT_AUTH 客户冻结 检查客户授权状态
401 MERCHANT_APP_INCOMPLETE 客户应用配置未完善 完善应用配置
401 MERCHANT_APP_NOT_AUTH 应用不存在 检查应用授权状态
403 ACTIVITY_EXPIRE 活动已结束 检查活动有效期
403 ACTIVITY_NOT_AUTH 活动状态异常 检查活动状态(作废/待审核/驳回/暂停/失效/编辑中)
403 ACTIVITY_OUT_OF_STOCK 活动库存不足 联系平台补充库存
404 KEY_NOT_EXIST 券码不存在 检查券码或交易号
404 ACTIVITY_NOT_EXIST 活动不存在 检查活动编号
404 MERCHANT_NOT_EXIST 客户不存在 检查app_id
404 MERCHANT_APP_NOT_EXIST 客户应用不存在 检查app_id
404 MERCHANT_ORDER_NOT_EXIST 订单记录不存在 检查交易号/外部业务号
404 MERCHANT_APP_INCOMPLETE 客户应用信息未完善 完善应用信息
503 KEY_CREATE_FAIL 券码创建失败 稍后重试或联系平台
503 MERCHANT_ORDER_CREATE_FAIL 订单创建失败 稍后重试或联系平台
503 MERCHANT_ORDER_DISCARD_FAIL 订单作废失败 稍后重试或联系平台
503 MERCHANT_ORDER_DISCARD_MQ_FAIL 订单作废消息失败 稍后重试或联系平台

B.3 服务商系统(当前系统)内部错误码

错误码 描述 处理建议
SYS_001 系统内部错误 检查系统日志,联系技术支持
SYS_002 数据库操作异常 检查数据库连接和SQL
SYS_003 外部服务调用超时 检查网络连接,稍后重试
BIZ_001 订单不存在 检查订单号是否正确
BIZ_002 订单状态不允许此操作 检查当前订单状态
BIZ_003 券码获取失败 检查上游服务状态
BIZ_004 券码作废失败 检查券码当前状态
BIZ_005 服务完成通知失败 检查下游服务状态,稍后重试

附录C服务类型与厂商编码

C.1 服务类型编码

服务类型 名称 类别
210001 口腔护理 健康服务
210002 三个月血糖管理 健康服务
210003 三个月血压管理 健康服务
210004 三个月体重管理 健康服务
220001 高铁贵宾厅 出行服务
220002 机场贵宾厅 出行服务
220003 洗车 出行服务
310001 喜马拉雅VIP巅峰会员季卡 虚拟会员
310002 知乎会员季卡 虚拟会员
1200 机场快速通道 出行服务
1400 专车服务舒适型30公里 出行服务
1410 专车服务商务型30公里 出行服务
1420 专车服务舒适型50公里 出行服务
1430 专车服务商务型50公里 出行服务
1500 代驾服务20公里及以内 出行服务

C.2 服务厂商编号

编号 名称
A101 盛大
B101 元化

C.3 渠道标识

渠道标识 名称
12 手机银行
17 电话银行
18 微信银行
36 you生活
46 北京分行