华为云用户手册

  • 请求方法: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 7 数量类型的商品 定价 属性。非必填。 属性名称:数量(支持商家自定义名称) 单位:个(次) 说明: 对于包周期或一次性计费的SaaS商品,租户下单购买包含“数量”线性属性的规格时,会填写及调整购买的个数或次数。 例如:30个用户 diskSize O Integer 7 数量类型的商品定价属性。非必填。 属性名称:硬盘大小(支持商家自定义名称) 单位:GB 说明: 对于包周期或一次性计费的SaaS商品,租户下单购买包含“硬盘大小”线性属性的规格时,会填写及调整购买多少GB。 例如:100GB bandWidth O Integer 7 数量类型的商品定价属性。非必填。 属性名称:带宽(支持商家自定义名称) 单位:Mbps 说明: 对于包周期或一次性计费的SaaS商品,租户下单购买包含“带宽”线性属性的规格时,会填写及调整购买多少Mbps。 例如:20Mbps testFlag O Integer 1 是否调测数据。 1:接口调测数据 不传参数:真实买家同步数据 请求消息示例: https://example.isv.com?activity=upgrade&amount=6456&instanceId=huaweitest123456&orderId= CS 1906666688ABCDE&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 调用结果码。 具体请参见调用结果码说明。 resultMsg O String 255 调用结果描述。 商家的服务器在处理接口请求时,需要做好幂等性处理。 云商店服务有可能重发请求,针对同一orderId,商家的服务器不应该重复做实例资源升级处理,返回成功响应即可。 响应消息示例: { "resultCode":"000000", "resultMsg":"success." }
  • 响应消息 响应参数说明请参见下表: 参数 是否必选 类型 最大字符长度 说明 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 20 订单金额。 说明: 该金额为用户实际支付金额,供商家对账参考。 金额值大于等于0,最大三位小数。 单位:元 testFlag O Integer 1 是否调测数据。 1:接口调测数据 不传参数:真实买家同步数据 请求消息示例: https://example.isv.com?activity=releaseInstance&instanceId=03pf80c2bae96vc49b80b917bea776d7&timeStamp=20170725025113409&testFlag=0&authToken=09lsS5y+KCtxBu+ON4TXv1SrjH5KVYka9sx2MauHrQU=
  • 请求方法: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=0&authToken=09lsS5y+KCtxBu+ON4TXv1SrjH5KVYka9sx2MauHrQU=
  • 响应消息 响应参数说明请参见下表: 参数 是否必选 类型 最大字符长度 说明 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=0&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***T***Rx***pwMRg==", "password":"7Bx***5***hC***atExg==" "memo" : "have a test, 测试!" } }
  • 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对响应消息体进行签名。 父主题: 接口安全令牌
  • 登录须知 开天aPaaS 企业工作台登录访问提供三种类型: 浏览器(推荐chrome)、PC客户端和移动端。 SaaS应用可以是轻应用(H5)或基于WEB架构应用,这些SaaS应用都经过oAuth或者CAS协议改造。 以oAuth2.0协议应用为例,企业用户首先通过用户名及密码登录 企业工作台 ,成功登录后,用户在企业工作台中点击某个SAAS应用, 企业工作台获取认证中心地址,并查询应用的回调址,并发起认证授权申请,回调成功后,SAAS应用获取Code及租户的ID,通过API获取accessToken及用户信息。 父主题: 开天aPaaS企业工作台登录
  • 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解码。
  • 接入流程 流程说明如下: 申请入驻云商店,成为商家。 云商店运营人员审核公司的资质信息。 准备生产接口服务器,根据本接入指南开发生产接口。 在卖家中心调试生产接口。 加入联营计划,成为联营商家。 在卖家中心申请发布商品。 云商店运营人员审批通过后,产品发布为联营商品。 在卖家中心自助管理生产接口通知消息。 联营License类商品接入可参考《License类商品接入视频指导(旧版)》。 父主题: 联营License类商品接入指南(已下线)
  • 响应参数 表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
  • 响应参数 表2 状态码 状态码 描述 200 请求成功。 400 请求错误。 状态码:200 表3 响应Body参数 参数 参数类型 描述 access_token String 授权服务器返回给第三方应用的访问令牌。 token_type String 访问令牌类型。固定值:Bearer。 expires_in Long 访问令牌的有效期,以秒为单位。 scope String 授权范围。 refresh_token String 刷新令牌。 状态码:400 表4 响应Body参数 参数 参数类型 描述 error String 错误类型。 error_description String 错误描述。
  • 请求参数 表1 FormUrlEncoded参数 参数 是否必选 参数类型 描述 client_id 是 String 应用标识,注册应用后,分配的ClientId。 client_secret 是 String 应用密钥,注册应用后,分配的ClientSecret。 grant_type 是 String 授权类型,固定值:refresh_token。 refresh_token 是 String 刷新令牌,获取Access Token接口中返回。 请求示例 POST {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 响应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": "CS1906666666ABCDE", "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签名》。
共100000条