第三章 模块接口(3) - 结算管理
>d 接口调用细节流程:
◆ 参数RSA加密[接口签名,加解密说明](https://easydoc.top/doc/92150138/ZSNp8hjw/FVjvrnys)
◆ 将加密结果以及公共参数拼接成新的字符串通过MD5加密生成签名
◆ 将公共参数以及签名通过header传输,参数加密结果通过body传输,发起http请求
◆ 返回结果解密[接口签名,加解密说明](https://easydoc.top/doc/92150138/ZSNp8hjw/FVjvrnys)
## 接口响应参数都为如下固定json格式
|参数名称|参数含义|数据类型|是否必有|参数备注|
|-|-|-|-|-|
|resopnseType| 返回类型|int|是|无需关注此值|
|errorCode|错误码 |String|是|详情参考[系统错误码](https://easydoc.top/doc/92150138/ZSNp8hjw/BoPRc3hR)|
|errorMessage| 错误信息|String|是|详情参考[系统错误码](https://easydoc.top/doc/92150138/ZSNp8hjw/BoPRc3hR)|
|status|状态码|int|是|详情参考[系统错误码](https://easydoc.top/doc/92150138/ZSNp8hjw/BoPRc3hR)|
|success|是否成功|boolean|是|true:成功 false:失败|
|data|返回结果数据|String|否|只有当success为true才会有该值,该值为RSA加密值,需解密使用,解密规则请看[接口签名,加解密说明](https://easydoc.top/doc/92150138/ZSNp8hjw/FVjvrnys)|
## 结算管理接口时序图

## <a id="2.1.提交订单">2.1.结算订单申请</a>
开发环境:https://pay-dev.lx-rhino.com
生产环境:https://api.lx-rhino.com
#### 接口地址:
/open/api/v1/yns/bill/submit
#### 请求方式:POST
#### 请求参数说明:
|参数名称|参数含义|数据类型|是否必填|参数备注|
|-|-|-|-|-|
|payeeName|收款人姓名|String|是||
|payeeAccount|收款账户|String|是||
|payeeIdCard|收款人身份证号码|String|是||
|amount |收款金额|String|是|收款金额必须为数字|
|payeePhone|收款人手机号|String|否|该参数用于用户接收到款短信|
|thirdOrderId|商户订单号|String|是|商户自己生成,不可重复提交|
|thirdBizOrderId|第三方业务订单ID|String|否|该参数为商户自己的业务订单号,通过该订单号能够查询该笔金额来源明细|
|wxAppId|微信appId|String|否|仅限微信结算,1.非必填 2.传入的微信的AppId与个人的OpenId需要一一对应;3. 不传默认取商户配置AppId|
|payType|支付类型|Integer|否|支付类型该参数值填写支付类型对应数字即可 0:银行卡 1. 支付宝 2.微信(微信对应个人的openID) |
|mainstayId|主体ID|Integer|是|该参数由[3.1公司主体、开票信息查询](https://easydoc.top/doc/92150138/ZSNp8hjw/GWI54F3V)|
|invoiceCode|发票编码|String|是|该参数由[3.1公司主体、开票信息查询](https://easydoc.top/doc/92150138/ZSNp8hjw/GWI54F3V)|
|remark|备注|String|否|备注字数不可超过32个字符|
|transName|转账附言|String|否|备注字数不可超过20个字符|
#### 注意:
转账附言字段:如需要配置请联系相关商务人员申请配置;
#### 接口响应参数data字段解密后的参数说明:
|参数名称| 参数含义| 数据类型| 是否必有| 参数备注|
|-|-|-|-|-|
|billNo| 订单号|String|是||
|billStatus| 发放平台订单状态|Integer|[2.结算结果码对照表](https://easydoc.top/doc/92150138/ZSNp8hjw/BoPRc3hR)||
|actualAmount| 结算金额(实际个人所得额)|BigDecimal|是||
|contractTaxAmount|服务费(合同税费)|BigDecimal|是||
|failReason|失败原因|String|否||
## <a id="2.2.确认发放">2.2.确认结算</a>
开发环境:https://pay-dev.lx-rhino.com
生产环境:https://api.lx-rhino.com
#### 接口地址:
/open/api/v1/yns/bill/sureGrant
#### 请求方式:POST
#### 请求参数说明:
|参数名称|参数含义|数据类型|是否必填|参数备注|
|-|-|-|-|-|
|billNo|订单号|String|是|该值由提交订单接口返回|
|settlementCertUrl|结算证明|String|否||
>d注意:
>settlementCertUrl(结算证明):是根据商户后台配置判断的
>众包模式:默认是不需要上传结算证明的
#### 接口响应参数data字段解密后的参数说明:
|参数名称| 参数含义|数据类型| 是否必有| 参数备注|
|-|-|-|-|-|
|billNo|订单号|String|是| ||
|thirdOrderNo|第三方订单号|String| 是|生成订单接口的thirdOrderId字段的值|
|status|发放结果状态|Integer| 是|详情请参考[2.结算结果码对照表](https://easydoc.top/doc/92150138/ZSNp8hjw/BoPRc3hR)|
|failReason|失败原因|String|否| ||
## <a id="2.3.取消订单">2.3.取消申请结算订单</a>
开发环境:https://pay-dev.lx-rhino.com
生产环境:https://api.lx-rhino.com
#### 接口地址:
/open/api/v1/yns/bill/cancel
#### 请求方式:POST
#### 请求参数说明:
|参数名称|参数含义|数据类型|是否必填|参数备注|
|-|-|-|-|-|
|billNo|订单号|String|是|该值由提交订单接口返回|
|reason|取消原因|String|否||
#### 接口响应参数data字段解密后的参数说明:
>d该接口返回结果data解密后为boolean。
## <a id="2.4.发放结果查询接口">2.4.结算结果查询</a>
开发环境:https://pay-dev.lx-rhino.com
生产环境:https://api.lx-rhino.com
#### 接口地址:
/open/api/v1/yns/bill/queryResult
#### 请求方式:POST
#### 请求参数说明:
|参数名称|参数含义|数据类型|是否必填|参数备注|
|-|-|-|-|-|
|thirdOrderNos|需要查询的商户订单号|List<String>|是|最大长度10
#### 接口响应参数data字段解密后的参数说明:
|参数名称| 参数含义|数据类型| 是否必有| 参数备注|
|-|-|-|-|-|
|thirdOrderNo|商户订单号|String|是||
|status|结果状态|Integer|是|详情请参考[2.结算结果订单码对照表](https://easydoc.top/doc/92150138/ZSNp8hjw/BoPRc3hR)|
|reason|失败原因|String|否|支付失败才会有该值|
>d该发放结果data解密后为List 集合json字符串。
结果示例
[{"thirdOrderNo":"xxx","status":"xx","reason":"xxxx"},
{"thirdOrderNo":"xxx","status":"xx","reason":"xxxx"}]
## 2.5.发放成功异步回调
>d 该接口需要第三方自行编写提供接口到发放平台回调成功必须返回success不然会重复回调
接口编写示例 [1.4充值回调接口](https://easydoc.top/doc/92150138/ZSNp8hjw/bo20JmTw)跟说明一致
#### 请求方式:POST
解密结果示例如下:
```json
{"itemStatus":"2","amount":"12.01","thirdOrderNo":"xxxxx","paymentTime":"2019-07-05 23:41:45","returnMsg":"xxxxx"}";
```
|参数名称| 参数含义| 是否必有| 参数备注|
|-|-|-|-|
|itemStatus| 订单状态| 是|详情请参考[发放结果状态码](https://easydoc.top/doc/92150138/ZSNp8hjw/BoPRc3hR)|
|amount| 结算的金额| 是|实际发放结算的金额|
|thirdOrderNo| 结算订单号| 是||
|paymentTime| 结算时间| 是||
|returnMsg| 失败原因| 是|返回异常失败原因|