| 承载协议 | HTTPS GET |
|---|---|
| 接口方向 | 服务商服务器 -> 华为服务器 |
| 接口URL | https://connect-api.cloud.huawei.com/api/publish/v2/test/app/version/detect-report |
| 数据格式 | 请求:Content-Type: application/json 响应:Content-Type: application/json |
| 参数 | 必选(M)/可选(O) | 类型 | 说明 |
|---|---|---|---|
| client_id | M | String | API客户端ID。 创建第三方平台成功后系统自动分配的客户端ID,可在第三方管理平台“开发配置 > 开发资料设置”页面中获取,详情请参见获取平台访问凭据。 |
| Authorization | M | String | 认证信息。 格式为“Authorization: Bearer ${access_token}”。 其中,${access_token}为获取平台级Token中获取的access_token。 |
| 参数名称 | 必选(M)/可选(O) | 类型 | 参数说明 |
|---|---|---|---|
| appId | M | String(32) | 应用ID。 |
| versionId | M | String(32) | 测试版本ID。 可从新建测试版本接口返回的versionId参数中获取。 |
GET /api/publish/v2/test/app/version/detect-report?appId=6917********65&versionId=76********08 HTTP/1.1 Host: connect-api.cloud.huawei.com client_id: 4141******68 Content-Type: application/json Authorization: Bearer *******
| 参数名称 | 必选(M)/可选(O) | 类型 | 参数说明 |
|---|---|---|---|
| ret | M | String(100) | 包含返回码及描述信息的JSON字符串,格式为{"code":retcode, "msg": "description"},retcode为返回码,description为返回码描述信息。返回码请参见错误码。 |
| state | M | Integer | 邀请测试进行上架前自检的任务状态。 取值范围:
|
| reportUrl | O | String | 自检报告链接。点击链接后,需要登录商户的HarmonyOS 开发者中心账号查看。 说明: 仅当state为3(自检未通过)时,返回该参数。 |
应用上架自检结果通知回调
应用上架自检结果推送,用于将应用上架自检结果告知服务商。
| 承载协议 | HTTPS POST |
|---|---|
| 接口方向 | 华为服务器 -> 服务商服务器 |
| 接口URL | 第三方管理平台上配置的华为服务器回调服务商服务器的回调域名(“回调URL”),您需自行保证地址为https开头的合法URL地址,具体请参见消息与事件接收URL。 |
| 数据格式 | 请求消息:Content-Type: application/json 响应消息:Content-Type: application/json |
| 参数 | 必选(M)/可选(O) | 类型 | 描述 |
|---|---|---|---|
| appId | M | String | 应用ID。 |
| versionId | M | String | 测试版本ID。 |
| taskId | M | String | 应用软件包构建任务ID。 |
| result | M | String | 检测结果。
|
/*
@content 待验签字符串,传入callBackData中携带的JSON字符串
@sign 签名字符串
*/
private static void verifySignature(String content, String sign) {
try{
String pubKey = "消息验证公钥"; //替换为您在第三方管理平台中实际的消息验证公钥。
X509EncodedKeySpec x509EncodedKeySpec = new X509EncodedKeySpec(Base64.decodeBase64(pubKey));
KeyFactory keyFactory = KeyFactory.getInstance("RSA");
PublicKey publicKey = keyFactory.generatePublic(x509EncodedKeySpec);
Signature signature = Signature.getInstance("SHA256WithRSA/PSS");
signature.initVerify(publicKey);
signature.update(content.getBytes(Charset.forName("UTF-8")));
if(!signature.verify(Base64.decodeBase64(sign))) {
throw new ConnectException(EnumReturnCode.INVALID_PARAMETER, "Failed to verifySignature");
}
} catch(NoSuchAlgorithmException | SignatureException | InvalidKeyException | InvalidKeySpecException e) {
LOG.error("verify signature failed", e);
throw new ConnectException(EnumReturnCode.INVALID_PARAMETER, "Failed to verifySignature");
} catch(Exception e) {
LOG.error("verify signature failed", e);
throw new ConnectException(EnumReturnCode.INVALID_PARAMETER, "Failed to verifySignature");
}
}