华为云用户手册

  • 响应参数 表2 响应Body参数 参数 参数类型 描述 access_token String 授权服务器返回给第三方应用的访问令牌。 token_type String 访问令牌类型。固定值:Bearer。 expires_in Long 访问令牌的有效期,以秒为单位。 scope refresh_token String String 授权范围。 refresh_token String 刷新令牌,默认生成,有效期30天。 error String 错误类型。 error_description String 错误描述。 refresh_token有效期设置应比access_token长。
  • 请求参数 表1 FormUrlEncoded参数 参数 是否必选 参数类型 描述 client_id 是 String 应用标识,注册应用后,分配的ClientId。 client_secret 是 String 应用密钥,注册应用后,分配的ClientSecret。(解密后的明文) code 是 String 授权码,认证登录后回调获取的授权码。(code值仅可使用一次) grant_type 是 String 授权类型,固定值:authorization_code。 redirect_uri 否 String 回调地址,注册应用时填写的回调地址。 请求示例 POST {domain_name}/api/v1/oauth2/token Content-Type: application/x-www-form-urlencoded code=z2D...& client_id=NzZeWuiJa91dPSRdZQChMazIh13AW...& client_secret=******...& redirect_uri=https://example.com& grant_type=authorization_code
  • 举例 商家收到的调用请求示例如下: post方式: https://www.isvwebsite.com/saasproduce Connection: keep-alive Content-Type: application/json authToken: “xxxxxxxxxxxxxx” Host: www.isvwebsite.com User-Agent: Apache-HttpClient/4.5.3 (Java/1.8.0_191) { "p1": "1", "p2": "2", "p3": "3", "timeStamp": "201706211855321" } 获取所有的post请求body参数:p1、p2、p3、timeStamp 进行字典排序:sort(p1, p2, p3,timeStamp),假设排序后的顺序是p1、p3、p2、timeStamp 生成authToken值:base64_encode(HMAC_SHA256(Key+timeStamp, p1=1&p3=3&p2=2&timeStamp=201706211855321)) 所有参数的值云商店都经过了URL编码,商家取到参数值应先进行URL解码。
  • 登录场景: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 父主题: 企业提供独立的登录页面
  • 调用结果码说明 模块 结果码 结果码说明 公共 000000 成功 000001 鉴权失败 000002 请求参数不合法 000003 实例ID不存在 000004 请求处理中 000005 其他服务内部错误 新购商品 000100 无可用实例资源分配 000101 Mobile number not specified or already exists//手机号为空或重复 000102 Email address is not specified or already exists//邮箱号为空或重复 000103 Product already purchased//该商品不可重复购买 000104 Internal service error//该商品内部服务异常 000105 Account has already subscribed to benefits//该账号已购买权益,无法再开通 000106 Product resources sold out.//该商品资源已售罄 000107 SaaS email domain already exists.//该SaaS邮箱 域名 重复 父主题: 联营SaaS类商品接入指南 V1.0
  • 请求方法:POST 接口URL:生产地址+固定子路径,其中固定子路径为/produceAPI/allOrgSync; 接口示例:生产地址为https://example.isv.com,则接口URL为https://example.isv.com/produceAPI/allOrgSync Headers请参数 参数 必选 参数类型 描述 authToken M String(255) 签名信息,请参考auth Token取值说明。 BODY请求参数 参数 必选 参数类型 描述 instanceId M String(64) 说明: 卖家申请应用凭证的时候传空,买家必传。 tenantId M String(64) 租户ID orgInfo M String 组织内部门层级信息,包含部门代码、部门名称、上级部门Code,Json串,非树形结构 JSON串,例: [{\"orgCode\":\"00000001\", \"name\":\"产品部\",\"parentCode\":\"265789314\"},{\"orgCode\":\"00000002\", \"name\":\"测试部\",\"parentCode\":\"265789314\"}] testFlag M Integer(2) 0-生产正式数据 1-调测数据 timeStamp M String 默认时区东8区,时间戳,时间格式:20220420114117642 响应参数 参数 必选 参数类型 描述 resultCode M String(6) 响应码,具体请参见调用结果码说明。 resultMsg O String(255) 响应信息
  • 请求方法: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,要支持多次请求新增,或者删除,多次新增不应产生新的数据,且需要返回成功,如果是删除,多次删除也需要返回成功,不能因已删除返回失败,删除时不需要校验(新购商品)接口产生的实例是否存在。
  • 请求方法: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,要支持多次请求新增,或者删除,多次新增不应产生新的数据,且需要返回成功,如果是删除,多次删除也需要返回成功,不能因已删除返回失败,删除时不需要校验(新购商品)接口产生的实例是否存在。 租户同步流程如下图所示:
  • 接口说明 买家购买联营SaaS类应用后,在买家中心登录,将应用与企业绑定时,云商店调用该接口请求商家同步该企业应用的认证信息,商家接口需要执行应用同步,保存应用信息,并返回通知云商店。 针对应用同步场景接口调用失败的情况,由买家选择是否重试,并用短信或邮件的形式通知ISV商家接口调用失败。 商家的服务器在处理接口请求时,需要做好幂等性处理。 对于同一个实例,相同的租户,相同的应用,要支持多次请求新增,或者删除,多次新增不应产生新的数据,且需要返回成功,如果是删除,多次删除也需要返回成功,不能因已删除返回失败,删除时不需要校验(新购商品)接口产生的实例是否存在 应用同步流程如下图所示:
  • 接口说明 买家购买联营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签名》。
  • 接口安全令牌 在云商店发布SaaS类商品时,商家需要开发生产接口与云商店平台对接,根据接口规则实现相关的接口定义。用户在云商店购买SaaS商品后,云商店会回调商家实现的生产接口来开通SaaS应用实例,从而为用户提供服务SaaS服务。每一次接口调用和接口响应都必须进行安全校验,本文为您介绍接口的安全令牌方案。 获取Key值 auth Token取值说明 HTTP Body签名 父主题: 联营SaaS类商品接入指南 V1.0
  • 接入流程 SaaS类商品接入云商店的流程如下图所示: 流程说明如下: 申请入驻云商店,成为商家。 云商店运营人员审核公司的资质信息。 准备生产接口服务器,根据本接入指南开发生产接口。 在卖家中心调试生产接口,参考接口调试。 在卖家中心完成安全 漏洞扫描 。 在卖家中心创建应用凭证,参考应用凭证申请。 在卖家中心申请测试账号。 SDK账密或WEB场景的界面登录。 验证登录成功。 加入联营计划,成为联营商家。 在卖家中心申请发布商品。 云商店运营人员审批通过后,产品发布为联营商品。 在卖家中心自助管理生产接口通知消息。 联营SaaS类商品接入可参考《联营SaaS类商品接入视频指导》。 父主题: 联营SaaS类商品接入指南 V1.0
  • 联营SaaS接入流程介绍 如上图所示,联营SaaS接入分成为2个阶段: Kit对接:商家根据业务所需进行接口调试(参考基础接口描述和联营Kit接口描述); 账号测试:商家在云商店的“卖家中心”进行接口调试,申请应用凭证和测试账号获取,完成用户登录测试。 对于商家来说,完成接口对接与测试后,可以申请发布联营SaaS产品;本文档涉及Kit对接和验证用户账号登录,关于买家如何完成应用的购买与配置,请参考商品购买流程、SaaS类商品升配&扩容流程。 父主题: 联营SaaS类商品接入指南 V1.0
  • HTTP Body签名 Body签名,需要包含在每个接口的响应中,包含两部分: 参数 取值 描述 sign_type HMAC-SHA256 当前取值: HMAC-SHA256 signature base64_encode(HMAC_SHA256(key, httpBody)) base64_encode(HMAC_SHA256(key, httpBody)) httpBody:整个HTTP Body,包括开始和结束的空格、TAB符等。 key = Key值 HTTP响应头域示例: Body-Sign: sign_type="HMAC-SHA256", signature= "******" 消息头的格式请严格按照示例添加,sign_type和signature的值必须要加双引号。 代码示例请参见ISV Server对响应消息体进行签名。 父主题: 接口安全令牌
  • 举例 商家收到的调用请求数据示例如下: http://www.isvwebsite.com/saasproduce?p1=1&p2=2&p3=3&authToken=xxxxxxxxxxxxxx&timeStamp=201706211855321 获取所有的http get请求参数:p1、p2、p3、timeStamp 进行字典排序:sort(p1, p2, p3,timeStamp),假设排序后的顺序是p1、p3、p2、timeStamp 生成authToken值:base64_encode(HMAC_SHA256(Key+timeStamp, p1=1&p3=3&p2=2&timeStamp=201706211855321)) 所有参数的值云商店都经过了URL编码,商家取到参数值应先进行URL解码。
  • 接口安全令牌 在云商店发布SaaS类商品时,商家需要开发生产接口与云商店平台对接,根据接口规则实现相关的接口定义。用户在云商店购买SaaS商品后,云商店会回调商家实现的生产接口来开通SaaS应用实例,从而为用户提供服务SaaS服务。每一次接口调用和接口响应都必须进行安全校验,本文为您介绍接口的安全令牌方案。 获取Key值 authToken取值说明 HTTP Body签名 父主题: 通用和自服务SaaS类商品接入指南 V1.0
  • 接入流程 SaaS类商品接入云商店的流程如下图所示: 流程说明如下: 申请入驻云商店,成为商家。 云商店运营人员审核公司的资质信息。 准备生产接口服务器,根据本接入指南开发生产接口。 在卖家中心调试生产接口。 在卖家中心完成安全漏洞扫描。 在卖家中心申请发布SaaS商品。 云商店运营人员审批通过后产品发布成功。 在卖家中心自助管理生产接口通知消息。 2024年4月27日后新入驻的商家或者上架新商品,统一按照《SaaS类商品接入指南 V2.0》规范进行接口开发和调测。 SaaS 2.0接口协议提供更高的安全性、可靠性、易用性。 父主题: 通用和自服务SaaS类商品接入指南 V1.0
  • 调用结果码说明 模块 结果码 结果码说明 公共 000000 成功 000001 鉴权失败 000002 请求参数不合法 000003 实例ID不存在(商品续费、过期、资源释放接口可能返回) 000004 请求处理中 000005 其它服务内部错误 新购商品 000100 无可用实例资源分配 000101 Mobile number not specified or already exists//手机号为空或重复 000102 Email address is not specified or already exists//邮箱号为空或重复 000103 Product already purchased//该商品不可重复购买 000104 Internal service error//该商品内部服务异常 000105 Account has already subscribed to benefits//该账号已购买权益,无法再开通 000106 Product resources sold out.//该商品资源已售罄 000107 SaaS email domain already exists.//该SaaS邮箱域名重复 父主题: 通用和自服务SaaS类商品接入指南 V1.0
  • 请求方法: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 20 订单金额。 说明: 该金额为用户实际支付金额,供商家对账参考。 金额值大于等于0,最大三位小数。 单位:元 testFlag O Integer 1 是否调测数据。 1:接口调测数据 不传参数:真实买家同步数据 请求消息示例: https://example.isv.com?activity=releaseInstance&instanceId=03pf80c2bae96vc49b80b917bea776d7&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 接口请求标识,用于区分接口请求场景。 过期场景取值: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=
  • 响应消息 响应参数说明请参见下表: 参数 是否必选 类型 最大字符长度 说明 resultCode M String 6 调用结果码。 具体请参见调用结果码说明。 resultMsg O String 255 调用结果描述。 商家的服务器在处理接口请求时,需要做好幂等性处理。 云商店服务有可能重发请求,针对同一instanceId,商家的服务器不应该重复做实例过期处理,返回成功响应即可。 响应消息示例: { "resultCode":"000000", "resultMsg":"success." }
  • 响应消息 响应参数说明请参见下表: 参数 是否必选 类型 最大字符长度 说明 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 20 订单金额。 说明: 该金额为用户实际支付金额,供商家对账参考。 ① 续费场景: 金额值大于等于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 调用结果描述。 encryptType O String 3 敏感信息加密算法 1:AES256_CBC_PKCS5Padding(默认值) 2:AES128_CBC_PKCS5Padding 说明: 敏感信息加密算法是AES256_CBC_PKCS5Padding时返回值为1,敏感信息加密算法是AES128_CBC_PKCS5Padding时返回值为2。 instanceId M String 64 实例ID,商家提供的唯一标识。 建议此ID直接使用该订单首次请求时云商店传入的businessId,以确保instanceId的唯一性。 说明: 云商店每次请求时的businessId皆不一致,如取businessId作为instanceId,取订单首次调用时的businessId即可。 若通过其他方式生成instanceId,请确保该参数的全局唯一性,例如使用UUID生成。避免生成的instanceId发生重复,导致用户开通SaaS实例失败。 appInfo O AppInfo N/A 应用实例信息。 客户购买商品后,商家需要返回登录服务地址(网站地址)或免登地址供客户后续操作。 说明: SaaS商品必须向客户提供应用使用信息,包括使用地址、账号、密码等。 如可实现通过短信、邮件等其他方式发送使用信息,则接口中允许不响应;否则,必须在接口中返回应用实例信息。 如使用信息不仅包含使用地址及账号密码,可通过如下memo参数灵活返回其他使用信息或使用说明等。 appInfo数据结构定义请参见下表。 AppInfo数据结构定义如下: 参数 是否必选 类型及范围 最大字符长度 参数说明 frontEndUrl M String 512 前台地址。 客户购买商品后,可以访问的网站地址。 adminUrl O String 512 管理地址。 客户购买商品后,可以访问的管理后台地址。 userName O String 128 加密后的管理员账号。 客户购买商品后,访问商家管理后台的账号(一般为邮箱和手机号)。该值由16位iv加密向量和base编码后的用户名密文组成。 iv+encryptAESCBCEncode(userName, accessKey, iv, keySize) 需要使用Key值对账号做加密处理,加密算法以encryptType参数为准。代码示例请参见ISV Server对资源开通后的用户名和密码加密。 password O String 128 加密后的管理员初始密码。 客户购买商品后,访问商家管理后台的密码(一般由商家生成)。该值由16位iv加密向量和base编码后的密码密文组成。 iv+encryptAESCBCEncode(password, accessKey, iv, keySize) 需要使用Key值对密码做加密处理,加密算法以encryptType参数为准。代码示例请参见ISV Server对资源开通后的用户名和密码加密。 memo O String 1024 备注。 说明: 如果备注包含中文内容,请将中文转换成unicode编码,例如:“中文”可以转换成“\u4e2d\u6587”。 获取accessKey,请参见获取Key值。 用户名密码所校验的长度是密文的长度(包括iv向量)。 商家的服务器在处理接口请求时,需要做好幂等性处理。 云商店服务有可能重发请求,针对同一订单号,商家的服务器应当返回成功的响应及应用实例信息,不应该创建新的SaaS实例,返回之前成功创建的实例信息即可。 SaaS实例信息如果有变化,例如,adminUrl发生变化,在云商店服务重新调用此接口,传入相同的orderId时,商家的服务器需要返回更新后的SaaS实例信息。为保证安全,云商店不持久存储SaaS实例信息。 ISV生产接口响应中,除memo参数外,其他参数请不要返回中文。 响应消息示例: { "resultCode":"000000", "resultMsg":"success.", "instanceId":"03pf80c2bae96vc49b80b917bea776d7", "encryptType":"1", "appInfo":{ "frontEndUrl":"https://marketplace.huaweicloud.com/", "adminUrl":"https://marketplace.huaweicloud.com", "userName":"luQ***TobyT***Rx***pwMRg==", "password":"7Bx***5***hC***atExg==", "memo" : "have a test, 测试!" } }
  • 资产安全检测标准 商家提交应用资产发布申请后,云商店会对资产中的软件包进行自动化安全扫描,扫描内容如下 检测项 具体要求 病毒扫描 软件包不能包含病毒、木马、恶意程序 软件包漏洞扫描 软件包不能包含CVSS评分≥7.0的高风险级别的漏洞。 支持检测文件的编程语言类型:C/C++/Java/Go/JavaScript/Python/Rust/Swift/C#/PHP。 支持检测的文件:.7z、.arj、.cpio、.phar、.rar、.tar、.xar、.zip、.jar、.apk、.war等格式文件,及Android OTA Images、Android sparse、Intel HEX、RockChip、U-Boot等固件。
  • 云商店商业模式 商品类型 说明 开票主体 通用商品 此类商品使用商家品牌和名称,由商家负责 定价 、销售、运营、产品质量管理、交付及售后,云商店仅承担交易平台责任。 云商店商家 联营商品 此类商品使用商家品牌和名称,由云商店和商家共同负责定价、销售、运营及产品质量管理,由商家负责商品交付及售后服务。 华为云计算 技术有限公司 华为商品 此类商品由华为或华为子公司投资并进行产品研发或集成,由华为云负责销售、运营、交付、售后等端到端服务。 华为云计算技术有限公司
共100000条
提示

您即将访问非华为云网站,请注意账号财产安全