承载协议 | HTTPS POST |
|---|---|
接口方向 | 服务商服务器 -> 华为服务器 |
接口URL | https://connect-api.cloud.huawei.com/api/publish/v3/app-submit |
数据格式 | 请求: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) | 类型 | 参数说明 |
|---|---|---|---|
releaseTime | O | String(64) | 指定发布时间。 此字段为保留字段,实际未使用。 UTC时间格式:yyyy-MM-ddTHH:mm:ssZZ,例如“2015-01-01T01:01:01+0800”。 可以不用填写,则表示立刻发布。 |
remark | O | String(300) | 提审发布备注。 可以为空。如果填写,长度范围在10-300。 |
releaseType | O | Integer | 应用发布方式。 取值范围:
默认值:1 |
POST /api/publish/v3/app-submit HTTP/1.1
Host: connect-api.cloud.huawei.com
client_id: 414*******68
Content-Type: application/json;
Authorization: Bearer *****
appId: 1******57
{
"releaseTime": "2015-01-01T01:01:01+0800",
"remark": "",
"releaseType": 1
} 应用上架审核结果推送,用于将应用上架审核结果告知服务商。
承载协议 | HTTPS POST |
|---|---|
接口方向 | 华为服务器 -> 服务商服务器 |
接口URL | 第三方管理平台上配置的华为服务器回调服务商服务器的回调域名(“回调URL”),您需自行保证地址为https开头的合法URL地址,具体请参见消息与事件接收URL。 |
数据格式 | 请求消息:Content-Type: application/json 响应消息:Content-Type: application/json |
参数 | 必选(M)/可选(O) | 类型 | 描述 |
|---|---|---|---|
releaseType | O | String | 权限变更类型。
|
isUpgrade | O | Integer | 仅全网发布使用。 取值范围:
|
state | O | String | 当前应用状态。
|
appId | O | String | 应用ID。 |
versionId | O | String | 当前版本ID。 |
{
"appId": "112****3",
"isUpgrade": 1,
"releaseType": release,
"state": 1,
"versionId": "1608****4368"
} /*
@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");
}
}