华为云用户手册

  • 响应消息 响应参数说明请参见下表: 参数 是否必选 类型 最大字符长度 说明 resultCode M String 6 调用结果码。 具体请参见调用结果码说明。 resultMsg O String 255 调用结果描述。 商家的服务器在处理接口请求时,需要做好幂等性处理。 云商店服务有可能重发请求,针对同一instanceId,商家的服务器不应该重复做实例过期处理,返回成功响应即可。 响应消息示例: { "resultCode":"000000", "resultMsg":"success." }
  • 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对响应消息体进行签名。 父主题: 接入准备工作
  • SaaS类商品发布安全规范 发布SaaS类商品如涉及为用户提供网站服务(包括业务前台,管理后台portal等),您需确保您的应用中不包含常见的web漏洞:如XSS、SQL注入、CSRF、XXE注入、OS注入、跨目录访问、文件上传漏洞、敏感信息泄露、URL重定向泄露、TLS配置缺陷、网页木马等,如检测结果中包含一个高危漏洞,则扫描结果为不通过,请整改后再发布上架。 漏洞扫描服务支持扫描的漏洞请参见:漏洞扫描服务支持扫描哪些漏洞? 漏洞扫描服务的扫描IP请参见:漏洞扫描服务的扫描IP有哪些?
  • 响应消息 响应参数说明请参见下表: 参数 是否必选 类型 最大字符长度 参数说明 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==" } }
  • 请求参数(FormData) 参数名 类型 描述 是否必须 grant_type String 授权类型(固定值client_credentials) 是 client_id String 应用id 是 client_secret String 应用密钥 是 请求示例 获取凭据,根据应用的clientid以及clientsecret获取接口鉴权token POST https://bc.bccastle.com/api/v2/tenant/token Content-Type: application/x-www-form-urlencoded client_id=ONtQq2igSggfFClyGgzmuXR8ubWEPcgN...& client_secret=XdqUmJpG19hNEHz3472XsPcwvfe...& grant_type=client_credentials
  • 联营商品信息填写标准 商家可对照《联营商品发布&修改操作指导图文》相关内容进行联营商品信息填写。 完善发布信息时,请对照以下标准检查发布项,不符合标准将被驳回! 请确认联营认证已通过,如下图,并联系联营认证时的华为接口人获取最新报价单,报价单错误将影响商品信息正确性,请务必保证报价单准确性。 根据报价单填写联营商品信息,可参考指导视频:联营商品信息填写标准(对照报价单)。 如需发布不涉及服务监管的SaaS类的商品,请确保此商品已通过联营商品Kit测试。 发布项 审核标准 商品接入类型 需与联营认证报价单中的“产品上架方式”一致。 商品名称 需与联营认证报价单中的“产品名称”一致。 商品LOGO 建议用正方形结构,且四周要留白约15px(使用偏瘦长的上下或者左右结构可能导致LOGO展示过小,如果必须使用,请将LOGO顶头顶尾排列,保证icon视觉面积大小统一); 上传的图片要保证LOGO的清晰度。任何变形、残缺或者不清晰将无法通过审核。 生产接口地址 SaaS类商品生产接口地址需要部署在华为云上。 如生产接口经解析为非华为云地址,请邮件发送至partner@huaweicloud.com说明原因,内容包含:公司名称、上架的商品名称、说明解析非华为云的原因、使用华为云的资源截图。 商品主图与视频 图片分辨率不小于800*600,长宽比为4:3,长宽比将影响商品最终展示效果。 主图内容需与商品相关,请勿使用无意义的插图。 视频第一帧不能为黑白单色,否则将影响商品展示效果。 未经授权请勿发布以下内容:华为商标、第三方商标、合作宣传、个人隐私数据(人脸、姓名)等。如已有授权,请邮件发送《授权函》、公司名称、上架的商品名称至partner@huaweicloud.com报备。 商品说明 需包含商品的核心功能和服务,如存在多个规格,请逐个说明。 客户案例 需体现此合作项目存在的挑战及痛点、解决方案、项目结果等;如无,请勿填写。 商品简介、商品说明、 商品亮点、客户案例等文字内容 1.请勿存在广告法敏感词,如:国家级、最佳、极致、世界第一等。 2.请勿存在无效外链、二维码,如为商品宣传需要,请打码上传。 3.请勿出现无故换行、空行的文字排版。 4.请勿出现通过其他方式获取商务等描述,如:商务申请或详细价格请咨询xxx。 5.请勿未经授权发布以下内容:华为商标、第三方商标、合作宣传、个人隐私数据(人脸、姓名)等。如已有授权,请邮件发送《授权函》、公司名称、上架的商品名称至partner@huaweicloud.com报备。 商品服务协议 下载填写处下方的《联营服务支持条款》模板,按照模板要求填写,请勿使用个人模板。 服务与支持 包含服务内容、服务时间、服务电话、服务邮箱4项内容。 软件著作权证书 软著名称需与商品名称一致,著作权人需与发布主体一致;如不一致,需将承诺函与软著一起上传。 如软著正在申请中,可提供承诺函。 所有场景承诺函模板,在上传软著处下载。 商品标签 若选择鲲鹏、混合云、loT商品认证标签,需同步上传与商品名称相符且对应的认证证书,详见商品发布注意事项。 商品规格 需注意规格名称、属性名称、数量范围、价格都需与报价单一致,如下图。 如需勾选试用,请联系华为接口人邮件报备,接口人反馈通过后方可勾选。 货物劳务名称:请咨询华为接口人,按照联营认证结论填写。 支持使用平台:选择集成联营kit后,分发到其它平台端使用(SaaS类商品) ① Welink开放平台 ② 工业软件云(工业软件SaaS服务中心)
  • 接口说明 买家购买联营SaaS类应用后,在买家中心登录,将应用与企业绑定时,云商店调用该接口请求商家同步该企业应用的认证信息,商家接口需要执行应用同步,保存应用信息,并返回通知云商店。 针对应用同步场景接口调用失败的情况,由买家选择是否重试,并用短信或邮件的形式通知ISV商家接口调用失败。 商家的服务器在处理接口请求时,需要做好幂等性处理。 对于同一个实例,相同的租户,相同的应用,要支持多次请求新增,或者删除,多次新增不应产生新的数据,且需要返回成功,如果是删除,多次删除也需要返回成功,不能因已删除返回失败,删除时不需要校验(新购商品)接口产生的实例是否存在 应用同步流程如下图所示:
  • 举例 商家收到的调用请求示例如下: 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解码。
  • 请求参数 表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 请求成功。 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
  • 接口功能及说明 商家发布SaaS商品时,首先需根据本接入指南,在生产接口服务器开发生产系统接口。 具体可以参考接口描述。 1.已经完成基础接口描述中接口对接的商家,本次生产系统接口只需要实现联营Kit接口描述中接口的对接。 2.首次上架的联营商品需完成基础接口描述和联营Kit接口描述的对接。 如果发布包周期商品,接口需实现“新购(包周期)”、“续费”、“过期”、“释放”四种场景的调用。 如果发布按次商品,接口需实现“新购(按次)”和“释放”场景的调用。 如果发布按需商品,接口需实现“新购(按需)”、“新购(按需套餐包)”、“查询实例信息”、“资源状态变更”、“释放”、“按需使用量推送”场景的调用。 3.SaaS接口响应失败将通过邮件、短信、站内信进行通知,请注意关注账号绑定的邮箱、手机短信及站内信的相关通知。 若商品单月因接口失败导致的失败订单超过5个或长时间拨测失败,云商店将对该商品下架处理。 因接口响应失败导致自动退订的订单,请商家及时联系用户进行沟通,避免造成用户投诉。 父主题: 联营SaaS类商品接入指南
  • 请求方法: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) 响应信息
  • 登录须知 开天aPaaS企业工作台登录访问提供三种类型: 浏览器(推荐chrome)、PC客户端和移动端。 SaaS应用可以是轻应用(H5)或基于WEB架构应用,这些SaaS应用都经过oAuth或者CAS协议改造。 以oAuth2.0协议应用为例,企业用户首先通过用户名及密码登录企业工作台,成功登录后,用户在企业工作台中点击某个SAAS应用, 企业工作台获取认证中心地址,并查询应用的回调址,并发起认证授权申请,回调成功后,SAAS应用获取Code及租户的ID,通过API获取accessToken及用户信息。 父主题: 开天aPaaS企业工作台登录
  • 响应参数 属性名 类型 属性说明 error_msg String 返回信息【失败时,会记录失败原因】 error_code String 返回码 session_token String 刷新后的新session_token 响应示例 正确示例 { "session_token": "*****" } 错误示例 { "error_msg": "The system is busy. Please try again later.", "error_code": "OneAccess.1009" }
  • 请求参数(post Body) 参数名 类型 中文名称 是否必须 示例值 session_token String 旧session_token 是 ***** operating_sys_version String 调用方操作系统版本 是 windows10.1.1 device_ip String 调用方设备ip 是 192.168.1.1 device_fingerprint String 调用方设备指纹 是 ***** agent String User-Agent信息 否 agent:Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/89.0.4389.82 Safari/537.36 请求示例 POST https://bc.bccastle.com/api/v2/tenant/sso/session-token/refresh { "session_token":"*****", "operating_sys_version":"windows10.1.1", "device_ip":"192.168.1.1", "device_fingerprint":"*****", "agent":"agent:Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/89.0.4389.82 Safari/537.36" }
  • 请求方法: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 参数 是否必选 类型 最大字符长度 说明 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
  • 联营SaaS接入流程介绍 如上图所示,联营SaaS接入分成为2个阶段: Kit对接:商家根据业务所需进行接口调试(参考基础接口描述和联营Kit接口描述); 账号测试:商家在云商店的“卖家中心”进行接口调试,申请应用凭证和测试账号获取,完成用户登录测试。 对于商家来说,完成接口对接与测试后,可以申请发布联营SaaS产品;本文档涉及Kit对接和验证用户账号登录,关于买家如何完成应用的购买与配置,请参考商品购买流程、SaaS类商品升配&扩容流程。 父主题: 联营SaaS类商品接入指南
  • 请求方法: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类商品接入云商店的流程如下图所示: 流程说明如下: 申请入驻云商店,成为商家。 云商店运营人员审核公司的资质信息。 准备生产接口服务器,根据本接入指南开发生产接口。 在卖家中心调试生产接口,参考接口调试。 在卖家中心完成安全漏洞扫描。 在卖家中心创建应用凭证,参考应用凭证申请。 在卖家中心申请测试账号。 SDK账密或WEB场景的界面登录。 验证登录成功。 加入联营计划,成为联营商家。 在卖家中心申请发布商品。 云商店运营人员审批通过后,产品发布为联营商品。 在卖家中心自助管理生产接口通知消息。 联营SaaS类商品接入可参考《联营SaaS类商品接入视频指导》。 父主题: 联营SaaS类商品接入指南
  • 响应参数 表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
  • 请求方法: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": "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签名》。
  • 接口说明 买家购买联营SaaS商品后,在买家中心登录,将应用与企业绑定时,云商店调用该接口请求商家同步该企业的租户信息,商家接口需要执行租户同步,保存租户信息,并返回通知云商店。 针对租户同步场景接口调用失败的情况,由买家选择是否重试,并用短信或邮件的形式通知商家接口调用失败。 商家的服务器在处理接口请求时,需要做好幂等性处理。 对于同一个实例,相同的租户要支持多次请求新增,或者删除,多次新增不应产生新的数据,且需要返回成功,如果是删除,多次删除也需要返回成功,不能因已删除返回失败,删除时不需要校验(新购商品)接口产生的实例是否存在。 租户同步流程如下图所示:
  • 登录场景: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 响应参数表 参数 是否必选 类型 最大字符长度 说明 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参数为准。代码示例请参见1.1.8.4 ISV Server对资源开通后的用户名和密码加密。 password O String 128 加密后的管理员初始密码。 客户购买商品后,访问商家管理后台的密码(一般由商家生成)。该值由16位iv加密向量和base编码后的密码密文组成。 iv+base64(AES_CBC(accessKey,pwd)) 需要使用Key值对密码做加密处理,加密算法以encryptType参数为准。代码示例请参见1.1.8.4 ISV Server对资源开通后的用户名和密码加密。 memo O String 1024 备注。 说明: 如果备注包含中文内容,请将中文转换成unicode编码,例如:“中文”可以转换成“\u4e2d\u6587”。 UsageInfos数据结构定义如下: 参数 是否必选 类型及范围 最大字符长度 参数说明 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": "huaweitest123", "appInfo": { "frontEndUrl": "https://www.example.com", "userName": "3Z***L94***DKb/t***cQ==", "password": "x4***M6***EKap***M+MQ==", "memo": "hvave a test, 测试!" }, "usageInfos": [ { "usageValue": 151.22, "dashboardUrl": "https://www.example.com/admin", "statisticalTime": "23445666", }, { "usageValue": 121.22, "dashboardUrl": "https://www.example.com/admin", "statisticalTime": "3445555555555", } ] }
  • 请求方法: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=huaiweitest123456%2Chuaiweitest12345678&testFlag=1&timeStamp=20230327065233980&authToken=Eh%2F3Ud%2BR1j3d%2FwOui5CAcvRipM8IuribvgkXfJAsTfE%3D
  • 入门导读 数字化制造基础服务(MBM Foundation,简称MBM-F),提供数字化制造领域丰富的标准化高复用数据模型与业务模型,数字模型驱动,面向生态开放,打造新一代的数字化制造云平台,使能生态构建上层制造领域行业应用。 初次使用MBM-F的您,如果对MBM-F还不太了解,不知道从何处入手,请仔细阅读该入门导读。通过入门导读可帮助您由浅入深的学习MBM-F,帮助您更快上手操作MBM-F。 表1 阶段分解 阶段 任务 内容说明 难易程度 初学入门 开通数字化制造基础服务 MBM-F提供数字化制造基础服务-站点和数字化制造基础服务-用户的产品规格,规格说明请参见产品规格。 - 创建MBM-F操作用户 超级管理员可以通过创建MBM-F操作账号的方式实现多人共同使用MBM-F。 - 创建工厂模型 通过创建工厂模型,您可以初步了解MBM-F的基本概念并体验制造数据模型管理的功能。 ★ 父主题: 数字化制造基础服务快速入门
共100000条