1003 lines
28 KiB
YAML
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

components:
schemas:
# 基础请求模型
BaseRequest:
type: object
xml:
name: "in"
namespace: ""
prefix: ""
required:
- Version
- InstId
- TranCode
- TranDate
- TranSeq
properties:
Version:
type: string
description: 版本号
example: "1.0.1"
InstId:
type: string
description: 机构编码
example: "00001"
maxLength: 30
TranCode:
type: string
description: 交易码
example: "Query"
maxLength: 20
TranDate:
type: string
description: 交易日期
pattern: '^\d{8}$'
example: "20240101"
TranSeq:
type: string
description: 交易流水号(银行生成的唯一标识)
example: "123456789012"
maxLength: 40
# 基础响应模型
BaseResponse:
type: object
xml:
name: "out"
namespace: ""
prefix: ""
required:
- Version
- InstId
- TranCode
- TranDate
- TranSeq
- RespCode
- RespMessage
properties:
Version:
type: string
description: 版本号
example: "1.0.1"
InstId:
type: string
description: 机构编码
example: "00001"
TranCode:
type: string
description: 交易码
example: "QueryRes"
TranDate:
type: string
description: 交易日期
pattern: '^\d{8}$'
example: "20240101"
TranSeq:
type: string
description: 交易流水号
example: "123456789012"
RespCode:
type: string
description: 返回码
enum:
- "AAAAAAA" # 成功
- "DEF0001" # 无相应记录
- "DEF0002" # 缴费金额不匹配
- "SYS1001" # 系统异常
- "SEC2001" # 加密错误
example: "AAAAAAA"
RespMessage:
type: string
description: 返回消息
example: "成功"
maxLength: 60
# 错误详情
ErrorDetail:
type: object
xml:
name: "ErrorDetail"
properties:
ErrorCode:
type: string
description: 错误码
example: "DEF0001"
ErrorMsg:
type: string
description: 错误消息
example: "用户编号123456不存在"
ErrorTime:
type: string
format: date-time
description: 错误时间
example: "2024-01-01T12:00:00.000Z"
# 客户信息
Customer:
type: object
xml:
name: "Customer"
properties:
BillKey:
type: string
description: 客户编号(缴费号)
example: "123456"
maxLength: 35
CustomerName:
type: string
description: 客户姓名
example: "张三"
maxLength: 150
ContractNo:
type: string
description: 合同号
example: "CONTRACT001"
maxLength: 30
CompanyId:
type: string
description: 机构编码
example: "654321"
maxLength: 30
# 账单信息
Bill:
type: object
xml:
name: "Bill"
properties:
BillKey:
type: string
description: 客户编号
example: "123456"
maxLength: 35
CompanyId:
type: string
description: 机构编码
example: "654321"
maxLength: 30
PayAmount:
type: number
format: decimal
description: 缴费金额(单位:元)
example: 150.00
minimum: 0.01
Balance:
type: number
format: decimal
description: 余额(单位:元)
example: 0.00
BeginDate:
type: string
format: date
description: 账单开始日期
example: "2024-01-01"
EndDate:
type: string
format: date
description: 账单结束日期
example: "2024-01-31"
BillStatus:
type: integer
description: 账单状态
enum: [0, 1] # 0:未缴费 1:已缴费
example: 0
# 交易记录
Transaction:
type: object
xml:
name: "Transaction"
properties:
TranSeq:
type: string
description: 交易流水号
example: "TXN123456789012"
maxLength: 40
BillKey:
type: string
description: 客户编号
example: "123456"
maxLength: 35
CompanyId:
type: string
description: 机构编码
example: "654321"
maxLength: 30
TranCode:
type: string
description: 交易码
example: "Pay"
maxLength: 20
PayAmount:
type: number
format: decimal
description: 交易金额
example: 150.00
PayDate:
type: string
format: date-time
description: 交易时间
example: "2024-01-01T12:00:00.000Z"
SubChannel:
type: integer
description: 二级渠道
enum: [1, 2, 6] # 1:支付宝 2:微信 6:其它
example: 1
TranStatus:
type: integer
description: 交易状态
enum: [0, 1, 2] # 0:处理中 1:成功 2:失败
example: 1
RespCode:
type: string
description: 返回码
example: "AAAAAAA"
RespMessage:
type: string
description: 返回消息
example: "成功"
# 代扣协议
WithholdingAgreement:
type: object
xml:
name: "WithholdingAgreement"
properties:
BillKey:
type: string
description: 客户编号
example: "123456"
maxLength: 35
CompanyId:
type: string
description: 机构编码
example: "654321"
maxLength: 30
AccountName:
type: string
description: 开户名
example: "张三"
maxLength: 150
AccountNo:
type: string
description: 开户账号
example: "6222001234567890"
maxLength: 30
BankName:
type: string
description: 银行名称
example: "中国工商银行"
maxLength: 150
ContractNo:
type: string
description: 合同号
example: "CONTRACT001"
maxLength: 150
AgreementNo:
type: string
description: 协议号
example: "AGR001"
maxLength: 150
BankType:
type: integer
description: 银行类型
enum: [0, 1] # 0:本行 1:他行
example: 0
AgreementStatus:
type: integer
description: 协议状态
enum: [0, 1, 2] # 0:未签约 1:已签约 2:已解约
example: 1
SigningDate:
type: string
format: date
description: 签约日期
example: "2024-01-01"
TerminationDate:
type: string
format: date
description: 解约日期
example: "2024-12-31"
# 账单查询请求
BillQueryRequest:
allOf:
- $ref: '#/components/schemas/BaseRequest'
- type: object
xml:
name: "in"
required:
- BillKey
- CompanyId
properties:
BillKey:
type: string
description: 客户编号
example: "123456"
maxLength: 35
CompanyId:
type: string
description: 机构编码
example: "654321"
maxLength: 30
# 账单查询响应
BillQueryResponse:
allOf:
- $ref: '#/components/schemas/BaseResponse'
- type: object
xml:
name: "out"
properties:
Data:
type: object
xml:
name: "Data"
properties:
Customer:
$ref: '#/components/schemas/Customer'
Bills:
type: array
xml:
name: "Bills"
wrapped: true
items:
$ref: '#/components/schemas/Bill'
ErrorDetail:
$ref: '#/components/schemas/ErrorDetail'
# 账单缴费请求
BillPayRequest:
allOf:
- $ref: '#/components/schemas/BaseRequest'
- type: object
xml:
name: "in"
required:
- BillKey
- CompanyId
- PayAmount
properties:
BillKey:
type: string
description: 客户编号
example: "123456"
maxLength: 35
CompanyId:
type: string
description: 机构编码
example: "654321"
maxLength: 30
PayAmount:
type: number
format: decimal
description: 缴费金额
example: 150.00
minimum: 0.01
SubChannel:
type: integer
description: 二级渠道
enum: [1, 2, 6]
example: 1
# 账单缴费响应
BillPayResponse:
allOf:
- $ref: '#/components/schemas/BaseResponse'
- type: object
xml:
name: "out"
properties:
Data:
type: object
xml:
name: "Data"
properties:
Transaction:
$ref: '#/components/schemas/Transaction'
ErrorDetail:
$ref: '#/components/schemas/ErrorDetail'
# 对账请求
PayCheckRequest:
allOf:
- $ref: '#/components/schemas/BaseRequest'
- type: object
xml:
name: "in"
required:
- CompanyId
- PayDate
- PayCount
- PayMoney
- FileName
properties:
CompanyId:
type: string
description: 机构编码
example: "654321"
maxLength: 30
PayDate:
type: string
description: 对账日期
pattern: '^\d{8}$'
example: "20240101"
PayCount:
type: string
description: 交易总笔数
example: "100"
maxLength: 8
PayMoney:
type: string
description: 交易总金额(单位:分)
example: "15000"
maxLength: 10
FileName:
type: string
description: 对账文件名
example: "654321_20240101.txt"
maxLength: 100
# 对账响应
PayCheckResponse:
allOf:
- $ref: '#/components/schemas/BaseResponse'
- type: object
xml:
name: "out"
properties:
CompanyId:
type: string
description: 机构编码
example: "654321"
PayDate:
type: string
description: 对账日期
example: "20240101"
PayAmount:
type: number
format: decimal
description: 交易总金额
example: 15000.00
# 取消代扣请求
CancelDiscRequest:
allOf:
- $ref: '#/components/schemas/BaseRequest'
- type: object
xml:
name: "in"
required:
- BatchNo
- BillKey
- CompanyId
- AgreementNo
properties:
BatchNo:
type: string
description: 原批次号
example: "BATCH20240101001"
maxLength: 50
BillKey:
type: string
description: 客户编号
example: "123456"
maxLength: 35
CompanyId:
type: string
description: 机构编码
example: "654321"
maxLength: 30
AgreementNo:
type: string
description: 协议号
example: "AGR001"
maxLength: 150
# 代扣状态查询请求
WithholdingStatusRequest:
allOf:
- $ref: '#/components/schemas/BaseRequest'
- type: object
xml:
name: "in"
required:
- BatchNo
- CompanyId
properties:
BatchNo:
type: string
description: 批次号
example: "BATCH20240101001"
maxLength: 50
CompanyId:
type: string
description: 机构编码
example: "654321"
maxLength: 30
QueryDate:
type: string
description: 查询日期
pattern: '^\d{8}$'
example: "20240101"
# 代扣状态查询响应
WithholdingStatusResponse:
allOf:
- $ref: '#/components/schemas/BaseResponse'
- type: object
xml:
name: "out"
properties:
Data:
type: object
xml:
name: "Data"
properties:
BatchNo:
type: string
description: 批次号
example: "BATCH20240101001"
BatchStatus:
type: string
description: 批次状态
enum: ["PROCESSING", "SUCCESS", "FAILED", "PARTIAL"]
example: "SUCCESS"
TotalCount:
type: integer
description: 总笔数
example: 10
SuccessCount:
type: integer
description: 成功笔数
example: 8
FailCount:
type: integer
description: 失败笔数
example: 2
ProcessTime:
type: string
format: date-time
description: 处理时间
example: "2024-01-01T12:00:00.000Z"
# 客户基本信息查询请求
CustomerCheckRequest:
allOf:
- $ref: '#/components/schemas/BaseRequest'
- type: object
xml:
name: "in"
required:
- billKey
- companyId
properties:
billKey:
type: string
description: 客户编号
example: "123456"
maxLength: 35
companyId:
type: string
description: 机构编码
example: "654321"
maxLength: 30
queryType:
type: string
description: 查询类型0基本信息1详细信息
enum: ["0", "1"]
example: "0"
contractNo:
type: string
description: 合同号
example: "CONTRACT001"
maxLength: 30
filed1:
type: string
description: 备用字段1
maxLength: 100
filed2:
type: string
description: 备用字段2
maxLength: 100
# 客户基本信息查询响应
CustomerCheckResponse:
allOf:
- $ref: '#/components/schemas/BaseResponse'
- type: object
xml:
name: "out"
properties:
billKey:
type: string
description: 客户编号
example: "123456"
companyId:
type: string
description: 机构编码
example: "654321"
contractNo:
type: string
description: 合同号
example: "CONTRACT001"
customerName:
type: string
description: 客户姓名
example: "张三"
customerPhone:
type: string
description: 客户电话
example: "13812345678"
customerAddress:
type: string
description: 客户地址
example: "北京市朝阳区xxx街道xxx号"
customerStatus:
type: string
description: 客户状态0正常1暂停2销户
enum: ["0", "1", "2"]
example: "1"
serviceStatus:
type: string
description: 服务状态0停用1正常
enum: ["0", "1"]
example: "1"
registerDate:
type: string
description: 注册日期
pattern: '^\d{8}$'
example: "20200101"
lastPayDate:
type: string
description: 最后缴费日期
pattern: '^\d{8}$'
example: "20231215"
totalPayCount:
type: string
description: 累计缴费笔数
example: "36"
totalPayAmount:
type: string
description: 累计缴费金额(单位:分)
example: "540000"
filed1:
type: string
description: 备用字段1
maxLength: 100
filed2:
type: string
description: 备用字段2
maxLength: 100
filed3:
type: string
description: 备用字段3
maxLength: 100
# 对账请求
PaymentCheckRequest:
allOf:
- $ref: '#/components/schemas/BaseRequest'
- type: object
xml:
name: "in"
required:
- companyId
- payDate
- payCount
- payMoney
- fileName
properties:
companyId:
type: string
description: 机构编码
example: "654321"
maxLength: 30
payDate:
type: string
description: 对账日期
pattern: '^\d{8}$'
example: "20240101"
payCount:
type: string
description: 交易总笔数
example: "100"
maxLength: 8
payMoney:
type: string
description: 交易总金额(单位:分)
example: "150000"
maxLength: 10
fileName:
type: string
description: 对账文件名
example: "654321_20240101.txt"
maxLength: 100
# 对账响应
PaymentCheckResponse:
allOf:
- $ref: '#/components/schemas/BaseResponse'
- type: object
xml:
name: "out"
properties:
companyId:
type: string
description: 机构编码
example: "654321"
payDate:
type: string
description: 对账日期
example: "20240101"
payAmount:
type: string
description: 交易总金额
example: "150000"
# 取消代扣交易请求
WithholdingCancelDiscRequest:
allOf:
- $ref: '#/components/schemas/BaseRequest'
- type: object
xml:
name: "in"
required:
- billKey
- companyId
- originalTranSeq
- originalTranDate
- contractNo
- payAmount
properties:
billKey:
type: string
description: 客户编号
example: "123456"
maxLength: 35
companyId:
type: string
description: 机构编码
example: "654321"
maxLength: 30
originalTranSeq:
type: string
description: 原交易流水号
example: "ORIG123456789012"
maxLength: 40
originalTranDate:
type: string
description: 原交易日期
pattern: '^\d{8}$'
example: "20240101"
cancelReason:
type: string
description: 取消原因
example: "用户申请取消"
maxLength: 200
contractNo:
type: string
description: 合同号
example: "CONTRACT001"
maxLength: 30
payAmount:
type: string
description: 缴费金额(单位:分)
example: "15000"
# 取消代扣交易响应
WithholdingCancelDiscResponse:
allOf:
- $ref: '#/components/schemas/BaseResponse'
- type: object
xml:
name: "out"
properties:
billKey:
type: string
description: 客户编号
example: "123456"
companyId:
type: string
description: 机构编码
example: "654321"
originalTranSeq:
type: string
description: 原交易流水号
example: "ORIG123456789012"
cancelStatus:
type: string
description: 取消状态1成功0失败
enum: ["0", "1"]
example: "1"
cancelTime:
type: string
description: 取消时间
pattern: '^\d{14}$'
example: "20240101120000"
# 代扣送盘状态查询请求
WithholdingSendDiscCheckRequest:
allOf:
- $ref: '#/components/schemas/BaseRequest'
- type: object
xml:
name: "in"
required:
- billKey
- companyId
- originalTranSeq
- originalTranDate
- contractNo
properties:
billKey:
type: string
description: 客户编号
example: "123456"
maxLength: 35
companyId:
type: string
description: 机构编码
example: "654321"
maxLength: 30
originalTranSeq:
type: string
description: 原交易流水号
example: "ORIG123456789012"
maxLength: 40
originalTranDate:
type: string
description: 原交易日期
pattern: '^\d{8}$'
example: "20240101"
contractNo:
type: string
description: 合同号
example: "CONTRACT001"
maxLength: 30
# 代扣送盘状态查询响应
WithholdingSendDiscCheckResponse:
allOf:
- $ref: '#/components/schemas/BaseResponse'
- type: object
xml:
name: "out"
properties:
billKey:
type: string
description: 客户编号
example: "123456"
companyId:
type: string
description: 机构编码
example: "654321"
originalTranSeq:
type: string
description: 原交易流水号
example: "ORIG123456789012"
discStatus:
type: string
description: 送盘状态0待处理1处理中2处理成功3处理失败4已取消
enum: ["0", "1", "2", "3", "4"]
example: "2"
discStatusDesc:
type: string
description: 送盘状态描述
example: "处理成功"
discTime:
type: string
description: 处理时间
pattern: '^\d{14}$'
example: "20240101120000"
payAmount:
type: string
description: 缴费金额(单位:分)
example: "15000"
failReason:
type: string
description: 失败原因
example: ""
# 代扣回盘状态查询请求
WithholdingBackDiscCheckRequest:
allOf:
- $ref: '#/components/schemas/BaseRequest'
- type: object
xml:
name: "in"
required:
- billKey
- companyId
- originalTranSeq
- originalTranDate
- contractNo
properties:
billKey:
type: string
description: 客户编号
example: "123456"
maxLength: 35
companyId:
type: string
description: 机构编码
example: "654321"
maxLength: 30
originalTranSeq:
type: string
description: 原交易流水号
example: "ORIG123456789012"
maxLength: 40
originalTranDate:
type: string
description: 原交易日期
pattern: '^\d{8}$'
example: "20240101"
contractNo:
type: string
description: 合同号
example: "CONTRACT001"
maxLength: 30
batchNo:
type: string
description: 批次号
example: "BATCH20240101001"
maxLength: 50
# 代扣回盘状态查询响应
WithholdingBackDiscCheckResponse:
allOf:
- $ref: '#/components/schemas/BaseResponse'
- type: object
xml:
name: "out"
properties:
billKey:
type: string
description: 客户编号
example: "123456"
companyId:
type: string
description: 机构编码
example: "654321"
originalTranSeq:
type: string
description: 原交易流水号
example: "ORIG123456789012"
discStatus:
type: string
description: 回盘状态0待处理1处理中2处理成功3处理失败4已取消
enum: ["0", "1", "2", "3", "4"]
example: "2"
discStatusDesc:
type: string
description: 回盘状态描述
example: "处理成功"
discTime:
type: string
description: 处理时间
pattern: '^\d{14}$'
example: "20240101120000"
payAmount:
type: string
description: 缴费金额(单位:分)
example: "15000"
actualPayAmount:
type: string
description: 实际扣款金额(单位:分)
example: "15000"
batchNo:
type: string
description: 批次号
example: "BATCH20240101001"
clearingDate:
type: string
description: 清算日期
pattern: '^\d{8}$'
example: "20240102"
failReason:
type: string
description: 失败原因
example: ""