Updated on 2024-03-05 GMT+08:00

Upgrade

Description

After a customer has successfully paid for an order for upgrading a purchased product, KooGallery calls this interface to request you to upgrade the product. The ISV server needs to upgrade the product and return a notification to KooGallery.

For details about the upgrade rules, see Upgrade and Billing Rules.

The following figure shows the process of upgrading a product.

Request Message

The following table describes the request parameters.

Request method: GET

Parameter

Mandatory

Type

Maximum Length of Characters

Description

authToken

Yes

String

50

Security verification token.

For details about the value, see authToken Value.

activity

Yes

String

20

Interface request ID, which is used to distinguish interface request scenarios.

For upgrades, the value is upgrade.

instanceId

Yes

String

64

Instance ID.

NOTE:

The upgrade does not change instance ID.

testFlag

No

String

2

Whether a request is submitted for debugging.

  • 1: debugging request.
  • 0: non-debugging request.

The default value is 0.

orderId

Yes

String

64

Upgrade order ID.

NOTE:

A new order will be generated during the upgrade and has an ID different from that of a subscription order. Use instanceId to identify the resources.

skuCode

Yes

String

64

Product specification ID after the upgrade.

NOTE:

A specification with custom attributes will change if the customer selects other attribute values during the upgrade. As a result, the skuCode changes.

If the customer only expands the capacity by linearly increasing the attribute value, for example, from 10 users to 20 users, the skuCode does not change.

productId

Yes

String

64

Product ID after the upgrade.

The value of productId varies according to the skuCode.

If the customer only expands the capacity, the value of productId does not change.

timeStamp

Yes

String

20

Time (UTC time) when a request is initiated.

Format: yyyyMMddHHmmssSSS

amount

No

Integer

4

Product attribute of the quantity type. This parameter is optional.

Attribute name: quantity (customizable)

Unit: none

NOTE:

When customers subscribe to SaaS products (billing mode: yearly/monthly or one-time) with specifications that contain the quantity type attribute, they specify or modify the number or usage times.

Example: 30 users

diskSize

No

Integer

4

Product attribute of the quantity type. This parameter is optional.

Attribute name: disk size (customizable)

Unit: GB

NOTE:

When customers subscribe to SaaS products (billing mode: yearly/monthly or one-time) with specifications that contain the disk size attribute, they specify or modify the disk size.

Example: 100 GB

bandWidth

No

Integer

4

Product attribute of the quantity type. This parameter is optional.

Attribute name: bandwidth (customizable)

Unit: Mbit/s

NOTE:

When customers subscribe to SaaS products (billing mode: yearly/monthly or one-time) with specifications that contain the bandwidth attribute, they specify or modify the amount of bandwidth.

Example: 20 Mbit/s

Example request:

http://isvserver.com/produceAPI?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=

Response Message

The following table describes the response parameters.

Parameter

Mandatory

Type

Maximum Length of Characters

Description

resultCode

Yes

String

6

Invocation result code.

For details, see Invocation Result Codes.

resultMsg

No

String

255

Invocation result description.

When processing an interface request, the ISV server must ensure idempotence.

KooGallery may resend requests for a single order. When receiving a duplicate order with the same orderId value, the ISV server needs to return a success response, rather than upgrade the instance again.

Example response:

{
    "resultCode":"000000",
    "resultMsg":"success."
}