结果回调
更新时间:
回调接口概述
针对于图片批量审核服务异步接口 .../batchCheck/async
的回调,用于将异步检测审核结果集合推送给客户,客户需要按照以下规范实现接收结果集的接口。
接口说明
使用异步批量任务提交接口时,通过补充参数callbackWaitForAll
或控制台-服务配置
指定使用批量回调。
当批量审核任务完成后将会统一通过该接口将审核结果集合推送给客户。
需要注意:使用callbackWaitForAll
的优先级高于控制台-服务配置
。
接口鉴权
客户可通过配置完回调参数后分配的密钥信息字段进行接口鉴权。具体方式如下:
-
签名算法
- 将接收的请求体参数按照参数名的
ASCII码表
正序排序;
- 将排序好的参数拼接为字符串,参数值为
NULL
的字段应该忽略。格式为:key1 + value1 + key2 + value2...
;
- 生成字符串后,继续拼接从控制台配置中获取的密钥;
- 对生成的字符串使用
UTF-8
进行编码,使用 MD5
进行加密生成完整的签名字符串;
-
示例代码
/**
* 生成签名
*
* @param secretKey 后台密钥
* @param params 接口请求参数名和参数值map,不包括signature参数名
*/
public static String signature(String secretKey, Map<String, String> params) {
// 1. 按照 map.key 的 ASCII码表 正序排序
String[] keys = params.keySet().toArray(new String[0]);
Arrays.sort(keys);
// 2. 按照顺序将参数拼接为字符串
StringBuilder signBuilder = new StringBuilder();
for (String key : keys) {
signBuilder.append(key).append(params.get(key));
}
// 3. 将密钥拼接到字符串末尾
signBuilder.append(secretKey);
// 4. 字符串使用 UTF-8 编码
byte[] signBytes = signBuilder.toString().getBytes(StandardCharsets.UTF_8);
// 5. 使用 MD5(hex) 编码
return DigestUtils.md5Hex(signBytes);
}
接入说明
- 协议说明:客户方需提供支持
http
协议的 post
请求方式的接口。
- 接口性能:客户需保持接口的稳定性与可靠性。
- 失败重试:我们在收到客户回调响应后,如果不符合规定的接受成功规范,则认为此次推送失败。将以规定间隔时间 10s 推送 3
次,如果第三次继续失败将不再推送。
请求说明
-
请求地址及方式
名称
值
callbackUrl
回调地址url(http协议)
HTTP_METHOD
POST
-
请求Header
Header
必需
类型
描述
Content-Type
必需
String
固定值:application/json
signature
必需
String
签名,验证请求的合法性,参照鉴权算法
-
请求参数
参数
类型
描述
appId
String
所属项目ID
checkType
String
检测项目标识,图片为 image-check
results
List
审核结果集合
- TaskResult
参数
类型
描述
taskId
String
提交异步审核时,返回的任务id
result
String
审核结果的json格式字符串,请参考同步单条检测-HTTP响应
-
请求响应
客户接口接收到我们回调的结果后,需要返回应答信息,接口响应 code
状态码为 0,当回调处理异常时,应答的 code
状态码应为
500,或者 4xx; 应答信息为json格式,字段定义如下:
名称
类型
必填
说明
code
Number
是
应答code,code 值为 0 代表此次回调成功
message
String
否
具体描述信息
-
推送给客户的请求示例
POST <callbackUrl>
Content-Type: application/json
signature: <signature>
{
"appId": "1234",
"checkType": "image-check",
"results": [
{
"taskId": "task_a",
"result": "{\"errorCode\":0,\"code\":0,\"result\":2,\"imageSpams\":[{\"code\":0,\"result\":2,\"tags\":[{\"tag\":200,\"level\":2,\"confidence\":76}]}],\"gender\":[],\"taskId\":\"task_a\",\"extraInfo\":{\"userId\":123}}"
},
{
"taskId": "task_b",
"result": "{\"errorCode\":0,\"code\":0,\"result\":2,\"imageSpams\":[{\"code\":0,\"result\":2,\"tags\":[{\"tag\":200,\"level\":2,\"confidence\":76}]}],\"gender\":[],\"taskId\":\"task_b\",\"extraInfo\":{\"userId\":456}}"
}
]
}
回调接口概述
针对于图片批量审核服务异步接口 .../batchCheck/async
的回调,用于将异步检测审核结果集合推送给客户,客户需要按照以下规范实现接收结果集的接口。
接口说明
使用异步批量任务提交接口时,通过补充参数callbackWaitForAll
或控制台-服务配置
指定使用批量回调。
当批量审核任务完成后将会统一通过该接口将审核结果集合推送给客户。
需要注意:使用callbackWaitForAll
的优先级高于控制台-服务配置
。
接口鉴权
客户可通过配置完回调参数后分配的密钥信息字段进行接口鉴权。具体方式如下:
-
签名算法
- 将接收的请求体参数按照参数名的
ASCII码表
正序排序; - 将排序好的参数拼接为字符串,参数值为
NULL
的字段应该忽略。格式为:key1 + value1 + key2 + value2...
; - 生成字符串后,继续拼接从控制台配置中获取的密钥;
- 对生成的字符串使用
UTF-8
进行编码,使用MD5
进行加密生成完整的签名字符串;
- 将接收的请求体参数按照参数名的
-
示例代码
/** * 生成签名 * * @param secretKey 后台密钥 * @param params 接口请求参数名和参数值map,不包括signature参数名 */ public static String signature(String secretKey, Map<String, String> params) { // 1. 按照 map.key 的 ASCII码表 正序排序 String[] keys = params.keySet().toArray(new String[0]); Arrays.sort(keys); // 2. 按照顺序将参数拼接为字符串 StringBuilder signBuilder = new StringBuilder(); for (String key : keys) { signBuilder.append(key).append(params.get(key)); } // 3. 将密钥拼接到字符串末尾 signBuilder.append(secretKey); // 4. 字符串使用 UTF-8 编码 byte[] signBytes = signBuilder.toString().getBytes(StandardCharsets.UTF_8); // 5. 使用 MD5(hex) 编码 return DigestUtils.md5Hex(signBytes); }
接入说明
- 协议说明:客户方需提供支持
http
协议的post
请求方式的接口。 - 接口性能:客户需保持接口的稳定性与可靠性。
- 失败重试:我们在收到客户回调响应后,如果不符合规定的接受成功规范,则认为此次推送失败。将以规定间隔时间 10s 推送 3 次,如果第三次继续失败将不再推送。
请求说明
-
请求地址及方式
名称 值 callbackUrl 回调地址url(http协议) HTTP_METHOD POST -
请求Header
Header 必需 类型 描述 Content-Type 必需 String 固定值:application/json signature 必需 String 签名,验证请求的合法性,参照鉴权算法 -
请求参数
参数 类型 描述 appId String 所属项目ID checkType String 检测项目标识,图片为 image-check results List 审核结果集合 - TaskResult
参数 类型 描述 taskId String 提交异步审核时,返回的任务id result String 审核结果的json格式字符串,请参考同步单条检测-HTTP响应
- TaskResult
-
请求响应
客户接口接收到我们回调的结果后,需要返回应答信息,接口响应 code
状态码为 0,当回调处理异常时,应答的 code
状态码应为
500,或者 4xx; 应答信息为json格式,字段定义如下:
名称 | 类型 | 必填 | 说明 |
---|---|---|---|
code | Number | 是 | 应答code,code 值为 0 代表此次回调成功 |
message | String | 否 | 具体描述信息 |
-
推送给客户的请求示例
POST <callbackUrl> Content-Type: application/json signature: <signature> { "appId": "1234", "checkType": "image-check", "results": [ { "taskId": "task_a", "result": "{\"errorCode\":0,\"code\":0,\"result\":2,\"imageSpams\":[{\"code\":0,\"result\":2,\"tags\":[{\"tag\":200,\"level\":2,\"confidence\":76}]}],\"gender\":[],\"taskId\":\"task_a\",\"extraInfo\":{\"userId\":123}}" }, { "taskId": "task_b", "result": "{\"errorCode\":0,\"code\":0,\"result\":2,\"imageSpams\":[{\"code\":0,\"result\":2,\"tags\":[{\"tag\":200,\"level\":2,\"confidence\":76}]}],\"gender\":[],\"taskId\":\"task_b\",\"extraInfo\":{\"userId\":456}}" } ] }