API 文档¶
鉴权结果说明¶
- RealMe 会同步返回服务调用结果,但鉴权结果可能会同步返回,也可能需等待异步通知,具体方式参见各接口说明。若无同步鉴权结果,请调用“验证结果获取”接口主动获取结果,或等待 RealMe 的推送。
- 返回码
return_code
和返回描述return_message
仅表示本次调用是否成功,并非鉴权结果。 - 认证结果代码
resp_code
和认证结果描述resp_info
表示本次请求的认证结果。 - 在涉及图像比对时,通常认证结果含比对分值项
mp_ssim
,当分值大于聚合鉴权设定的阈值时 (如 60 分),聚合鉴权返回认证结果为成功,否则为失败。调用方如有需要,可自定义阈值,从而达到收紧或放松认证结果的目的。
调用地址说明¶
以下文档中涉及的调用地址均为生产环境。测试请使用测试环境,
调用地址为将域名及上下文替换为 http://192.168.16.210:7083/api/realme/
,
例如:
生产环境 http://realme.hfinside.com/api/realme/v5/trade/staticfacecheck
对应的测试环境 http://192.168.16.210:7083/api/realme/v5/trade/staticfacecheck
返回码说明¶
返回码为 5 位的数字,前 3 位表示接口编号,后 2 位表示返回信息。 1~8 打头表示仅该接口出现的返回信息,后 2 位 00-09 时表示成功返回,10-99 时表示失败返回。 9 打头表示所有接口都可能出现的公共返回信息,90000~90009 表示成功返回,90100~91099 表示错误返回。
接口编号:
编号 | 服务名 |
---|---|
100 | 人脸公安实名认证 |
101 | 活体检测 |
102 | 银行卡实名认证 |
103 | 手机号实名认证 |
104 | 身份证实名认证 |
105 | 人像图片比对 |
106 | 身份证照片实名认证 |
107 | 身份证信息识别 |
108 | 银行卡信息识别 |
109 | 1:N 人脸注册 |
110 | 1:N 人脸检索 |
111 | 人像防Hack检查 |
113 | 营业执照信息识别 |
114 | 反洗钱高风险客户名单查询 |
115 | 魔蝎创建运营商采集任务 |
116 | 魔蝎输入图片/短信验证码 |
117 | 魔蝎再次获取图片/短信验证码 |
118 | 魔蝎获取运营商采集任务执行状态 |
119 | 魔蝎获取手机号码通道信息 |
120 | 魔蝎创建运营商重置密码任务 |
121 | 魔蝎输入图片/短信/新服务密码 |
122 | 获取魔镜信审评分 |
123 | 魔蝎获取报告通知 |
124 | 魔蝎获取账单通知(原始数据) |
125 | yy金融查询p2p金融信息 |
126 | 腾讯反欺诈信息分值查询 |
127 | 91征信查询 |
128 | 事前风险核查 |
129 | 魔蝎获取12个月账单记录 |
130 | 魔蝎获取全部账单记录 |
131 | 魔蝎获取信用卡账单报告 |
132 | 魔蝎邮箱报告进度查询 |
133 | 极光分级验真 |
134 | 极光模糊匹配 |
135 | 极光黑名单 |
136 | 同盾贷前反欺诈 |
137 | 白骑士反欺诈 |
200 | 获取验证结果 |
返回码 return_code
:
公共返回码:
旧版本:
返回码 | 说明 |
---|---|
90101 | 参数错误 |
90102 | 验证签名错误 |
90103 | 没有权限使用此接口 |
90104 | 重复请求 |
90105 | 操作过于频繁 |
90199 | 未知原因,认证失败 |
V5版本:
返回码 | 说明 |
---|---|
90101 | 参数错误 |
90102 | 验证签名错误 |
90103 | 没有权限使用此接口 |
90114 | 重复请求 |
90117 | 操作过于频繁 |
90199 | 未知原因,认证失败 |
人脸公安实名认证返回码:
返回码 | 说明 |
---|---|
90000 | 请求成功,需等待异步结果 |
90199 | 请求失败 |
活体检测返回码:
返回码 | 说明 |
---|---|
10101 | 请求成功,需等待异步结果 |
10110 | 请求失败 |
银行卡实名认证返回码:
返回码 | 说明 |
---|---|
90000 | 请求成功 |
90199 | 请求失败 |
手机实名认证返回码:
返回码 | 说明 |
---|---|
10300 | 请求成功 |
10310 | 请求失败 |
身份证实名认证返回码:
返回码 | 说明 |
---|---|
90000 | 请求成功 |
90199 | 请求失败 |
人脸图片对比返回码:
返回码 | 说明 |
---|---|
10500 | 请求成功 |
10510 | 请求失败 |
身份证照片实名认证返回码:
返回码 | 说明 |
---|---|
90000 | 请求成功,需等待异步结果 |
90199 | 请求失败 |
身份证信息识别返回码:
返回码 | 说明 |
---|---|
10700 | 请求成功 |
10710 | 请求失败 |
银行卡信息识别返回码:
返回码 | 说明 |
---|---|
10800 | 请求成功 |
10810 | 请求失败 |
1:N 人脸注册返回码:
返回码 | 说明 |
---|---|
10900 | 请求成功 |
10910 | 请求失败 |
1:N 人脸检索返回码:
返回码 | 说明 |
---|---|
11001 | 请求成功,需等待异步结果 |
11010 | 请求失败 |
人像防Hack检查返回码:
返回码 | 说明 |
---|---|
90000 | 请求成功 |
90199 | 请求失败 |
营业执照信息识别返回码:
返回码 | 说明 |
---|---|
90000 | 请求成功 |
90199 | 请求失败 |
反洗钱高风险客户名单查询返回码:
返回码 | 说明 |
---|---|
90000 | 请求成功 |
90199 | 请求失败 |
魔蝎创建运营商采集任务返回码:
返回码 | 说明 |
---|---|
90000 | 请求成功 |
90199 | 请求失败 |
魔蝎再次获取图片/短信验证码返回码:
返回码 | 说明 |
---|---|
90000 | 请求成功 |
90199 | 请求失败 |
魔蝎输入图片/短信验证码返回码:
返回码 | 说明 |
---|---|
90000 | 请求成功 |
90199 | 请求失败 |
魔蝎获取运营商采集任务执行状态返回码:
返回码 | 说明 |
---|---|
90000 | 请求成功 |
90199 | 请求失败 |
魔蝎获取手机号码通道信息返回码:
返回码 | 说明 |
---|---|
90000 | 请求成功 |
90199 | 请求失败 |
魔蝎创建运营商重置密码任务返回码:
返回码 | 说明 |
---|---|
90000 | 请求成功 |
90199 | 请求失败 |
魔蝎输入图片/短信/新服务密码返回码:
返回码 | 说明 |
---|---|
90000 | 请求成功 |
90199 | 请求失败 |
获取魔镜信审评分返回码:
返回码 | 说明 |
---|---|
90000 | 请求成功 |
90199 | 请求失败 |
魔蝎获取报告通知返回码:
返回码 | 说明 |
---|---|
90000 | 请求成功 |
90199 | 请求失败 |
魔蝎获取账单通知(原始数据)返回码:
返回码 | 说明 |
---|---|
90000 | 请求成功 |
90199 | 请求失败 |
yy金融查询p2p金融信息返回码:
返回码 | 说明 |
---|---|
90000 | 请求成功 |
90199 | 请求失败 |
腾讯反欺诈信息分值查询返回码:
返回码 | 说明 |
---|---|
90000 | 请求成功 |
90199 | 请求失败 |
91征信查询返回码:
返回码 | 说明 |
---|---|
90000 | 请求成功 |
90199 | 请求失败 |
获取认证结果返回码:
返回码 | 说明 |
---|---|
20000 | 请求成功 |
20010 | 认证失败 |
20011 | 没有查询到该笔验证 |
20012 | 该笔正在验证中 |
事前风险核查结果返回码:
返回码 | 说明 |
---|---|
12800 | 请求成功 |
12810 | 核查失败 |
魔蝎获取12个月账单返回码:
返回码 | 说明 |
---|---|
12900 | 请求成功 |
12910 | 核查失败 |
魔蝎获取全部账单返回码:
返回码 | 说明 |
---|---|
13000 | 请求成功 |
13010 | 核查失败 |
魔蝎获取信用卡账单报告返回码:
返回码 | 说明 |
---|---|
13100 | 请求成功 |
13110 | 核查失败 |
魔蝎邮箱报告进度查询报告返回码:
返回码 | 说明 |
---|---|
13200 | 请求成功 |
13210 | 核查失败 |
极光分级验真返回码:
返回码 | 说明 |
---|---|
13300 | 请求成功 |
13310 | 核查失败 |
极光模糊匹配返回码:
返回码 | 说明 |
---|---|
13400 | 请求成功 |
13410 | 核查失败 |
极光黑名单返回码:
返回码 | 说明 |
---|---|
13500 | 请求成功 |
13510 | 核查失败 |
同盾贷前反欺诈返回码:
返回码 | 说明 |
---|---|
13600 | 请求成功 |
13610 | 核查失败 |
白骑士反欺诈返回码:
返回码 | 说明 |
---|---|
13700 | 请求成功 |
13710 | 核查失败 |
公共参数¶
所有接口均含公共参数,为减少冗余,单独提出。
公共请求参数¶
名称 | 类型 | 是否必须 | 限制 | 描述 |
---|---|---|---|---|
order_date | String | 是 | 请求日期 | |
order_id | String | 是 | 订单号,请求唯一标识 | |
app_token | String | 是 | 用户标识,由 RealMe 分配 | |
sign | String | 是 | 参考 服务调用说明-签名 |
公共响应参数¶
名称 | 类型 | 是否必须 | 限制 | 描述 |
---|---|---|---|---|
return_code | String | 是 | 返回码 | |
return_message | String | 否 | 返回描述 | |
realme_date | String | 是 | RealMe 日期 | |
seq_id | String | 否 | RealMe 系统流水,本次交易唯一标识 | |
order_date | String | 是 | 请求日期,原样返回 | |
order_id | String | 是 | 订单号,请求唯一标识,原样返回 |
人脸公安实名认证¶
接口说明¶
- 通过采集人脸图片、姓名和身份证号信息,与公安系统进行数据一致性比对,完成身份验证。
- 同步返回成功表示请求接收成功,验证结果需接收异步通知或调用“验证结果获取接口”
GET /v5/checkresult
获取。
HTTP Request
POST http://realme.hfinside.com/api/realme/v5/trade/staticfacecheck
请求参数¶
名称 | 类型 | 是否必须 | 限制 | 描述 |
---|---|---|---|---|
full_name | String | 是 | 用户姓名 | |
id_number | String | 是 | 客户身份证号 | |
video_pic | String | 是 | 视频截图。图片必须转换为 BASE64 格式 | |
source_channel | String | 是 | 来源渠道:0-PC;1-Android;2-iOS | |
place_id | String | 是 | 业务地址:最长6位 | |
imei | String | 否 | 设备号 | |
mer_bg_url | String | 否 | 建议使用archer接收异步结果 ,可参考如下 “http://wiki.huifu.com/bin/view/信息中心/行业应用研发部/RealMe/realme异步推送结果archer改造/” | |
authorization_info | String | 否 | 用户授权标识 |
异步返回结果¶
名称 | 类型 | 是否必须 | 限制 | 描述 |
---|---|---|---|---|
resp_code | String | 是 | 认证结果 | |
resp_info | String | 是 | 认证结果描述 |
调用示例¶
shell
curl -H "env:test" -d "order_date=20170101&order_id=201701010000001&app_token=apptoken&sign=9F28CB5B52CAA8267314A9BAF7E6706E&full_name=测试&id_number=330302198905021143&video_pic=data:image/jpeg;base64,/9j/4AAQSkZJRgABAQEAYABgAAD&source_channel=0&imei=21453658&mer_bg_url=http://test.com/recv" http://realme.hfinside.com/api/realme/v5/trade/staticfacecheck
java
String result = new String();
HttpClient client = new DefaultHttpClient();
HttpPost post = new HttpPost("http://realme.hfinside.com/api/realme/v5/trade/staticfacecheck");
try {
List<NameValuePair> nvps = new ArrayList<NameValuePair>();
nvps.add(new BasicNameValuePair("order_date", "20170101"));
nvps.add(new BasicNameValuePair("order_id", "201701010000001"));
nvps.add(new BasicNameValuePair("app_token", "apptoken"));
nvps.add(new BasicNameValuePair("sign", "9F28CB5B52CAA8267314A9BAF7E6706E"));
.......
post.setEntity(new UrlEncodedFormEntity(nvps));
post.addHeader("env", "test");
HttpResponse httpResponse = client.execute(post);
int code = httpResponse.getStatusLine().getStatusCode();
String returnStr = EntityUtils.toString(httpResponse.getEntity());
} catch (Exception e) {
e.printStackTrace();
}
python
url = ''.join(['http://realme.hfinside.com', '/realme-api/v5/trade/staticfacecheck'])
params = {'order_date': '20170101',
'order_id': '201701010000001',
'app_token': 'apptoken',
'sign': '9F28CB5B52CAA8267314A9BAF7E6706E',
......
}
response = requests.post(url, params=params, headers={'env':'test'})
成功响应
200
{
"return_code": "90000",
"return_message": "请求成功,需等待异步结果",
"realme_date": "20170101",
"seq_id" : "2017010100000001",
"order_date": "20170101",
"order_id": "201701010000001"
}
失败响应
400
{
"return_code": "90101",
"return_message": "参数校验失败"
}
活体检测¶
接口说明¶
- 用户根据一系列指令完成相关表情动作,从而确保该用户为活体,而非照片或事先录制的视频。
- 同步返回成功表示信息接收成功,验证结果需接收异步通知或调用“验证结果获取接口”
GET /v4/checkresult
获取。 - 由于传入图片需加密,加密方式暂未开放,本接口目前仅支持使用手机端 SDK调用。
HTTP Request
POST http://realme.hfinside.com/api/realme/v4/trade/dynamicfacecheck
请求参数¶
名称 | 类型 | 是否必须 | 限制 | 描述 |
---|---|---|---|---|
full_name | String | 是 | 用户姓名 | |
id_number | String | 是 | 客户身份证号 | |
video_pic | String | 是 | 视频截图。图片必须转换为 BASE64 格式 | |
source_channel | String | 是 | 来源渠道:0-PC;1-Android;2-iOS | |
imei | String | 否 | 设备号 | |
video_pic_flag | String | 否 | 视频截图类型:true-传入的图片是人脸大礼包,由 RealMe SDK 加密;false-传入的是 图片的 BASE64 | |
mer_bg_url | String | 否 | 建议使用archer接收异步结果 ,可参考如下 “http://wiki.huifu.com/bin/view/信息中心/行业应用研发部/RealMe/realme异步推送结果archer改造/” | |
authorization_info | String | 否 | 用户授权 |
异步返回结果¶
名称 | 类型 | 是否必须 | 限制 | 描述 |
---|---|---|---|---|
resp_code | String | 是 | 认证结果 | |
resp_info | String | 是 | 认证结果描述 |
调用示例¶
shell
curl -H "env:test" -d "order_date=20170101&order_id=201701010000001&app_token=apptoken&sign=9F28CB5B52CAA8267314A9BAF7E6706E&..." http://realme.hfinside.com/api/realme/v4/trade/dynamicfacecheck
java
String result = new String();
HttpClient client = new DefaultHttpClient();
HttpPost post = new HttpPost("http://realme.hfinside.com/api/realme/v4/trade/dynamicfacecheck");
try {
List<NameValuePair> nvps = new ArrayList<NameValuePair>();
nvps.add(new BasicNameValuePair("order_date", "20170101"));
nvps.add(new BasicNameValuePair("order_id", "201701010000001"));
nvps.add(new BasicNameValuePair("app_token", "apptoken"));
nvps.add(new BasicNameValuePair("sign", "9F28CB5B52CAA8267314A9BAF7E6706E"));
.......
post.setEntity(new UrlEncodedFormEntity(nvps));
post.addHeader("env", "test");
HttpResponse httpResponse = client.execute(post);
int code = httpResponse.getStatusLine().getStatusCode();
String returnStr = EntityUtils.toString(httpResponse.getEntity());
} catch (Exception e) {
e.printStackTrace();
}
python
url = ''.join(['http://realme.hfinside.com', '/realme-api/v4/trade/dynamicfacecheck'])
params = {'order_date': '20170101',
'order_id': '201701010000001',
'app_token': 'apptoken',
'sign': '9F28CB5B52CAA8267314A9BAF7E6706E',
......
}
response = requests.post(url, params=params, headers={'env':'test'})
成功响应
200
{
"return_code": "10101",
"return_message": "请求成功,需等待异步结果",
"realme_date": "20170101",
"seq_id" : "2017010100000001",
"order_date": "20170101",
"order_id": "201701010000001"
}
失败响应
400
{
"return_code": "90101",
"return_message": "参数校验失败"
}
银行卡实名验证¶
接口说明¶
- 支持银行卡号、姓名、身份证号和手机号四要素验证;银行卡号、姓名和身份证三要素验证。
- 需等待异步结果通知,可调用“验证结果获取接口”
GET /v5/checkresult
获取验证结果。 - 银行卡实名验证联调环境 mock 逻辑:返回验证结果只和身份证号码有关,当身份证号码以
1~7
开头时,均返回验证一致;以8/9
开头时,均返回验证不一致。
HTTP Request
POST http://realme.hfinside.com/api/realme/v5/trade/cardcheck
请求参数¶
名称 | 类型 | 是否必须 | 限制 | 描述 |
---|---|---|---|---|
full_name | String | 是 | 用户姓名 | |
id_number | String | 是 | 客户身份证号 | |
mobile_no | String | 否 | 客户手机号 | |
acct_no | String | 是 | 客户银行卡 | |
acct_type | String | 否 | 账户类型:P-对私 | |
card_type | String | 否 | 卡类型:D-借记卡;C-信用卡;P-存折; V-虚拟账户;Y-预付费卡;Z-借贷合一卡 | |
valid_date | String | 否 | 有效期,mmyy格式,信用卡非空 | |
cvv2 | String | 否 | 信用卡非空,以加密方式传输 | |
bank_identity | String | 否 | 银行标识 | |
source_channel | String | 是 | 来源渠道:0-PC;1-Android;2-iOS | |
imei | String | 否 | 设备号 | |
mer_bg_url | String | 否 | 建议使用archer接收异步结果 ,可参考如下 “http://wiki.huifu.com/bin/view/信息中心/行业应用研发部/RealMe/realme异步推送结果archer改造/” | |
authorization_info | String | 否 | 用户授权 |
响应参数¶
名称 | 类型 | 是否必须 | 限制 | 描述 |
---|---|---|---|---|
resp_code | String | 否 | 认证结果代码 :00-成功 (一致) ;01-失败 (不一致) ;99-异常 | |
resp_info | String | 否 | 认证结果描述 |
异步返回结果¶
名称 | 类型 | 是否必须 | 限制 | 描述 |
---|---|---|---|---|
resp_code | String | 否 | 认证结果 | |
resp_info | String | 否 | 认证结果描述 | |
return_code | String | 是 | 底层认证结果 | |
return_message | String | 是 | 底层返回描述 | |
seq_id | String | 是 | 流水号 | |
base_seq_id | String | 否 | 底层流水号 | |
order_id | String | 是 | 订单号 |
调用示例¶
shell
curl -H "env:test" -d "order_date=20170101&order_id=201701010000001&app_token=apptoken&sign=9F28CB5B52CAA8267314A9BAF7E6706E&..." http://realme.hfinside.com/api/realme/v5/trade/cardcheck
java
String result = new String();
HttpClient client = new DefaultHttpClient();
HttpPost post = new HttpPost("http://realme.hfinside.com/api/realme/v5/trade/cardcheck");
try {
List<NameValuePair> nvps = new ArrayList<NameValuePair>();
nvps.add(new BasicNameValuePair("order_date", "20170101"));
nvps.add(new BasicNameValuePair("order_id", "201701010000001"));
nvps.add(new BasicNameValuePair("app_token", "apptoken"));
nvps.add(new BasicNameValuePair("sign", "9F28CB5B52CAA8267314A9BAF7E6706E"));
.......
post.setEntity(new UrlEncodedFormEntity(nvps));
post.addHeader("env", "test");
HttpResponse httpResponse = client.execute(post);
int code = httpResponse.getStatusLine().getStatusCode();
String returnStr = EntityUtils.toString(httpResponse.getEntity());
} catch (Exception e) {
e.printStackTrace();
}
python
url = ''.join(['http://realme.hfinside.com', '/realme-api/v5/trade/cardcheck'])
params = {'order_date': '20170101',
'order_id': '201701010000001',
'app_token': 'apptoken',
'sign': '9F28CB5B52CAA8267314A9BAF7E6706E',
......
}
response = requests.post(url, params=params, headers={'env':'test'})
成功响应
200
{
"return_code": "90000",
"return_message": "请求成功,需等待异步结果",
"realme_date": "20170101",
"seq_id" : "2017010100000001",
"order_date": "20170101",
"order_id": "201701010000001"
}
失败响应
400
{
"return_code": "90101",
"return_message": "参数校验失败"
}
手机号实名认证¶
接口说明¶
- 通过姓名、身份证号和手机号与运营商系统进行数据一致性比对,完成实名验证。
- 同步返回验证结果。
HTTP Request
POST http://realme.hfinside.com/api/realme/v4/trade/mobilecheck
请求参数¶
名称 | 类型 | 是否必须 | 限制 | 描述 |
---|---|---|---|---|
full_name | String | 否 | 用户姓名 | |
id_number | String | 否 | 客户身份证号 | |
mobile_no | String | 是 | 客户手机号 | |
source_channel | String | 是 | 来源渠道:0-PC;1-Android;2-iOS | |
imei | String | 否 | 设备号 | |
authorization_info | String | 否 | 用户授权标识 |
响应参数¶
名称 | 类型 | 是否必须 | 限制 | 描述 |
---|---|---|---|---|
resp_code | String | 否 | 认证结果代码:00-成功(一致); 01-失败(不一致); 99-异常;02-手机号身份证号验证一致, 手机号姓名验证结果未知; 03-手机号身份证号验证不一致, 手机号姓名验证结果未知; 04-手机号身份证号验证一致, 手机号姓名验证不一致; 05-手机号身份证号验证不一致, 手机号姓名验证一致 | |
resp_info | String | 否 | 认证结果描述 |
调用示例¶
shell
curl -H "env:test" -d "order_date=20170101&order_id=201701010000001&app_token=apptoken&sign=9F28CB5B52CAA8267314A9BAF7E6706E&..." http://realme.hfinside.com/api/realme/v4/trade/mobilecheck
java
String result = new String();
HttpClient client = new DefaultHttpClient();
HttpPost post = new HttpPost("http://realme.hfinside.com/api/realme/v4/trade/mobilecheck");
try {
List<NameValuePair> nvps = new ArrayList<NameValuePair>();
nvps.add(new BasicNameValuePair("order_date", "20170101"));
nvps.add(new BasicNameValuePair("order_id", "201701010000001"));
nvps.add(new BasicNameValuePair("app_token", "apptoken"));
nvps.add(new BasicNameValuePair("sign", "9F28CB5B52CAA8267314A9BAF7E6706E"));
.......
post.setEntity(new UrlEncodedFormEntity(nvps));
post.addHeader("env", "test");
HttpResponse httpResponse = client.execute(post);
int code = httpResponse.getStatusLine().getStatusCode();
String returnStr = EntityUtils.toString(httpResponse.getEntity());
} catch (Exception e) {
e.printStackTrace();
}
python
url = ''.join(['http://realme.hfinside.com', '/realme-api/v4/trade/mobilecheck'])
params = {'order_date': '20170101',
'order_id': '201701010000001',
'app_token': 'apptoken',
'sign': '9F28CB5B52CAA8267314A9BAF7E6706E',
......
}
response = requests.post(url, params=params, headers={'env':'test'})
成功响应
200
{
"return_code": "10300",
"return_message": "成功",
"realme_date": "20170101",
"seq_id" : "2017010100000001",
"order_date": "20170101",
"order_id": "201701010000001",
"resp_code": "00",
"resp_info": "认证成功"
}
失败响应
400
{
"return_code": "90101",
"return_message": "参数校验失败"
}
身份证实名认证¶
接口说明¶
- 通过采集姓名和身份证号信息,与公安系统进行数据一致性比对,完成身份验证。
- 同步返回验证结果。
HTTP Request
POST http://realme.hfinside.com/api/realme/v5/trade/namecheck
请求参数¶
名称 | 类型 | 是否必须 | 限制 | 描述 |
---|---|---|---|---|
full_name | String | 是 | 用户姓名 | |
id_number | String | 是 | 客户身份证号 | |
source_channel | String | 是 | 来源渠道:0-PC;1-Android;2-iOS | |
imei | String | 否 | 设备号 | |
authorization_info | String | 否 | 用户授权标识 |
响应参数¶
名称 | 类型 | 是否必须 | 限制 | 描述 |
---|---|---|---|---|
resp_code | String | 否 | 认证结果代码:00-成功(一致); 01-失败(不一致); 99-异常 | |
resp_info | String | 否 | 认证结果描述 |
调用示例¶
shell
curl -H "env:test" -d "order_date=20170101&order_id=201701010000001&app_token=apptoken&sign=9F28CB5B52CAA8267314A9BAF7E6706E&..." http://realme.hfinside.com/api/realme/v5/trade/namecheck
java
String result = new String();
HttpClient client = new DefaultHttpClient();
HttpPost post = new HttpPost("http://realme.hfinside.com/api/realme/v5/trade/namecheck");
try {
List<NameValuePair> nvps = new ArrayList<NameValuePair>();
nvps.add(new BasicNameValuePair("order_date", "20170101"));
nvps.add(new BasicNameValuePair("order_id", "201701010000001"));
nvps.add(new BasicNameValuePair("app_token", "apptoken"));
nvps.add(new BasicNameValuePair("sign", "9F28CB5B52CAA8267314A9BAF7E6706E"));
.......
post.setEntity(new UrlEncodedFormEntity(nvps));
post.addHeader("env", "test");
HttpResponse httpResponse = client.execute(post);
int code = httpResponse.getStatusLine().getStatusCode();
String returnStr = EntityUtils.toString(httpResponse.getEntity());
} catch (Exception e) {
e.printStackTrace();
}
python
url = ''.join(['http://realme.hfinside.com', '/realme-api/v5/trade/namecheck'])
params = {'order_date': '20170101',
'order_id': '201701010000001',
'app_token': 'apptoken',
'sign': '9F28CB5B52CAA8267314A9BAF7E6706E',
......
}
response = requests.post(url, params=params, headers={'env':'test'})
成功响应
200
{
"return_code": "90000",
"return_message": "成功",
"realme_date": "20170101",
"seq_id" : "2017010100000001",
"order_date": "20170101",
"order_id": "201701010000001",
"resp_code": "00",
"resp_info": "认证通过"
}
失败响应
400
{
"return_code": "90101",
"return_message": "参数校验失败"
}
身份证照片实名认证¶
接口说明¶
- 通过采集身份证正反面图片,与公安系统进行数据一致性比对,完成身份验证。
- 同步返回成功表示信息接收成功,验证结果需接收异步通知或调用“验证结果获取接口”
GET /v5/checkresult
获取。
HTTP Request
POST http://realme.hfinside.com/api/realme/v5/trade/idcardcheck
请求参数¶
名称 | 类型 | 是否必须 | 限制 | 描述 |
---|---|---|---|---|
full_name | String | 否 | 用户姓名 | |
id_number | String | 否 | 客户身份证号 | |
id_front_pic | String | 是 | 身份证人像面。图片必须转换为 BASE64 格式 | |
id_negative_pic | String | 是 | 身份证国徽面。图片必须转换为 BASE64 格式 | |
source_channel | String | 是 | 来源渠道:0-PC;1-Android;2-iOS | |
imei | String | 否 | 设备号 | |
mer_bg_url | String | 否 | 建议使用archer接收异步结果 ,可参考如下 “http://wiki.huifu.com/bin/view/信息中心/行业应用研发部/RealMe/realme异步推送结果archer改造/” | |
authorization_info | String | 否 | 用户授权标识 |
调用示例¶
shell
curl -H "env:test" -d "order_date=20170101&order_id=201701010000001&app_token=apptoken&sign=9F28CB5B52CAA8267314A9BAF7E6706E&..." http://realme.hsinside.com/api/realme/v5/trade/idcardcheck
java
String result = new String();
HttpClient client = new DefaultHttpClient();
HttpPost post = new HttpPost("http://realme.hfinside.com/api/realme/v5/trade/idcardcheck");
try {
List<NameValuePair> nvps = new ArrayList<NameValuePair>();
nvps.add(new BasicNameValuePair("order_date", "20170101"));
nvps.add(new BasicNameValuePair("order_id", "201701010000001"));
nvps.add(new BasicNameValuePair("app_token", "apptoken"));
nvps.add(new BasicNameValuePair("sign", "9F28CB5B52CAA8267314A9BAF7E6706E"));
.......
post.setEntity(new UrlEncodedFormEntity(nvps));
post.addHeader("env", "test");
HttpResponse httpResponse = client.execute(post);
int code = httpResponse.getStatusLine().getStatusCode();
String returnStr = EntityUtils.toString(httpResponse.getEntity());
} catch (Exception e) {
e.printStackTrace();
}
python
url = ''.join(['http://realme.hfinside.com', '/realme-api/v5/trade/idcardcheck'])
params = {'order_date': '20170101',
'order_id': '201701010000001',
'app_token': 'apptoken',
'sign': '9F28CB5B52CAA8267314A9BAF7E6706E',
......
}
response = requests.post(url, params=params, headers={'env':'test'})
成功响应
200
{
"return_code": "90000",
"return_message": "请求成功,需等待异步结果",
"realme_date": "20170101",
"seq_id" : "2017010100000001",
"order_date": "20170101",
"order_id": "201701010000001"
}
失败响应
400
{
"return_code": "90101",
"return_message": "参数校验失败"
}
人像图片比对¶
接口说明¶
- 通过上传两张人脸图片,采用机器学习技术,进行两张人像照片相似度的比对,鉴定是否为同一人。
- 同步返回验证结果。
HTTP Request
POST http://realme.hfinside.com/api/realme/v4/trade/picturematch
请求参数¶
名称 | 类型 | 是否必须 | 限制 | 描述 |
---|---|---|---|---|
image1 | String | 是 | 图片 1 | |
image1_type | String | 是 | 图片 1 类型:1-单张照片的BASE64; 2-SDK 采集 | |
image2 | String | 是 | 图片 2 | |
image2_type | String | 是 | 图片 2 类型:1-单张照片的BASE64; 2-SDK 采集 | |
source_channel | String | 是 | 来源渠道:0-PC;1-Android;2-iOS | |
imei | String | 否 | 设备号 | |
authorization_info | String | 否 | 用户授权标识 |
响应参数¶
名称 | 类型 | 是否必须 | 限制 | 描述 |
---|---|---|---|---|
resp_code | String | 否 | 认证结果代码:00-成功(一致); 01-失败(不一致);99-异常 | |
resp_info | String | 否 | 认证结果描述 | |
mp_ssim | String | 否 | 比对分值,0-100 |
调用示例¶
shell
curl -H "env:test" -d "order_date=20170101&order_id=201701010000001&app_token=apptoken&sign=9F28CB5B52CAA8267314A9BAF7E6706E&..." http://realme.hfinside.com/api/realme/v4/trade/picturematch
java
String result = new String();
HttpClient client = new DefaultHttpClient();
HttpPost post = new HttpPost("http://realme.hfinside.com/api/realme/v4/trade/picturematch");
try {
List<NameValuePair> nvps = new ArrayList<NameValuePair>();
nvps.add(new BasicNameValuePair("order_date", "20170101"));
nvps.add(new BasicNameValuePair("order_id", "201701010000001"));
nvps.add(new BasicNameValuePair("app_token", "apptoken"));
nvps.add(new BasicNameValuePair("sign", "9F28CB5B52CAA8267314A9BAF7E6706E"));
.......
post.setEntity(new UrlEncodedFormEntity(nvps));
post.addHeader("env", "test");
HttpResponse httpResponse = client.execute(post);
int code = httpResponse.getStatusLine().getStatusCode();
String returnStr = EntityUtils.toString(httpResponse.getEntity());
} catch (Exception e) {
e.printStackTrace();
}
python
url = ''.join(['http://realme.hfinside.com', '/realme-api/v4/trade/picturematch'])
params = {'order_date': '20170101',
'order_id': '201701010000001',
'app_token': 'apptoken',
'sign': '9F28CB5B52CAA8267314A9BAF7E6706E',
......
}
response = requests.post(url, params=params, headers={'env':'test'})
成功响应
200
{
"return_code": "10500",
"return_message": "成功",
"realme_date": "20170101",
"seq_id" : "2017010100000001",
"order_date": "20170101",
"order_id": "201701010000001",
"resp_code": "01",
"resp_info": "不是同一个人",
"mp_ssim": "30"
}
失败响应
400
{
"return_code": "90101",
"return_message": "参数校验失败"
}
身份证信息识别¶
接口说明¶
- 对客户提交的身份证照片上的 “身份证号码”、“姓名”和“证件头像”进行识别。
- 异步返回验证结果。
HTTP Request
POST http://realme.hfinside.com/api/realme/v5/trade/idcardidentify
请求参数¶
名称 | 类型 | 是否必须 | 限制 | 描述 |
---|---|---|---|---|
id_pic | String | 是 | 身份证照。图片必须转换为 BASE64 格式 | |
interface_id | String | 是 | 接口区分。(头像侧为正面,国徽为背面) 01:不带背景正面; 02:不带背景背面; 03:带背景正面;04:带背景背面(建议后两种) | |
source_channel | String | 是 | 来源渠道:0-PC;1-Android;2-iOS | |
imei | String | 否 | 设备号 | |
mer_bg_url | String | 否 | 建议使用archer接收异步结果 ,可参考如下 “http://wiki.huifu.com/bin/view/信息中心/行业应用研发部/RealMe/realme异步推送结果archer改造/” | |
authorization_info | String | 否 | 用户授权标识 |
异步返回结果¶
名称 | 类型 | 是否必须 | 限制 | 描述 |
---|---|---|---|---|
addr | String | 是 | 身份证地址(正面结果) | |
issue | String | 是 | 发证机构 (背面结果) | |
expirydate | String | 是 | 有效期 (背面结果) | |
id_number | String | 是 | 身份证号(正面结果) | |
full_name | String | 是 | 姓名(正面结果) |
调用示例¶
shell
curl -H "env:test" -d "order_date=20170101&order_id=201701010000001&app_token=apptoken&sign=9F28CB5B52CAA8267314A9BAF7E6706E&..." http://realme.hfinside.com/api/realme/v3/trade/idcardidentify
java
String result = new String();
HttpClient client = new DefaultHttpClient();
HttpPost post = new HttpPost("http://realme.hfinside.com/api/realme/v5/trade/idcardidentify");
try {
List<NameValuePair> nvps = new ArrayList<NameValuePair>();
nvps.add(new BasicNameValuePair("order_date", "20170101"));
nvps.add(new BasicNameValuePair("order_id", "201701010000001"));
nvps.add(new BasicNameValuePair("app_token", "apptoken"));
nvps.add(new BasicNameValuePair("sign", "9F28CB5B52CAA8267314A9BAF7E6706E"));
.......
post.setEntity(new UrlEncodedFormEntity(nvps));
post.addHeader("env", "test");
HttpResponse httpResponse = client.execute(post);
int code = httpResponse.getStatusLine().getStatusCode();
String returnStr = EntityUtils.toString(httpResponse.getEntity());
} catch (Exception e) {
e.printStackTrace();
}
python
url = ''.join(['http://realme.hfinside.com', '/realme-api/v5/trade/idcardidentify'])
params = {'order_date': '20170101',
'order_id': '201701010000001',
'app_token': 'apptoken',
'sign': '9F28CB5B52CAA8267314A9BAF7E6706E',
......
}
response = requests.post(url, params=params, headers={'env':'test'})
成功响应
200
{
"return_code": "90000",
"return_message": "成功",
"realme_date": "20190826",
"seq_id" : "2019082610485587",
"order_date": "20190826",
"order_id": "9eee1a30aadd4fd6b131e7ae80295bd0"
}
失败响应
400
{
"return_code": "90101",
"return_message": "参数校验失败"
}
银行卡信息识别¶
接口说明¶
- 对客户提交的银行卡照片进行识别。
- 异步返回验证结果。
HTTP Request
POST http://realme.hfinside.com/api/realme/v5/trade/bankcardidentify
请求参数¶
名称 | 类型 | 是否必须 | 限制 | 描述 | |||
---|---|---|---|---|---|---|---|
bank_card_pic | String | 是 | 银行卡照:图片必须转换为 BASE64 格式 | ||||
mer_bg_url |
|
||||||
source_channel | String | 是 | - | 来源渠道:0-PC;1-Android;2-iOS | ||||||
imei | String | 否 | 设备号 | ||||
authorization_info | String | 否 | 用户授权标识 |
异步返回结果¶
名称 | 类型 | 是否必须 | 限制 | 描述 |
---|---|---|---|---|
bank_card | String | 是 | 银行卡号 |
调用示例¶
shell
curl -H "env:test" -d "order_date=20170101&order_id=201701010000001&app_token=apptoken&sign=9F28CB5B52CAA8267314A9BAF7E6706E&..." http://realme.hfinside.com/api/realme/v3/trade/bankcardidentify
java
String result = new String();
HttpClient client = new DefaultHttpClient();
HttpPost post = new HttpPost("http://realme.hfinside.com/api/realme/v3/trade/bankcardidentify");
try {
List<NameValuePair> nvps = new ArrayList<NameValuePair>();
nvps.add(new BasicNameValuePair("order_date", "20170101"));
nvps.add(new BasicNameValuePair("order_id", "201701010000001"));
nvps.add(new BasicNameValuePair("app_token", "apptoken"));
nvps.add(new BasicNameValuePair("sign", "9F28CB5B52CAA8267314A9BAF7E6706E"));
.......
post.setEntity(new UrlEncodedFormEntity(nvps));
post.addHeader("env", "test");
HttpResponse httpResponse = client.execute(post);
int code = httpResponse.getStatusLine().getStatusCode();
String returnStr = EntityUtils.toString(httpResponse.getEntity());
} catch (Exception e) {
e.printStackTrace();
}
python
url = ''.join(['http://realme.hfinside.com', '/realme-api/v3/trade/bankcardidentify'])
params = {'order_date': '20170101',
'order_id': '201701010000001',
'app_token': 'apptoken',
'sign': '9F28CB5B52CAA8267314A9BAF7E6706E',
......
}
response = requests.post(url, params=params, headers={'env':'test'})
成功响应
200
{
"return_code": "10800",
"return_message": "成功",
"realme_date": "20170101",
"seq_id" : "2017010100000001",
"order_date": "20170101",
"order_id": "201701010000001"
}
失败响应
400
{
"return_code": "90101",
"return_message": "参数校验失败"
}
1:N人像注册¶
接口说明¶
- 为人像1:N比对,创建组信息,人像文件上传。
- 同步返回验证结果。
HTTP Request
POST http://realme.hfinside.com/api/realme/v4/trade/faceregister
请求参数¶
名称 | 类型 | 是否必须 | 限制 | 描述 |
---|---|---|---|---|
group_ids | String | 是 | 组名。可以传递多个用 ; 分隔 | |
person_id | String | 是 | 用户唯一标识。 | |
image | String | 否 | 人像图片内容 | |
file_suffix | String | 否 | 人像图片后缀 | |
file_id | String | 否 | ufile的文件ID | |
person_name | String | 否 | 姓名 | |
authorization_info | String | 否 | 用户授权标识 |
响应参数¶
名称 | 类型 | 是否必须 | 限制 | 描述 |
---|---|---|---|---|
face_set_resp | String | 是 | 人脸注册返回。详细信息示例: [{“respCd”:”000001”, “respInfo”:”成功”,”groupId”:”1000”, “personId”:”2000”,”faceId”:”3000”} |
调用示例¶
shell
curl -H "env:test" -d "order_date=20170101&order_id=201701010000001&app_token=apptoken&sign=9F28CB5B52CAA8267314A9BAF7E6706E&..." http://realme.hfinside.com/api/realme/v4/trade/faceregister
java
String result = new String();
HttpClient client = new DefaultHttpClient();
HttpPost post = new HttpPost("http://realme.hfinside.com/api/realme/v4/trade/faceregister");
try {
List<NameValuePair> nvps = new ArrayList<NameValuePair>();
nvps.add(new BasicNameValuePair("order_date", "20170101"));
nvps.add(new BasicNameValuePair("order_id", "201701010000001"));
nvps.add(new BasicNameValuePair("app_token", "apptoken"));
nvps.add(new BasicNameValuePair("sign", "9F28CB5B52CAA8267314A9BAF7E6706E"));
.......
post.setEntity(new UrlEncodedFormEntity(nvps));
post.addHeader("env", "test");
HttpResponse httpResponse = client.execute(post);
int code = httpResponse.getStatusLine().getStatusCode();
String returnStr = EntityUtils.toString(httpResponse.getEntity());
} catch (Exception e) {
e.printStackTrace();
}
python
url = ''.join(['http://realme.hfinside.com', '/realme-api/v4/trade/faceregister'])
params = {'order_date': '20170101',
'order_id': '201701010000001',
'app_token': 'apptoken',
'sign': '9F28CB5B52CAA8267314A9BAF7E6706E',
......
}
response = requests.post(url, params=params, headers={'env':'test'})
成功响应
200
{
"return_code": "10900",
"return_message": "成功",
"realme_date": "20170101",
"seq_id" : "2017010100000001",
"order_date": "20170101",
"order_id": "201701010000001"
}
失败响应
400
{
"return_code": "90101",
"return_message": "参数校验失败"
}
1:N人像检索¶
接口说明¶
- 对于一个待识别的人脸图片,在一个 group 中识别出最相似的指定条数的 Person 作为其身份返回,返回的指定数量结果, 按照相似度从大到小排列。
- 同步返回成功表示信息接收成功,验证结果需接收异步通知或调用“验证结果获取接口”
GET /v4/checkresult
获取。
HTTP Request
POST http://realme.hfinside.com/api/realme/v4/trade/faceretrieve
请求参数¶
名称 | 类型 | 是否必须 | 限制 | 描述 |
---|---|---|---|---|
group_id | String | 是 | 组名 | |
image | String | 否 | 人像图片内容 | |
file_suffix | String | 否 | 人像图片后缀 | |
file_id | String | 否 | ufile 的文件 ID | |
number | String | 否 | 返回最相似图片个数。默认 1 | |
mer_bg_url | String | 否 | 建议使用archer接收异步结果 ,可参考如下 “http://wiki.huifu.com/bin/view/信息中心/行业应用研发部/RealMe/realme异步推送结果archer改造/” | |
authorization_info | String | 否 | 用户授权标识 |
调用示例¶
shell
curl -H "env:test" -d "order_date=20170101&order_id=201701010000001&app_token=apptoken&sign=9F28CB5B52CAA8267314A9BAF7E6706E&..." http://realme.hfinside.com/api/realme/v4/trade/faceretrieve
java
String result = new String();
HttpClient client = new DefaultHttpClient();
HttpPost post = new HttpPost("http://realme.hfinside.com/api/realme/v4/trade/faceretrieve");
try {
List<NameValuePair> nvps = new ArrayList<NameValuePair>();
nvps.add(new BasicNameValuePair("order_date", "20170101"));
nvps.add(new BasicNameValuePair("order_id", "201701010000001"));
nvps.add(new BasicNameValuePair("app_token", "apptoken"));
nvps.add(new BasicNameValuePair("sign", "9F28CB5B52CAA8267314A9BAF7E6706E"));
.......
post.setEntity(new UrlEncodedFormEntity(nvps));
post.addHeader("env", "test");
HttpResponse httpResponse = client.execute(post);
int code = httpResponse.getStatusLine().getStatusCode();
String returnStr = EntityUtils.toString(httpResponse.getEntity());
} catch (Exception e) {
e.printStackTrace();
}
python
url = ''.join(['http://realme.hfinside.com', '/realme-api/v4/trade/faceretrieve'])
params = {'order_date': '20170101',
'order_id': '201701010000001',
'app_token': 'apptoken',
'sign': '9F28CB5B52CAA8267314A9BAF7E6706E',
......
}
response = requests.post(url, params=params, headers={'env':'test'})
成功响应
200
{
"return_code": "11001",
"return_message": "成功",
"realme_date": "20170101",
"seq_id" : "2017010100000001",
"order_date": "20170101",
"order_id": "201701010000001"
}
失败响应
400
{
"return_code": "90101",
"return_message": "参数校验失败"
}
人像防Hack检查¶
接口说明¶
- 根据客户的“高清人像图片”,查询照片是否有被Hack。
- 同步返回创建结果。
HTTP Request
POST http://realme.hfinside.com/api/realme/v5/trade/defensehack
请求参数¶
名称 | 类型 | 是否必须 | 限制 | 描述 |
---|---|---|---|---|
video_pic | String | 是 | 姓名 | |
authorization_info | String | 否 | 用户授权标识 |
响应参数¶
名称 | 类型 | 是否必须 | 限制 | 描述 |
---|---|---|---|---|
resp_code | String | 是 | 返回代码 | |
resp_info | String | 是 | 返回描述 | |
score | String | 是 | 检查分值 |
调用示例¶
shell
curl -H "env:test" -d "order_date=20181001&order_id=201810010000001&app_token=apptoken&sign=9F28CB5B52CAA8267314A9BAF7E6706E&..." http://realme.hfinside.com/api/realme/v5/trade/defensehack
java
String result = new String();
HttpClient client = new DefaultHttpClient();
HttpPost post = new HttpPost("http://realme.hfinside.com/api/realme/v5/trade/defensehack");
try {
List<NameValuePair> nvps = new ArrayList<NameValuePair>();
nvps.add(new BasicNameValuePair("order_date", "20181001"));
nvps.add(new BasicNameValuePair("order_id", "201810010000001"));
nvps.add(new BasicNameValuePair("app_token", "apptoken"));
nvps.add(new BasicNameValuePair("sign", "9F28CB5B52CAA8267314A9BAF7E6706E"));
.......
post.setEntity(new UrlEncodedFormEntity(nvps));
post.addHeader("env", "test");
HttpResponse httpResponse = client.execute(post);
int code = httpResponse.getStatusLine().getStatusCode();
String returnStr = EntityUtils.toString(httpResponse.getEntity());
} catch (Exception e) {
e.printStackTrace();
}
python
url = ''.join(['http://realme.hfinside.com', '/realme-api/v5/trade/defensehack'])
params = {'order_date': '20181012',
'order_id': '20181112170932785736',
'app_token': 'apptoken',
'sign': '9F28CB5B52CAA8267314A9BAF7E6706E',
......
}
response = requests.post(url, params=params, headers={'env':'test'})
成功响应
200
{
"return_code": "90000",
"return_message": "成功",
"realme_date": "20181112",
"seq_id" : "20181112170932785736",
"order_date": "20181112",
"order_id": "20181112170932785736",
......
}
失败响应
400
{
"return_code": "90101",
"return_message": "参数校验失败"
}
营业执照信息识别¶
接口说明¶
- 根据客户提交的营业执照图像,快速精准地识别其关键字段,包括单位名称、统一社会信用代码、类型、住所、法定代表人、注册资本、成立日期、营业期限、经营范围等。
- 同步返回识别结果。
HTTP Request
POST http://realme.hfinside.com/api/realme/v5/trade/licenseocr
请求参数¶
名称 | 类型 | 是否必须 | 限制 | 描述 |
---|---|---|---|---|
license_pic | String | 是 | 营业执照图片( BASE64 格式) | |
img_suffix | String | 是 | 图片后缀(jpg) | |
authorization_info | String | 否 | 用户授权标识 |
响应参数¶
名称 | 类型 | 是否必须 | 限制 | 描述 |
---|---|---|---|---|
jfile_id | String | 否 | 营业执照jfile文件id | |
credit_code | String | 否 | 统一社会信用代码 | |
reg_no | String | 否 | 注册号 | |
ent_name | String | 否 | 企业名称 | |
ent_type | String | 否 | 企业类型 | |
address | String | 否 | 住所 | |
fr_name | String | 否 | 法定代表人 | |
reg_cap | String | 否 | 注册资本 | |
es_date | String | 否 | 成立日期(开业日期) | |
operate_scope | String | 否 | 经营范围 | |
open_range | String | 否 | 营业期限 | |
serial_no | String | 否 | 证照编号 | |
duty_no | String | 否 | 税务登记号 | |
form | String | 否 | 组成形式 | |
org_code | String | 否 | 组织机构代码 |
调用示例¶
shell
curl -H "env:test" -d "order_date=20181001&order_id=201810010000001&app_token=apptoken&sign=9F28CB5B52CAA8267314A9BAF7E6706E&..." http://realme.hfinside.com/api/realme/v5/trade/licenseocr
java
String result = new String();
HttpClient client = new DefaultHttpClient();
HttpPost post = new HttpPost("http://realme.hfinside.com/api/realme/v5/trade/licenseocr");
try {
List<NameValuePair> nvps = new ArrayList<NameValuePair>();
nvps.add(new BasicNameValuePair("order_date", "20181001"));
nvps.add(new BasicNameValuePair("order_id", "201810010000001"));
nvps.add(new BasicNameValuePair("app_token", "apptoken"));
nvps.add(new BasicNameValuePair("sign", "9F28CB5B52CAA8267314A9BAF7E6706E"));
.......
post.setEntity(new UrlEncodedFormEntity(nvps));
post.addHeader("env", "test");
HttpResponse httpResponse = client.execute(post);
int code = httpResponse.getStatusLine().getStatusCode();
String returnStr = EntityUtils.toString(httpResponse.getEntity());
} catch (Exception e) {
e.printStackTrace();
}
python
url = ''.join(['http://realme.hfinside.com', '/realme-api/v5/trade/licenseocr'])
params = {'order_date': '20181001',
'order_id': '201810010000001',
'app_token': 'apptoken',
'sign': '9F28CB5B52CAA8267314A9BAF7E6706E',
......
}
response = requests.post(url, params=params, headers={'env':'test'})
成功响应
200
{
"return_code": "90000",
"return_message": "成功",
"realme_date": "20181001",
"seq_id" : "201810010000001",
"order_date": "20181001",
"order_id": "201810010000001",
"credit_code": "9131212736617E",
"reg_no": "",
"ent_name": "上海晨星数据服务有限公司",
"ent_type": "有限责任公司",
"address": "上海市浦东新区新华路路123号",
"fr_name": "张伟",
"reg_cap": "壹仟万元整",
"es_date": "2015年08月28日",
"operate_scope": "为银行卡支付、转帐业务提供技术平台,软件开发、数据处理服务和相关服务",
"open_range": "2015年08月28日至2035年08月28日",
"serial_no": "",
"org_code": "",
"duty_no": "",
"form": ""
}
失败响应
400
{
"return_code": "90101",
"return_message": "参数校验失败"
}
反洗钱高风险客户名单查询¶
接口说明¶
- 提供根据用户的基本信息查询接口,返回符合条件的疑似敏感人物或黑名单详细信息。
- 同步返回识别结果。
HTTP Request
POST http://realme.hfinside.com/api/realme/v5/trade/antilaunderquery
请求参数¶
名称 | 类型 | 是否必须 | 限制 | 描述 |
---|---|---|---|---|
full_name | String | 否 | 查询对象的姓名(个人用户的 姓名或者企业名称)。用户姓 名和证件号,必须输入一个 | |
id_number | String | 否 | 用户或者企业所在国家颁发 的唯一识别证件号码 | |
mobile_no | String | 否 | 手机号码 | |
card_no | String | 否 | 银行卡号 | |
authorization_info | String | 否 | 用户授权标识 |
响应参数¶
名称 | 类型 | 是否必须 | 限制 | 描述 |
---|---|---|---|---|
pep_result | String | 否 | PEP个人结果 | |
black_list_result | String | 否 | 黑名单结果 |
调用示例¶
shell
curl -H "env:test" -d "order_date=20181001&order_id=201810010000001&app_token=apptoken&sign=9F28CB5B52CAA8267314A9BAF7E6706E&..." http://realme.hfinside.com/api/realme/v5/trade/antilaunderquery
java
String result = new String();
HttpClient client = new DefaultHttpClient();
HttpPost post = new HttpPost("http://realme.hfinside.com/api/realme/v5/trade/antilaunderquery");
try {
List<NameValuePair> nvps = new ArrayList<NameValuePair>();
nvps.add(new BasicNameValuePair("order_date", "20181001"));
nvps.add(new BasicNameValuePair("order_id", "201810010000001"));
nvps.add(new BasicNameValuePair("app_token", "apptoken"));
nvps.add(new BasicNameValuePair("sign", "9F28CB5B52CAA8267314A9BAF7E6706E"));
.......
post.setEntity(new UrlEncodedFormEntity(nvps));
post.addHeader("env", "test");
HttpResponse httpResponse = client.execute(post);
int code = httpResponse.getStatusLine().getStatusCode();
String returnStr = EntityUtils.toString(httpResponse.getEntity());
} catch (Exception e) {
e.printStackTrace();
}
python
url = ''.join(['http://realme.hfinside.com', '/realme-api/v5/trade/antilaunderquery'])
params = {'order_date': '20181012',
'order_id': '20181112170932785736',
'app_token': 'apptoken',
'sign': '9F28CB5B52CAA8267314A9BAF7E6706E',
......
}
response = requests.post(url, params=params, headers={'env':'test'})
成功响应
200
{
"return_code": "90000",
"return_message": "成功",
"realme_date": "20181112",
"seq_id" : "20181112170932785736",
"order_date": "20181112",
"order_id": "20181112170932785736",
"pep_result": "",
"black_list_result": "{"blackSign":"999", "blackPriorityLevel":"", "blackLisCheckResult":[{"fromSys":[],"priorityLevel":"","kind":"008","value":"丁薛祥","hitResult":"N"}]}"
}
失败响应
400
{
"return_code": "90101",
"return_message": "参数校验失败"
}
#.. _header-n1301: # #魔蝎创建运营商采集任务 #————————– # #.. _header-n1303: # #接口说明 #~~~~~~~~ # #1) 创建运营商采集任务。 # #2) 同步返回创建结果。 # #**HTTP Request** # #``POST http://realme.hfinside.com/api/realme/v5/trade/getmoxietask`` # #.. _header-n1305: # #请求参数 #~~~~~~~~ # #+——————–+————-+————-+————-+—————————–+ #| 名称 | 类型 | 是否必须 | 限制 | 描述 | #+====================+=============+=============+=============+=============================+ #| mobile | String | 是 | - | 手机号码 | #+——————–+————-+————-+————-+—————————–+ #| password | String | 是 | - | 服务密码 | #+——————–+————-+————-+————-+—————————–+ #| full_name | String | 是 | - | 预留姓名 | #+——————–+————-+————-+————-+—————————–+ #| id_number | String | 是 | - | 预留身份证 | #+——————–+————-+————-+————-+—————————–+ #| mer_bg_url | String | 是 | - | 异步通知回调地址 | #+——————–+————-+————-+————-+—————————–+ #| authorization_info | String | 否 | - | 用户授权标识 | #+——————–+————-+————-+————-+—————————–+ # #.. _header-n1307: # #响应参数 #~~~~~~~~ # #+——————-+————-+————-+————-+————————————-+ #| 名称 | 类型 | 是否必须 | 限制 | 描述 | #+===================+=============+=============+=============+=====================================+ #| result | String | 是 | - | 操作结果 | #+——————-+————-+————-+————-+————————————-+ # # #调用示例 #~~~~~~~~~~~~ # #shell # #.. code:: shell # # curl -H “env:test” -d “order_date=20181001&order_id=201810010000001&app_token=apptoken&sign=9F28CB5B52CAA8267314A9BAF7E6706E&…” http://realme.hfinside.com/api/realme/v5/trade/getmoxietask # # #java # #.. code:: java # # String result = new String(); # HttpClient client = new DefaultHttpClient(); # HttpPost post = new HttpPost(“http://realme.hfinside.com/api/realme/v5/trade/getmoxietask”); # try { # List<NameValuePair> nvps = new ArrayList<NameValuePair>(); # nvps.add(new BasicNameValuePair(“order_date”, “20181001”)); # nvps.add(new BasicNameValuePair(“order_id”, “201810010000001”)); # nvps.add(new BasicNameValuePair(“app_token”, “apptoken”)); # nvps.add(new BasicNameValuePair(“sign”, “9F28CB5B52CAA8267314A9BAF7E6706E”)); # ……. # post.setEntity(new UrlEncodedFormEntity(nvps)); # post.addHeader(“env”, “test”); # HttpResponse httpResponse = client.execute(post); # int code = httpResponse.getStatusLine().getStatusCode(); # String returnStr = EntityUtils.toString(httpResponse.getEntity()); # } catch (Exception e) { # e.printStackTrace(); # } # #python # #.. code:: python # # url = ‘’.join([‘http://realme.hfinside.com’, ‘/realme-api/v5/trade/getmoxietask’]) # params = {‘order_date’: ‘20181012’, # ‘order_id’: ‘20181112170932785736’, # ‘app_token’: ‘apptoken’, # ‘sign’: ‘9F28CB5B52CAA8267314A9BAF7E6706E’, # …… # } # response = requests.post(url, params=params, headers={‘env’:’test’}) # #.. # #成功响应 # #.. code:: json # # 200 # { # “return_code”: “90000”, # “return_message”: “成功”, # “realme_date”: “20181112”, # “seq_id” : “20181112170932785736”, # “order_date”: “20181112”, # “order_id”: “20181112170932785736”, # …… # } # #.. # #失败响应 # #.. code:: json # # 400 # { # “return_code”: “90101”, # “return_message”: “参数校验失败” # } # # #.. _header-n1317: # #魔蝎输入图片/短信验证码 #—————————- # #.. _header-n1319: # #接口说明 #~~~~~~~~ # #1) 输入图片/短信验证码。 # #2) 同步返回结果。 # #**HTTP Request** # #``POST http://realme.hfinside.com/api/realme/v5/trade/getmoxieinput`` # #.. _header-n1325: # #请求参数 #~~~~~~~~ # #+——————–+————-+————-+————-+—————————–+ #| 名称 | 类型 | 是否必须 | 限制 | 描述 | #+====================+=============+=============+=============+=============================+ #| task_id | String | 是 | - | 创建采集任务获取的TaskID | #+——————–+————-+————-+————-+—————————–+ #| verify_code | String | 是 | - | 创建采集任务收到的短信, | #| | | | - | 目前短信验证码 | #+——————–+————-+————-+————-+—————————–+ #| authorization_info | String | 否 | - | 用户授权标识 | #+——————–+————-+————-+————-+—————————–+ # #.. _header-n1323: # #响应参数 #~~~~~~~~ # #+——————-+————-+————-+————-+————————————-+ #| 名称 | 类型 | 是否必须 | 限制 | 描述 | #+===================+=============+=============+=============+=====================================+ #| result | String | 是 | - | 操作结果 | #+——————-+————-+————-+————-+————————————-+ # #调用示例 #~~~~~~~~~~~~ # #shell # #.. code:: shell # # curl -H “env:test” -d “order_date=20181001&order_id=201810010000001&app_token=apptoken&sign=9F28CB5B52CAA8267314A9BAF7E6706E&…” http://realme.hfinside.com/api/realme/v5/trade/getmoxieinput # #java # #.. code:: java # # String result = new String(); # HttpClient client = new DefaultHttpClient(); # HttpPost post = new HttpPost(“http://realme.hfinside.com/api/realme/v5/trade/getmoxieinput”); # try { # List<NameValuePair> nvps = new ArrayList<NameValuePair>(); # nvps.add(new BasicNameValuePair(“order_date”, “20181001”)); # nvps.add(new BasicNameValuePair(“order_id”, “201810010000001”)); # nvps.add(new BasicNameValuePair(“app_token”, “apptoken”)); # nvps.add(new BasicNameValuePair(“sign”, “9F28CB5B52CAA8267314A9BAF7E6706E”)); # ……. # post.setEntity(new UrlEncodedFormEntity(nvps)); # post.addHeader(“env”, “test”); # HttpResponse httpResponse = client.execute(post); # int code = httpResponse.getStatusLine().getStatusCode(); # String returnStr = EntityUtils.toString(httpResponse.getEntity()); # } catch (Exception e) { # e.printStackTrace(); # } # #python # #.. code:: python # # url = ‘’.join([‘http://realme.hfinside.com’, ‘/realme-api/v5/trade/getmoxieinput’]) # params = {‘order_date’: ‘20181012’, # ‘order_id’: ‘20181112170932785736’, # ‘app_token’: ‘apptoken’, # ‘sign’: ‘9F28CB5B52CAA8267314A9BAF7E6706E’, # …… # } # response = requests.post(url, params=params, headers={‘env’:’test’}) # #.. # #成功响应 # #.. code:: json # # 200 # { # “return_code”: “90000”, # “return_message”: “成功”, # “realme_date”: “20181112”, # “seq_id” : “20181112170932785736”, # “order_date”: “20181112”, # “order_id”: “20181112170932785736”, # …… # } # #.. # #失败响应 # #.. code:: json # # 400 # { # “return_code”: “90101”, # “return_message”: “参数校验失败” # } # # #.. _header-n1309: # #魔蝎再次获取图片/短信验证码 #—————————- # #.. _header-n1311: # #接口说明 #~~~~~~~~ # #1) 再次获取图片/短信验证码。 # #2) 同步返回结果。 # #**HTTP Request** # #``POST http://realme.hfinside.com/api/realme/v5/trade/getmoxieverifycode`` # #.. _header-n1313: # #请求参数 #~~~~~~~~ # #+——————–+————-+————-+————-+—————————–+ #| 名称 | 类型 | 是否必须 | 限制 | 描述 | #+====================+=============+=============+=============+=============================+ #| task_id | String | 是 | - | 创建采集任务获取的TaskID | #+——————–+————-+————-+————-+—————————–+ #| message_type | String | 是 | - | img:图片 sms:短信 | #+——————–+————-+————-+————-+—————————–+ #| authorization_info | String | 否 | - | 用户授权标识 | #+——————–+————-+————-+————-+—————————–+ # #.. _header-n1315: # #响应参数 #~~~~~~~~ # #+——————-+————-+————-+————-+————————————-+ #| 名称 | 类型 | 是否必须 | 限制 | 描述 | #+===================+=============+=============+=============+=====================================+ #| result | String | 是 | - | 操作结果 | #+——————-+————-+————-+————-+————————————-+ # # #调用示例 #~~~~~~~~~~~~ # #shell # #.. code:: shell # # curl -H “env:test” -d “order_date=20181001&order_id=201810010000001&app_token=apptoken&sign=9F28CB5B52CAA8267314A9BAF7E6706E&…” http://realme.hfinside.com/api/realme/v5/trade/getmoxieverifycode # #java # #.. code:: java # # String result = new String(); # HttpClient client = new DefaultHttpClient(); # HttpPost post = new HttpPost(“http://realme.hfinside.com/api/realme/v5/trade/getmoxieverifycode”); # try { # List<NameValuePair> nvps = new ArrayList<NameValuePair>(); # nvps.add(new BasicNameValuePair(“order_date”, “20181001”)); # nvps.add(new BasicNameValuePair(“order_id”, “201810010000001”)); # nvps.add(new BasicNameValuePair(“app_token”, “apptoken”)); # nvps.add(new BasicNameValuePair(“sign”, “9F28CB5B52CAA8267314A9BAF7E6706E”)); # ……. # post.setEntity(new UrlEncodedFormEntity(nvps)); # post.addHeader(“env”, “test”); # HttpResponse httpResponse = client.execute(post); # int code = httpResponse.getStatusLine().getStatusCode(); # String returnStr = EntityUtils.toString(httpResponse.getEntity()); # } catch (Exception e) { # e.printStackTrace(); # } # #python # #.. code:: python # # url = ‘’.join([‘http://realme.hfinside.com’, ‘/realme-api/v5/trade/getmoxieverifycode’]) # params = {‘order_date’: ‘20181012’, # ‘order_id’: ‘20181112170932785736’, # ‘app_token’: ‘apptoken’, # ‘sign’: ‘9F28CB5B52CAA8267314A9BAF7E6706E’, # …… # } # response = requests.post(url, params=params, headers={‘env’:’test’}) # #.. # #成功响应 # #.. code:: json # # 200 # { # “return_code”: “90000”, # “return_message”: “成功”, # “realme_date”: “20181112”, # “seq_id” : “20181112170932785736”, # “order_date”: “20181112”, # “order_id”: “20181112170932785736”, # …… # } # #.. # #失败响应 # #.. code:: json # # 400 # { # “return_code”: “90101”, # “return_message”: “参数校验失败” # } # #.. _header-n1327: # #魔蝎获取运营商采集任务执行状态 #——————————- # #.. _header-n1329: # #接口说明 #~~~~~~~~ # #1) 获取运营商采集任务执行状态。 # #2) 同步返回结果。 # #**HTTP Request** # #``POST http://realme.hfinside.com/api/realme/v5/trade/getmoxiestatus`` # #.. _header-n1331: # #请求参数 #~~~~~~~~ # #+——————–+————-+————-+————-+—————————–+ #| 名称 | 类型 | 是否必须 | 限制 | 描述 | #+====================+=============+=============+=============+=============================+ #| task_id | String | 是 | - | 创建采集任务获取的TaskID | #+——————–+————-+————-+————-+—————————–+ #| authorization_info | String | 否 | - | 用户授权标识 | #+——————–+————-+————-+————-+—————————–+ # #.. _header-n1335: # #响应参数 #~~~~~~~~ # #+——————-+————-+————-+————-+————————————-+ #| 名称 | 类型 | 是否必须 | 限制 | 描述 | #+===================+=============+=============+=============+=====================================+ #| result | String | 是 | - | 操作结果 | #+——————-+————-+————-+————-+————————————-+ # #调用示例 #~~~~~~~~~~~~ # #shell # #.. code:: shell # # curl -H “env:test” -d “order_date=20181001&order_id=201810010000001&app_token=apptoken&sign=9F28CB5B52CAA8267314A9BAF7E6706E&…” http://realme.hfinside.com/api/realme/v5/trade/getmoxiestatus # #java # #.. code:: java # # String result = new String(); # HttpClient client = new DefaultHttpClient(); # HttpPost post = new HttpPost(“http://realme.hfinside.com/api/realme/v5/trade/getmoxiestatus”); # try { # List<NameValuePair> nvps = new ArrayList<NameValuePair>(); # nvps.add(new BasicNameValuePair(“order_date”, “20181001”)); # nvps.add(new BasicNameValuePair(“order_id”, “201810010000001”)); # nvps.add(new BasicNameValuePair(“app_token”, “apptoken”)); # nvps.add(new BasicNameValuePair(“sign”, “9F28CB5B52CAA8267314A9BAF7E6706E”)); # ……. # post.setEntity(new UrlEncodedFormEntity(nvps)); # post.addHeader(“env”, “test”); # HttpResponse httpResponse = client.execute(post); # int code = httpResponse.getStatusLine().getStatusCode(); # String returnStr = EntityUtils.toString(httpResponse.getEntity()); # } catch (Exception e) { # e.printStackTrace(); # } # #python # #.. code:: python # # url = ‘’.join([‘http://realme.hfinside.com’, ‘/realme-api/v5/trade/getmoxiestatus’]) # params = {‘order_date’: ‘20181012’, # ‘order_id’: ‘20181112170932785736’, # ‘app_token’: ‘apptoken’, # ‘sign’: ‘9F28CB5B52CAA8267314A9BAF7E6706E’, # …… # } # response = requests.post(url, params=params, headers={‘env’:’test’}) # #.. # #成功响应 # #.. code:: json # # 200 # { # “return_code”: “90000”, # “return_message”: “成功”, # “realme_date”: “20181112”, # “seq_id” : “20181112170932785736”, # “order_date”: “20181112”, # “order_id”: “20181112170932785736”, # …… # } # #.. # #失败响应 # #.. code:: json # # 400 # { # “return_code”: “90101”, # “return_message”: “参数校验失败” # } # #.. _header-n1337: # #魔蝎获取手机号码通道信息 #————————– # #.. _header-n1339: # #接口说明 #~~~~~~~~ # #1) 查询手机相关信息。 # #2) 同步返回结果。 # #**HTTP Request** # #``POST http://realme.hfinside.com/api/realme/v5/trade/getmoxiemobile`` # #.. _header-n1341: # #请求参数 #~~~~~~~~ # #+——————–+————-+————-+————-+—————————–+ #| 名称 | 类型 | 是否必须 | 限制 | 描述 | #+====================+=============+=============+=============+=============================+ #| mobile | String | 是 | - | 手机号码 | #+——————–+————-+————-+————-+—————————–+ #| authorization_info | String | 否 | - | 用户授权标识 | #+——————–+————-+————-+————-+—————————–+ # #.. _header-n1345: # #响应参数 #~~~~~~~~ # #+——————-+————-+————-+————-+————————————-+ #| 名称 | 类型 | 是否必须 | 限制 | 描述 | #+===================+=============+=============+=============+=====================================+ #| result | String | 是 | - | 操作结果 | #+——————-+————-+————-+————-+————————————-+ # #调用示例 #~~~~~~~~~~~~ # #shell # #.. code:: shell # # curl -H “env:test” -d “order_date=20181001&order_id=201810010000001&app_token=apptoken&sign=9F28CB5B52CAA8267314A9BAF7E6706E&…” http://realme.hfinside.com/api/realme/v5/trade/getmoxiemobile # #java # #.. code:: java # # String result = new String(); # HttpClient client = new DefaultHttpClient(); # HttpPost post = new HttpPost(“http://realme.hfinside.com/api/realme/v5/trade/getmoxiemobile”); # try { # List<NameValuePair> nvps = new ArrayList<NameValuePair>(); # nvps.add(new BasicNameValuePair(“order_date”, “20181001”)); # nvps.add(new BasicNameValuePair(“order_id”, “201810010000001”)); # nvps.add(new BasicNameValuePair(“app_token”, “apptoken”)); # nvps.add(new BasicNameValuePair(“sign”, “9F28CB5B52CAA8267314A9BAF7E6706E”)); # ……. # post.setEntity(new UrlEncodedFormEntity(nvps)); # post.addHeader(“env”, “test”); # HttpResponse httpResponse = client.execute(post); # int code = httpResponse.getStatusLine().getStatusCode(); # String returnStr = EntityUtils.toString(httpResponse.getEntity()); # } catch (Exception e) { # e.printStackTrace(); # } # #python # #.. code:: python # # url = ‘’.join([‘http://realme.hfinside.com’, ‘/realme-api/v5/trade/getmoxiemobile’]) # params = {‘order_date’: ‘20181012’, # ‘order_id’: ‘20181112170932785736’, # ‘app_token’: ‘apptoken’, # ‘sign’: ‘9F28CB5B52CAA8267314A9BAF7E6706E’, # …… # } # response = requests.post(url, params=params, headers={‘env’:’test’}) # #.. # #成功响应 # #.. code:: json # # 200 # { # “return_code”: “90000”, # “return_message”: “成功”, # “realme_date”: “20181112”, # “seq_id” : “20181112170932785736”, # “order_date”: “20181112”, # “order_id”: “20181112170932785736”, # …… # } # #.. # #失败响应 # #.. code:: json # # 400 # { # “return_code”: “90101”, # “return_message”: “参数校验失败” # } # # #.. _header-n1347: # #创建运营商重置密码任务 #————————– # #.. _header-n1349: # #接口说明 #~~~~~~~~ # #1) 创建运营商重置密码任务。 # #2) 同步返回创建结果。 # #**HTTP Request** # #``POST http://realme.hfinside.com/api/realme/v5/trade/getmoxieresettask`` # #.. _header-n1351: # #请求参数 #~~~~~~~~ # #+——————–+————-+————-+————-+—————————–+ #| 名称 | 类型 | 是否必须 | 限制 | 描述 | #+====================+=============+=============+=============+=============================+ #| mobile | String | 是 | - | 手机号码 | #+——————–+————-+————-+————-+—————————–+ #| full_name | String | 是 | - | 预留姓名 | #+——————–+————-+————-+————-+—————————–+ #| id_number | String | 是 | - | 预留身份证 | #+——————–+————-+————-+————-+—————————–+ #| authorization_info | String | 否 | - | 用户授权标识 | #+——————–+————-+————-+————-+—————————–+ # #.. _header-n1353: # #响应参数 #~~~~~~~~ # #+——————-+————-+————-+————-+————————————-+ #| 名称 | 类型 | 是否必须 | 限制 | 描述 | #+===================+=============+=============+=============+=====================================+ #| result | String | 是 | - | 操作结果 | #+——————-+————-+————-+————-+————————————-+ # # #调用示例 #~~~~~~~~~~~~ # #shell # #.. code:: shell # # curl -H “env:test” -d “order_date=20181001&order_id=201810010000001&app_token=apptoken&sign=9F28CB5B52CAA8267314A9BAF7E6706E&…” http://realme.hfinside.com/api/realme/v5/trade/getmoxieresettask # # #java # #.. code:: java # # String result = new String(); # HttpClient client = new DefaultHttpClient(); # HttpPost post = new HttpPost(“http://realme.hfinside.com/api/realme/v5/trade/getmoxieresettask”); # try { # List<NameValuePair> nvps = new ArrayList<NameValuePair>(); # nvps.add(new BasicNameValuePair(“order_date”, “20181001”)); # nvps.add(new BasicNameValuePair(“order_id”, “201810010000001”)); # nvps.add(new BasicNameValuePair(“app_token”, “apptoken”)); # nvps.add(new BasicNameValuePair(“sign”, “9F28CB5B52CAA8267314A9BAF7E6706E”)); # ……. # post.setEntity(new UrlEncodedFormEntity(nvps)); # post.addHeader(“env”, “test”); # HttpResponse httpResponse = client.execute(post); # int code = httpResponse.getStatusLine().getStatusCode(); # String returnStr = EntityUtils.toString(httpResponse.getEntity()); # } catch (Exception e) { # e.printStackTrace(); # } # #python # #.. code:: python # # url = ‘’.join([‘http://realme.hfinside.com’, ‘/realme-api/v5/trade/getmoxiereset’]) # params = {‘order_date’: ‘20181012’, # ‘order_id’: ‘20181112170932785736’, # ‘app_token’: ‘apptoken’, # ‘sign’: ‘9F28CB5B52CAA8267314A9BAF7E6706E’, # …… # } # response = requests.post(url, params=params, headers={‘env’:’test’}) # #.. # #成功响应 # #.. code:: json # # 200 # { # “return_code”: “90000”, # “return_message”: “成功”, # “realme_date”: “20181112”, # “seq_id” : “20181112170932785736”, # “order_date”: “20181112”, # “order_id”: “20181112170932785736”, # …… # } # #.. # #失败响应 # #.. code:: json # # 400 # { # “return_code”: “90101”, # “return_message”: “参数校验失败” # } # # #.. _header-n1355: # #魔蝎输入图片验证码/短信/新服务密码 #———————————– # #.. _header-n1359: # #接口说明 #~~~~~~~~ # #1) 输入图片验证码/短信/新服务密码。 # #2) 同步返回创建结果。 # #**HTTP Request** # #``POST http://realme.hfinside.com/api/realme/v5/trade/getmoxieresetinput`` # #.. _header-n1361: # #请求参数 #~~~~~~~~ # #+——————–+————-+————-+————-+—————————–+ #| 名称 | 类型 | 是否必须 | 限制 | 描述 | #+====================+=============+=============+=============+=============================+ #| task_id | String | 是 | - | 创建任务获取的TaskID | #+——————–+————-+————-+————-+—————————–+ #| verify_code_list | String | 是 | - | 验证码集合[{“type”: “sms”, | #| | | | | “value”: “123456”}] | #| | | | | sms:短信验证码pwd:新密码 | #+——————–+————-+————-+————-+—————————–+ #| authorization_info | String | 否 | - | 用户授权标识 | #+——————–+————-+————-+————-+—————————–+ # #.. _header-n1363: # #响应参数 #~~~~~~~~ # #+——————-+————-+————-+————-+————————————-+ #| 名称 | 类型 | 是否必须 | 限制 | 描述 | #+===================+=============+=============+=============+=====================================+ #| result | String | 是 | - | 操作结果 | #+——————-+————-+————-+————-+————————————-+ # # #调用示例 #~~~~~~~~~~~~ # #shell # #.. code:: shell # # curl -H “env:test” -d “order_date=20181001&order_id=201810010000001&app_token=apptoken&sign=9F28CB5B52CAA8267314A9BAF7E6706E&…” http://realme.hfinside.com/api/realme/v5/trade/getmoxieresetinput # # #java # #.. code:: java # # String result = new String(); # HttpClient client = new DefaultHttpClient(); # HttpPost post = new HttpPost(“http://realme.hfinside.com/api/realme/v5/trade/getmoxieresetinput”); # try { # List<NameValuePair> nvps = new ArrayList<NameValuePair>(); # nvps.add(new BasicNameValuePair(“order_date”, “20181001”)); # nvps.add(new BasicNameValuePair(“order_id”, “201810010000001”)); # nvps.add(new BasicNameValuePair(“app_token”, “apptoken”)); # nvps.add(new BasicNameValuePair(“sign”, “9F28CB5B52CAA8267314A9BAF7E6706E”)); # ……. # post.setEntity(new UrlEncodedFormEntity(nvps)); # post.addHeader(“env”, “test”); # HttpResponse httpResponse = client.execute(post); # int code = httpResponse.getStatusLine().getStatusCode(); # String returnStr = EntityUtils.toString(httpResponse.getEntity()); # } catch (Exception e) { # e.printStackTrace(); # } # #python # #.. code:: python # # url = ‘’.join([‘http://realme.hfinside.com’, ‘/realme-api/v5/trade/getmoxieresetinput’]) # params = {‘order_date’: ‘20181012’, # ‘order_id’: ‘20181112170932785736’, # ‘app_token’: ‘apptoken’, # ‘sign’: ‘9F28CB5B52CAA8267314A9BAF7E6706E’, # …… # } # response = requests.post(url, params=params, headers={‘env’:’test’}) # #.. # #成功响应 # #.. code:: json # # 200 # { # “return_code”: “90000”, # “return_message”: “成功”, # “realme_date”: “20181112”, # “seq_id” : “20181112170932785736”, # “order_date”: “20181112”, # “order_id”: “20181112170932785736”, # …… # } # #.. # #失败响应 # #.. code:: json # # 400 # { # “return_code”: “90101”, # “return_message”: “参数校验失败” # } # # #.. _header-n1381: # #获取魔镜信审评分接口 #———————————– # #.. _header-n1383: # #接口说明 #~~~~~~~~ # #1) 根据用户的姓名,身份证号码、手机号信息,到接口中得到信用评分。 # #2) 同步返回创建结果。 # #**HTTP Request** # #``POST http://realme.hfinside.com/api/realme/v5/trade/getmagicmirror`` # #.. _header-n1385: # #请求参数 #~~~~~~~~ # #+——————–+————-+————-+————-+—————————–+ #| 名称 | 类型 | 是否必须 | 限制 | 描述 | #+====================+=============+=============+=============+=============================+ #| full_name | String | 是 | - | 姓名 | #+——————–+————-+————-+————-+—————————–+ #| mobile | String | 是 | - | 手机号 | #+——————–+————-+————-+————-+—————————–+ #| id_number | String | 是 | - | 身份证号码 | #+——————–+————-+————-+————-+—————————–+ #| authorization_info | String | 否 | - | 用户授权标识 | #+——————–+————-+————-+————-+—————————–+ # #.. _header-n1387: # #响应参数 #~~~~~~~~ # #+——————-+————-+————-+————-+————————————-+ #| 名称 | 类型 | 是否必须 | 限制 | 描述 | #+===================+=============+=============+=============+=====================================+ #| resp_code | String | 否 | - | 返回代码 | #+——————-+————-+————-+————-+————————————-+ #| resp_info | String | 否 | - | 返回描述 | #+——————-+————-+————-+————-+————————————-+ #| credit_score | String | 否 | - | 信用评分 | #+——————-+————-+————-+————-+————————————-+ # #调用示例 #~~~~~~~~~~~~ # #shell # #.. code:: shell # # curl -H “env:test” -d “order_date=20181001&order_id=201810010000001&app_token=apptoken&sign=9F28CB5B52CAA8267314A9BAF7E6706E&…” http://realme.hfinside.com/api/realme/v5/trade/getmagicmirror # # #java # #.. code:: java # # String result = new String(); # HttpClient client = new DefaultHttpClient(); # HttpPost post = new HttpPost(“http://realme.hfinside.com/api/realme/v5/trade/getmagicmirror”); # try { # List<NameValuePair> nvps = new ArrayList<NameValuePair>(); # nvps.add(new BasicNameValuePair(“order_date”, “20181001”)); # nvps.add(new BasicNameValuePair(“order_id”, “201810010000001”)); # nvps.add(new BasicNameValuePair(“app_token”, “apptoken”)); # nvps.add(new BasicNameValuePair(“sign”, “9F28CB5B52CAA8267314A9BAF7E6706E”)); # ……. # post.setEntity(new UrlEncodedFormEntity(nvps)); # post.addHeader(“env”, “test”); # HttpResponse httpResponse = client.execute(post); # int code = httpResponse.getStatusLine().getStatusCode(); # String returnStr = EntityUtils.toString(httpResponse.getEntity()); # } catch (Exception e) { # e.printStackTrace(); # } # #python # #.. code:: python # # url = ‘’.join([‘http://realme.hfinside.com’, ‘/realme-api/v5/trade/getmagicmirror’]) # params = {‘order_date’: ‘20181012’, # ‘order_id’: ‘20181112170932785736’, # ‘app_token’: ‘apptoken’, # ‘sign’: ‘9F28CB5B52CAA8267314A9BAF7E6706E’, # …… # } # response = requests.post(url, params=params, headers={‘env’:’test’}) # #.. # #成功响应 # #.. code:: json # # 200 # { # “return_code”: “90000”, # “return_message”: “成功”, # “realme_date”: “20181112”, # “seq_id” : “20181112170932785736”, # “order_date”: “20181112”, # “order_id”: “20181112170932785736”, # …… # } # #.. # #失败响应 # #.. code:: json # # 400 # { # “return_code”: “90101”, # “return_message”: “参数校验失败” # } # # #.. _header-n1365: # #魔蝎获取报告通知接口 #———————————– # #.. _header-n1367: # #接口说明 #~~~~~~~~ # #1) 获得报告通知(加工后数据)。 # #2) 同步返回创建结果。 # #**HTTP Request** # #``POST http://realme.hfinside.com/api/realme/v5/trade/getmoxiereport`` # #.. _header-n1369: # #请求参数 #~~~~~~~~ # #+——————–+————-+————-+————-+—————————–+ #| 名称 | 类型 | 是否必须 | 限制 | 描述 | #+====================+=============+=============+=============+=============================+ #| task_id | String | 是 | - | 创建任务获取的TaskID | #+——————–+————-+————-+————-+—————————–+ #| mobile | String | 是 | - | 手机号 | #+——————–+————-+————-+————-+—————————–+ #| authorization_info | String | 否 | - | 用户授权标识 | #+——————–+————-+————-+————-+—————————–+ # #.. _header-n1371: # #响应参数 #~~~~~~~~ # #+——————-+————-+————-+————-+————————————-+ #| 名称 | 类型 | 是否必须 | 限制 | 描述 | #+===================+=============+=============+=============+=====================================+ #| result | String | 是 | - | 操作结果 | #+——————-+————-+————-+————-+————————————-+ # # #调用示例 #~~~~~~~~~~~~ # #shell # #.. code:: shell # # curl -H “env:test” -d “order_date=20181001&order_id=201810010000001&app_token=apptoken&sign=9F28CB5B52CAA8267314A9BAF7E6706E&…” http://realme.hfinside.com/api/realme/v5/trade/getmoxiereport # # #java # #.. code:: java # # String result = new String(); # HttpClient client = new DefaultHttpClient(); # HttpPost post = new HttpPost(“http://realme.hfinside.com/api/realme/v5/trade/getmoxiereport”); # try { # List<NameValuePair> nvps = new ArrayList<NameValuePair>(); # nvps.add(new BasicNameValuePair(“order_date”, “20181001”)); # nvps.add(new BasicNameValuePair(“order_id”, “201810010000001”)); # nvps.add(new BasicNameValuePair(“app_token”, “apptoken”)); # nvps.add(new BasicNameValuePair(“sign”, “9F28CB5B52CAA8267314A9BAF7E6706E”)); # ……. # post.setEntity(new UrlEncodedFormEntity(nvps)); # post.addHeader(“env”, “test”); # HttpResponse httpResponse = client.execute(post); # int code = httpResponse.getStatusLine().getStatusCode(); # String returnStr = EntityUtils.toString(httpResponse.getEntity()); # } catch (Exception e) { # e.printStackTrace(); # } # #python # #.. code:: python # # url = ‘’.join([‘http://realme.hfinside.com’, ‘/realme-api/v5/trade/getmoxiereport’]) # params = {‘order_date’: ‘20181012’, # ‘order_id’: ‘20181112170932785736’, # ‘app_token’: ‘apptoken’, # ‘sign’: ‘9F28CB5B52CAA8267314A9BAF7E6706E’, # …… # } # response = requests.post(url, params=params, headers={‘env’:’test’}) # #.. # #成功响应 # #.. code:: json # # 200 # { # “return_code”: “90000”, # “return_message”: “成功”, # “realme_date”: “20181112”, # “seq_id” : “20181112170932785736”, # “order_date”: “20181112”, # “order_id”: “20181112170932785736”, # …… # } # #.. # #失败响应 # #.. code:: json # # 400 # { # “return_code”: “90101”, # “return_message”: “参数校验失败” # } # # #.. _header-n1373: # #魔蝎获取账单通知(原始数据)接口 #———————————– # #.. _header-n1375: # #接口说明 #~~~~~~~~ # #1) 获得原始数据。 # #2) 同步返回创建结果。 # #**HTTP Request** # #``POST http://realme.hfinside.com/api/realme/v5/trade/getmoxiedata`` # #.. _header-n1377: # #请求参数 #~~~~~~~~ # #+——————–+————-+————-+————-+—————————–+ #| 名称 | 类型 | 是否必须 | 限制 | 描述 | #+====================+=============+=============+=============+=============================+ #| task_id | String | 是 | - | 创建任务获取的TaskID | #+——————–+————-+————-+————-+—————————–+ #| mobile | String | 是 | - | 手机号 | #+——————–+————-+————-+————-+—————————–+ #| authorization_info | String | 否 | - | 用户授权标识 | #+——————–+————-+————-+————-+—————————–+ # #.. _header-n1379: # #响应参数 #~~~~~~~~ # #+——————-+————-+————-+————-+————————————-+ #| 名称 | 类型 | 是否必须 | 限制 | 描述 | #+===================+=============+=============+=============+=====================================+ #| result | String | 是 | - | 操作结果 | #+——————-+————-+————-+————-+————————————-+ # # #调用示例 #~~~~~~~~~~~~ # #shell # #.. code:: shell # # curl -H “env:test” -d “order_date=20181001&order_id=201810010000001&app_token=apptoken&sign=9F28CB5B52CAA8267314A9BAF7E6706E&…” http://realme.hfinside.com/api/realme/v5/trade/getmoxiedata # # #java # #.. code:: java # # String result = new String(); # HttpClient client = new DefaultHttpClient(); # HttpPost post = new HttpPost(“http://realme.hfinside.com/api/realme/v5/trade/getmoxiedata”); # try { # List<NameValuePair> nvps = new ArrayList<NameValuePair>(); # nvps.add(new BasicNameValuePair(“order_date”, “20181001”)); # nvps.add(new BasicNameValuePair(“order_id”, “201810010000001”)); # nvps.add(new BasicNameValuePair(“app_token”, “apptoken”)); # nvps.add(new BasicNameValuePair(“sign”, “9F28CB5B52CAA8267314A9BAF7E6706E”)); # ……. # post.setEntity(new UrlEncodedFormEntity(nvps)); # post.addHeader(“env”, “test”); # HttpResponse httpResponse = client.execute(post); # int code = httpResponse.getStatusLine().getStatusCode(); # String returnStr = EntityUtils.toString(httpResponse.getEntity()); # } catch (Exception e) { # e.printStackTrace(); # } # #python # #.. code:: python # # url = ‘’.join([‘http://realme.hfinside.com’, ‘/realme-api/v5/trade/getmoxiedata’]) # params = {‘order_date’: ‘20181012’, # ‘order_id’: ‘20181112170932785736’, # ‘app_token’: ‘apptoken’, # ‘sign’: ‘9F28CB5B52CAA8267314A9BAF7E6706E’, # …… # } # response = requests.post(url, params=params, headers={‘env’:’test’}) # #.. # #成功响应 # #.. code:: json # # 200 # { # “return_code”: “90000”, # “return_message”: “成功”, # “realme_date”: “20181112”, # “seq_id” : “20181112170932785736”, # “order_date”: “20181112”, # “order_id”: “20181112170932785736”, # …… # } # #.. # #失败响应 # #.. code:: json # # 400 # { # “return_code”: “90101”, # “return_message”: “参数校验失败” # } # # .. _header-n1591:
yy金融查询p2p金融信息接口¶
接口说明¶
- 根据用户的身份证号码和查询日期信息,同步返回P2P的金融信息。
HTTP Request
POST http://realme.hfinside.com/api/realme/v5/trade/getyyfinanceinfo
请求参数¶
名称 | 类型 | 是否必须 | 限制 | 描述 |
---|---|---|---|---|
id_number | String | 是 | 身份证号 | |
query_date | String | 是 | 查询日期(YYYYMMDD) | |
authorization_info | String | 否 | 用户授权标识 |
响应参数¶
名称 | 类型 | 是否必须 | 限制 | 描述 |
---|---|---|---|---|
resp_code | String | 是 | 返回代码 | |
resp_info | String | 是 | 结果描述 | |
data_count | String | 否 | 信息件数 | |
data: | ||||
createTime | String | 否 | 创建日期 | |
fNum | String | 否 | 历史贷款机构成功失败笔数 | |
fNum30 | String | 否 | 近30天贷款机构成功失败笔数 | |
fNum7 | String | 否 | 近7天贷款机构成功失败笔数 | |
fNum90 | String | 否 | 近90天贷款机构成功失败笔数 | |
lendNum30 | String | 否 | 进1个月贷款机构付款笔数 | |
lendNum90 | String | 否 | 进3个月贷款机构付款笔数 | |
sNum | String | 否 | 历史贷款机构成功扣款笔数 | |
sNum30 | String | 否 | 近30天贷款机构成功扣款笔数 | |
sNum7 | String | 否 | 近7天贷款机构成功扣款笔数 | |
sNum90 | String | 否 | 近90天贷款机构成功扣款笔数 | |
updateTime | String | 否 | 更新日期 |
调用示例¶
shell
curl -H "env:test" -d "order_date=20181001&order_id=201810010000001&app_token=apptoken&sign=9F28CB5B52CAA8267314A9BAF7E6706E&..." http://realme.hfinside.com/api/realme/v5/trade/getyyfinanceinfo
java
String result = new String();
HttpClient client = new DefaultHttpClient();
HttpPost post = new HttpPost("http://realme.hfinside.com/api/realme/v5/trade/getyyfinanceinfo");
try {
List<NameValuePair> nvps = new ArrayList<NameValuePair>();
nvps.add(new BasicNameValuePair("order_date", "20181212"));
nvps.add(new BasicNameValuePair("order_id", "201812120000001"));
nvps.add(new BasicNameValuePair("app_token", "apptoken"));
nvps.add(new BasicNameValuePair("sign", "9F28CB5B52CAA8267314A9BAF7E6706E"));
.......
post.setEntity(new UrlEncodedFormEntity(nvps));
post.addHeader("env", "test");
HttpResponse httpResponse = client.execute(post);
int code = httpResponse.getStatusLine().getStatusCode();
String returnStr = EntityUtils.toString(httpResponse.getEntity());
} catch (Exception e) {
e.printStackTrace();
}
python
url = ''.join(['http://realme.hfinside.com', '/realme-api/v5/trade/getyyfinanceinfo'])
params = {'order_date': '20181212',
'order_id': '20181212170932785736',
'app_token': 'apptoken',
'sign': '9F28CB5B52CAA8267314A9BAF7E6706E',
......
}
response = requests.post(url, params=params, headers={'env':'test'})
成功响应
200
{'realme_date':'20190402',
'resp_info': '查得',
'resp_code': '9000',
'return_code': '90000',
'data': '[
{"createTime":"20181203",
"fNum":"1324",
"fNum30":"23",
"fNum7":"0",
"fNum90":"456",
"lendNum30":"12313",
"lendNum90":"123123",
"sNum":"5464",
"sNum30":"324",
"sNum7":"234",
"sNum90":"567",
"updateTime":"2018-12-03 15:06:22"
}]
',
'userName': 'jf_test',
'order_date': '20190402',
'order_id': '20190402504715',
'seq_id': '20190402132052811533',
'data_count': '1',
'return_message': '成功'
}
失败响应
400
{
"return_code": "90101",
"return_message": "参数校验失败"
}
腾讯反欺诈信息分值查询接口¶
接口说明¶
- 根据姓名,以及至少两项基本项(身份证号、手机号、银行卡号、用户请求来源IP、国际移动用户设备识别码 、ios系统广告标示符),获取反欺诈信息。
HTTP Request
POST http://realme.hfinside.com/api/realme/v5/trade/antifraudquery
请求参数¶
名称 | 类型 | 是否必须 | 限制 | 描述 |
---|---|---|---|---|
id_number | String | 否 | 身份证号 | |
full_name | String | 否 | 姓名 | |
mobile_no | String | 否 | 手机号 | |
card_no | String | 否 | 银行卡号 | |
user_ip | String | 否 | 用户请求来源IP | |
imei | String | 否 | 国际移动用户设备识别码 | |
idfa | String | 否 | ios系统广告标示符 | |
authorization_info | String | 否 | 用户授权标识 |
响应参数¶
名称 | 类型 | 是否必须 | 限制 | 描述 |
---|---|---|---|---|
resp_code | String | 是 | 返回代码 | |
resp_info | String | 是 | 结果描述 | |
found | String | 是 | 表示该条记录能否查到,1为能查到,-1 为查不到 | |
id_found | String | 是 | 表示该条记录中的身份证能否查到,1为 能查到,-1为查不到 | |
risk_score | String | 否 | 0~100分值。值越高欺诈可能性越大 | |
risk_info | String | 否 | 欺诈风险信息结果集 |
调用示例¶
shell
curl -H "env:test" -d "order_date=20181001&order_id=201810010000001&app_token=apptoken&sign=9F28CB5B52CAA8267314A9BAF7E6706E&..." http://realme.hfinside.com/api/realme/v5/trade/antifraudquery
java
String result = new String();
HttpClient client = new DefaultHttpClient();
HttpPost post = new HttpPost("http://realme.hfinside.com/api/realme/v5/trade/antifraudquery");
try {
List<NameValuePair> nvps = new ArrayList<NameValuePair>();
nvps.add(new BasicNameValuePair("order_date", "20190116"));
nvps.add(new BasicNameValuePair("order_id", "201901160000001"));
nvps.add(new BasicNameValuePair("app_token", "apptoken"));
nvps.add(new BasicNameValuePair("sign", "9F28CB5B52CAA8267314A9BAF7E6706E"));
.......
post.setEntity(new UrlEncodedFormEntity(nvps));
post.addHeader("env", "test");
HttpResponse httpResponse = client.execute(post);
int code = httpResponse.getStatusLine().getStatusCode();
String returnStr = EntityUtils.toString(httpResponse.getEntity());
} catch (Exception e) {
e.printStackTrace();
}
python
url = ''.join(['http://realme.hfinside.com', '/realme-api/v5/trade/antifraudquery'])
params = {'order_date': '20190116',
'order_id': '20190116170932785736',
'app_token': 'apptoken',
'sign': '9F28CB5B52CAA8267314A9BAF7E6706E',
......
}
response = requests.post(url, params=params, headers={'env':'test'})
成功响应
200
{
"return_code": "90000",
"return_message": "成功",
"realme_date": "20190116",
"seq_id" : "20190116170932785736",
"order_date": "20190116",
"order_id": "20190116170932785736",
......
}
失败响应
400
{
"return_code": "90101",
"return_message": "参数校验失败"
}
91征信查询接口¶
接口说明¶
- 根据姓名和身份证号,获取征信信息。
- 异步返回查询结果
HTTP Request
POST http://realme.hfinside.com/api/realme/v5/trade/getloaninfo
请求参数¶
名称 | 类型 | 是否必须 | 限制 | 描述 |
---|---|---|---|---|
id_number | String | 否 | 身份证号 | |
full_name | String | 否 | 姓名 | |
mer_bg_url | String | 否 | 异步通知回调地址 | |
authorization_info | String | 否 | 用户授权标识 |
响应参数¶
名称 | 类型 | 是否必须 | 限制 | 描述 |
---|---|---|---|---|
resp_code | String | 是 | 返回代码 | |
resp_info | String | 是 | 结果描述 | |
trx_no | String | 否 | 交易代码,通道返回交易的32位GUID 唯一标示,用于匹配查询 |
异步返回结果¶
名称 | 类型 | 是否必须 | 限制 | 描述 |
---|---|---|---|---|
trxNo | String | 否 | 交易代码,通道返回交易的32位GUID 唯一标示,用于匹配查询 | |
loanInfos | String | 否 | 征信信息结果集 |
其中 loanInfos :
名称 | 类型 | 是否必须 | 限制 | 描述 |
---|---|---|---|---|
borrowType | String | 否 | 借款类型: 0.未知 1.个人信贷 2.个人抵押 3.企业信贷 4.企业抵押 | |
borrowState | String | 否 | 借款状态: 0.未知 1.拒贷 2.批贷已放款 3.待放款(6同3意义相同) 4.借款人放弃申请 5.审核中 | |
borrowAmount | String | 否 | 合同金额: -7.[0,0.1) -6.[0.1,0.2) -5.[0.2,0.3) -4.[0.3,0.4) -3.[0.4,0.6) -2.[0.6,0.8) -1.[0.8,1) 0.未知 1.[1,2) 2.[2,4) 3.[4,6) 4.[6,8)…….(单位:万元); 2万一档依次类推) | |
contractDate | String | 否 | 合同日期(未批贷时为借款日期)(日期Long类型 (毫秒)) | |
loanPeriod | String | 否 | 批贷期数(实际期数) | |
repayState | String | 否 | 还款状态: 0.未知 1.正常 2.M1 3.M2 4.M3 5.M4 6.M5 7.M6 8.M6+ 9.已还清 | |
arrearsAmount | String | 否 | 欠款金额(实际金额=获取到的金额/100000) | |
companyCode | String | 否 | 公司对应码 |
调用示例¶
shell
curl -H "env:test" -d "order_date=20181001&order_id=201810010000001&app_token=apptoken&sign=9F28CB5B52CAA8267314A9BAF7E6706E&..." http://realme.hfinside.com/api/realme/v5/trade/getloaninfo
java
String result = new String();
HttpClient client = new DefaultHttpClient();
HttpPost post = new HttpPost("http://realme.hfinside.com/api/realme/v5/trade/getloaninfo");
try {
List<NameValuePair> nvps = new ArrayList<NameValuePair>();
nvps.add(new BasicNameValuePair("order_date", "20190116"));
nvps.add(new BasicNameValuePair("order_id", "201901160000001"));
nvps.add(new BasicNameValuePair("app_token", "apptoken"));
nvps.add(new BasicNameValuePair("sign", "9F28CB5B52CAA8267314A9BAF7E6706E"));
.......
post.setEntity(new UrlEncodedFormEntity(nvps));
post.addHeader("env", "test");
HttpResponse httpResponse = client.execute(post);
int code = httpResponse.getStatusLine().getStatusCode();
String returnStr = EntityUtils.toString(httpResponse.getEntity());
} catch (Exception e) {
e.printStackTrace();
}
python
url = ''.join(['http://realme.hfinside.com', '/realme-api/v5/trade/getloaninfo'])
params = {'order_date': '20190116',
'order_id': '20190116170932785736',
'app_token': 'apptoken',
'sign': '9F28CB5B52CAA8267314A9BAF7E6706E',
......
}
response = requests.post(url, params=params, headers={'env':'test'})
成功响应
200
{
"return_code": "90000",
"return_message": "成功",
"realme_date": "20190116",
"seq_id" : "20190116170932785736",
"order_date": "20190116",
"order_id": "20190116170932785736",
......
}
失败响应
400
{
"return_code": "90101",
"return_message": "参数校验失败"
}
验证结果获取¶
接口说明¶
- 本接口用于查询认证结果。
- RealMe 支持两种查询方式,以 RealMe 流水号
seq_id
查询和以调用方订单号order_id
查询。seq_id
为原认证请求发起时,RealMe返回的流水号,在seq_id
非空时,优先以seq_id
查询。若当时未收到 RealMe 应答,请将seq_id
填空,并将公共参数中的order_id
值填为原认证请求的order_id
(此时请确保order_id
值唯一) 。
HTTP Request
GET http://realme.hfinside.com/api/realme/v5/checkresult
请求参数¶
名称 | 类型 | 是否必须 | 限制 | 描述 |
---|---|---|---|---|
seq_id | String | 否 | RealMe 返回的流水号 | |
authorization_info | String | 否 | 用户授权标识 |
响应参数¶
名称 | 类型 | 是否必须 | 限制 | 描述 |
---|---|---|---|---|
resp_code | String | 否 | 认证结果代码:00-成功(一致); 01-失败(不一致);99-异常 | |
resp_info | String | 否 | 应答信息 | |
mp_ssim | String | 否 | 比对分值,0-100 | |
full_name | String | 否 | 姓名 | |
id_number | String | 否 | 身份证号 | |
expirydate | String | 否 | 有效期 (背面结果) | |
issue | String | 否 | 发证机构 | |
addr | String | 否 | 身份证地址(正面结果) | |
file_list | List | 否 | 文件列表 | |
face_identify_list | List | 否 | 相似用户列表 | |
authorization_info | String | 否 | 用户授权标识 |
其中 file_list:
名称 | 类型 | 是否必须 | 限制 | 描述 |
---|---|---|---|---|
file_id | String | 是 | 图片 id | |
file_type | String | 是 | 图片类型:00-人像照片; 01-身份证正面照; 02-身份证反面照 | |
file_source | String | 是 | 图片来源:IFS-汇付内部文件地址 (不对外开放);JVS-聚合鉴权文件地址 (可通过聚合鉴权文件服务接口下载) |
其中 face_identify_list :
名称 | 类型 | 是否必须 | 限制 | 描述 |
---|---|---|---|---|
personId | String | 是 | 图片 id | |
fileId | String | 是 | jfile的文件 ID | |
personName | String | 是 | 姓名 | |
score | String | 是 | 相似度评分 |
调用示例¶
shell
curl -H "env:test" -d "order_date=20170101&order_id=201701010000001&app_token=apptoken&sign=9F28CB5B52CAA8267314A9BAF7E6706E&seq_id=20170101000005" http://realme.hfinside.com/api/realme/v5/checkresult
java
String result = new String();
HttpClient client = new DefaultHttpClient();
HttpGet get = new HttpGet("http://realme.hfinside.com/api/realme/v5/checkresult?app_token="+apptoken+"&order_date=20190516&order_id="+order_id+ "&sign="+sign);
try {
HttpResponse httpResponse = client.execute(get);
int code = httpResponse.getStatusLine().getStatusCode();
result = EntityUtils.toString(httpResponse.getEntity());
} catch (Exception e) {
e.printStackTrace();
}
python
url = ''.join(['http://realme.hfinside.com', '/realme-api/v5/checkresult'])
params = {'order_date': '20170101',
'order_id': '201701010000001',
'app_token': 'apptoken',
'sign': '9F28CB5B52CAA8267314A9BAF7E6706E',
......
}
response = requests.get(url, params=params, headers={'env':'test'})
成功响应
200
{
"return_code": "20000",
"return_message": "成功",
"realme_date": "20170101",
"seq_id" : "2017010100000001",
"order_date": "20170101",
"order_id": "201701010000001",
"resp_code": "00",
"resp_info": "认证通过",
"mp_ssim": "60",
"full_name": "",
"id_number": "",
"encrypt_method" : "00",
"file_list" :[{
"file_id": "J20170504123698547",
"file_type": "01",
"file_source": "JVS"
}]
}
失败响应
400
{
"return_code": "90101",
"return_message": "参数校验失败"
}
验证结果通知¶
接口说明¶
- 此接口由 RealMe 主动发起,发送方式同异步通知,无需请求,公共字段在此接口中无效。
- 通知接收地址即为调用接口服务时,请求参数中的
mer_bg_url
字段,请保证其在公网中可正常访问。 - 接收方式同接收异步通知,参数参考API文档各个接口的 “异步返回结果”。
请求参数¶
名称 | 类型 | 是否必须 | 限制 | 描述 |
---|---|---|---|---|
seq_id | String | 是 | RealMe 流水号 | |
order_id | String | 是 | 商户订单号 | |
return_code | String | 是 | 返回结果代码 | |
return_message | String | 否 | 返回结果描述 | |
resp_code | String | 否 | 认证结果代码:00-成功(一致); 01-失败(不一致);99-异常 | |
resp_info | String | 否 | 应答信息 | |
mp_ssim | String | 否 | 比对分值,0-100 | |
full_name | String | 否 | 姓名 | |
id_number | String | 否 | 身份证号 | |
file_list | List | 否 | 文件列表 | |
sign | String | 是 | 签名 | |
face_identify_list | List | 否 | 相似用户列表 |
其中 file_list:
名称 | 类型 | 是否必须 | 限制 | 描述 |
---|---|---|---|---|
file_id | String | 是 | 图片 id | |
file_type | String | 是 | 图片类型:00-人像照片; 01-身份证正面照; 02-身份证反面照 | |
file_source | String | 是 | 图片来源:IFS-汇付内部文件地址 (不对外开放);JVS-聚合鉴权文件地址 (可通过聚合鉴权文件服务接口下载) |
其中 face_identify_list :
名称 | 类型 | 是否必须 | 限制 | 描述 |
---|---|---|---|---|
personId | String | 是 | 图片 id | |
fileId | String | 是 | jfile的文件 ID | |
personName | String | 是 | 姓名 | |
score | String | 是 | 相似度评分 |
事前风险核查¶
接口说明¶
为了提升特约商户录入质量,发现并及时中止特约商户风险交易行为,现面向银行服务商开放风险商户数据,支持在录入商户前提前核查商户风险、了解风险交易
用于服务商/银行准入商户时,根据身份证,银行卡号,营业执照等信息查询商户是否有风险.
该接口需要提供以下信息至少一种,提供的信息越多,查询结果越准确.
◆ 身份信息:身份证号、身份证所有人姓名。(如果有身份信息数据,所有身份字段必填)
◆ 结算信息:结算账号、结算户名、结算银行(如果有结算信息数据,所有结算字段必填)
◆ 公司信息:营业执照编号、公司名称(如果有公司信息数据,所有公司字段必填)
◆ 门店信息:门店地址、门店经度、门店纬度(如果有门店信息数据,所有门店字段必填)
HTTP Request
POST http://realme.hfinside.com/api/realme/v5/trade/riskcheck
请求参数¶
名称 | 类型 | 是否必须 | 限制 | 描述 |
---|---|---|---|---|
authorization_info | String | 否 | 用户授权标识 | |
full_name | String | 否 | 身份证号所有者姓名 | |
id_number | String | 否 | 身份证号 | |
acct_no | String | 否 | 结算的银行卡号 | |
acct_name | String | 否 | 结算的银行卡帐号名 | |
acct_bank | String | 否 | 结算银行 | |
license_no | String | 否 | 营业执照编号 | |
company_name | String | 否 | 公司名称 | |
company_address | String | 否 | 门店地址 | |
company_longitue | String | 否 | 门店经度(例如:22.5461478801) | |
company_latitude | String | 否 | 门店纬度(例如:113.941051963) |
响应参数¶
名称 | 类型 | 是否必须 | 限制 | 描述 |
---|---|---|---|---|
userName | String | 否 | 商户名称 | |
risk_level | String | 否 | 风险等级 U:未知风险 N:一般 M:中风险 H:高风险 L:低风险 F:禁入 E:风险核查异常 | |
risk_level_desc | String | 否 | 风险等级描述 |
调用示例¶
shell
curl -H "env:test" -d "order_date=20170101&order_id=201701010000001&app_token=apptoken&sign=9F28CB5B52CAA8267314A9BAF7E6706E&seq_id=20170101000005" http://realme.hfinside.com/api/realme/v5/trade/riskcheck
java
String result = new String();
HttpClient client = new DefaultHttpClient();
HttpPost post = new HttpPost("http://realme.hfinside.com/api/realme/v5/trade/riskcheck");
try {
List<NameValuePair> nvps = new ArrayList<NameValuePair>();
nvps.add(new BasicNameValuePair("order_date", "20170101"));
nvps.add(new BasicNameValuePair("order_id", "201701010000001"));
nvps.add(new BasicNameValuePair("app_token", "apptoken"));
nvps.add(new BasicNameValuePair("sign", "9F28CB5B52CAA8267314A9BAF7E6706E"));
.......
post.setEntity(new UrlEncodedFormEntity(nvps));
post.addHeader("env", "test");
HttpResponse httpResponse = client.execute(post);
int code = httpResponse.getStatusLine().getStatusCode();
String returnStr = EntityUtils.toString(httpResponse.getEntity());
} catch (Exception e) {
e.printStackTrace();
}
python
url = ''.join(['http://realme.hfinside.com', '/api/realme/v5/trade/riskcheck'])
params = {'order_date': '20170101',
'order_id': '201701010000001',
'app_token': 'apptoken',
'sign': '9F28CB5B52CAA8267314A9BAF7E6706E',
......
}
response = requests.get(url, params=params, headers={'env':'test'})
成功响应
200
{
"return_code" : "20100",
"return_message" : "请求成功",
"realme_date" : "20190304",
"seq_id" : "19030415471713833000",
"order_id" : "6a4f5b9b7faf4e8ea7391bea4146d5c3",
"order_date" : "20190304",
"userName" : "jf_test",
"risk_level" : "H",
"risk_level_desc" : "高风险"
}
失败响应
400
{
"return_code" : "90101",
"return_message" : "参数错误:公司信息不完整",
"realme_date" : null,
"seq_id" : null,
"order_id" : "1e78f5c06f91434fbbf16a92d4fa940e",
"order_date" : "20190304",
"userName" : null,
"risk_level" : null,
"risk_level_desc" : null
}