1.余额接口文档
### <a id="1.1.充值余额">1.1.充值余额</a>
开发环境:https://pay-dev.lx-rhino.com
生产环境:https://api.lx-rhino.com
#### 接口地址:
/open/api/v1/yns/balance/recharge
#### 请求方式:POST
#### 请求参数说明:
|参数名称|参数含义|数据类型|是否必填|参数备注|
|-|-|-|-|-|
|mainstayId|主体ID|Integer|是||
|amount|充值金额|BigDecimal|是||
|bankVoucherFile|充值银行回执单|String|是|该参数为通过[4.1.上传文件接口](#4.1.上传文件接口)将文件上传后返回的值,最长640字符|
|remarks|备注|String|否|最长640字符|
|thirdRechargeNo|第三方充值单号|String|是|最长32字符|
#### 接口响应参数data字段解密后的参数说明:
|参数名称| 参数含义|数据类型| 是否必有| 参数备注|
|-|-|-|-|-|
|thirdRechargeNo| 第三方充值单号| String|是||
|entryAmount| 打款金额|BigDecimal|是||
|rechargeAmount| 实际充值到账金额(扣除合同税费)|BigDecimal|是| ||
|contractTaxRate| 合同税率|BigDecimal|是| ||
|contractTaxAmount| 合同税费|BigDecimal|是| ||
## <a id="1.2.余额查询">1.2.余额查询</a>
开发环境:https://pay-dev.lx-rhino.com
生产环境:https://api.lx-rhino.com
#### 接口地址:
/open/api/v1/yns/balance/query
#### 请求方式:POST
#### 请求参数说明:
|参数名称|参数含义|数据类型|是否必填|参数备注|
|-|-|-|-|-|
|mainstayId|主体ID|Integer|否|默认查询所有主体|
|payType|支付类型|Integer|否|默认查询所有支付类型|
#### 接口响应参数data字段解密后的参数说明:
|参数名称| 参数含义|数据类型| 是否必有| 参数备注|
|-|-|-|-|-|
|mainstayId|主体ID| Integer|是||
|mainstayName|主体名|String|是||
|totalBalance|主体总余额|BigDecimal|是| ||
|companyBalanceItems|主体支付类型列表|Array|是| ||
|balance|支付类型余额|BigDecimal|是| ||
|name|支付类型名称|String|是| ||
|payType|支付类型编码|Integer|是| ||
解密结果示例如下:
```json
[
{
"companyBalanceItems": [
{
"balance": 1115.39,
"name": "银行卡账户",
"payType": 0
},
{
"balance": 615.39,
"name": "支付宝账户",
"payType": 1
},
{
"balance": 0.00,
"name": "微信账户",
"payType": 2
}
],
"mainstayId": 1,
"mainstayName": "安吉",
"totalBalance": 1730.78
}
]
```
## 1.3.充值成功异步回调
#### 请求方式:POST
>d 该接口需要第三方自行编写提供接口到发放平台回调成功必须返回success不然会重复回调
>d 该接口需要第三方自行编写提供接口到发放平台 接口编写示例如下。
```java
@PostMapping("signCallBack")
@ResponseBody
public String signCallBack(HttpServletRequest request, @RequestBody String data){
String publicKey = "该公钥由发放平台提供发放到贵司邮箱";
//解密
String decode = RSAHelper.decryptByPublicKey(data, publicKey);
/*贵公司处理业务逻辑*/
return "success";
}
```
解密工具类在 [JAVA_DEMO](https://gitee.com/xinfudblog/lxapi_java_demo) 的 RSAHelper 类中
>d 贵司写完后提供到接口url给发放平台即可。回调成功需返回success,不然回重复回调,至多重试5次
postman中模拟接口是否正常接收数据如下操作

解密结果示例如下:
```json
{"auditStatus":"2","rechargeAmount":"12.01","thirdRechargeNo":"xxxxx","entryTime":"2019-07-05 23:41:45","entryAmount":"12.01","contractTaxAmount":"12.01","contractTaxRate":"12.01"}";
```
|参数名称| 参数含义| 数据类型|是否必有| 参数备注|
|-|-|-|-|-|
|auditStatus| 充值审核状态|int| 是||
|rechargeAmount| 充值金额|BigDecimal| 是||
|thirdRechargeNo| 第三方充值单号|String| 是||
|entryTime| 充值时间 |String| 是||
|entryAmount| 入账金额|BigDecimal| 是||
|contractTaxAmount| 合同税费|BigDecimal| 是||
|contractTaxRate| 合同税率|BigDecimal| 是||
### <a id="1.4.充值余额">1.4.提现申请</a>
开发环境:https://pay-dev.lx-rhino.com
生产环境:https://api.lx-rhino.com
#### 接口地址:
/open/api/v1/yns/balance/withdraw
#### 请求方式:POST
#### 请求参数说明:
|参数名称|参数含义|数据类型|是否必填|参数备注|
|-|-|-|-|-|
|mainstayId|主体ID|Integer|是| 1-安吉 2-长兴 3-乐清|
|amount|提现金额|BigDecimal|是|两位小数|
|bankNo|收款账号|String|是|最长256字符|
|accountName|账户名称|String|是|最长256字符|
|bankName|开户行|String|是|最长256字符|
|payType|账号类型|Integer|是|0-银行卡 1-支付宝 2-微信|
|thirdOrderNo|第三方提现单号|String|是|最长32字符|
|remark|备注|String|否|最长256字符|
#### 接口响应参数data字段解密后的参数说明:
|参数名称| 参数含义|数据类型| 是否必有| 参数备注|
|-|-|-|-|-|
|thirdOrderNo| 第三方提现单号| String|是||
|amount| 提现金额|BigDecimal|是||
|realAmount| 到账金额|BigDecimal|是| ||
|status| 状态|Integer|是| -100-待审核 1-提现成功 -1-提现失败||
## 1.5.提现成功&失败异步回调
#### 请求方式:POST
>d 该接口需要第三方自行编写提供接口到发放平台回调成功必须返回success不然会重复回调
>d 该接口需要第三方自行编写提供接口到发放平台 接口编写示例如下。
```java
@PostMapping("withdrawCallBack")
@ResponseBody
public String signCallBack(HttpServletRequest request, @RequestBody String data){
String publicKey = "该公钥由发放平台提供发放到贵司邮箱";
//解密
String decode = RSAHelper.decryptByPublicKey(data, publicKey);
/*贵公司处理业务逻辑*/
return "success";
}
```
解密工具类在 [JAVA_DEMO](https://gitee.com/xinfudblog/lxapi_java_demo) 的 RSAHelper 类中
>d 贵司写完后提供到接口url给发放平台即可。回调成功需返回success,不然回重复回调,至多重试5次
postman中模拟接口是否正常接收数据如下操作

#### 接口响应参数data字段解密后的参数说明:
|参数名称| 参数含义| 数据类型|是否必有| 参数备注|
|-|-|-|-|-|
|thirdOrderNo| 第三方提现单号| String|是||
|amount| 提现金额|BigDecimal|是||
|realAmount| 到账金额|BigDecimal|是| ||
|status| 状态|Integer|是| -100-待审核 1-提现成功 -1-提现失败||
|returnMsg| 提现失败原因| String|否|提现失败时有|
|url| 打款凭证url| String|否||
|payType|账号类型|Integer|是|0-银行卡 1-支付宝 2-微信|
|mainstayId|主体ID|Integer|是| 1-安吉 2-长兴 3-乐清|
### <a id="1.6.提现记录查询">1.6.提现记录查询</a>
开发环境:https://pay-dev.lx-rhino.com
生产环境:https://api.lx-rhino.com
#### 接口地址:
/open/api/v1/yns/balance/withdraw/query
#### 请求方式:POST
#### 请求参数说明:
|参数名称|参数含义|数据类型|是否必填|参数备注|
|-|-|-|-|-|
|thirdOrderNo|第三方提现单号|String|是|最长32字符|
#### 接口响应参数data字段解密后的参数说明:
|参数名称| 参数含义|数据类型| 是否必有| 参数备注|
|-|-|-|-|-|
|thirdOrderNo| 第三方提现单号| String|是||
|amount| 提现金额|BigDecimal|是||
|realAmount| 到账金额|BigDecimal|是| ||
|status| 状态|Integer|是| -100-待审核 1-提现成功 -1-提现失败||
|returnMsg| 提现失败原因| String|否|提现失败时有|
|url| 打款凭证url| String|否||
|payType|账号类型|Integer|是|0-银行卡 1-支付宝 2-微信|
|mainstayId|主体ID|Integer|是| 1-安吉 2-长兴 3-乐清|