192 lines
6.9 KiB
YAML

PayInvalid:
post:
tags:
- 账单管理
summary: 账单红冲
description: |
对已缴费的账单进行红冲(撤销)操作。
## 业务说明
- 支持对已缴费账单进行红冲操作
- 红冲后账单状态恢复为未缴费
- 生成红冲交易记录
- 支持XML和JSON两种数据格式
## 业务规则
- 只能对已缴费的账单进行红冲
- 红冲金额必须与原缴费金额一致
- 同一笔缴费记录只能红冲一次
- 红冲成功后生成负数交易记录
## 调用频率限制
- 单个交易流水号每分钟最多红冲1次
- 单个机构每分钟最多红冲100次
operationId: invalidPayment
parameters:
- $ref: '../components/parameters.yaml#/components/parameters/ContentTypeHeader'
- $ref: '../components/parameters.yaml#/components/parameters/EncryptTypeHeader'
- $ref: '../components/parameters.yaml#/components/parameters/EncryptModeHeader'
- $ref: '../components/parameters.yaml#/components/parameters/DataTypeHeader'
requestBody:
required: true
description: 账单红冲请求数据
content:
application/xml:
schema:
allOf:
- $ref: '../components/schemas.yaml#/components/schemas/BaseRequest'
- type: object
required:
- OriginalTranSeq
- BillKey
- CompanyId
properties:
OriginalTranSeq:
type: string
description: 原交易流水号
example: "TXN123456789012"
maxLength: 40
BillKey:
type: string
description: 客户编号
example: "123456"
maxLength: 35
CompanyId:
type: string
description: 机构编码
example: "654321"
maxLength: 30
example: |
<?xml version="1.0" encoding="GBK"?>
<in>
<Version>1.0.1</Version>
<InstId>00001</InstId>
<TranCode>PayInvalid</TranCode>
<TranDate>20240101</TranDate>
<TranSeq>123456789013</TranSeq>
<OriginalTranSeq>TXN123456789012</OriginalTranSeq>
<BillKey>123456</BillKey>
<CompanyId>654321</CompanyId>
</in>
application/json:
schema:
allOf:
- $ref: '../components/schemas.yaml#/components/schemas/BaseRequest'
- type: object
required:
- OriginalTranSeq
- BillKey
- CompanyId
properties:
OriginalTranSeq:
type: string
description: 原交易流水号
example: "TXN123456789012"
BillKey:
type: string
description: 客户编号
example: "123456"
CompanyId:
type: string
description: 机构编码
example: "654321"
example:
Version: "1.0.1"
InstId: "00001"
TranCode: "PayInvalid"
TranDate: "20240101"
TranSeq: "123456789013"
OriginalTranSeq: "TXN123456789012"
BillKey: "123456"
CompanyId: "654321"
responses:
'200':
description: 红冲成功
headers:
Content-Type:
$ref: '../components/headers.yaml#/components/headers/ContentType'
X-Response-Time:
$ref: '../components/headers.yaml#/components/headers/ResponseTime'
X-Request-Id:
$ref: '../components/headers.yaml#/components/headers/RequestId'
content:
application/xml:
schema:
allOf:
- $ref: '../components/schemas.yaml#/components/schemas/BaseResponse'
- type: object
properties:
Data:
type: object
properties:
Transaction:
$ref: '../components/schemas.yaml#/components/schemas/Transaction'
example: |
<?xml version="1.0" encoding="GBK"?>
<out>
<Version>1.0.1</Version>
<InstId>00001</InstId>
<TranCode>PayInvalidRes</TranCode>
<TranDate>20240101</TranDate>
<TranSeq>123456789013</TranSeq>
<RespCode>AAAAAAA</RespCode>
<RespMessage>红冲成功</RespMessage>
<Data>
<Transaction>
<TranSeq>REV123456789013</TranSeq>
<BillKey>123456</BillKey>
<CompanyId>654321</CompanyId>
<TranCode>PayInvalid</TranCode>
<PayAmount>-150.00</PayAmount>
<PayDate>2024-01-01T12:00:00.000Z</PayDate>
<TranStatus>1</TranStatus>
<RespCode>AAAAAAA</RespCode>
<RespMessage>成功</RespMessage>
</Transaction>
</Data>
</out>
application/json:
schema:
allOf:
- $ref: '../components/schemas.yaml#/components/schemas/BaseResponse'
- type: object
properties:
Data:
type: object
properties:
Transaction:
$ref: '../components/schemas.yaml#/components/schemas/Transaction'
example:
Version: "1.0.1"
InstId: "00001"
TranCode: "PayInvalidRes"
TranDate: "20240101"
TranSeq: "123456789013"
RespCode: "AAAAAAA"
RespMessage: "红冲成功"
Data:
Transaction:
TranSeq: "REV123456789013"
BillKey: "123456"
CompanyId: "654321"
TranCode: "PayInvalid"
PayAmount: -150.00
PayDate: "2024-01-01T12:00:00.000Z"
TranStatus: 1
RespCode: "AAAAAAA"
RespMessage: "成功"
'400':
$ref: '../components/responses.yaml#/components/responses/BusinessError'
'500':
$ref: '../components/responses.yaml#/components/responses/SystemError'
'401':
$ref: '../components/responses.yaml#/components/responses/SecurityError'
'408':
$ref: '../components/responses.yaml#/components/responses/NetworkError'
security:
- ApiKeyAuth: []
- EncryptedData: []