合作咨询
我们的专家服务团队将竭诚为您提供专业的合作咨询服务
此接口用于对已经上架的应用进行下架处理。
本接口仅对允许清单内用户开放,普通Publishing API开发者请勿调用本接口。
| 承载协议 | HTTPS POST |
|---|---|
| 接口方向 | 服务商服务器 -> 华为服务器 |
| 接口URL | https://connect-api.cloud.huawei.com/api/publish/v2/app-shelf-off |
| 数据格式 | 请求: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。 |
| appId | M | String(32) | 应用ID。 元服务则为元服务的应用ID。 应用ID可以调用获取指定授权账号详情接口从authorizerAppId字段获取。 |
| 参数名称 | 必选(M)/可选(O) | 类型 | 参数说明 |
|---|---|---|---|
| appId | M | String(32) | 需要下架的应用ID。 |
| reason | M | String(1024) | 下架的原因描述。 |
| releaseType | O | Integer | 下架的方式。 取值范围:
默认值:1 |
POST /api/publish/v2/app-shelf-off?appId=112****3&reason=****** HTTP/1.1 Host: connect-api.cloud.huawei.com client_id: 41******7168 Content-Type: application/json Authorization: Bearer ******
| 参数名称 | 必选(M)/可选(O) | 类型 | 参数说明 |
|---|---|---|---|
| ret | O | 包含返回码及描述信息的结果。 |
{
"ret": {
"code": 0,
"msg": "success"
}
} 应用下架审核结果通知回调
应用下架审核结果推送,用于将应用下架审核结果告知服务商。
| 承载协议 | HTTPS POST |
|---|---|
| 接口方向 | 华为服务器 -> 服务商服务器 |
| 接口URL | 第三方管理平台上配置的华为服务器回调服务商服务器的回调域名(“回调URL”),您需自行保证地址为https开头的合法URL地址,具体请参见消息与事件接收URL。 |
| 数据格式 | 请求消息:Content-Type: application/json 响应消息:Content-Type: application/json |
| 参数 | 必选(M)/可选(O) | 类型 | 描述 |
|---|---|---|---|
| releaseType | O | String | 权限变更类型。
|
| isUpgrade | O | Integer | 仅全网发布使用。 取值范围:
|
| status | O | String | 当前应用状态。
|
| appId | O | String | 应用ID。 |
| versionId | O | String | 当前版本ID。 |
{
"appId": "112****3",
"isUpgrade": 1,
"releaseType": release,
"status": -4,
"versionId": "1608****4368"
} 服务商收到第三方管理平台服务端的POST请求后,需返回HTTP状态码200,标识回调成功。
/*
@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");
}
}