first commit

This commit is contained in:
2021-10-08 15:39:59 +08:00
commit 5e01f94bcb
11 changed files with 1315 additions and 0 deletions
+799
View File
@@ -0,0 +1,799 @@
<img style="text-align:right" src="http://www.murongtech.com/uploadfile/2019/0621/20190621060058441.png" width="200px" />
# 易才代收付API
**修订记录**
版本号 | 更新日期 | 更新人 | 更新内容
--- | --- | --- | ---
v2.0 | 2021-10-08 | 赵磊 | 增加二期接口
v1.2 | 2021-04-02 | 赵磊 | 送盘文件增加银行代号、联行号字段
v1.1 | 2021-02-26 | 赵磊 | 退票接口增加transStsMsg
v1.0 | 2021-02-03 | 赵磊 | 修改acctType枚举值
v0.9 | 2021-02-02 | 赵磊 | transStsSync增加原状态
v0.8 | 2021-01-29 | 赵磊 | applyDisk增加HRO批次名称&增加对账信息查询
v0.7 | 2021-01-18 | 赵磊 | 增加对账接口
v0.6 | 2021-01-14 | 赵磊 | 明确交易状态;增加批次失败信息;调整附言位置;
v0.5 | 2021-01-13 | 赵磊 | diskResult/diskNotify增加diskMessage;增加账户类型
v0.4 | 2021-01-12 | 赵磊 | refundQuery增加页码、总页数、当前页码
v0.3 | 2021-01-11 | 赵磊 | titleSync去除费项代码,增加账户类型
v0.2 | 2021-01-11 | 赵磊 | 支付地增加代付默认配置
v0.1 | 2020-12-29 | 赵磊 | 初稿
[TOC]
## 接口设计
### 报文头
报文头格式为:“\<head>报文头内容\</head>”,内容结构详见接口设计部分公共报文头
### 报文体
报文体主要用于传输业务数据信息,格式为:“\<body>报文体内容\</body>”
### 通讯
Protocol:HTTP
Method:POST
Content-Type:application/xml;charset=utf-8
### 签名
将HTTP Body中的数据流用MD5进行签名,将签名结果与密钥拼接生成签名串,再使用SHA256对签名串进行哈希,结果放在HTTP Request Header中,Key为Signature
```java
String contentMD5 = byteArrayToHexString(MD5(bodyStream.getBytes("UTF-8")));
String signature = Base64.encode(SHA256((contentMD5 + secretKey).getBytes("UTF-8")));
```
bodyStream 为字节数组
### 报文格式
- 请求
```xml
<root>
<!--报文头-->
<head>
<version>v1.0</version> <!--接口版本-->
<serviceName>diskApply</serviceName> <!--服务名-->
<requestId>20210104000000000001</requestId> <!--请求ID-->
<requestTime>20200104235959</requestTime> <!--请求时间-->
</head>
<!--报文体-->
<body>
<applyDate>20201229</applyDate> <!--送盘日期-->
<diskNo>20201229000000000000000000000001</diskNo> <!--磁盘编号-->
<filePath>00001</filePath> <!--文件名-->
<fileVersion>v1</fileVersion> <!--文件版本-->
<customerId>OHJEMIA1EINGUGAH0AITHOHNUEYAHWOO</customerId> <!--客户ID-->
<titleId>1000001</titleId> <!--支付地抬头ID-->
<md5>c5950a259435d3e51262539a10a22910</md5> <!--磁盘MD5值-->
</body>
</root>
```
- 返回
```xml
<root>
<!--报文头-->
<head>
<respCode>000000</respCode> <!--返回吗-->
<respMessage>交易成功</respMessage> <!--返回信息-->
<respTime>20210104235959</respTime> <!--返回时间-->
</head>
</root>
```
## 接口清单
序号 | 服务名 | 描述 | 报文方向 | 是否签名
:---: | --- | -- | :----: | :----:
1 | diskApply | 批量代付申请 | HRO -> 沐融代付 | Y
2 | diskResult | 批量代付结果查询 | HRO -> 沐融代付 | Y
3 | diskNotify | 批次终态通知 | 沐融代付 -> HRO | Y
4 | refundQuery | 退票查询 | HRO -> 沐融代付 | Y
5 | customerSync | 客户信息同步 | HRO -> 沐融代付 | Y
6 | titleSync | 支付地账户信息同步 | HRO -> 沐融代付 | Y
7 | transStsSync | 业务状态同步 | HRO -> 沐融代付 | Y
8 | cardInfoQuery | 卡信息查询 | HRO -> 沐融代付 | Y
9 | reconciliationQuery | 对账信息查询 | HRO -> 沐融代付 | Y
### 接口约束性说明
符号 | 含义 | 描述
--- | --- | ---
M | Mandatory | 强制的
O | Optional | 可选的
C | Conditional | 满足条件后必选
### 公共请求/响应头
- 请求
字段名称 | 类型 | 必输 | 描述 | 备注
--- | --- | :----: | ---- | ---
version | VARCHAR(10) | M | 接口版本 | v1.0
serviceName | VARCHAR(50) | M | 服务名 | eg. diskApply
requestId | VARCHAR(48) | M | 请求ID | 全局唯一
requestTime | VARCHAR(14) | M | 请求时间 | eg. 20210104120000
- 返回
字段名称 | 类型 | 必输 | 描述 | 备注
--- | --- | :----: | ---- | ---
requestId | VARCHAR(48) | M | 请求ID | 全局唯一
respCode | VARCHAR(8) | M | 返回码 | 详见 [响应码](#响应码) 的定义
respMessage | VARCHAR(100) | M | 返回信息 |
respTime | VARCHAR(14) | M | 服务器时间 |
### diskApply [批量代付申请]
- 请求
字段名称 | 类型 | 必输 | 描述 | 备注
--- | --- | :----: | ---- | ---
applyDate | VARCHAR(8) | M | 送盘日期 | eg. 20201229
diskNo | VARCHAR(48) | M | 磁盘编号 | eg. 20201229000000000000000000000001
diskDesc | VARCHAR(100) | M | 磁盘名称 | eg. XX客户2021-01-29代发工资
filePath | VARCHAR(100) | M | 文件名/FID | eg. 00001
fileVersion | VARCHAR(8) | O | 文件版本 | eg. v1 默认v1
customerId | VARCHAR(48) | M | 客户编号 | eg. OHJEMIA1EINGUGAH0AITHOHNUEYAHWOO
titleId | VARCHAR(48) | M | 支付地抬头ID | eg. 1000001
md5 | VARCHAR(32) | M | 磁盘MD5值 | eg. c5950a259435d3e51262539a10a22910
- 返回
字段名称 | 类型 | 必输 | 描述 | 备注
--- | --- | :----: | ---- | ---
[公共返回头] | | | | 详见[公共请求/响应头]
### diskResult [批量代付结果查询]
- 请求
字段名称 | 类型 | 必输 | 描述 | 备注
--- | --- | :----: | ---- | ---
applyDate | VARCHAR(8) | M | 送盘日期 | eg. 20201229
diskNo | VARCHAR(48) | M | 磁盘名称 | eg. 20201229000000000000000000000001
- 返回
字段名称 | 类型 | 必输 | 描述 | 备注
--- | --- | :----: | ---- | ---
diskSts | VARCHAR(1) | M | 批次状态 | 1:已接收完成 2: 批次处理中 3: 批次处理完成 4: 批次处理失败
diskMessage | VARCHAR(100) | M | 批次结果信息 |
lastDate | VARCHAR(8) | M | 最后更新日期 |
lastTime | VARCHAR(6) | M | 最后更新时间 |
totalCount | VARCHAR(8) | M | 总笔数 |
totalAmount | VARCHAR(18) | M | 总金额 |
succCount | VARCHAR(8) | M | 成功笔数 |
succAmount | VARCHAR(18) | M | 成功金额 |
failCount | VARCHAR(8) | M | 失败笔数 |
failAmount | VARCHAR(18) | M | 失败金额 |
filePath | VARCHAR(100) | M | 文件路径/FID | eg. 00001
md5 | VARCHAR(32) | M | 磁盘MD5值 | eg. c5950a259435d3e51262539a10a22910
### diskNotify [批次终态通知]
> 批次完成后通知HRO系统
- 请求
字段名称 | 类型 | 必输 | 描述 | 备注
--- | --- | :----: | ---- | ---
diskNo | VARCHAR(48) | M | 磁盘名称 |
diskSts | VARCHAR(1) | M | 批次状态 | 1:已接收完成 2: 批次处理中 3: 批次处理完成 4: 批次处理失败
diskMessage | VARCHAR(100) | M | 批次结果信息 |
lastDate | VARCHAR(8) | M | 最后更新日期 |
lastTime | VARCHAR(6) | M | 最后更新时间 |
totalCount | VARCHAR(8) | M | 总笔数 |
totalAmount | VARCHAR(18) | M | 总金额 |
succCount | VARCHAR(8) | M | 成功笔数 |
succAmount | VARCHAR(18) | M | 成功金额 |
failCount | VARCHAR(8) | M | 失败笔数 |
failAmount | VARCHAR(18) | M | 失败金额 |
filePath | VARCHAR(100) | M | 文件路径/FID | eg. 000001
md5 | VARCHAR(32) | M | 磁盘MD5值 | eg. c5950a259435d3e51262539a10a22910
- 返回
字段名称 | 类型 | 必输 | 描述 | 备注
--- | --- | :----: | ---- | ---
[公共返回头] | | | | 详见[公共请求/响应头]
### refundQuery [退票查询]
- 请求
字段名称 | 类型 | 必输 | 描述 | 备注
--- | --- | :----: | ---- | ---
startDate | VARCHAR(8) | M | 开始日期 |
endDate | VARCHAR(8) | M | 结束日期 |
offset | VARCHAR(8) | M | 当前页码 |
limit | VARCHAR(8) | M | 每页记录数 |
- 返回
字段名称 | 类型 | 必输 | 描述 | 备注
--- | --- | :----: | ---- | ---
total | VARCHAR(8) | M | 总页码 |
offset | VARCHAR(8) | M | 当前页码 |
limit | VARCHAR(8) | M | 每页记录数 |
rec | LIST | | 循环节点 |
diskNo | VARCHAR(48) | M | 磁盘编号 |
transId | VARCHAR(48) | M | 业务平台流水号 | 沐融交易流水号
refId | VARCHAR(48) | M | 参考号 | HRO明细流水号
bankRefId | VARCHAR(48) | M | 银行流水号 |
acctNo | VARCHAR(48) | M | 账号 | 卡号、存折号
acctName | VARCHAR(150) | M | 姓名 |
transDate | VARCHAR(14) | M | 交易日期 |
transSts | VARCHAR(1) | M | 交易状态 | 视银行返回结果定
transStsMsg | VARCHAR(100) | M | 交易状态信息 | 视银行返回结果定
amount | VARCHAR(18) | M | 金额 | 分为单位
refundCode | VARCHAR(5) | M | 退票代码 |
refundPs | VARCHAR(100) | M | 退票附言 |
payerAcctNo | VARCHAR(48) | M | 出款账号 |
payerAcctName | VARCHAR(100) | M | 出款户名 |
remark | VARCHAR(100) | M | 备注 |
### customerSync [客户信息同步]
- 请求
字段名称 | 类型 | 必输 | 描述 | 备注
--- | --- | :----: | ---- | ---
customerId | VARCHAR(48) | M | 客户ID |
customerName | VARCHAR(100) | M | 客户名称 |
customerCode | VARCHAR(48) | M | 客户编号 |
rank | VARCHAR(100) | M | 等级 | 数字1~3,数字越大代表等级越高
enabled | VARCHAR(1) | M | 是否启用 | Y:启用 N:停用
- 返回
字段名称 | 类型 | 必输 | 描述 | 备注
--- | --- | :----: | ---- | ---
[公共返回头] | | | | 详见[公共请求/响应头]
### titleSync [支付地账户同步]
- 请求
字段名称 | 类型 | 必输 | 描述 | 备注
--- | --- | :----: | ---- | ---
titleId | VARCHAR(48) | M | 支付地抬头ID |
titleName | VARCHAR(100) | M | 支付地抬头名称 |
bankCode | VARCHAR(20) | M | 银行代码 | 详见 [银行代码](#银行代码)
brNo | VARCHAR(20) | M | 开户行所在分行号 | 详见 [分行号](#分行号)
acctType | VARCHAR(1) | M | 账户类型 | B:基本户 N:一般户
acctNo | VARCHAR(30) | M | 账号 |
acctName | VARCHAR(100) | M | 户名 |
enabled | VARCHAR(1) | M | 是否启用 | Y:启用 N:停用
- 返回
字段名称 | 类型 | 必输 | 描述 | 备注
--- | --- | :----: | ---- | ---
[公共返回头] | | | | 详见[公共请求/响应头]
### transStsSync [业务状态同步]
- 请求
字段名称 | 类型 | 必输 | 描述 | 备注
--- | --- | :----: | ---- | ---
applyDate | VARCHAR(8) | M | 原订单申请日期 |
refId | VARCHAR(48) | M | 参考号 | HRO明细流水号
oriTransSts | VARCHAR(1) | M | 原交易状态 | S:成功 F:失败 R:已退票
transSts | VARCHAR(1) | M | 交易状态 | S:成功 F:失败 R:已退票
remark | VARCHAR(100) | O | 备注 | 此处可填修改状态的具体原因
- 返回
字段名称 | 类型 | 必输 | 描述 | 备注
--- | --- | :----: | ---- | ---
[公共返回头] | | | | 详见[公共请求/响应头]
### cardInfoQuery [卡信息查询]
- 请求
字段名称 | 类型 | 必输 | 描述 | 备注
--- | --- | :----: | ---- | ---
cardNo | VARCHAR(32) | M | 卡号 |
- 返回
字段名称 | 类型 | 必输 | 描述 | 备注
--- | --- | :----: | ---- | ---
bankType | VARCHAR(4) | M | 银行类型 | 详见 [银行代码](#银行代码)
cardType | VARCHAR(2) | M | 卡类型 |
cardName | VARCHAR(100) | M | 卡名称 |
### reconciliationQuery [对账信息查询]
- 请求
字段名称 | 类型 | 必输 | 描述 | 备注
--- | --- | :----: | ---- | ---
date | VARCHAR(8) | M | 对账日期 |
- 返回
字段名称 | 类型 | 必输 | 描述 | 备注
--- | --- | :----: | ---- | ---
filePath | VARCHAR(100) | M | 文件路径/FID |
totalCount | VARCHAR(8) | M | 总笔数 |
totalAmount | VARCHAR(18) | M | 总金额 | 分为单位
succCount | VARCHAR(8) | M | 成功笔数 |
succAmount | VARCHAR(18) | M | 成功金额 | 分为单位
failCount | VARCHAR(8) | M | 失败笔数 |
failAmount | VARCHAR(18) | M | 失败金额 | 分为单位
md5 | VARCHAR(32) | M | 磁盘MD5值 | eg. c5950a259435d3e51262539a10a22910
## 文件格式
> 文件分两部分:首行汇总信息 + 循环明细行
> 文件中各栏位采用分隔符**##**来分隔
### 送盘
- 首行
字段名称 | 类型 | 必输 | 描述 | 备注
--- | --- | :----: | ---- | ---
totalCount | VARCHAR(8) | M | 总笔数 |
totalAmount | VARCHAR(18) | M | 总金额 | 分为单位
titleId | VARCHAR(48) | M | 支付地抬头ID |
customerId | VARCHAR(48) | M | 客户ID |
postscript | VARCHAR(100) | M | 银行附言 |
- 循环体
字段名称 | 类型 | 必输 | 描述 | 备注
--- | --- | :----: | ---- | ---
acctNo | VARCHAR(48) | M | 账号 | 卡号、存折号
acctName | VARCHAR(150) | M | 姓名 |
refId | VARCHAR(48) | M | 参考号 | HRO明细流水号
amount | VARCHAR(18) | M | 金额 | 分为单位
bankCode | VARCHAR(20) | C | 开户银行代号 | 详见 [银行代码](#银行代码)
bankCity | VARCHAR(100) | C | 开户行所在城市 | 存折与大小额时必输
bankName | VARCHAR(100) | C | 开户银行网点 | 存折与大小额时必输
bankNo | VARCHAR(14) | C | 联行号 | 开户行联行号(预留)
remark | VARCHAR(100) | O | 备注 |
### 回盘
- 首行
字段名称 | 类型 | 必输 | 描述 | 备注
--- | --- | :----: | ---- | ---
totalCount | VARCHAR(8) | M | 总笔数 |
totalAmount | VARCHAR(18) | M | 总金额 | 分为单位
succCount | VARCHAR(8) | M | 成功笔数 |
succAmount | VARCHAR(18) | M | 成功金额 | 分为单位
failCount | VARCHAR(8) | M | 失败笔数 |
failAmount | VARCHAR(18) | M | 失败金额 | 分为单位
titleId | VARCHAR(48) | M | 支付地抬头ID |
customerId | VARCHAR(48) | M | 客户ID |
- 循环体
字段名称 | 类型 | 必输 | 描述 | 备注
--- | --- | :----: | ---- | ---
applyDate | VARCHAR(8) | M | 申请日期 |
lastTime | VARCHAR(14) | M | 最后更新时间 | eg. 20210111
acctType | VARCHAR(2) | M | 账号类型 | 00:借记卡 01:贷记卡 02:准贷记卡 03:预付费卡
acctNo | VARCHAR(48) | M | 账号 | 卡号、存折号
acctName | VARCHAR(150) | M | 姓名 |
transId | VARCHAR(48) | M | 业务平台流水号 | 沐融交易流水号
refId | VARCHAR(48) | M | 参考号 | HRO明细流水号
bankRefId | VARCHAR(48) | M | 银行流水号 |
amount | VARCHAR(18) | M | 金额 | 分为单位
bankName | VARCHAR(50) | O | 银行名称 |
postscript | VARCHAR(100) | O | 银行附言 |
payerAcctNo | VARCHAR(48) | M | 出款账号 |
payerAcctName | VARCHAR(100) | M | 出款户名 |
orgNo | VARCHAR(100) | O | 合作机构编号 | 详见 [银行代码](#银行代码)
remark | VARCHAR(100) | M | 备注 |
transSts | VARCHAR(1) | M | 明细状态 | S:成功 F:失败
transMessage | VARCHAR(100) | M | 业务信息 | 当transSts = F时该字段返回错误信息
### 对账
- 循环体
字段名称 | 类型 | 必输 | 描述 | 备注
--- | --- | :----: | ---- | ---
applyDate | VARCHAR(8) | M | 申请日期 |
transId | VARCHAR(48) | M | 业务平台流水号 | 沐融交易流水号
refId | VARCHAR(48) | M | 参考号 | HRO明细流水号
bankRefId | VARCHAR(48) | M | 银行流水号 |
payerAcctNo | VARCHAR(48) | M | 出款账号 |
payerAcctName | VARCHAR(100) | M | 出款户名 |
acctNo | VARCHAR(48) | M | 账号 | 卡号、存折号
acctName | VARCHAR(150) | M | 姓名 |
amount | VARCHAR(18) | M | 金额 | 分为单位
orgNo | VARCHAR(100) | O | 合作机构编号 | 详见 [银行代码](#银行代码)
transSts | VARCHAR(1) | M | 明细状态 | S:成功 P:处理中
transMessage | VARCHAR(100) | M | 业务信息 |
## 附录
### 响应码
应答码(respCode) | 描述(respMessage)
--- | ---
00 | 操作成功
01 | 支付失败。详情请咨询您的发卡行
02 | 您输入的卡号无效,请确认后输入
03 | 支付失败,您的发卡银行不支持该商户,请更换其他银行卡
04 | 交易失败,请重试
05 | 文件校验错误
06 | 您的卡已经过期,请使用其他卡支付
09 | 业务处理中
10 | 公司账号不符
11 | 您卡上的余额不足
13 | 账号已挂失
14 | 您的卡已过期或者是您输入的有效期不正确,支付失败
15 | 您输入的银行卡密码有误,支付失败"
16 | 账号户名不符
18 | 交易未通过,请尝试使用其他银联卡支付或联系95516
20 | 您输入的转入卡卡号有误,支付失败
21 | 您输入的验证信息有误,支付失败
22 | 付款币种非法
23 | 失败,请检查交易对应业务是否已经开通
25 | 查找原始交易失败
30 | 报文错误
31 | 交易受限
32 | 系统维护中
36 | 交易金额超限,支付失败
37 | 原始金额错误
39 | 您已连续多次输入错误密码
40 | 您的银行卡暂不支持在线支付业务,请向您的银行咨询如何加办银联在线支付
41 | 您的银行卡不支持认证支付,请选择快捷支付
42 | 您的银行卡不支持小额支付,请选择快捷支付
43 | 您的银行卡不支持认证支付
44 | 代发金额或次数超限
56 | 您的银行卡所能进行的交易受限,详细请致电发卡行进行查询
57 | 该银行卡未开通银联在线支付业务
60 | 银行卡未开通认证支付
61 | 银行卡开通状态查询次数过多
71 | 交易无效,无法完成,支付失败
72 | 无此交易
73 | 扣款成功但交易超时
74 | 对不起,该操作员只能在交易当日进行
80 | 内部错误
81 | 可疑报文
82 | 验签失败
83 | 超时
84 | 订单不存在
85 | 不支持短信发送
86 | 短信验证码错误
87 | 您的短信发送过于频繁,请稍候再试
88 | 您的短信发送累计过于频繁,请在x分钟后重试
89 | 对不起,短信发送失败,请稍候再试
90 | 请您登录工商银行网上银行或拨打95588进行后续认证操作
93 | 请致电您的银行以确定您的个人客户基本信息中的相关信息设置正确
94 | 重复交易
95 | 您尚未在邮储银行网点柜面或个人网银签约加办银联无卡支付业务,请去柜面或网银开通
97 | 请致电您的银行以确定您的用户信息是否设置正确,并咨询是否已经开办银联在线支付
### 银行代码
银行代码(bankCode) | 银行名称(bankName) | 超网联行号
--- | --- | ---
GHB | 广东华兴银行 | 313586000006
TCRCB | 太仓农村商业银行 | 314305106644
YRRCB | 黄河农村商业银行 | 402871099996
GDRCU | 广东省农村信用社联合社 | 402581090008
HLJRCU | 黑龙江省农村信用社联合社 | 402261000004
YZRCB | 北京顺义银座村镇银行 | 320100010011
NYCB | 南阳村镇银行 | 320513000018
BEA | 东亚银行有限公司 | 502290000006
BOHB | 河北银行股份有限公司 | 313121006888
HLCB | 葫芦岛银行 | 313227600018
GYBC | 贵阳银行股份有限公司 | 313701098010
KSRB | 昆山农村商业银行 | 314305206650
GDNYB | 广东南粤银行 | 313591001001
PAB | 平安银行 | 307584007998
YTB | 烟台银行 | 313456000108
TACB | 泰安银行 | 313463000993
CITIB | 花旗中国 | 531290088881
BEA | 东亚银行中国有限公司 | 502290000006
JLCB | 吉林银行 | 313241066661
WZCB | 温州银行 | 313333007331
DLCB | 大连银行 | 313222080002
TCCB | 天津市商业银行 | 313110000017
DDB | 丹东银行 | 313226009000
CJCCB | 江苏长江商业银行 | 313312300018
LZCB | 柳州银行股份有限公司 | 313614000012
ZRCB | 枣庄银行 | 313454000016
PAB | 平安银行股份有限公司 | 307584007998
GZRB | 广州农村商业银行 | 314581000011
JYRCB | 江阴农村商业银行 | 314302200018
SHDRB | 山东省农村信用社联合社 | 402451000010
DGRB | 东莞农村商业银行 | 402602000018
ZJGRCB | 张家港农村商业银行 | 314305670002
GXZRCU | 广西农村信用社联合社 | 402611099974
WHRCB | 武汉农村商业银行 | 402521090019
HNHSRCB | 会宁会师村镇银行 | 320824275019
FBB | 富邦华一银行 | 787290000019
ASRCB | 鞍山银行 | 313223007007
HSBC | 徽商银行 | 319361000013
SGB | 中德住房储蓄银行 | 717110000010
BDCB | 保定银行 | 313134000011
FJHTB | 福建华通银行 | 323391060018
BOSR | 上饶银行 | 313433076801
AIB | 中信百信银行 | 326100010008
SHRB | 上海华瑞银行股份有限公司 | 323290000016
JZCCB | 晋中银行 | 313175000011
JJCCB | 九江银行 | 313424076706
HKURCB | 海口联合农村商业银行 | 314641000014
CEB | 光大银行 | 303100000006
BOC | 中国银行 | 104100000004
GDB | 广发银行股份有限公司 | 306581000003
CMB | 招商银行 | 308584000013
SCB | 渣打银行中国有限公司 | 671290000017
HXCB | 福建海峡银行股份有限公司 | 313391080007
CHDCB | 成都商业银行 | 313651099999
PZHCCB | 攀枝花市商业银行 | 313656000019
ZJKCB | 张家口市商业银行 | 313138000019
TSCCB | 唐山市商业银行 | 313124000018
JSCB | 江苏银行 | 313301099999
SNZCB | 遂宁市商业银行 | 313662000015
LSZCB | 凉山州商业银行 | 313684093748
HSBCB | 衡水市商业银行 | 313148053964
HRXJ | 华融湘江银行 | 313551070008
SJBK | 盛京银行 | 313221030008
KSRB | 昆山农信社 | 314305206650
CRRB | 常熟农村商业银行 | 314305506621
BRCB | 北京农商行 | 402100000018
SCRC | 四川省农村信用社联合社 | 402651020006
ZSXLRB | 中山小榄村镇银行 | 320603000018
HSB | 恒生银行有限公司 | 504290005116
BOB | 北京银行 | 313100000013
GLB | 桂林银行 | 313617000018
BOQH | 青海银行 | 313851000018
BONB | 宁波银行 | 313332082914
CITIC | 中信银行 | 302100011000
BOGZ | 贵州银行 | 313701099012
NUBOLN | 辽宁振兴银行 | 323221000086
XMCCB | 厦门银行 | 313393080005
SHRB | 上海华瑞银行股份有限公司 | 322290000011
BEA | 东亚银行 | 502290000006
BOZZ | 郑州银行 | 313491000232
JSBC | 晋商银行 | 313161000017
ABC | 农业银行 | 103100000026
CMBC | 民生银行 | 305100000013
WOORIB | 友利银行(中国)有限公司 | 593100000020
XMCCB | 厦门银行股份有限公司 | 313393080005
LYCB | 洛阳银行 | 313493080539
SXCB | 绍兴银行 | 313337009004
JJCCB | 九江银行股份有限公司 | 313424076706
QHDCCB | 秦皇岛银行股份有限公司 | 313126001022
TZCB | 台州银行 | 313345001665
ZCCBC | 浙江稠州商业银行 | 313338707013
BOWC | 乌海银行股份有限公司 | 313193057846
HUBCB | 湖北银行 | 313521006000
BOTC | 西藏银行 | 313770000016
SHRB | 上海农商银行 | 322290000011
SZRCB | 深圳农村商业银行 | 402584009991
CQRB | 重庆农村商业银行 | 314653000011
BEEB | 宁波鄞州农村合作银行 | 402332010004
JSRCU | 江苏省农村信用社联合社 | 402301099998
GZRCU | 贵州省农村信用社联合社 | 402701002999
HBRC | 河北省农村信用社联合社 | 402121000009
TJBHRC | 天津滨海农村商业银行 | 314110000011
BOC | 中国银行(香港) | 104100000004
KLCB | 昆仑银行股份有限公司 | 313882000012
JXRCU | 江西省农村信用社联合社 | 402421099990
XTCCB | 邢台银行 | 313131000016
JCB | 晋城银行 | 313168000003
CYCB | 朝阳银行 | 313234001089
BOXAC | 西安银行 | 313791000015
GZRCU | 贵州省农村信用联合社 | 402701002999
HMCCB | 哈密市商业银行 | 313884000016
WZMSB | 温州民商 | 323333000013
SNB | 江苏苏宁银行 | 323301000019
ZJKCB | 张家口银行 | 313138000019
LZCB | 柳州银行 | 313614000012
CCB | 中国建设银行 | 105100000017
BCOM | 交通银行 | 301290000007
CIB | 兴业银行 | 309391000011
CZB | 浙商银行 | 316331000018
CRBC | 珠海华润银行股份有限公司 | 313585000990
CQCB | 重庆银行 | 313653000013
MYCCB | 绵阳市商业银行 | 313659000016
QCCBC | 曲靖市商业银行 | 313736000019
SZSCB | 石嘴山银行 | 313872097457
TJRCB | 天津农村商业银行 | 317110010019
ZJRCU | 浙江省农村信用社联合社 | 402331000007
IMRCU | 内蒙古自治区农村信用社联合式 | 402191009992
CCB | 中国建设银行澳门股份有限公司 | 105100000017
CQFMB | 重庆富民银行 | 323653010015
AHXAB | 安徽新安银行 | 323361000014
CDCB | 承德银行 | 313141052422
BQD | 青岛银行 | 313452060150
NJCB | 南京银行 | 313301008887
AHRB | 安徽省农村信用社 | 402361018886
XCXWB | 四川新网银行 | 323651066666
WHZBB | 武汉众邦银行 | 323521012066
SHRB | 上海农商银行贷记卡 | 322290000011
HXB | 华夏银行 | 304100040000
CRBC | 珠海华润银行 | 313585000990
JXCCB | 嘉兴银行 | 313335081005
LJCB | 龙江银行股份有限公司 | 313261099913
JZCB | 锦州银行股份有限公司 | 313227000012
CSCB | 长沙银行股份有限公司 | 313551088886
BOLF | 廊坊银行 | 313146000019
CDCB | 承德市商业银行 | 313141052422
ZGCCB | 自贡市商业银行 | 313655091983
ESB | 鄂尔多斯银行 | 313205057830
JZCCB | 晋中市商业银行 | 313175000011
YQCB | 阳泉市商业银行 | 313163000004
YASCB | 雅安市商业银行 | 313677000010
BOGS | 甘肃银行 | 313821050016
CDRB | 成都农村商业银行股份有限公司 | 314651000000
HNRCU | 河南省农村信用社联合社 | 402491000026
HNRB | 海南省农村信用社联合社 | 402641000014
SXRB | 山西省农村信用社联合社 | 402161002352
BOC | 中国银行(香港) | 104100000004
HDCB | 邯郸银行 | 313127000013
HZB | 杭州银行 | 313331000014
BOIM | 内蒙古银行 | 313191000011
DYCCB | 东营银行 | 313455000018
LZB | 兰州银行 | 313821001016
SHRB | 上海农商银行贷记卡 | 323290000016
FDB | 富滇银行 | 313731010015
BOGC | 赣州银行股份有限公司 | 313428076517
ZGCB | 北京中关村银行 | 323100000012
GZB | 广州银行股份有限公司 | 313581003284
LJCB | 龙江银行 | 313261099913
HNRC | 湖南省农村信用联合社 | 402551080008
JHCB | 金华银行股份有限公司 | 313338009688
FSCB | 抚顺银行 | 313224000015
HLCB | 葫芦岛市商业银行 | 313227600018
NXCB | 宁夏银行 | 313871000007
BOFC | 阜新银行 | 313229000008
BOJC | 济宁银行股份有限公司 | 313461000012
LHCCB | 漯河商行 | 320504000014
NBCB | 宁波通商银行 | 313332090019
FJRCU | 福建省农村信用社联合社 | 402391000068
WXCCB | 无锡农村商业银行 | 314302066666
HNRC | 湖南省农村信用社联合社 | 402551080008
JLNC | 吉林省农村信用社联合社 | 402241000015
QHRCB | 青海省农村信用社联合社 | 402851000016
LNNC | 辽宁省农村信用社联合社 | 402221010013
CCB | 中国建设银行亚洲股份有限公司 | 105100000017
SCB | 渣打银行香港有限公司 | 671290000017
ICBC | 中国工商银行(澳门) | 102100099996
JLYLCB | 吉林亿联银行 | 323241000016
HRBCB | 哈尔滨银行 | 313261000018
XIB | 厦门国际银行 | 781393010011
ZYB | 中原银行 | 313491099996
BORZ | 日照银行 | 313473200011
GBGB | 广西北部湾银行 | 313611001018
LSBC | 临商银行 | 313473070018
CQCB | 重庆银行股份有限公司 | 313653000013
SPDB | 浦东发展银行 | 310290000013
JZCB | 锦州银行 | 313227000012
SZCB | 苏州银行 | 313305066661
WCCB | 威海市商业银行 | 313465000010
QSCCB | 齐鲁银行股份有限公司 | 313451000019
HFB | 恒丰银行 | 315456000105
BOWF | 潍坊银行 | 313458000013
QSSCCB | 齐商银行 | 313453001017
BOHN | 海南银行 | 313641099995
CBHB | 渤海银行 | 318110000014
BOS | 上海银行 | 325290000012
HKB | 汉口银行 | 313521000011
DGCB | 东莞市商业银行 | 313602088017
BOXAC | 西安银行股份有限公司 | 313791000015
QZCCB | 泉州银行 | 313397075189
YKCB | 营口银行股份有限公司 | 313228000276
CZCB | 沧州银行 | 313143005157
LSB | 莱商银行 | 313463400019
DYCB | 德阳银行 | 313658000014
ZMCBC | 浙江民泰商业银行 | 313345400010
TACB | 泰安市商业银行 | 313463000993
LSSCB | 乐山市商业银行 | 313665092924
CQTGB | 重庆三峡银行 | 321667090019
YBCCB | 宜宾市商业银行 | 313671000017
YKCBC | 营口沿海银行 | 313228060009
XJHHB | 新疆汇和银行 | 313898100016
SHRB | 上海农商银行 | 323290000016
SDRCB | 佛山顺德农村商业银行 | 314588000016
SZCB | 苏州银行股份有限公司 | 313305066661
JXRCU | 江西农信联合社 | 402421099990
SXNRCU | 陕西省农村信用社联合社 | 402791000010
AHRB | 安徽省农村信用社联合社 | 402361018886
JSHJMTRCB | 江苏邗江民泰村镇银行 | 320312091015
LSRB | 东营莱商村镇银行 | 320455000019
CITIB | 花旗银行有限公司 | 531290088881
HSB | 恒生银行 | 504290005116
CCB | 中国建设银行(亚洲) | 105100000017
HZBC | 湖州银行 | 313336071575
BOFC | 阜新银行股份有限公司 | 313229000008
XJB | 新疆银行 | 313881088887
ZJTLCB | 浙江泰隆商业银行 | 313345010019
DLRCB | 大连农商行 | 314222001893
MZKSB | 梅州客商银行 | 323596001013
QSCCB | 齐鲁银行 | 313451000019
ICBC | 中国工商银行 | 102100099996
LYCCB | 辽阳银行股份有限公司 | 313231000013
SZCB | 苏州市商业银行 | 313305066661
BOZZ | 郑州银行股份有限公司 | 313491000232
JCB | 晋城银行股份有限公司 | 313168000003
CZCCB | 长治市商业银行 | 313164000006
DZB | 德州银行 | 313468000015
HDCB | 邯郸市商业银行 | 313127000013
CCAB | 长安银行 | 313791030003
PDSCCB | 平顶山银行股份有限公司 | 313495081900
NDHB | 宁波东海银行 | 313332040018
XTCCB | 邢台银行股份有限公司 | 313131000016
### 分行号
分行名 | 代码(brNo)
--- | ---
北京 | 10
广州 | 20
上海 | 21
天津 | 22
重庆 | 23
沈阳 | 24
南京 | 25
武汉 | 27
成都 | 28
西安 | 29
太原 | 35
郑州 | 37
石家庄 | 38
唐山 | 39
大连 | 41
长春 | 43
哈尔滨 | 45
呼和浩特 | 47
银川 | 51
苏州 | 52
青岛 | 53
宁波 | 54
合肥 | 55
济南 | 56
杭州 | 57
温州 | 58
福州 | 59
泉州 | 60
无锡 | 62
南通 | 63
烟台 | 65
东莞 | 69
南宁 | 71
西宁 | 72
长沙 | 73
深圳 | 75
佛山 | 77
南昌 | 79
贵阳 | 85
昆明 | 87
海口 | 89
乌鲁木齐 | 91
厦门 | 92
兰州 | 93
香港 | 97
总行 | 01
+96
View File
@@ -0,0 +1,96 @@
# HRO签名DEMO
```java
import org.junit.Test;
import java.io.UnsupportedEncodingException;
import java.security.MessageDigest;
import java.security.NoSuchAlgorithmException;
import java.util.Base64;
/**
* @Author: Alawn
* @Description:
* @Date: Create in 6:40 下午 2021/1/20
*/
public class SignDemo {
private final static String secret = "Giur9quiuD";
private final static String charSet = "UTF-8";
@Test
public void sign() throws NoSuchAlgorithmException, UnsupportedEncodingException {
String reqBody = "<root><head><version>v1.0</version><serviceName>diskApply</serviceName><requestId>20210104000000000001</requestId><requestTime>20200104235959</requestTime></head><body><applyDate>20201229</applyDate><diskNo>20201229000000000000000000000001</diskNo><filePath>/data/send/20201229000000000000000000000001</filePath><fileVersion>v1</fileVersion><customerId>OHJEMIA1EINGUGAH0AITHOHNUEYAHWOO</customerId><titleId>1000001</titleId><md5>c5950a259435d3e51262539a10a22910</md5></body></root>";
MessageDigest md5Digest = MessageDigest.getInstance("MD5");
String md5 = byteArrayToHexString(md5Digest.digest(reqBody.getBytes(charSet)));
MessageDigest shaDigest = MessageDigest.getInstance("SHA-256");
byte[] signBuf = new byte[md5.getBytes(charSet).length + secret.getBytes(charSet).length];
System.arraycopy(md5.getBytes(charSet),0,signBuf,0,md5.getBytes(charSet).length);
System.arraycopy(secret.getBytes(charSet),0,signBuf,0,secret.getBytes(charSet).length);
String sign = String.valueOf(Base64.getEncoder().encodeToString(shaDigest.digest(signBuf)));
System.out.println("Sign:[" + sign + "]");
}
@Test
public void verifySign() throws NoSuchAlgorithmException, UnsupportedEncodingException {
String respBody = "<head><respCode>000000</respCode><respMessage>交易成功</respMessage><respTime>20210104235959</respTime></head>";
String respSign = "PcPrQVDIsguzP6ASffQM2zFtznHqi7Bz1RhZhALMnTs=";
MessageDigest md5Digest = MessageDigest.getInstance("MD5");
String md5 = byteArrayToHexString(md5Digest.digest(respBody.getBytes(charSet)));
MessageDigest shaDigest = MessageDigest.getInstance("SHA-256");
byte[] signBuf = new byte[md5.getBytes(charSet).length + secret.getBytes(charSet).length];
System.arraycopy(md5.getBytes(charSet), 0, signBuf, 0, md5.getBytes(charSet).length);
System.arraycopy(secret.getBytes(charSet), 0, signBuf, 0, secret.getBytes(charSet).length);
String sign = Base64.getEncoder().encodeToString(shaDigest.digest(signBuf));
if (!respSign.equals(sign)) {
System.out.println("验签失败;请求签名:[" + respSign + "] 验证签名: [" + sign + "]");
}
else{
System.out.println("验签成功");
}
}
public static String byteArrayToHexString(byte b[]) {
StringBuffer resultSb = new StringBuffer();
for (int i = 0; i < b.length; i++) {
resultSb.append(byteToHexString(b[i]));
}
return resultSb.toString();
}
private static String byteToHexString(byte b) {
int n = b;
if (n < 0) {
n += 256;
}
int d1 = n / 16;
int d2 = n % 16;
return hexDigits[d1] + hexDigits[d2];
}
private static final String hexDigits[] = { "0", "1", "2", "3", "4", "5",
"6", "7", "8", "9", "a", "b", "c", "d", "e", "f" };
}
```
+68
View File
@@ -0,0 +1,68 @@
# HRO融合方案
## 流程图
### 流程图
```mermaid
sequenceDiagram
participant hro_web
participant mr_web
participant mr_server
participant auth_server
hro_web->>mr_web: https://ui.domain/page?token=xxxxxxx
mr_web->>mr_server: [token=xxxxxxx][funcId=xxxxx]
mr_server->>auth_server: http://auth.domain/auth?token=ZW9xpZTdvamE4SWVTNmkK&funcId=10001
auth_server-->>mr_server: 返回鉴权结果(200:成功;403:Forbidden) 与 下级funcId集合字符串(xxxx,xxxx,xxxx)
mr_server->>mr_server: 权限判断
mr_server-->>mr_web: 返回权限结果与下级funcId
```
## 接口说明
### Auth Server
#### 鉴权
- 请求
protocol : HTTP
method : GET
content-Type : application/x-www-form-urlencoded
token:Token
funcId:功能ID
eg.
```http
GET /auth?token=ZW9xpZTdvamE4SWVTNmkK&funcId=10001 HTTP/1.1
Content-Type : application/x-www-form-urlencoded
Host: localhost: 8888
Connection: keep-alive
```
- 返回
根据http state来判断是否鉴权成功;200:鉴权通过 403:鉴权失败
funcSet: 满足条件的funcId集合,以逗号符分割
eg. 成功:
```http
HTTP/1.1 200 OK
Date: Wed, 13 Jan 2021 15:27:25 GMT
Content-Type : application/xml
Content-Length: 52
<root><funcSet>100001,100002,100005</funcSet></root>
```
eg. 失败:
```http
HTTP/1.1 403 Forbidden
Date: Wed, 13 Jan 2021 15:27:25 GMT
```
+85
View File
@@ -0,0 +1,85 @@
## 路由说明及控制点
- 正式表/临时表 同步机制
> 路由维护的一种保障机制,因为路由规则是一条一条逐步维护的,所以为了保障这些路由策略能够同时生效,通过临时表导入到正式表来保证策略同步生效
- 导入正式表:将临时表中维护好的策略导入正式表(仅会将临时表中状态为生效的策略导入正式表,且导入正式表之前会清空正式表中现有的策略)
- 同步正式表:将正式表中的策略同步到临时表中,使其以基于现有生产的策略基础上编辑
PS:临时表是个规则池,该表中的策略规则数量可大于等于正式表
- 支付地、路由组、路由策略见的关系
- 每个支付地必须归属到具体的某个路由组下(支付地路由组维护)
- 每套路策略均以组为单位维护(路由维护界面中先选择路由组)
- 默认路由
- 每套路由组中必然存在一条默认路由的规则,该条规则优先级由系统自动设置成最低(9999),使之在没有满足任何前置路由的情况下,最终会走到该条默认路由
- 默认路由的规则由创建用户组的同时自动生成,生成后只能修改其合作机构、汇路,系统将控制不得删除该条规则
- 规则级别
- 描述规则的优先级,取值范围从0~9999(其中9999为系统自动创建的默认路由)
- 数值越小表示优先级越高,相同条件的规则集中优先级高会优先选择
- 发卡银行编号
- 代付明细中银行卡所属的银行编号,可通过该条件来设置本贷本/本贷它或者特定的银行卡来走特定的通道
- 合作机构
- 银行通道,目前易才仅对接工行、招行两家
- 汇路
> 央行现代化支付系统中的对应系统名称(大额、小额、超网),合作银行会根据汇路来走央行对应的支付系统
- 权重
> 该条件决定了该条规则中所设置合作机构的命中概率
通常用于各通道保量的场景,如工行30%的量、招行70%的量,工行规则的权重设置成30,招行规则的权重设置成70
- 权重的单位为数值,取值范围1~999
- 权重仅在存在多条满足条件的规则前提下,才有意义
- 交易金额区间
> 该条件确定规则中金额区间
- 金额区间的规则是大于下限,小于等于上限,如0 - 5000区间则表示 金额大于等于0.01,小于等于5000
- 生效日期区间
> 该条件确定规则生效的日期范围
- 生效日期区间的规则是大于等于起始日,小于等于截止日
- 通常规则的截止日建议配置一个无限大的值,如9999年
- 生效日区间 + 规则级别的组合可以配置出节假日走特定路由的效果
- 生效时间区间
> 该条件确定了路由规则的时间范围
- 生效时间区间的规则是大于等于起始时间,小于等于截止时间
- 状态
> 定义了该条规则的状态,生效、未生效
- 路由试算
> 在临时表配置完路由策略后,可通过此功能来对已配置的策略进行核对
+19
View File
@@ -0,0 +1,19 @@
## 易才测试方案
### 测试范围
1. 运营管理系统
2. HRO接口对接的系统
### 测试点
#### 运营管理
#### HRO接口
银行卡类型管理
+12
View File
@@ -0,0 +1,12 @@
EVT_ORG_TIM_FAL | 机构运营时间超限
EVT_ORG_AMT_OFW | 机构金额超限
EVT_ORG_BLC_SRT | 机构余额不足
EVT_BAT_SND_FAL | 批量送盘失败
EVT_BAT_SND_SUC | 批量送盘成功
EVT_BAT_RSP_FAL | 批量回盘失败
EVT_BAT_RSP_SUC | 批量回盘成功
EVT_ORG_STL_SUC | 机构清算成功
EVT_ORG_STL_FAL | 机构清算失败
EVT_DSK_TIM_OUT | 磁盘长时间未回盘
EVT_BAT_TIM_OUT | 批次长时间未回盘
EVT_RSK_BE_HIT | 风控命中
+40
View File
@@ -0,0 +1,40 @@
# 文件压缩/解压
## Maven配置
```xml
<dependency>
<groupId>net.lingala.zip4j</groupId>
<artifactId>zip4j</artifactId>
<version>2.6.4</version>
</dependency>
```
## 压缩
```java
ZipParameters zipParameters = new ZipParameters();
zipParameters.setEncryptFiles(true);
zipParameters.setEncryptionMethod(EncryptionMethod.AES);
// Below line is optional. AES 256 is used by default. You can override it to use AES 128. AES 192 is supported only for extracting.
zipParameters.setAesKeyStrength(AesKeyStrength.KEY_STRENGTH_256);
List<File> filesToAdd = Arrays.asList(
new File("somefile"),
new File("someotherfile")
);
ZipFile zipFile = new ZipFile("filename.zip", "password".toCharArray());
zipFile.addFiles(filesToAdd, zipParameters);
```
## 解压
```java
new ZipFile("filename.zip", "password".toCharArray()).extractAll("/destination_directory");
```
## 参考
[zip4j](https://github.com/srikanth-lingala/zip4j)
File diff suppressed because one or more lines are too long
Binary file not shown.

After

Width:  |  Height:  |  Size: 738 KiB

+83
View File
@@ -0,0 +1,83 @@
# 路由策略
## 银行路由配置说明
1. 两家银行跨行发放单笔100万以上只能走大额支付系统(开放时间:工作日20:30-次日17:30),单笔小于100万大/小额及超网都支持,区别在于收款人银行卡维护
2. 工行跨行工资发放默认“跨行快汇”方式上送;招行跨行工资发放默认“超网代发”方式发放
3. 非超网体系内银行卡,如存折(跨行)及小型城市商业银行,系统可判断情况下直接转大小额通道发放(超网名单随时变动更新)
4. 路由配置策略选择:
A. 只有工行账户(HRO系统维护唯一账户),所有工资发放都通过工行账户发放(单笔超100万转大额);
B. 只有招行账户(HRO系统维护唯一账户),所有工资发放都通过招行账户发放(单笔超100万转大额);
C. 既有工行又有招行账户,所有工行银行卡通过工行账户发放(工行同行),所有非工行卡账户都通过招行账户发放(招行同行及跨行);
D. 既有工行又有招行账户,所有工资发放都通过招行账户发放(单笔超100万转大额)
## 各地区策略
大区 | 支付地抬头 | 路由方案(下拉选项) | 如选E请具体说明
--- | --- | --- | ---
北京 | 北京易才人力资源顾问有限公司 | C |
北京 | 北京智唯易才人力咨询有限公司 | D |
北京 | 北京宏瀚管理顾问有限公司 | B |
北京 | 北京宏荣管理顾问有限公司 | B |
北京 | 北京宏裕管理顾问有限公司 | B |
北京 | 北京易才营销顾问有限公司 | C |
北京 | 北京易才人力资源顾问有限公司太原分公司 | A |
北京 | 北京易才人力资源顾问有限公司长春分公司 | A |
北京 | 北京易才人力资源顾问有限公司南昌分公司 | A |
上海 | 上海智联易才人力资源顾问有限公司 | D |
上海 | 上海智联易才人才咨询有限公司 | D |
上海 | 上海易宏人力资源服务有限公司 | D |
北区 | 青岛易才人力资源顾问有限公司 | D |
北区 | 天津智唯易才人力资源顾问有限公司 | D |
北区 | 呼和浩特市易才人力资源有限责任公司 | A |
北区 | 大连易才人力资源顾问有限公司 | D |
北区 | 河南易才人力资源咨询有限公司 | D |
北区 | 沈阳易才人力资源顾问有限公司 | D |
北区 | 河北智联易才人力资源顾问有限公司 | D |
北区 | 济南易才人力资源顾问有限公司 | D |
南区 | 福州智唯易才人力资源顾问有限公司 | D |
南区 | 长沙易才人力资源顾问有限公司 | D |
南区 | 长沙智唯劳务服务有限公司 | A |
南区 | 东莞市易才人力资源顾问有限公司 | D |
南区 | 东莞市易才人力资源顾问有限公司松山湖分公司 | B |
南区 | 武汉智唯易才人力资源顾问有限公司 | D |
南区 | 广州智唯易才企业管理顾问有限公司 | D | 万宁,乐金,中安保,TVB工资需工行发放,线下发放
南区 | 广州智唯易才企业管理顾问有限公司湛江分公司 | A |
南区 | 海口易才人力资源咨询有限公司 | A |
南区 | 厦门智唯易才人力资源顾问有限公司泉州分公司 | A |
南区 | 厦门智唯易才人力资源顾问有限公司 | C |
南区 | 广西易才人力资源顾问有限公司 | D |
南区 | 深圳易才人力资源顾问有限公司 | D | 联通通过代发e发放,线下发放
南区 | 深圳易薪人力资源顾问有限公司 | D |
西区 | 西安易才人力资源顾问有限公司 | D |
西区 | 成都智唯易才人力资源顾问有限公司 | C |
西区 | 西安易才人力资源顾问有限公司兰州分公司 | D |
西区 | 西安易才人力资源顾问有限公司乌鲁木齐分公司 | A |
西区 | 新疆智唯易才人力资源顾问有限公司 | A |
西区 | 青海易才人力资源顾问有限公司 | D |
西区 | 西藏易才人力资源顾问有限公司 | D |
西区 | 贵州易才人力资源顾问有限公司 | D |
西区 | 云南易才人力资源顾问有限公司 | D |
西区 | 重庆易才人力资源顾问有限公司 | C |
东区 | 南京易才人力资源有限公司 | D |
东区 | 南京易才人力资源有限公司高淳分公司 | A | HRO系统未单独设置组织架构,目前仅为返还代发6家
东区 | 南通易才人力资源有限公司 | D |
东区 | 泰州易才人力资源顾问有限公司 | A |
东区 | 杭州易才人力资源管理有限公司 | D |
东区 | 淮安易才人力资源顾问有限公司 | A |
东区 | 无锡易才人力资源顾问有限公司 | D |
东区 | 南京易才人力资源有限公司镇江分公司 | A |
东区 | 常州智易人力资源服务有限公司 | A |
东区 | 安徽智易人力资源顾问有限公司 | D | 特殊客户:华夏银行股份有限公司合肥分行
东区 | 南京易才人力资源有限公司温州分公司 | D |
东区 | 扬州易才人力资源顾问有限公司 | D |
东区 | 宁波易才人力资源咨询有限公司 | D |
东区 | 苏州易才人力资源顾问有限公司 | D |
东区 | 苏州易才人力资源顾问有限公司园区分公司 | D |
+112
View File
@@ -0,0 +1,112 @@
# 风控介绍
## 风控模型
### 客户风控模型
![](https://fairy8-1258530674.picsh.myqcloud.com/img/20210131171417.png)
### 机构风控模型
![](https://fairy8-1258530674.picsh.myqcloud.com/img/20210131171836.png)
### 事件通知模型
![](https://fairy8-1258530674.picsh.myqcloud.com/img/20210201092324.png)
## 命中后处理方式
- 预警
- 邮件通知
- 短信通知
- 社交群通知(微信、钉钉)
- 监控大屏幕
- 拦截
- 交易拒绝
- 审批
## 检测方式
- 埋点
- 探针
- 白/黑/灰名单
- 行为分析
- 数据分析
## 易才风控点
- 累计(日累、月累、年类)
- 限额(批限额、笔限额、日限额、月限额、年限额)
- 接入批次处理异常
> 文件处理过程中出现异常
- 通道通讯异常
> 银行通道心跳探测
- fastDFS异常通知
- 接出批次回盘异常
> 接入/接出批次号、银行通道
- 客户风控命中告警
> 客户命中风控
- 机构风控命中告警
- 接入批次长时间未处理完成
> 超过设定时间未处理完成
- 接出批次长时间未处理完成
> 超过设定时间未处理完成
- 付款账户余额不足告警
> 判断银行余额不足的返回码
- 对账文件生成失败
- 业务失败/成功率
- 各类图表
> 机构风控需要根据支付地分组
- 余额不够处理情况处理逻辑
- 都不发?
- 继续发,足额成功;不足额失败?
## 事件列表
事件名称 | 事件描述 | 入参
--- | --- | ---
EVT_DISK_PROC_FAILURE | 接入批次处理异常 | DSK_NO,ERR_MSG
EVT_CHANNEL_COMMU_FAILURE | 通道通讯异常 | CORG_NO,ERR_MSG
EVT_DFS_UPLOAD_FAILURE | FastDFS上传失败 | DSK_NO,FID,ERR_MSG
EVT_DFS_DOWNLOAD_FAILURE | FastDFS下载失败 | DSK_NO,FID,ERR_MSG
EVT_BATCH_SEND_FAILURE | 接出批次送盘异常 | DSK_NO,BAT_NO,ERR_MSG
EVT_BATCH_BACK_FAILURE | 接出批次回盘异常 | DSK_NO,BAT_NO,ERR_MSG
EVT_RISK_BEEN_HIT | 客户风控命中告警 | DSK_NO,CUS_ID,ERR_MSG
EVT_BALANCE_INSUFFICIENT | 余额不足 | DSK_NO,TITLE_NAME,AC_NO,CORG_NO
EVT_DISK_PROC_TIMEOUT | 接入批次长时间未处理完成 | DSK_NO,DSK_STS
EVT_BATCH_PROC_TIMEOUT | 接出批次长时间未处理完成 | DSK_NO,BAT_NO,BAT_STS,CORG_NO
RECONCILIATION_FAILURE | 对账文件失败 | CHK_DT,ERR_MSG