账单管理API
1、修订记录
| 修订记录 | 日期 | 说明 |
|---|---|---|
| 1.0 | 2026.10.28 | 初版 |
2、业务说明
(1)接口说明
由物业公司向银盛同步物业缴费账单,用户通过微信生活缴费平台可查询房屋的待缴费账单
请求主体类型:application/json
请求方式:POST
3、请求地址
| 环境 | HTTPS请求地址 |
|---|---|
| 测试环境 | https://appdev.ysepay-test.com/openapi/lifepay/mp/server/bill/manage |
| 正式环境 | https://ysgate.ysepay.com/openapi/lifepay/mp/server/bill/manage |
4、请求参数说明
4.1、公共请求参数
| 参数 | 类型(长度) | 必填 | 参数说明 |
|---|---|---|---|
| timeStamp | String | Y | 发送请求的时间,格式"yyyy-MM-dd HH:mm:ss" |
| method | String(128) | Y | 接口名称,固定值:lifepay.mp.server.bill.manage |
| charset | String(10) | Y | 请求使用的编码格式,如utf-8,gbk,gb2312等,固定为utf-8 |
| sign | String | Y | 商户请求参数的签名串(签名算法默认为国密),详见demo,注意:请用商户私钥进行签名 |
| check | String | Y | 银盛公钥加密随机生成的字符串(key)得到的加密值,详见demo |
| bizContent | String | Y | 业务参数的集合,最大长度不限,除公共参数外所有请求参数都必须放在这个参数中传递。注意:需要通过AES以及随机生成的字符串(key)加密业务参数集合,得到bizContent |
| reqId | String | Y | 请求唯一流水号,商户系统唯一,要求32个字符内(最少14个字符),只能是数字、大小写字母_-且在同一个商户号下唯一。最后12位要求格式为"yyMMddHHmmss" 示例值:xy1415220315145602 |
| certId | String | Y | 发起方商户号,服务商在银盛给自己开设的商户号,即可当作发起方商户号,由银盛生成并下发。 注意:不同于子商户号,服务商发展的商户即为子商户号 |
| version | String | Y | 调用的接口版本,固定为:1.0 |
4.2、业务请求参数
(bizContent加密前的json数据明文字符串)
| 参数 | 类型(长度) | 必填 | 参数说明 |
|---|---|---|---|
| merchantNo | String(32) | Y | 商户号(微信生活缴费商户号,对应物业公司) |
| companyId | String | Y | 项目id,微信生活缴费项目id |
| billKey | String | Y | 户号,物业公司为每套楼房定义的唯一编号 |
| opType | String | Y | 变更类型:add/delete/edit/search |
| feeItems | Array | N | 一级费用项数组 |
| pageNo | int | N | 分页 |
| pageSize | int | N | 每页数量 |
| operatorPersonId | String | N | 操作人ID |
| operatorPersonName | String | N | 操作人姓名 |
| customerName | String | N | 客户姓名(账单业主姓名) |
| orderNo | String | N | 银盛支付流水号 |
| transactionId | String | N | 微信支付订单号 |
| payDate | String | N | 缴费单支付日期 YYYYMMDDHHMMSS |
| payAmount | int | N | 缴费金额 |
| userId | String | N | 用户ID |
| status | String | N | 订单状态 |
4.2.1 feeItems具体参数
| 参数 | 类型(长度) | 必填 | 参数说明 |
|---|---|---|---|
| feeCode | String | Y | 费用编号,物业公司业务系统定义的唯一编码,如删除操作只需上送费用编号,其他字段可为空 |
| feeCycle | String | N | 费用周期,格式为yyyy.MM.dd-yyyy.MM.dd |
| feeName | String | N | 费用名称,例如:10月份物业管理费 |
| feeAmount | int | N | 费用金额(分),单位:分 |
| children | Array | N | 二级费用(二级及以上),二级及以上费用 |
4.2.1.1 children具体参数
| 参数 | 类型(长度) | 必填 | 参数说明 |
|---|---|---|---|
| feeCode | String | N | 费用编号 |
| feeCycle | String | N | 费用周期,格式为yyyy.MM.dd-yyyy.MM.dd |
| feeName | String | N | 费用名称,例如:其他杂费 |
| feeAmount | int | N | 费用金额(分),单位:分 |
| children | Array | N | 三级费用(二级及以上),三级及以上费用 |
4.2.1.1.1 children具体参数
| 参数 | 类型(长度) | 必填 | 参数说明 |
|---|---|---|---|
| feeCode | String | N | 费用编号 |
| payMode | int | N | 缴费方式:1线上缴费 2线下缴费 |
| feeName | String | N | 费用名称,例如:垃圾处理费 |
| feeAmount | int | N | 费用金额(分),单位:分 |
5、响应参数说明
请注意:银盛后期会对返回参数保留扩展的权力,扩展方式为新增参数但不会删除参数,请商户在解析银盛返回参数时要支持银盛可能扩展参数这种情况。5.1、公共响应参数
| 参数 | 类型(长度) | 必填 | 参数说明 |
|---|---|---|---|
| code | String(5) | Y | 网关响应码,示例值:00000 ,详见网关公共响应码 |
| msg | String(50) | Y | 网关响应码描述 |
| subCode | String | Y | 业务响应码,参见具体的API接口文档 |
| subMsg | String | Y | 业务响应描述 |
| timeStamp | String | Y | 响应时间,格式"yyyy-MM-dd HH:mm:ss" |
| norce | String(128) | Y | 随机参数 |
| sign | String | Y | 响应参数的签名串,详见demo, 注意:请用银盛公钥进行验签 |
| businessData | String | Y | 业务响应参数集合, 注意:银盛网关通过AES加密业务响应参数集合,得到businessData,商户需要对其进行解密,详情请见demo |
5.2、业务响应参数
响应业务参数businessData(json数据)
| 参数 | 类型(长度) | 必填 | 参数说明 |
|---|---|---|---|
| businessData | Object | N | 响应数据 |
| reqMsgId | String | N | 请求流水号 |
5.2.1 businessData具体参数
| 参数 | 类型(长度) | 必填 | 参数说明 |
|---|---|---|---|
| retCode | String(1) | Y | 业务响应码,0 成功 1 失败 |
| errMsg | String | N | 错误描述 |
| dataList | Array | N | 分页数据,当opType等于search时,查询成功会返回 |
5.2.1.1 dataList具体参数
| 参数 | 类型(长度) | 必填 | 参数说明 |
|---|---|---|---|
| billNo | String | N | 银盛账单号 |
| billKey | String | N | 户号 |
| feeCycle | String | N | 账单周期 |
| feeCode | String | N | 一级费用编号 |
| feeName | String | N | 费用名称 |
| feeAmount | String(单位:分) | N | 费用金额 |
| billStatus | String | N | 账单缴费状态,0-未缴费 1-已缴费 2-已作废 3-已退款 4-缴费失败 |
| customerName | String | N | 账单业主姓名 |
| feeDetailJson | String | N | 二级及以上多级费用明细树 |
6、业务响应码 网关公共响应码
| 响应码 | 响应码描述 | 解决方案 |
|---|---|---|
| 0 | 0是成功,其它都是失败 | 当subCode返回等于0才是系统调用成功,系统调用成功不代表业务调用成功,业务调用成功需要判断businessData.retCode。 |