华为云用户手册

  • URI HTTP/HTTPS请求方法以及URI如下表所示。 表1 HTTP/HTTPS请求方法以及URI 请求方法 URI GET /v1/{project_id}/apigw/instances/{instance_id}/apps[?page_size, page_no, id, name, app_key, creator] 可以在URI后面用‘?’和‘&’添加不同的查询条件组合。 查询条件可为以下字段以及对应的值:id、name、app_key、creator、page_size、page_no。 URI中的参数说明如下表所示。 表2 参数说明 名称 是否必选 类型 说明 project_id 是 String 项目ID。可从控制台“我的凭证”中获取region下项目ID,管理员权限可查询。 instance_id 是 String 实例ID,可从API网关控制台的专享版实例信息中获取。 id 否 String 编号 name 否 String 名称 status 否 Integer 状态 app_key 否 String APP的KEY creator 否 String APP的创建者,取值如下: USER:用户自行创建 MARKET:云商店分配 page_size 否 Integer 每页显示的条数,默认值:20 page_no 否 Integer 页码,默认值:1 precise_search 否 String 指定需要精确匹配查找的参数名称,目前仅支持name
  • 响应消息 表3 参数说明 名称 类型 说明 total Integer 符合条件的APP总数 size Integer 本次查询返回的列表长度 apps 字典数据类型 APP列表 表4 apps参数说明 参数 类型 说明 id String 编号 name String 名称 status Integer 状态 app_key String APP的key app_secret String 密钥 register_time Timestamp 创建时间 remark String 描述 update_time Timestamp 更新时间 creator String APP的创建者,取值如下: USER:用户自行创建 MARKET:云商店分配 app_type String APP类型,默认为apig bind_num Integer 绑定的API数量 响应消息样例: { "total": 2, "size": 2, "apps": [{ "id": "98efd77d-10b5-4eca-8170-ed30a4a286a4", "name": "app_002", "status": 1, "app_key": "f627fb****d3fe2", "app_secret": "******", "remark": "第二个APP", "register_time": "2017-12-28T12:32:50Z", "update_time": "2017-12-28T12:32:50Z", "creator": "MARKET", "app_type": "apig", "bind_num": 2 }, { "id": "14b39****37e9", "name": "app_001", "status": 1, "app_key": "d49b1****376eb", "app_secret": "******", "remark": "第一个APP", "register_time": "2017-12-28T12:26:54Z", "update_time": "2017-12-28T12:29:35.571Z", "creator": "USER", "app_type": "apig", "bind_num": 2 }] }
  • 响应消息 表3 参数说明 参数 类型 说明 id String 编号 name String 名称 status Integer 状态 app_key String APP的key app_secret String 密钥 creator String APP的创建者,取值如下: USER:用户自行创建 MARKET:云商店分配 register_time Timestamp 创建时间 remark String 描述 update_time Timestamp 更新时间 app_type String APP类型,默认为apig 响应消息样例: { "id": "14b399a****4537e9", "name": "app_001", "status": 1, "app_key": "d49b1****e376eb", "app_secret": "******", "creator": "USER", "remark": "第一个APP", "register_time": "2017-12-28T12:26:54Z", "update_time": "2017-12-28T12:28:07.2966182Z", "app_type": "apig" }
  • 响应参数 状态码: 200 表3 响应Body参数 参数 参数类型 描述 id String 编号 name String API分组名称 status Integer 状态 1: 有效 枚举值: 1 sl_domain String 系统默认分配的子域名 register_time String 创建时间 update_time String 最近修改时间 on_sell_status Integer 是否已上架云商店: 1:已上架 2:未上架 3:审核中 url_domains Array of UrlDomain objects 分组上绑定的独立域名列表 sl_domain_access_enabled Boolean 调试域名是否可以访问,true表示可以访问,false表示禁止访问 缺省值:true sl_domains Array of strings 系统默认分配的子域名列表 remark String 描述 call_limits Integer 流控时长内分组下的API的总访问次数限制,默认不限,请根据服务的负载能力自行设置 暂不支持 time_interval Integer 流控时长 暂不支持 time_unit String 流控的时间单位 暂不支持 is_default Integer 是否为默认分组 version String 分组版本 V1:全局分组 V2:应用级分组 暂不支持,默认为V1 roma_app_id String 分组归属的集成应用编号。 分组版本V2时必填。 暂不支持 roma_app_name String 分组归属的集成应用名称 暂不支持 表4 UrlDomain 参数 参数类型 描述 id String 域名编号 domain String 访问域名 cname_status Integer 域名cname状态: 1:未解析 2:解析中 3:解析成功 4:解析失败 ssl_id String SSL证书编号 ssl_name String SSL证书名称 min_ssl_version String 最小ssl协议版本号。支持TLSv1.1或TLSv1.2 缺省值:TLSv1.1 枚举值: TLSv1.1 TLSv1.2 verified_client_certificate_enabled Boolean 是否开启客户端证书校验。只有绑定证书时,该参数才生效。当绑定证书存在trusted_root_ca时,默认开启;当绑定证书不存在trusted_root_ca时,默认关闭。 缺省值:false is_has_trusted_root_ca Boolean 是否存在信任的根证书CA。当绑定证书存在trusted_root_ca时为true。 缺省值:false 状态码: 400 表5 响应Body参数 参数 参数类型 描述 error_code String 错误码 error_msg String 错误描述 状态码: 401 表6 响应Body参数 参数 参数类型 描述 error_code String 错误码 error_msg String 错误描述 状态码: 403 表7 响应Body参数 参数 参数类型 描述 error_code String 错误码 error_msg String 错误描述 状态码: 404 表8 响应Body参数 参数 参数类型 描述 error_code String 错误码 error_msg String 错误描述 状态码: 500 表9 响应Body参数 参数 参数类型 描述 error_code String 错误码 error_msg String 错误描述
  • 响应示例 状态码: 200 OK { "update_time" : "2020-07-31T06:55:55Z", "name" : "api_group_001", "on_sell_status" : 2, "remark" : "API group 1", "sl_domains" : [ "c77f5e81d9cb4424bf704ef2b0ac7600.apic.****.com", "c77f5e81d9cb4424bf704ef2b0ac7600.apic.****.cn" ], "sl_domain" : "c77f5e81d9cb4424bf704ef2b0ac7600.apic.****.com", "id" : "c77f5e81d9cb4424bf704ef2b0ac7600", "register_time" : "2020-07-31T06:55:55Z", "status" : 1, "is_default" : 2, "sl_domain_access_enabled" : true } 状态码: 400 Bad Request { "error_code" : "APIG.2012", "error_msg" : "Invalid parameter value,parameterName:name. Please refer to the support documentation" } 状态码: 401 Unauthorized { "error_code" : "APIG.1002", "error_msg" : "Incorrect token or token resolution failed" } 状态码: 403 Forbidden { "error_code" : "APIG.1005", "error_msg" : "No permissions to request this method" } 状态码: 404 Not Found { "error_code" : "APIG.3030", "error_msg" : "The instance does not exist;id:eddc4d25480b4cd6b512f270a1b8b341" } 状态码: 500 Internal Server Error { "error_code" : "APIG.9999", "error_msg" : "System error" }
  • URI GET /v2/{project_id}/apigw/instances/{instance_id}/api-groups/{group_id} 表1 路径参数 参数 是否必选 参数类型 描述 project_id 是 String 项目ID,获取方式请参见获取项目ID。 instance_id 是 String 实例ID,在API网关控制台的“实例信息”中获取。 group_id 是 String 分组的编号
  • 请求消息 表2 参数说明 参数 是否必选 类型 说明 name 是 String APP的名称 支持汉字,英文,数字,“_”,且只能以英文和汉字开头,3 ~ 64个字符。 说明: 中文字符必须为UTF-8或者unicode编码。 remark 否 String APP描述。 字符长度不能大于255 说明: 中文字符必须为UTF-8或者unicode编码。 app_key 否 String APP的key 支持英文,数字,“_”,“-”,且只能以英文或数字开头,8 ~ 64个字符。 说明: 只支持部分region自定义。 app_secret 否 String 密钥 支持英文,数字,“_”,“-”,“_”,“!”,“@”,“#”,“$”,“%”,且只能以英文或数字开头,8 ~ 64个字符。 说明: 只支持部分region自定义。 请求消息样例: { "name": "app_001", "remark": "first app", "app_key": "app_key_sample", "app_secret": "app_secret_sample" }
  • 响应消息 表3 参数说明 参数 类型 说明 id String 编号 name String 名称 status Integer 状态 app_key String APP的key app_secret String 密钥 creator String APP的创建者,取值如下: USER:用户自行创建 MARKET:云商店分配 register_time Timestamp 创建时间 remark String 描述 update_time Timestamp 更新时间 app_type String APP类型,默认为apig 响应消息样例: { "id": "14b3****537e9", "name": "app_001", "status": 1, "app_key": "d49b1****376eb", "app_secret": "******", "creator": "USER", "remark": "第一个应用", "register_time": "2017-12-28T12:26:54.2345858Z", "update_time": "2017-12-28T12:26:54.2345858Z", "app_type": "apig" }
  • URI PUT /v2/{project_id}/apigw/instances/{instance_id}/api-groups/{group_id}/sl-domain-access-settings 表1 路径参数 参数 是否必选 参数类型 描述 project_id 是 String 项目ID,获取方式请参见获取项目ID。 instance_id 是 String 实例ID,在API网关控制台的“实例信息”中获取。 group_id 是 String 分组的编号
  • 请求参数 表2 请求Header参数 参数 是否必选 参数类型 描述 X-Auth-Token 是 String 用户Token。通过调用 IAM 服务获取用户Token接口获取(响应消息头中X-Subject-Token的值)。 表3 请求Body参数 参数 是否必选 参数类型 描述 sl_domain_access_enabled 是 Boolean 设置调试域名是否可以访问,true为可以访问,false为禁止访问 缺省值:true
  • 响应示例 状态码: 400 Bad Request { "error_code" : "APIG.2011", "error_msg" : "Invalid parameter value,parameterName:sl_domain_access_enabled" } 状态码: 401 Unauthorized { "error_code" : "APIG.1002", "error_msg" : "Incorrect token or token resolution failed" } 状态码: 403 Forbidden { "error_code" : "APIG.1005", "error_msg" : "No permissions to request this method" } 状态码: 404 Not Found { "error_code" : "APIG.3020", "error_msg" : "The URL domain does not exist" } 状态码: 500 Internal Server Error { "error_code" : "APIG.9999", "error_msg" : "System error" }
  • 响应参数 状态码: 400 表4 响应Body参数 参数 参数类型 描述 error_code String 错误码 error_msg String 错误描述 状态码: 401 表5 响应Body参数 参数 参数类型 描述 error_code String 错误码 error_msg String 错误描述 状态码: 403 表6 响应Body参数 参数 参数类型 描述 error_code String 错误码 error_msg String 错误描述 状态码: 404 表7 响应Body参数 参数 参数类型 描述 error_code String 错误码 error_msg String 错误描述 状态码: 500 表8 响应Body参数 参数 参数类型 描述 error_code String 错误码 error_msg String 错误描述
  • URI GET /v2/{project_id}/apigw/instances/{instance_id}/instance-features 表1 路径参数 参数 是否必选 参数类型 描述 project_id 是 String 项目ID,获取方式请参见获取项目ID。 instance_id 是 String 实例ID,在API网关控制台的“实例信息”中获取。 表2 Query参数 参数 是否必选 参数类型 描述 offset 否 Long 偏移量,表示从此偏移量开始查询,偏移量小于0时,自动转换为0 缺省值:0 limit 否 Integer 每页显示的条目数量,条目数量小于等于0时,自动转换为20,条目数量大于500时,自动转换为500 最小值:1 最大值:500 缺省值:20
  • 响应示例 状态码: 200 OK { "total" : 3, "size" : 3, "features" : [ "health_check_in_instance_etcd", "shubao_support_add_node", "resize_huge_flavor" ] } 状态码: 401 Unauthorized { "error_code" : "APIC.7102", "error_msg" : "Incorrect token or token resolution failed" } 状态码: 403 Forbidden { "error_code" : "APIC.7106", "error_msg" : "No permissions to request for the method" } 状态码: 500 Internal Server Error { "error_code" : "APIC.9000", "error_msg" : "Failed to request internal service" }
  • 响应参数 状态码: 200 表4 响应Body参数 参数 参数类型 描述 size Integer 本次返回的列表长度 total Long 满足条件的记录数 features Array of strings 实例支持的特性列表: "resize_huge_flavor" "health_check_in_instance_etcd" "shubao_support_add_node" "upgrade_uninterrupted" "sm_cipher_type" 与实例版本有关,列表中不展示的特性为实例不支持的特性 状态码: 401 表5 响应Body参数 参数 参数类型 描述 error_code String 错误码 error_msg String 错误描述 状态码: 403 表6 响应Body参数 参数 参数类型 描述 error_code String 错误码 error_msg String 错误描述 状态码: 500 表7 响应Body参数 参数 参数类型 描述 error_code String 错误码 error_msg String 错误描述
  • 响应消息 响应参数说明请参见下表: 参数 是否必选 类型 最大字符长度 说明 resultCode M String 6 调用结果码。 具体请参见调用结果码说明。 resultMsg O String 255 调用结果描述。 商家的服务器在处理接口请求时,需要做好幂等性处理。 云商店服务有可能重发请求,针对同一订单号,商家的服务器应当返回成功的响应,不应该再做实例延期处理,返回成功响应即可。 响应消息示例: { "resultCode":"000000", "resultMsg":"success." }
  • 请求方法:GET 参数 是否必选 类型 最大字符长度 说明 activity M String 20 接口请求标识,用于区分接口请求场景。 续费场景取值:refreshInstance authToken M String 50 安全校验令牌。 取值请参见authToken取值说明。 orderId M String 64 云商店订单ID。 说明: 续费操作会产生新的订单,与新购时订单ID不一致,请通过instance Id做资源识别。 instanceId M String 64 实例ID。 productId O String 64 产品标识,租户续费或转正产品实例时,如果订购周期类型发生变化,会传入变化后的产品类型对应的productId。 expireTime M String 20 过期时间。 格式:yyyyMMddHHmmss trialToFormal O String 2 是否是试用转正请求 不传参数:不是 1:是(试用转包周期) 默认不是试用转正。 timeStamp M String 20 请求发起时的时间戳,取UTC时间。 格式:yyyyMMddHHmmssSSS periodType O String 10 周期类型。 说明: 非必传,如需此参数,计费类型需选择包周期chargingMode=1,包周期购买场景请求时传该参数 年:"year" 月:"month" chargingMode=3,按次数购买场景请求时不传该参数。 periodNumber O integer 2 周期数量。 说明: 非必传,如需此参数,计费类型需选择包周期chargingMode=1,包周期购买场景请求时传该参数。 周期数量:1,2,3… orderAmount O bigdecimal 订单金额。 说明: 该金额为用户实际支付金额,供商家对账参考。 金额值大于等于0,最大三位小数。 单位:元 testFlag O Integer 1 是否调测数据。 1:接口调测数据 不传参数:真实买家同步数据 2018年5月12日新增接口参数:productId和trialToFormal。 2018年5月12日之后发布产品或已发布成功的产品新增规格时,请填写此新参数并通过接口调试(productId为空或者填值,trialToFormal“不传参数”或为“1”都要求调试通过)。 2018年5月12日之前已发布成功的产品,如果不涉及免费试用变更,不要求做接口调试。 请求消息示例: https://example.isv.com?activity=refreshInstance& expireTime=20180725000000&instanceId=03pf80c2bae96vc49b80b917bea776d7&orderId=HWS001014ED483AA1E8&timeStamp=20170725025113409&testFlag=1&authToken=09lsS5y+KCtxBu+ON4TXv1SrjH5KVYka9sx2MauHrQU=
  • 响应消息 响应参数说明请参见下表: 参数 是否必选 类型 最大字符长度 说明 resultCode M String 6 调用结果码。 具体请参见调用结果码说明。 resultMsg O String 255 调用结果描述。 商家的服务器在处理接口请求时,需要做好幂等性处理。 云商店服务有可能重发请求,针对同一instanceId,商家的服务器不应该重复做实例资源释放处理,返回成功响应即可。 响应消息示例: { "resultCode":"000000", "resultMsg":"success." }
  • 请求方法:GET 参数 是否必选 类型 最大字符长度 说明 activity M String 20 接口请求标识,用于区分接口请求场景。 释放场景取值:releaseInstance authToken M String 50 安全校验令牌。 取值请参见authToken取值说明。 instanceId M String 64 实例ID。 orderId M String 64 新购商品时对应的订单ID。 authToken M String 50 安全校验令牌。 取值请参见authToken取值说明。 timeStamp M String 20 请求发起时的时间戳,取UTC时间。 格式:yyyyMMddHHmmssSSS orderAmount O bigdecimal 订单金额。 说明: 该金额为用户实际支付金额,供商家对账参考。 金额值大于等于0,最大三位小数。 单位:元 testFlag O Integer 1 是否调测数据。 1:接口调测数据 不传参数:真实买家同步数据 请求消息示例: https://example.isv.com?activity=releaseInstance&instanceId=03pf80c2bae96vc49b80b917bea776d7&timeStamp=20170725025113409&testFlag=1&authToken=09lsS5y+KCtxBu+ON4TXv1SrjH5KVYka9sx2MauHrQU=
  • 请求方法:POST 接口URL:生产地址+固定子路径,其中固定子路径为/produceAPI/authSync; 接口示例:生产地址为https://example.isv.com,则接口URL为https://example.isv.com/produceAPI/authSync Headers请参数 参数 必选 参数类型 描述 authToken M String(255) 签名信息,请参考auth Token取值说明。 BODY请求参数 参数 必选 参数类型 描述 instanceId M String(64) 说明: 卖家申请应用凭证的时候传空,买家必传。 tenantId M String(64) 租户ID,与租户同步的接口租户ID保持一致,这个ID是买家 appId M String(64) 应用ID,与应用同步的应用ID保持一致的 userList M String 授权用户信息,包含userName:账号名(M)、name:姓名(M)、position:职位(O)、orgCode:部门(M)、role:角色(user-普通用户,admin-管理员)(M)、enable:账号状态(true-启用,false-禁用)(M)、employeeCode:工号(O)、employeeType:人员类型(1:正式 2:实习 3:劳务派遣 4:劳务外包)(O)、mobile:手机号(O)、email:邮箱(O)、workPlace:工作所在地(O)、entryDate:入职时间(yyyy-MM-d)(O) JSON串,例: [{\"userName\":\"zhangsan01\",\"name\":\"张三\",\"position\":\"系统管理员\",\"orgCode\":\"123456789\",\"role\":\"admin\",\"enable\":\"true\",\"employeeCode\":\"\",\"mobile\":\"\",\"email\":\"\",\"extension\":{\"entryDate\":\"2022-11-9\",\"employeeType\":\"4\",\"workPlace\":\"南京\"}},{\"userName\":\"lisi02\",\"name\":\"李四\",\"position\":\"运营经理\",\"orgCode\":\"123456789\",\"role\":\"user\",\"enable\":\"true\",\"extension\":{\"entryDate\":\"2022-11-16\",\"employeeType\":\"4\",\"workPlace\":\"南京\"}}] ISV需要根据角色给用户进行赋权,如果admin赋予管理员角色 最大一次同步用户数是500个 currentSyncTime M String 默认时区东8区,时间戳,时间格式:20220420114117642 flag M Integer(2) 0-删除 1-新增 2-修改 testFlag M Integer(2) 0-生产正式数据 1-调测数据 timeStamp M String 默认时区东8区,时间戳,时间格式:20220420114117642 响应参数 参数 必选 参数类型 描述 resultCode M String(6) 响应码,具体请参见调用结果码说明。 resultMsg O String(255) 响应信息 示例: POST https://example.isv.com/produceAPI/authSync Connection: keep-alive Content-Type: application/json authToken: "stbNYl*****************Ubt271qDr6WDAVLtLRb” Host: example.isv.com User-Agent: Apache-HttpClient/4.5.3 (Java/1.8.0_191) { "instanceId": "huaiweitest123456", "tenantId": "68cbc86ab******92f36422fa0e", "appId": "KSID******34456", "userList": "[{ userName:\"zhangsan01\",name:\"张三\",position:\"系统管理员\",orgCode:\"123456789\",role:\"admin\" enable:\"true\"},{ userName:\"lisi\",name:\"李四\",position:\"用户\",orgCode:\"123456789\",role:\"user\" enable:\"true\"},]", " currentSyncTime": "20220413093539534", "flag": 1, "testFlag": 0, "timeStamp": "20220413093539534", } HTTP/1.1 200 OK Body-Sign: sign_type="HMAC-SHA256", signature= "xxxxxxxxxx" Content-Type: application/json { " resultCode": "000000", " resultMsg": "Success" } HTTP Body签名: Body-Sign: sign_type="HMAC-SHA256", signature= "xxxxxxxxxxxxx" ,详情参考《HTTP Body签名》。
  • 接口说明 管理员被授权管理某企业后,在买家中心登录,对企业内用户授权该企业已绑定的应用,云商店异步调用该接口请求商家同步该企业应用的用户授权信息,商家接口需要执行授权信息同步,保存用户授权信息,并返回通知云商店。 针对租户应用授权信息同步场景接口调用失败的情况,由企业管理员选择是否要继续进行同步。并用短信或邮件的形式通知ISV商家接口调用失败。 商家的服务器在处理接口请求时,需要做好幂等性处理。 对于同一个实例,相同的租户,相同的应用,相同的userName,要支持多次请求新增,或者删除,多次新增不应产生新的数据,且需要返回成功,如果是删除,多次删除也需要返回成功,不能因已删除返回失败,删除时不需要校验(新购商品)接口产生的实例是否存在。 租户同步流程如下图所示:
  • Sdk::CheckNewVersions 场景描述 升级信息查询函数,由工业软件调用。工业软件查询升级信息时,调用此函数,向ISCDesk查询是否存在升级版本。查询成功后会触发“EVENT_UPGRADENOTICE”事件,将升级信息告知工业软件。 升级信息样例如下: {"operate":"UpgradeNotice","params":{"available":false},"comeBackParams":{}} “available”字段表示是否存在可升级版本,字段值为“true”表示存在可升级版本;字段值为“false”表示不存在可升级版本。 当存在可升级版本时,ISCDesk会弹窗提示是否升级。若选择升级,则触发“EVENT_UPDATE”升级事件,将升级事件连同升级信息一同告知工业软件,工业软件可自行决定是否退出升级或继续使用。 升级信息(强制升级)样例如下: {"operate":"Update","params":{"fromForceWin":"true"},"comeBackParams":{}} “fromForceWin”字段表示升级类别,当前包含非强制升级和强制升级两种类别。 “fromForceWin”字段值为“false”,表示非强制升级。工业软件可选择是否升级并通知ISCDesk,如果工业软件选择升级,则ISCDesk会在工业软件关闭后进行升级。 “fromForceWin”字段值为“true”,表示强制升级。工业软件无法选择是否升级,ISCDesk会在工业软件关闭后进行升级。 当工业软件选择升级或存在强制升级信息时,建议工业软件执行保存并退出操作。 涉及接口 Sdk::CheckNewVersions 调用示例 ResultStatus CheckNewVersions(); 父主题: 升级相关
  • 前提条件 在gitee中将SDK开源源码下载至本地,代码仓地址为https://gitee.com/HuaweiCloudDeveloper/huaweicloud-dme-iscdesk-cpp/tree/master-dev/。 当前提供两种方式获取SDK开源源码(注意:请选择“master-dev”分支代码): 将“huaweicloud-DME-ISCDesk-cpp”代码仓克隆至本地。 将“huaweicloud-DME-ISCDesk-cpp”代码压缩包下载至本地。
  • 请求方法:POST 接口URL:生产地址+固定子路径,其中固定子路径为/produceAPI/singleOrgSync; 接口示例:生产地址为https://example.isv.com,则接口URL为https://example.isv.com/produceAPI/singleOrgSync Headers请参数 参数 必选 参数类型 描述 authToken M String(255) 签名信息,请参考auth Token取值说明。 BODY请求参数 参数 必选 参数类型 描述 instanceId M String(64) 说明: 卖家申请应用凭证的时候传空,买家必传。 tenantId M String(64) 租户ID,与租户的同步信息保持一致 orgCode M String(64) 部门代码 租户自定义,租户内唯一 orgName M Vachar(128) 部门名称 所在层级唯一,允许租户更新名称 parentCode O String(64) 上级部门的orgCode,如果是顶层部门,这个值为空,其他场景不能为空,允许租户更新当前部门归属的上层部门 flag M Integer(2) 0-删除 1-新增,2-修改 testFlag M Integer(2) 0-生产正式数据 1-调测数据 timeStamp M String 默认时区东8区,时间戳,时间格式:20220420114117642 响应参数 参数 必选 参数类型 描述 resultCode M String(6) 响应码,具体请参见调用结果码说明。 resultMsg O String(255) 响应信息 示例: POST https://example.isv.com/produceAPI/singleOrgSync Connection: keep-alive Content-Type: application/json authToken: "stbNYlu**************2Ubt271qDr6WDAVLtLRb” Host: example.isv.com User-Agent: Apache-HttpClient/4.5.3 (Java/1.8.0_191) { "instanceId": "hua********23456", "instanceId": "hua********23456", "tenantId": "68cbc********0d92f36422fa0e", "orgCode": "10000", "orgName": "开发部", "parentCode": "", "flag": 1, "testFlag": 0, "timeStamp": "20220413093539534" , } HTTP/1.1 200 OK Body-Sign: sign_type="HMAC-SHA256", signature= "xxxxxxxxxx" Content-Type: application/json { " resultCode": "000000", " resultMsg": "Success" } HTTP Body签名: Body-Sign: sign_type="HMAC-SHA256", signature= "xxxxxxxxxxxxx" ,详情参考《HTTP Body签名》。
  • 接口说明 管理员被授权管理某企业后,在买家中心登录,对管理的企业执行新建、编辑、删除部门操作时,云商店调用该接口,请求商家同步该企业的组织增量变更;商家接口需要执行增量组织信息同步,保存信息,并返回通知云商店。 商家的服务器在处理接口请求时,需要做好幂等性处理。 对于同一个实例,相同的租户,相同的orgCode,要支持多次请求新增,或者删除,多次新增不应产生新的数据,且需要返回成功,如果是删除,多次删除也需要返回成功,不能因已删除返回失败,删除时不需要校验(新购商品)接口产生的实例是否存在。
  • 请求方法:GET 参数 是否必选 类型 最大字符长度 说明 authToken M String 50 安全校验令牌。 取值请参见authToken取值说明。 activity M String 32 接口请求标识,用于区分接口请求场景。 资源状态变更实例状态场景取值:instanceStatus instanceId M String 64 实例ID 注意: 使用按需接口返回的 instanceStatus M String 32 变更状态: FREEZE:冻结 NORMAL:解冻 timeStamp M String 20 请求发起时的时间戳,取UTC时间。 格式:yyyyMMddHHmmssSSS testFlag O String 2 是否为调试请求。 1:调试请求 0:非调试业务 默认取值为“0”。 请求示例: 冻结:https://example.isv.com?activity=instanceStatus&instanceId=huaweitest123456&instanceStatus=FREEZE&testFlag=1&timeStamp=20230327070251713&authToken=pqlrW7%2BPHC%2F1JE%2BMEjKxC94GGJreoS6PZHd982auw2o%3D 解冻:https://example.isv.com?activity=instanceStatus&instanceId=huaweitest123456&instanceStatus=NORMAL&testFlag=1&timeStamp=20230327070251713&authToken=pqlrW7%2BPHC%2F1JE%2BMEjKxC94GGJreoS6PZHd982auw2o%3D
  • 响应消息 响应参数说明请参见下表: 参数 是否必选 类型 最大字符长度 说明 resultCode M String 6 调用结果码。 具体请参见调用结果码说明。 resultMsg O String 255 调用结果描述。 商家的服务器在处理接口请求时,需要做好幂等性处理。 云商店服务有可能重发请求,针对同一instanceId,商家的服务器不应该重复做实例过期处理,返回成功响应即可。 响应消息示例: { "resultCode":"000000", "resultMsg":"success." }
  • 请求方法:GET 参数 是否必选 类型 最大字符长度 说明 activity M String 20 接口请求标识,用于区分接口请求场景。 过期场景取值:expireInstance authToken M String 50 安全校验令牌。 取值请参见authToken取值说明。 instanceId M String 64 实例ID orderId M String 64 新购商品时对应的订单ID。 timeStamp M String 20 请求发起时的时间戳,取UTC时间。 格式:yyyyMMddHHmmssSSS testFlag O Integer 1 是否调测数据。 1:接口调测数据 不传参数:真实买家同步数据 请求消息示例: https://example.isv.com?activity=expireInstance&instanceId=03pf80c2bae96vc49b80b917bea776d7 &timeStamp=20170725025113409&testFlag=1&authToken=09lsS5y+KCtxBu+ON4TXv1SrjH5KVYka9sx2MauHrQU=
  • 请求方法:POST 接口URL:生产地址+固定子路径,其中固定子路径为/produceAPI/tenantSync; 接口示例:生产地址为https://example.isv.com,则接口URL为https://example.isv.com/produceAPI/tenantSync Headers请参数 参数 必选 参数类型 描述 authToken M String(255) 签名信息,请参考auth Token取值说明。 Body参数 参数 必选 参数类型 描述 instanceId M String(64) 说明: 卖家申请应用凭证的时候传空,买家必传。 orderId O String(64) 订单号 tenantId M String(64) 租户ID tenantCode M String(64) 租户标识,用来识别最终用户的登录指向买家对应的域名 name M String(255) 租户名称,买家企业的名称 domainName M String(255) 域名,是认证中心返回的统一域名地址 flag M Integer(2) 0-删除 1-新增 testFlag M Integer(2) 0-生产正式数据 1-调测数据 timeStamp M String 默认时区东8区,时间戳,时间格式:20220420114117642 响应参数 参数 必选 参数类型 描述 resultCode M String(6) 响应码,具体请参见调用结果码说明。 resultMsg O String(255) 响应信息 示例: POST https://example.isv.com/produceAPI/tenantSync */produceAPI/tenantSync为固定值/* Connection: keep-alive Content-Type: application/json authToken: "stb****************HvordsmyF2Ubt271qDr6WDAVLtLRb” Host: example.isv.com User-Agent: Apache-HttpClient/4.5.3 (Java/1.8.0_191) { "instanceId": "huaiweitest123456", "orderId": " CS 1906666666ABCDE", "tenantId": "68cbc86****************880d92f36422fa0e", "tenantCode": "huawei", "name": "huaiweitest", "domainName": "https://example.tenantaccount.com", "flag": 1, "testFlag": 0, "timeStamp": "20220413093539534", } HTTP/1.1 200 OK Body-Sign: sign_type="HMAC-SHA256", signature= "******" Content-Type: application/json { " resultCode": "000000", " resultMsg": "Success" } HTTP Body签名: Body-Sign: sign_type="HMAC-SHA256", signature= "******" ,详情参考《HTTP Body签名》。
  • 接口说明 买家购买联营SaaS商品后,在买家中心登录,将应用与企业绑定时,云商店调用该接口请求商家同步该企业的租户信息,商家接口需要执行租户同步,保存租户信息,并返回通知云商店。 针对租户同步场景接口调用失败的情况,由买家选择是否重试,并用短信或邮件的形式通知商家接口调用失败。 商家的服务器在处理接口请求时,需要做好幂等性处理。 对于同一个实例,相同的租户要支持多次请求新增,或者删除,多次新增不应产生新的数据,且需要返回成功,如果是删除,多次删除也需要返回成功,不能因已删除返回失败,删除时不需要校验(新购商品)接口产生的实例是否存在。 租户同步流程如下图所示:
共100000条