正式应用订阅通知接入
WeLink应用市场是WeLink提供,围绕WeLink周边能力扩展的应用市场,它提供了一个给各个合作伙伴和WeLink的租户企业之间的平台,WeLink应用服务商的应用上架到应用市场后,提供给WeLink租户企业在平台上购买和使用。
目前WeLink的应用市场基于华为云市场实现,所以应用对接WeLink后,租户如果需要购买该应用时,租户在WeLink市场点击订阅后,WeLink将引导租户到华为云市场订阅,可以订阅试用套餐也可以订阅付费套餐。为完成此流程,应用服务商需要做到以下2点:
- 应用服务商需要入驻华为云WeLink子市场
- 应用服务商需要对接华为云订单付费信息, 并上架一个基于WeLink平台开发的SAAS应用
1、入驻华为云市场
2、对接华为云订单推送
客户在华为云应用市场购买、续期和退订应用时,会发送订单消息给应用服务商应用后台。
新购:客户购买商品并付款成功,云市场将通知服务商客户购买商品的信息和客户信息
续期:客户续费下单或试用商品转正付款成功后,云市场将通知服务商执行业务延期
过期:客户购买的商品过期时,云市场通知服务商购买已过期
释放:当客户已购买的商品到期不续订且超过保留期、或申请退订商品成功时,云市场将释放客户购买的商品时并通知服务商
当应用服务商后台收到订单信息后,需要识别到客户在WeLink中的企业唯一标识符(tenantId),并根据此信息初始化资源。云市场推送订单的部分参数如下,全量参数需要参考云市场文档
1) 新购商品
当收到华为云的“新购商品”通知时,华为云会带上以下参数(请注意,这些参数不是全部,这里仅列举部分), 特别需要注意的是saasExtendParams参数:
参数名 | 是否必选 | 类型 | 取值范围 | 说明 |
---|---|---|---|---|
timeStamp | M | String | 20 | 请求发起时的时间戳,取UTC时间。格式:yyyyMMddHHmmssSSS |
activity | M | String | 20 | 接口标识。 取值:newInstance |
customerId | M | String | 100 | 客户在华为云注册账号的唯一标识。 |
customerName | O | String | 64 | 客户在华为云注册的账户名。 |
userId | O | String | 64 | 客户以IAM用户认证方式登录时对应子用户的唯一标识。 |
userName | O | String | 64 | 客户以IAM用户认证方式登录的用户名。 |
businessId | M | String | 64 | 云市场业务ID。 |
orderId | M | String | 64 | 云市场订单ID。 |
skuCode | O | String | 64 | 产品规格标识。租户购买包月或包年的产品后,可能会续费,续费支持变更周期类型(例如包月转包年),此时,租户开通的实例instanceId对应的productId会变化,但skuCode不变。 说明:该参数可在商品审核上架后,进入“卖家中心 > 商品管理 > 我的商品 ”页面,单击该商品操作列的“详情”进入商品详情页面获取。 |
productId | M | String | 64 | 产品标识,同一skuCode下,不同周期类型的productId不同。例如:ISV发布产品,新增一个规格,会生成一个skuCode,再配置包年价格,包月价格,会生成两个productId。 说明: 该参数可在商品审核上架后,进入“卖家中心 > 商品管理 > 我的商品 ”页面,单击该商品操作列的“详情”进入商品详情页面获取。 |
trialFlag | O | String | 2 | 是否是开通试用实例。 1:试用实例 0:非试用实例 不传试用参数:2018年5月12日之前已发布成功的产品实例 默认取值为“0”。 |
saasExtendParams | O | String | [{"name":"platformParams","value":"{\"tenantName\":\"ixxx业\",\"tennantId\":\"4CAxxxED\",\"userId\":\"axxxt\"}"}] | 其中,"platformParams"为用户在WeLink中的信息,tenantName是WeLink中的企业名,tenantId是WeLink中的企业唯一标识符,userId为WeLink中订阅该应用的用户,通常为企业管理员(WeLink企业管理员可以有多个且企业管理员账号可被注销) |
2) 商品续费
当收到华为云的“商品续费”消息时,华为云市场推送订单参数不包含saasExtendParams的platformParams值。
参数 | 是否必选 | 类型 | 取值范围 | 说明 |
---|---|---|---|---|
activity | M | String | 20 | 接口标识。 取值:refreshInstance |
orderId | M | String | 64 | 云市场订单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 |
3) 商品过期
当收到华为云的“商品过期”消息时,华为云市场推送订单参数不包含saasExtendParams的platformParams值。
参数 | 是否必选 | 类型 | 取值范围 | 说明 |
---|---|---|---|---|
activity | M | String | 20 | 接口标识。 取值:expireInstance |
instanceId | M | String | 64 | 实例ID |
testFlag | O | String | 2 | 是否为调试请求。 1:调试请求 0:非调试业务 默认取值为“0”。 |
timeStamp | M | String | 20 | 请求发起时的时间戳,取UTC时间。格式:yyyyMMddHHmmssSSS |
4) 商品资源释放
当收到华为云的“资源释放”消息时,华为云市场推送订单参数不包含saasExtendParams的platformParams值。
参数 | 是否必选 | 类型 | 取值范围 | 说明 |
---|---|---|---|---|
activity | M | String | 20 | 接口标识。 取值:releaseInstance |
instanceId | M | String | 64 | 实例ID。 |
testFlag | O | String | 2 | 是否为调试请求。 1:调试请求 0:非调试请求 默认取值为“0”。 |
timeStamp | M | String | 20 | 请求发起时的时间戳,取UTC时间。 格式:yyyyMMddHHmmssSSS |
开发联调过程中,可以使用华为云应用接入调试工具调试订单推送。 若对接过程中有什么问题,可直接在华为云市场页面寻找客服求助。
上架SAAS应用请参考文档
3、结算和付款
有关结算和付款相关的规定遵循《华为云市场合作协议》中有关章节规定,本指南摘录重点如下:
基本原则:华为云有权就平台服务向合作伙伴收取费费用,包括但不限于入驻费、平台服务费;用户在云市场购买合作伙伴的商品,由用户先付款给华为云,再由华为云代用户支付给合作伙伴。合作伙伴认可,结算数据以华为云后台记录的交易数据为准。
计费和定价:合作伙伴对其在华为云市场展示的商品具有自主定义和定价的权利,但必须遵守华为云市场的整体售卖规则,华为云保留审核合作伙伴提交的商品是否允许上架的权利。
平台服务费收取比例:华为云将根据通用商品在云市场所产生订单交易金额的10%(双方就平台服务费比例另有约定的按其约定)收取平台服务费,并在向合作伙伴结算同时扣除相应的平台服务费。结算同时会扣除退款、代扣税费等费用(若有)。
税费:双方各自承担依据相关法律、法规应当缴纳的各项税费(不管境内外)。华为云在付款时,如根据当地法律规定需要代扣代缴相应的税款的,华为云在支付给合作伙伴之前将代扣代缴有关的税款。
结算周期:按月(自然月,下同)结算,结算上一自然月产生的商品销售金额。每月8日前(如果为非工作日,则自动顺延到最近的工作日处理)华为云将生成上月账单,华为云将在5个工作日内审核上月对账单并发送给合作伙伴,合作伙伴应在3个工作日之内给出确认及反馈,否则,视为认同该对账单数据。若合作伙伴对对账单数据有异议,可以发起核查账单申请,如经查实平台数据有误,差额部分将在下一结算周期内调帐处理。 每次结算的最低金额为【人民币 1000元】。如当月合作伙伴待结算金额未达到【人民币 1000元】,双方同意将该月结算金额计入下一结算周期直至累计达到【人民币 1000元】(当年内)再结算。如果当年累计合作伙伴待结算金额未达到【人民币 1000元】,由华为云主动发起对账,合作伙伴确认后进行支付。
付款:华为云向合作伙伴支付,不以合作伙伴是否向最终客户开具发票为前提。 华为云在合作伙伴确认对账单后,即依据已确认的对账单向合作伙伴支付,付款赎期为COD(见票即付)。
退款:当最终客户申请退款并经华为云确认符合退款标准时,华为云会发退款通知给合作伙伴和最终客户。在华为云向最终客户退款后,华为云将从服务商未结算金额里扣除退款金额后与服务商结算;如未结算金额不足以扣除,华为云有权从服务商缴纳的平台入驻保证金(如有)扣除退款金额后与服务商结算;如保证金(如有)仍不足以扣除,服务商应立即向华为云补付。服务商对因该等退款给华为云造成的损失,包括但不限于服务费及税费损失,承担全部赔偿责任。
4、备注
4.1 发布0元测试规格
在开发联调阶段,可以先在华为云市场上发布0元试用的规格并设置商品为隐藏状态,以便订阅测试,具体可以参考:修改商品规格或者 发布商品
4.2 租户隔离与绑定
在WeLink中,租户ID(tenantId)为租户的唯一标识,若应用服务商采用购买人的华为云账号初始化租户资源,则应将WeLink的租户ID(tenantId)与此租户做映射绑定,用户免登接口也会返回用户所属的租户ID,以此完成免登与租户隔离。
4.5 用户先在华为云市场购买应用服务商应用
如果用户先在华为云市场购买应用服务商的应用,然后再注册WeLink租户,为了能让用户在WeLink继续使用该应用,应用服务商可在华为云市场添加0元的WeLink专属规格(此规格定价可由应用服务商决定),引导用户在WeLink应用市场订阅该应用并在华为云市场选择专属规格购买,以此触发新购行为,应用服务商再将此华为云账号与WeLink的租户ID做绑定关联。