华为云用户手册

  • 接口调用流程 接口调用的流程为: 获取AK/SK认证 调用接口前,请获取请求认证,并将认证字段填充至下一步中的方法中,进行请示构建,实现请求的认证。 调用接口采用AK/SK认证方式。 AK/SK认证:通过AK(Access Key ID)/SK(Secret Access Key)加密调用请求。 通过API网关向下层服务发送请求时,必须使用AK(Access Key ID)、SK(Secret Access Key)对请求进行签名。 AK(Access Key ID):访问密钥ID。与私有访问密钥关联的唯一标识符;访问密钥ID和私有访问密钥一起使用,对请求进行加密签名。 SK(Secret Access Key):与访问密钥ID结合使用的密钥,对请求进行加密签名,可标识发送方,并防止请求被修改。 构造请求方法。 填充请求参数构建请求方法。 发起请求。 解析消息响应。 父主题: 接口使用方法
  • 接口说明 买家购买联营SaaS商品后,在买家中心登录,将应用与企业绑定时,云商店调用该接口请求商家同步该企业的租户信息,商家接口需要执行租户同步,保存租户信息,并返回通知云商店。 针对租户同步场景接口调用失败的情况,由买家选择是否重试,并用短信或邮件的形式通知商家接口调用失败。 商家的服务器在处理接口请求时,需要做好幂等性处理。 对于同一个实例,相同的租户要支持多次请求新增,或者删除,多次新增不应产生新的数据,且需要返回成功,如果是删除,多次删除也需要返回成功,不能因已删除返回失败,删除时不需要校验(新购商品)接口产生的实例是否存在。 租户同步流程如下图所示:
  • 请求方法: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) 说明: 实例ID,卖家申请应用凭证的时候传空,买家正式订单必传。 orderId M 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签名》。
  • 概念介绍 ISCDesk ISCDesk(Industrial Software Cloud Desktop),工业软件 云桌面 工具管理客户端,提供工具软件的一键下载、安装、打开、更新和卸载功能。 ISV ISV(Independent Software Vendor),独立软件开发商,是具有区域和行业属性的软件类合作伙伴。此处指云商店商家,是指经过有效申请并经过华为同意,通过云商店向用户销售及提供基于云计算,大数据业务的软件,镜像以及服务的企业。
  • 接口功能及说明 商家发布SaaS商品时,首先需根据本接入指南,在生产接口服务器开发生产系统接口。 具体可以参考接口描述。 1.已经完成基础接口描述中接口对接的商家,本次生产系统接口只需要实现联营Kit接口描述中接口的对接。 2.首次上架的联营商品需完成基础接口描述和联营Kit接口描述的对接。 如果发布包周期商品,接口需实现“新购(包周期)”、“续费”、“过期”、“释放”四种场景的调用。 如果发布按次商品,接口需实现“新购(按次)”和“释放”场景的调用。 如果发布按需商品,接口需实现“新购(按需)”、“新购(按需套餐包)”、“查询实例信息”、“资源状态变更”、“释放”、“按需使用量推送”场景的调用。 3.SaaS接口响应失败将通过邮件、短信、站内信进行通知,请注意关注账号绑定的邮箱、手机短信及站内信的相关通知。 若商品单月因接口失败导致的失败订单超过5个或长时间拨测失败,云商店将对该商品下架处理。 因接口响应失败导致自动退订的订单,请商家及时联系用户进行沟通,避免造成用户投诉。 父主题: 联营SaaS类商品接入指南 V1.0
  • 响应消息 响应参数说明请参见下表: 参数 是否必选 类型 最大字符长度 说明 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 参数 是否必选 类型 取值范围 说明 activity M String 20 接口请求标识,用于区分接口请求场景。 异步申请License场景取值:getLicenseAsync instanceId M String 64 业务资源实例ID effectiveTime M String 32 License生效utc时间 expireTime O String 32 License失效utc时间,包周期类型必输 eventId M String 64 云商店业务流水号,用于商家服务器结合设备指纹,区分是否是同一次申请License的请求,支持License传输中断等业务需要重试的场景 deviceFingerprint O String 1024 设备指纹或硬件识别编码,用于需要绑定设备物理标识信息生成License的场景 testFlag O String 2 是否为调试请求。 1:调试请求 0:非调试请求 默认取值为“0”。 请求消息示例: curl -X POST 'https://www.isvwebsite.com/saasproduce?signature=11C4C*********31DEF5C515*******B8A3A6D8******7A48×tamp=1680508066618&nonce=50D83FDECAED6CCD8EF597F2A577950527928BA287D04E6036E92B2806FD17DA' -H 'Accept:application/json' -H 'Content-Type:application/json;charset=utf8' -d'{"activity":"getLicenseAsync","eventId":"8****e5694*****c8","instanceId":"RA2****4LVS","effectiveTime":"2023-10-27 10:30:15 z","expireTime":"2024-10-27 10:30:15 z","deviceFingerprint":"8******6034e2*****60e1"}'
  • 响应消息 响应参数说明请参见下表: 参数 是否必选 类型 取值范围 说明 resultCode M String 6 调用结果码。 000000:表示资源同步开通 000004:表示资源异步开通 具体请参见《调用结果码说明》。 resultMsg O String 255 调用结果描述。 请及时关注商家信息中客服邮箱以及云商店账号绑定的邮箱的通知,收到调用失败通知邮件及时处理接口异常。 云商店会对接口异常的情况做监控,如商品频繁出现因接口异常的情况,云商店将对该商品做下架处理。 响应消息示例: { "resultCode":"000000", "resultMsg":"success." }
  • 接口说明 用户通过云商店向商家申请License。 请及时关注商家信息中客服邮箱以及云商店账号绑定的邮箱的通知,收到调用失败通知邮件及时处理接口异常。 云商店会对接口异常的情况做监控,如商品频繁出现因接口异常的情况,云商店将对该商品做下架处理。 云商店服务有可能重发请求,针对同一请求,商家的服务器应当返回相同的License,不应该创建新的License,返回之前成功创建的License即可。 申请License流程如下图所示: 上传License流程如下图所示:
  • 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(); 父主题: 升级相关
  • 接口说明 管理员被授权管理某企业后,在买家中心登录,对管理的企业执行新建、编辑、删除部门操作时,云商店调用该接口,请求商家同步该企业的组织增量变更;商家接口需要执行增量组织信息同步,保存信息,并返回通知云商店。 商家的服务器在处理接口请求时,需要做好幂等性处理。 对于同一个实例,相同的租户,相同的orgCode,要支持多次请求新增,或者删除,多次新增不应产生新的数据,且需要返回成功,如果是删除,多次删除也需要返回成功,不能因已删除返回失败,删除时不需要校验(新购商品)接口产生的实例是否存在。
  • 请求方法: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签名》。
  • 公共错误码 表1 错误码 http状态码 error_code error_msg 描述 200 CBC.0000 Success 成功 403 CBC.0150 Illegal operation 鉴权失败 400 CBC.0101 Invalid parameter 请求参数不合法 500 CBC.0999 internal error 其它服务内部错误 200 91381033 License resource invalid License资源不可用 200 91381034 license apply invalid 用户License申请不合法 200 91381035 license period has no remain amount License资源周期没余额了 200 91381036 inner error 内部错误 200 91381037 Invalid license format. License格式不正确 200 91381038 License apply has been denied. License申请已拒绝 200 91380150 Role permission denied 没有权限执行该操作,角色权限错误 父主题: 云商店开放接口指南
  • 请求消息 请求参数说明请参见下表: 请求方法:POST 参数 是否必选 类型 取值范围 说明 activity M String 20 接口请求标识,用于区分接口请求场景。 续费场景取值:refreshInstance scene M String 64 场景,触发实例变更的场景: TRIAL_TO_FORMAL:试用转正 RENEWAL:续费 UNSUBSCRIBE_RENEWAL_PERIOD:退续费 orderId M String 64 云商店订单ID, 试用转正时传递转正订单ID 续费时传递当前续费订单ID 退续费时传递需要退订的续费订单ID orderLineId M String 64 云商店订单行ID。 instanceId M String 64 实例ID。 productId O String 64 产品标识,租户续费或转正产品实例时,如果订购周期类型发生变化,会传入变化后的产品类型对应的productId。 expireTime M String 20 过期时间。 格式:yyyyMMddHHmmss testFlag O String 2 是否为调试请求。 1:调试请求 0:非调试请求 默认取值为“0”。 请求消息示例: curl -X POST 'https://www.isvwebsite.com/saasproduce?signature=3F6E6652B7BE26B27ABFC3D112***********20174FE8DE062×tamp=1680509496350&nonce=8BF8496A350E37BDB0E8956D39D433ED417C3FC9459DCFFE7F03BFBF69B12085' -H 'Accept:application/json' -H 'Content-Type:application/json;charset=utf8' -d'{"activity":"refreshInstance","expireTime":"20221124023618256","instanceId":"10e758d0-31ad********03469a10e","orderId":"CS2211*******VS","orderLineId":"CS221******000001","productId":"OFFI461******240","scene":"RENEWAL","testFlag":"0"}'
  • 接口说明 按周期售卖的商品,用户试用转正、续费、退续费后,云商店调用该接口,更新实例的到期日期。 客户商品转正、续费下单或退订续费周期后,云商店将调用该接口请求商家执行业务变更,商家接口需要执行将到期日进行更新,并返回通知云商店。 商家需要保障更新实例接口通畅,如调用失败,将可能导致用户的业务被释放的风险。 请及时关注商家信息中客服邮箱以及云商店账号绑定的邮箱的通知,收到调用失败通知邮件及时处理接口异常。 云商店会对接口异常的情况做监控,如商品频繁出现因接口异常的情况,云商店将对该商品做下架处理。 商品更新实例流程如下图所示:
  • 请求消息 请求参数 请求方法:GET 参数 是否必选 参数类型 取值范围 描述 orderId M String 64 云商店订单ID orderLineId O String 64 云商店订单行ID 需要对mkt.myhuaweicloud.com HTTPS证书进行强校验,不能忽略证书校验,从而保证调用的是真实而非伪造的云商店服务。 请求示例 GET /api/mkp-openapi-public/global/v1/order/query?orderId=CS2207261447AUY4H&orderLineId=CS2207261447AUY4H-000001 Host: Host Server Content-Type: application/json charset=UTF-8 X-Sdk-Date: request time Authorization: authorization
  • 响应消息 响应参数说明请参见下表: 参数 是否必选 类型 最大字符长度 说明 resultCode M String 6 调用结果码。 具体请参见调用结果码说明。 resultMsg O String 255 调用结果描述。 商家的服务器在处理接口请求时,需要做好幂等性处理。 云商店服务有可能重发请求,针对同一orderId,商家的服务器不应该重复做实例资源升级处理,返回成功响应即可。 响应消息示例: { "resultCode":"000000", "resultMsg":"success." }
  • 请求方法:GET 参数 是否必选 类型 最大字符长度 说明 authToken M String 50 安全校验令牌。 取值请参见authToken取值说明。 activity M String 20 接口请求标识,用于区分接口请求场景。 升级场景取值:upgrade instanceId M String 64 实例ID。 说明: 升级时,instanceId不变。 orderId M String 64 升级后的新订单ID。 说明: 升级操作会产生新的订单,与新购时订单ID不一致,请通过instance Id做资源识别。 skuCode M String 64 升级后产品规格标识。 说明: 对于自定义属性模板规格,如果租户升级时选择了其他属性值,instanceId对应的规格会发生变化,因此skuCode会变化; 如果仅扩容(调整增加线性属性值大小,例如:从当前的10用户增加到20用户),skuCode不变。 productId M String 64 升级后产品ID。 如果skuCode变化,productId也会发生变化; 如果仅扩容,productId不变。 timeStamp M String 20 请求发起时的时间戳,取UTC时间。 格式:yyyyMMddHHmmssSSS amount O Integer 4 数量类型的商品 定价 属性。非必填。 属性名称:数量(支持商家自定义名称) 单位:个(次) 说明: 对于包周期或一次性计费的SaaS商品,租户下单购买包含“数量”线性属性的规格时,会填写及调整购买的个数或次数。 例如:30个用户 diskSize O Integer 4 数量类型的商品定价属性。非必填。 属性名称:硬盘大小(支持商家自定义名称) 单位:GB 说明: 对于包周期或一次性计费的SaaS商品,租户下单购买包含“硬盘大小”线性属性的规格时,会填写及调整购买多少GB。 例如:100GB bandWidth O Integer 4 数量类型的商品定价属性。非必填。 属性名称:带宽(支持商家自定义名称) 单位:Mbps 说明: 对于包周期或一次性计费的SaaS商品,租户下单购买包含“带宽”线性属性的规格时,会填写及调整购买多少Mbps。 例如:20Mbps testFlag O Integer 1 是否调测数据。 1:接口调测数据 不传参数:真实买家同步数据 请求消息示例: https://example.isv.com?activity=upgrade&amount=6456&instanceId=huaweitest123456&orderId=CS1906666688ABCDE&productId=00301-666688-0-0&saasExtendParams=W3sibmFtZSI6ImlkTnVtIiwidmFsdWUiOiIzNTIyNTU1NTU1NTU2NTYifSx7Im5hbWUiOiJ1c2VyTmFtZSIsInZhbHVlIjoiaHVhd2VpMTIzIn0seyJuYW1lIjoiY3VzdEVtYWlsIiwidmFsdWUiOiIxMjNAaHVhd2VpLmNvbSJ9XQ==&skuCode=d0abcd12-1234-5678-ab90-11ab012aaaa1&testFlag=1&timeStamp=20191216013757582&authToken=a3Bl+C93xv3ENgm40ngyYvQnYcTS/pgY5ugl20wtzGg=
  • 响应消息 响应参数说明请参见下表: 参数 是否必选 类型 取值范围 参数说明 resultCode M String 6 调用结果码。 000000:表示资源同步开通 000004:表示资源异步开通 具体请参见《调用结果码说明》。 说明:如果创建实例耗时较长,建议返回0000004,云商店后续会通过查询实例信息接口查询实例开通结果 resultMsg O String 255 调用结果描述。 instanceId M String 64 实例ID 响应消息示例: { "resultCode":"000000", "resultMsg":"success." , "instanceId":"03pf80c2bae96vc49*********" }
  • 接口说明 客户购买商品并付款成功,云商店将调用本接口通知商家创建实例。 商家需要返回此订单的唯一ID(instanceId)。建议此ID直接使用该订单首次请求时云商店传入的businessId,以确保instanceId的唯一性。 在正常购买场景中,请不要阻塞此接口,如果耗时较长,建议异步创建实例,可以先生成instanceId,然后立即返回。 获取订单信息,请参考《在线开通License接口示例代码》。 云商店服务有可能重发请求,针对同一订单号(orderId)和订单行(orderLineId),商家的服务器应当返回相同的instanceId,不应该创建新的License实例,返回之前成功创建的实例id即可。 创建实例流程如下图所示:
  • 请求消息 请求参数说明请参见下表。云商店会结合商家创建上架的商品售卖模式来对应请求,商家也需要根据请求的信息来对应执行生产。 请求方式:POST 参数 是否必选 参数类型 最大字符长度 说明 activity M String 20 接口请求标识,用于区分接口请求场景。 新购场景取值:newInstance orderId M String 64 云商店订单ID。 orderLineId M String 64 云商店订单行ID。 businessId M String 64 云商店业务ID。 每一次请求,businessId皆不一致。 testFlag O String 2 是否为调试请求。 1:调试请求 0:非调试请求 默认取值为“0”。 请求消息示例: curl -X POST 'https://www.isvwebsite.com/saasproduce?signature=11C4CD6279191DE931DEF5C51531DFFA9D37969F4E356B**********8×tamp=1680508066618&nonce=50D83FDECAED6CCD8EF597F2A577950527928BA287D04E6036E92B2806FD17DA' -H 'Accept:application/json' -H 'Content-Type:application/json;charset=utf8' -d'{"activity":"newInstance","businessId":"87b947**********-69420d60e3c8","orderId":"CS221118******","orderLineId":"CS22111********-000001","testFlag":"0"}'
  • 接口调用场景 创建实例:客户购买商品并付款成功。 云商店将调用创建实例接口通知商家根据订单号创建实例。 商家系统收到该请求信息,需调用云商店查询订单接口,获取本次订购的相关信息,执行新购对应动作。 更新实例:客户试用转正、续费、退续费。 云商店将调用更新实例接口,通知商家系统对相应资源变更过期时间,商家本地系统需执行相应动作,并将执行结果返回给云商店。 更新实例状态:用户资源实例因到期、违规等情况下会对用户的实例进行冻结,同时在用户续费后,或资源解除违规后会对用户的实例进行解锁。 云商店将调用更新实例状态接口,通知商家系统对相应资源执行冻结、解冻操作,并将执行结果返回给云商店。 用户订单到期后,有 15天的资源冻结期,冻结期内资源不可使用,但可以对此订单续费以解冻继续使用,故商家需对在线开通License商品设置15天的冻结期,并在冻结期内保留用户数据。 释放实例:用户释放购买产品的实例时(到期不续费、退订等场景)。 云商店将调用释放实例接口,通知商家系统对相应资源执行释放操作,并将执行结果返回云商店。
  • 登录场景:accesstoken续期 用户登录获得的access_token有效期默认为2小时,refresh_token刷新令牌有效期默认为30天,在用户持续访问应用的情况下,服务端应提供access_token的续期功能。 续期功能内部调用时序图: 接口URL请参考联营能力开放接口的刷新Access Token,示例URL如下: {domain_name}/api/v1/oauth2/token Content-Type:application/x-www-form-urlencoded&client_id=NzZeWuiJa91dPSRdZQChMazIh13AW...&client_secret=******...&refresh_token=******...&grant_type=refresh_token 父主题: 企业提供独立的登录页面
  • 响应参数 表2 状态码 状态码 描述 200 请求成功。 401 认证失败。 表3 响应Body参数 参数 参数类型 描述 id String 用户ID userName String 用户名 name String 姓名 email String 邮箱地址 mobile String 手机号 error String 错误类型。 error_description String 错误描述。 role String 角色 organizationName String 组织名称 userId String 用户id organizationCode String 组织编码 projectName String 租户名称 tenant String 租户id
  • 请求参数 表1 请求Header 参数 是否必选 参数类型 描述 Accept 是 String 接收响应类型,值:application/json。 Authorization 是 String 认证凭据,值:Bearer {access_token}。 请求示例 GET {domain_name}/api/v1/oauth2/userinfo Authorization: Bearer ****** Accept: application/json
  • 接入流程 SaaS类商品接入云商店的流程如下图所示: 流程说明如下: 申请入驻云商店,成为商家。 云商店运营人员审核公司的资质信息。 准备生产接口服务器,根据本接入指南开发生产接口。 在卖家中心调试生产接口,参考接口调试。 在卖家中心完成安全 漏洞扫描 ,参考安全漏洞扫描操作指导及安全规范。 在卖家中心创建应用凭证,参考应用凭证申请。 在卖家中心申请测试账号。 SDK账密或WEB场景的界面登录。 验证登录成功。 加入联营计划,成为联营商家,参考联营认证及商品发布流程概览。 在卖家中心申请发布商品,参考联营商品上架。 云商店运营人员审批通过后,产品发布为联营商品。 在卖家中心自助管理生产接口通知消息。 联营SaaS类商品接入可参考《联营SaaS类商品接入视频指导》。 父主题: 联营SaaS类商品接入指南 V1.0
  • 使用方法 华为云API符合RESTful API设计理论。 REST从资源的角度观察整个网络,分布在各处的资源由URI(Uniform Resource Identifier)确定,客户端的应用通过URL(Unified Resource Locator)获取资源。 URL的一般格式为:https://Endpoint/uri。 URL中的参数说明如表1所示。 表1 URL中的参数说明 参数 描述 Endpoint 云商店的Endpoint为“mkt.myhuaweicloud.com”和“mkt.myhuaweicloud.com”。 uri 资源路径,也即API访问路径。从具体接口的URI模块获取,例如“v1.0/{partner_id}/billing/bill-mgr/push-usage-data”。 其中,uri中的用户标识参数说明如下: 使用“partner_id”标识,表示该接口只能使用合作伙伴(ISV)自身的AK/SK或者Token调用。 华为云接口采用HTTP传输协议,有如下约束条件: 请求/响应报文使用JSON报文UTF-8字符集编码。 媒体类型表示为Application/json。 可选参数在消息体中可以不编码。 接口请求参数和响应参数中时间格式统一为UTC时间(包括时区),格式为yyyyMMdd'T'HHmmss'Z'。 其中,HH范围是0~23,mm和ss范围是0~59。 父主题: 接口使用方法
  • 响应消息 响应参数说明请参见下表: 表2 响应参数表 参数 是否必选 类型 最大字符长度 说明 resultCode M String 6 调用结果码。 具体请参见调用结果码说明。 resultMsg O String 255 调用结果描述。 encryptType O String 3 敏感信息加密算法 1:AES256_CBC_PKCS5Padding(默认值) 2:AES128_CBC_PKCS5Padding 说明: 敏感信息加密算法是AES256_CBC_PKCS5Padding时返回值为1; 敏感信息加密算法是AES128_CBC_PKCS5Padding时返回值为2; info O InstanceInfo[] / 实例详情 InstanceInfo数据结构定义如下: 参数 是否必选 类型及范围 最大字符长度 参数说明 instanceId M String 64 实例id appInfo O AppInfo N/A 应用实例信息。 客户购买商品后,商家需要返回登录服务地址(网站地址)或免登地址供客户后续操作。 说明: SaaS商品必须向客户提供应用使用信息,包括使用地址、账号、密码等。 如可实现通过短信、邮件等其他方式发送使用信息,则接口中允许不响应;否则,必须在接口中返回应用实例信息。 如使用信息不仅包含使用地址及账号密码,可通过如下memo参数灵活返回其他使用信息或使用说明等。 appInfo数据结构定义请参见下表。 usageInfos O UsageInfo[] N/A 应用实例关联的用量信息,按需和按需套餐包实例需要返回,对应按需套餐包,需要分别返回套餐包关联的所有费用项的用量信息。 AppInfo数据结构定义如下: 参数 是否必选 类型及范围 最大字符长度 参数说明 frontEndUrl M String 512 前台地址。 客户购买商品后,可以访问的网站地址。 adminUrl O String 512 管理地址。 客户购买商品后,可以访问的管理后台地址。 userName O String 128 加密后的管理员账号。 客户购买商品后,访问商家管理后台的账号(一般为邮箱和手机号)。该值由16位iv加密向量和base编码后的用户名密文组成。 iv+base64(AES_CBC(accessKey,userName)) 需要使用Key值对账号做加密处理,加密算法以encryptType参数为准。代码示例请参见ISV Server对资源开通后的用户名和密码加密。 password O String 128 加密后的管理员初始密码。 客户购买商品后,访问商家管理后台的密码(一般由商家生成)。该值由16位iv加密向量和base编码后的密码密文组成。 iv+base64(AES_CBC(accessKey,pwd)) 需要使用Key值对密码做加密处理,加密算法以encryptType参数为准。代码示例请参见ISV Server对资源开通后的用户名和密码加密。 memo O String 1024 备注。 说明: 如果备注包含中文内容,请将中文转换成unicode编码,例如:“中文”可以转换成“\u4e2d\u6587”。 UsageInfo数据结构定义如下: 参数 是否必选 类型及范围 最大字符长度 参数说明 relatedInstanceId O String 64 关联的按需实例ID,当查询按需套餐包实例的用量数据时,还需要返回此用量对应的按需实例id,譬如,当前套餐包包含短信100条和彩信50条,则在查询此套餐包的用量扣减时需要返回两个UsageInfo信息,分别对应短信和彩信的用量信息,relatedInstanceId分别对应短信和彩信按需实例ID usageValue M Double(12,4) 20 使用量具体值,最多支持4位有效小数,对于按需实例,应该是一个总体的累积值,对于按需套餐包实例,应该是套餐包的已用用量信息 statisticalTime M String 20 使用量统计时间,取UTC时间。 格式:yyyyMMddHHmmssSSS dashboardUrl O String 512 用量详细查看看板地址。 客户购买按需或按需套餐包商品后,可以在这个平台查看具体的用量信息。 响应消息示例: { "resultCode" : "000000", "resultMsg" : "success.", "encryptType" : "1", "info" : [{ "instanceId" : "ebc28eb6-4606-4098-b4bd-c201c99a0654", "appInfo" : { "frontEndUrl" : "https://www.***.com", "adminUrl" : "https://www.*****.com/admin", "userName" : "*****", "password" : "*****", "memo" : "hvave a test, 测试!" }, "usageInfo" : [{ "relatedInstanceId" : "ebc28eb6-4606-4098-b4bd-c201c99a0654", "usageValue" : "0.12", "statisticalTime" : "20221101025113409", "dashboardUrl" : "https://www.baidu.com/dashboard" } ] }, { "instanceId" : "fe28e27e-1157-4105-8592-24cc9488db10", "appInfo" : { "frontEndUrl" : "https://www.***.com", "adminUrl" : "https://www.***.com/admin", "userName" : "*****", "password" : "*****", "memo" : "hvave a test, 测试!" }, "usageInfo" : [{ "relatedInstanceId" : "fe28e27e-1157-4105-8592-24cc9488db10", "usageValue" : "2042", "statisticalTime" : "20221101025113409", "dashboardUrl" : "https://www.baidu.com/dashboard" } ] }, { "instanceId" : "92df74e4-163e-4e0b-a206-d9800d33881b", "appInfo" : { "frontEndUrl" : "https://www.baidu.com", "adminUrl" : "https://www.baidu.com/admin", "userName" : "huawei", "password" : "huawei123456", "memo" : "hvave a test, 测试!" }, "usageInfo" : [{ "relatedInstanceId" : "ebc28eb6-4606-4098-b4bd-c201c99a0654", "usageValue" : "3309", "statisticalTime" : "20221101025113409", "dashboardUrl" : "https://www.baidu.com/dashboard" }, { "relatedInstanceId" : "fe28e27e-1157-4105-8592-24cc9488db10", "usageValue" : "3309", "statisticalTime" : "20221101025113409", "dashboardUrl" : "https://www.baidu.com/dashboard" } ] } ] }
  • 请求方法:GET 请求参数说明请参见下表: 表1 请求参数表 参数 是否必选 类型 最大字符长度 说明 authToken M String 50 安全校验令牌。 取值请参见authToken取值说明。 activity M String 20 接口请求标识,用于区分接口请求场景。 查询实例场景取值:queryInstance timeStamp M String 20 请求发起时的时间戳,取UTC时间。 格式:yyyyMMddHHmmssSSS instanceId M String 64 实例ID,支持批量,多个实例批量查询时用逗号分隔,单次最多支持100个实例查询。 testFlag O String 2 是否为调试请求。 1:调试请求 0:非调试业务 默认取值为“0”。 请求示例: https://example.isv.com?activity=queryInstance&instanceId=ebc28eb6-4606-4098-b4bd-c201c99a0654%2Cfe28e27e-1157-4105-8592-24cc9488db10%2C92df74e4-163e-4e0b-a206-d9800d33881b&testFlag=1&timeStamp=20230327065233980&authToken=Eh%2F3Ud%2BR1j3d%2FwOui5CAcvRipM8IuribvgkXfJAsTfE%3D
共100000条