文档管理中心
我的
API参考代商家管理元服务上架管理下架应用

下架应用

功能介绍

此接口用于对已经上架的应用进行下架处理。

使用约束

本接口仅对允许清单内用户开放,普通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

请求参数

Header

展开

参数

必选(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字段获取。

Query

展开

参数名称

必选(M)/可选(O)

类型

参数说明

appId

M

String(32)

需要下架的应用ID。

reason

M

String(1024)

下架的原因描述。

releaseType

O

Integer

下架的方式。

取值范围:

  • 1:全网下架。

默认值: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

ConnectRet

包含返回码及描述信息的结果。

响应示例

{
  "ret": {
    "code": 0,
    "msg": "success"
  }
}

其他说明

应用下架审核结果通知回调

应用下架审核结果推送,用于将应用下架审核结果告知服务商。

承载协议

HTTPS POST

接口方向

华为服务器 -> 服务商服务器

接口URL

第三方管理平台上配置的华为服务器回调服务商服务器的回调域名(“回调URL”),您需自行保证地址为https开头的合法URL地址,具体请参见消息与事件接收URL。

数据格式

请求消息:Content-Type: application/json

响应消息:Content-Type: application/json

请求参数

Header

展开

参数

必选(M)/可选(O)

类型

描述

notifyType

M

String(32)

回调类型。

取值范围:

  • versionStateChange:版本状态变更

signatureRSAWithPSS

M

String

华为服务器在发送通知时对Body体中的参数使用SHA256WithRSA/PSS算法进行了签名,并在signatureRSAWithPSS中返回签名后的字符串。

您需要使用消息与事件接收信息中获取的验签公钥对签名字符串进行验签,验签方法参见验签示例。

Body

展开

参数

必选(M)/可选(O)

类型

描述

releaseType

O

String

权限变更类型。

  • release:正式发布
  • phaseRelease:分阶段发布
  • test:测试发布

isUpgrade

O

Integer

仅全网发布使用。

取值范围:

  • 1:升级场景
  • 2:非升级场景

status

O

String

当前应用状态。

  • 1:审核通过,立即上架
  • 2:审核通过,待上架
  • 0:审核驳回
  • -1:华为运营操作下架
  • -4:开发者自行提交下架

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");
    }
}