
# 商品升级
#### 接口说明
- 用户对已购买的商品进行升级（升配\&扩容），升级订单付款成功后，云商店调用该接口请求商家升级用户购买的商品，商家接口需要执行商品升级，并返回通知云商店。
- 针对**升级场景** 接口调用失败的情况，云商店会持续调用3小时后停止调用，期间商家可在"[卖家中心\>生产接口消息](https://console.huaweicloud.com/marketplace/isv/#/console/produceMsg)"页面单击对应订单右侧操作栏的"重新启动"进行手动重试。若商家接口问题在3小时调用时间内解决，则在下一次调用接口响应成功，订单开通成功；若商家接口问题在3小时调用后仍未解决，系统则判断订单为失败，并自动进行订单退订。

- 商品升级规则设置参考 [商品升降配置（仅SaaS类）](https://support.huaweicloud.com/usermanual-marketplace/sp_topic_00002881.html)。
商品升级流程如下图所示：
![](https://support.huaweicloud.com/usermanual-marketplace/zh-cn_image_0000002489791124.png "点击放大")
#### 请求消息
请求参数说明请参见下表：
#### 请求方法：GET
| **参数**     | **是否必选** | **类型**  | **最大字符长度** | **说明**                                                                                                                                                                                                                                                                                                                                                       |
|:---|:---|:---|:---|:---|
| authToken  | M        | String  | 50         | 安全校验令牌。 取值请参见[authToken取值说明](https://support.huaweicloud.com/usermanual-marketplace/zh-cn_topic_0070649135.html)。                                                                                                                                                                                                  |
| 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=
```
#### 响应消息
响应参数说明请参见下表：
| **参数**     | **是否必选** | **类型** | **最大字符长度** | **说明**                                                                                                                                               |
|:---|:---|:---|:---|:---|
| resultCode | M        | String | 6          | 调用结果码。 具体请参见[调用结果码说明](https://support.huaweicloud.com/usermanual-marketplace/zh-cn_topic_0070649114.html)。 |
| resultMsg  | O        | String | 255        | 调用结果描述。                                                                                                                                              |
   
![](https://support.huaweicloud.com/usermanual-marketplace/public_sys-resources/note_3.0-zh-cn.png)
商家的服务器在处理接口请求时，需要做好幂等性处理。
云商店服务有可能重发请求，针对同一orderId，商家的服务器不应该重复做实例资源升级处理，返回成功响应即可。
响应消息示例：
```
{
    "resultCode":"000000",
    "resultMsg":"success."
}
```
