云服务器内容精选

  • 公共错误码 表1 错误码 http状态码 error_code error_msg 描述 200 92020000 Success 成功 200 92020001 internal error 其它服务内部错误 200 92020002 invalid param 请求参数不合法 200 92020003 illegal state 授权码状态不合法(授权码请勿重复激活) 200 92020004 can not active before user received. 激活码用户尚未领取 200 92020005 license code notexist 授权码ID不存在 400 95000001 req param is invalid 请求参数错误(正则、必填项、长度等不满足) 405 95000002 Request method not supported 请求method类型不支持 415 95000003 Content type not supported 请求体类型不支持(Content-type不是application/json) 400 95000004 req message is not readable 请求体不可读(无法格式化成json) 200 92020011 license code has been not activated. 授权码未激活 200 92020020 Invalid license code exists. 存在非法授权码
  • 请求方法:POST Body参数 参数 是否必选 参数类型 最大字符长度 说明 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=11C4CD6279191DE931DEF5C51531DFFA9D37969F4E356B8A3A6D8DE4FB357A48×tamp=1680508066618&nonce=50D83FDECAED6CCD8EF597F2A577950527928BA287D04E6036E92B2806FD17DA' -H 'Accept:application/json' -H 'Content-Type:application/json;charset=utf8' -d'{"activity":"newInstance","businessId":"87b94795-0603-4e24-8ae5-69420d60e3c8","orderId":" CS 2211181819B4LVS","orderLineId":"CS2211181819B4LVS-000001","testFlag":"0"}'
  • 响应消息 响应参数说明请参见下表: 参数 是否必选 类型 取值范围 参数说明 resultCode M String 6 调用结果码。 000000:表示资源同步开通 000004:表示资源异步开通 具体请参见1.9 调用结果码说明 说明:如果创建实例耗时较长,建议返回0000004,云商店后续会通过查询实例信息接口查询实例开通结果 resultMsg O String 255 调用结果描述。 instanceId M String 64 实例ID,商家提供的唯一标识,每个新购订单都需要提供不重复的唯一标识。 建议此ID直接使用该订单首次请求时云商店传入的businessId,以确保instanceId的唯一性。 说明: 云商店每次请求时的businessId皆不一致,如取businessId作为instanceId,取订单首次调用时的businessId即可。 响应消息示例: { "resultCode":"000000", "resultMsg":"success" , "instanceId":"03pf80c2bae96vc49b80b917bea776d7" }
  • 接口说明 客户购买商品并付款成功,云商店将调用本接口通知商家创建实例 商家需要返回此订单的唯一ID(instanceId)。建议此ID直接使用该订单首次请求时云商店传入的businessId,以确保instanceId的唯一性。 在正常购买场景中,请不要阻塞此接口,如果耗时较长,建议异步创建实例,可以先生成instanceId,然后立即返回。云商店后续会通过查询实例信息接口查询实例开通结果。 如涉及按需、按需套餐包商品,需要对接按需使用量推送(新)接口。 获取订单信息,请参考查询订单接口。 云商店服务有可能重发请求,针对同一订单号(orderId)和订单行(orderLineId),商家的服务器应当返回相同的instanceId,不应该创建新的SaaS实例,返回之前成功创建的实例信息即可。 按需交易场景,需要基于订单号(orderId)和产品标识(productId)构建幂等。 创建实例流程如下图所示:
  • 请求消息 请求参数说明请参见下表: 请求方法:POST 参数 是否必选 类型 最大字符长度 说明 activity M String 32 接口请求标识,用于区分接口请求场景。 变更授权码状态场景取值:updateLicenseCodeStatus license M String 64 授权码 status M String 32 变更状态: FREEZE:冻结 UNFREEZE:解冻 testFlag O String 2 是否为调试请求。 1:调试请求 0:非调试业务 默认取值为“0”。 请求消息示例: { "activity":"updateLicenseCodeStatus", "license":"******", "status":"FREEZE", "testFlag":"1" }
  • 接口安全令牌 在云商店发布License类授权码商品时,商家需要开发生产接口与云商店平台对接,根据接口规则实现相关的接口定义。用户在云商店对购买License商品续费、退订后,云商店会回调商家实现的生产接口来更新授权码状态,从而为用户使用的License商品统一进行生命周期管理。每一次接口调用都必须进行安全校验,本文为您介绍接口的安全令牌方案。 获取Key值(访问密钥) 请求认证说明 父主题: 商家接入接口描述(可选)
  • 接口说明 买家购买联营SaaS商品后,登录到华为云买家中心控制台,将应用与企业绑定时,云商店调用该接口请求商家同步该企业的租户信息,商家接口需要执行租户同步,保存租户信息,并返回通知云商店。 针对企业同步场景接口调用失败的情况,由买家选择是否重试,并用短信或邮件的形式通知商家接口调用失败。 商家的服务器在处理接口请求时,需要做好幂等性处理。 对于同一个实例,相同的租户要支持多次请求新增,或者删除,多次新增不应产生新的数据,且需要返回成功,如果是删除,多次删除也需要返回成功,不能因已删除返回失败,删除时不需要校验(创建实例)接口产生的实例是否存在。 租户同步流程如下图所示:
  • 请求方法:POST 接口URL:生产地址+固定子路径,其中固定子路径为/produceAPI/v2/tenantSync; 接口示例:生产地址为https://example.isv.com,则接口URL为https://example.isv.com/produceAPI/v2/tenantSync,固定子路径商家无需手动拼接。 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-新增 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/v2/tenantSync Content-Type: application/json x-sign:11C4CD6279191DE931DEF5C51531DFFA9D37969F4E356B8A3A6D8DE4FB357A48 x-timestamp:1680508066618 x-nonce:50D83FDECAED6CCD8EF597F2A577950527928BA287D04E6036E92B2806FD17DA {"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 Content-Type: application/json { " resultCode": "000000", " resultMsg": "Success" }
  • 接口兼容性说明 接口变更时,如果其V版本不变,则云商店保证接口是兼容的,如激活授权码接口V1.0版本,其URI为: POST /api/mkp-openapi-public/global/v1/license/activate,在接口修改时,如果该接口的V版本仍然为V1.0,其URI应该保持不变,接口能够保证是兼容的。如果该接口出现不兼容的变更,则云商店会修改接口的V版本,如新的不兼容接口的URI为: POST /api/mkp-openapi-public/global/v2/license/activate。在未通知接口调用方配合修改并已切换到新V版本的API之前,原V版本的API会继续保持可用。 云商店视以下变更为兼容性变更,请接口调用方保证在出现这些类型的接口变更时,接口调用方能够自动保证兼容。 表1 变更类型说明 变更类型 说明 兼容性建议 请求消息增加可选的输入参数 接口的请求消息中增加可选的输入参数。 无。 响应消息增加返回参数 响应消息增加返回对象,原有的返回对象增加属性等。 调用方在解析JSON消息时,需要保证JSON解析代码能够自动适配响应消息体内新增返回对象或返回码对象增加属性的情况。 增加返回码 因为业务场景扩展,接口增加了新的返回码。 调用方需要自动处理新增返回码的机制,如将新增错误码按其他错误处理。 父主题: 云商店开放接口描述
  • 接口说明 买家购买联营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签名》。
  • 请求方法:GET 参数 是否必选 参数类型 最大字符长度 说明 activity M String 20 接口请求标识,用于区分接口请求场景。 到期场景取值:expireLicense orderId M String 64 云商店订单ID。 说明: 新购License对应的云商店订单ID instanceId M String 64 实例ID。 authToken M String 50 安全校验令牌。 取值请参见authToken取值说明。 timeStamp M String 20 请求发起时的时间戳,取UTC时间。 格式:yyyyMMddHHmmssSSS
  • 响应消息 响应参数说明请参见下表: 参数 是否必选 类型 最大字符长度 说明 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 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=CS1906666688ABCDE&productId=00301-666688-0-0&saasExtendParams=W3sibmFtZSI6ImlkTnVtIiwidmFsdWUiOiIzNTIyNTU1NTU1NTU2NTYifSx7Im5hbWUiOiJ1c2VyTmFtZSIsInZhbHVlIjoiaHVhd2VpMTIzIn0seyJuYW1lIjoiY3VzdEVtYWlsIiwidmFsdWUiOiIxMjNAaHVhd2VpLmNvbSJ9XQ==&skuCode=d0abcd12-1234-5678-ab90-11ab012aaaa1&testFlag=1&timeStamp=20191216013757582&authToken=a3Bl+C93xv3ENgm40ngyYvQnYcTS/pgY5ugl20wtzGg=
提示

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