费用支付接口
该接口用于处理用户缴纳物业费用(如物业费、停车费、维修费等),支持现金、转账、账户抵扣等多种支付方式,并记录缴费明细。
http://{domain}/app/fee.payFee
(通过Java110Cmd的serviceCode = "fee.payFee"触发)
POST
| 参数名称 | 必填 | 类型 | 描述 |
|---|---|---|---|
| Authorization | 是 | String | 用户认证Token(Base64编码) |
| app-id | 是 | String | 应用ID(由系统分配) |
| transaction-id | 是 | String | 请求流水号(格式:1000000000+YYYYMMDDhhmmss+6位序列) |
| sign | 是 | String | 请求签名(防篡改校验) |
| req-time | 是 | String | 请求时间(YYYYMMDDhhmmss) |
| 参数名称 | 必填 | 类型 | 描述 |
|---|---|---|---|
| communityId | 是 | String | 小区ID |
| feeId | 是 | String | 费用ID(需唯一标识待缴费项) |
| cycles | 是 | String | 缴费周期(单位:月,或特殊值-105表示自定义时间段) |
| receivedAmount | 是 | BigDecimal | 实收金额(单位:元,精确到分) |
| primeRate | 否 | String | 支付方式(如现金、微信、支付宝等) |
| custEndTime | 条件 | String | 自定义结束时间(当cycles=-105时必填,格式:yyyy-MM-dd HH:mm:ss) |
| customStartTime | 条件 | String | 自定义开始时间(当cycles=-105时必填) |
| selectDiscount | 否 | Array | 优惠信息(见下方子字段) |
| selectUserAccount | 否 | Array | 账户抵扣信息(见下方子字段) |
子字段说明:
selectDiscount(优惠信息): [{
"discountId": "优惠ID",
"discountPrice": "优惠金额",
"ardId": "空置房折扣申请ID(可选)"
}]
selectUserAccount(账户抵扣信息): [{
"acctId": "账户ID",
"amount": "抵扣金额"
}]
| 参数名称 | 类型 | 描述 |
|---|---|---|
| code | String | 返回码(0成功,其他失败) |
| msg | String | 返回消息(如失败原因) |
| data | Object | 缴费明细数据(见下方) |
data字段结构:
{
"detailId": "缴费明细ID",
"receiptCode": "收据编号",
"startTime": "费用开始时间",
"endTime": "费用结束时间",
"receivedAmount": "实收金额"
}
| 状态码 | 含义 | 可能原因 |
|---|---|---|
| 0 | 成功 | - |
| 1001 | 参数校验失败 | 必填字段缺失或格式错误 |
| 2001 | 费用已结束 | 该费用项已无法再缴费 |
| 3001 | 账户余额不足 | 抵扣金额大于账户余额 |
| 5001 | 系统异常 | 数据库操作失败或分布式锁冲突 |
POST /app/fee.payFee
Headers:
Authorization: Bearer xxxxxx
app-id: hc_micro_community
transaction-id: 100000000020240101120000000001
sign: xxxxxx
req-time: 20240101120000
Body:
{
"communityId": "123456789",
"feeId": "FEE_20240001",
"cycles": "12",
"receivedAmount": "3600.00",
"primeRate": "CASH",
"selectDiscount": [{
"discountId": "DISC_001",
"discountPrice": "200.00"
}],
"selectUserAccount": [{
"acctId": "ACCT_001",
"amount": "1000.00"
}]
}
{
"code": "0",
"msg": "成功",
"data": {
"detailId": "DETAIL_20240001",
"receiptCode": "RC20240001",
"startTime": "2024-01-01 00:00:00",
"endTime": "2025-01-01 23:59:59",
"receivedAmount": "3600.00"
}
}
校验阶段:
STATE_FINISH)。 核心操作:
PayFeeDetailPo)和更新费用时间(PayFeePo)。 accountInnerServiceSMOImpl.withholdAccount)。 cycles=-105),自动生成欠费记录。关联操作:
finishFeeNotifyImpl)。 DistributedLock)保证并发安全。 BigDecimal.ROUND_HALF_UP)。 yyyy-MM-dd HH:mm:ss格式。