Управление серийными номерами на ПО происходит через заказы. 

Жизненный цикл заказа (статусы):

  • Draft (0) Черновик. Присваивается в момент создания заказа. В этом статусе заказ разрешено редактировать.
  • Submitted(1) Отправлен. Присваивается в момент подтверждения заказа. В этом статусе заказ редактировать запрещено.
  • Revoked (2) Аннулирован. 
  • Archived (2) В архиве. 

Типы заказов:

  • Sale(0) Новый заказ. В момент подтверждения заказа происходит генерация серийных номеров.
  • Update(1) Заказ на обновление лицензионных условий для серийного номера.

Флаг типа лицензии:

  • Программная (по умолчанию; isHardwareLicense = false);
  • Аппаратная (isHardwareLicense = true).

Запросы для работы с заказами:

Получение списка заказов

Авторизация требуется. Входных параметров нет. 

GET /v1.0/orders

Для запроса доступна сортировка и пагинация. Доступные поля сортировки: number, submitdate. Значения параметров сортировки и пагинации по умолчанию: sortby=number&direction=asc&offset=0&limit=100.

Для запроса доступна фильтрацию по статусу заказа: Draft(0), Submit(1), Revoked(2). По умолчанию в запросе выдаются заказы с любыми статусами. Если необходимо выбрать заказы с определенными статусами - перечислите их через запятую в параметре запроса "status". Например, указав status=0,1 получите только заказы в статусе Draft(0) и Submit(1).

Возвращает массив orders:

"orders": [
{
  "_id": 10049,
  "activationlimit": 2,
  "date": 1528911062,
  "submitdate":  1528915062,
  "number": 1,
  "activationbirthdate":1528911062,
  "activationdeathdate":15210911062,
  "canoverwritecontainer": false,
  "isdemo": false,
  "description": "1234234234",
  "quantity": 2,
  "status": 1,
  "type": 0,
  "ishardwarelicense": false,
  "crmid": "",
  "refid": ""
},{

  "_id": 10048,
  "activationlimit": 3,
  "customer": {
      "_id": 8,
       "description": "test",
       "email": "cust@mail.ru",
       "name": "MyCostomer",
      "phone": "123-12-12",
      "status": 0,
      "crmid": "",
      "refid": ""

 },
  "date": 1528910935,
  "submitdate":  1528915062,
  "number: 2,
  "description": "test",
  "quantity": 2,
  "status": 0,
  "type": 0,
  "ishardwarelicense": false,
  "crmid": "",
  "refid": ""
},{

  "_id": 10045,
  "activationlimit": 1,
  "date": 1528905572,
  "submitdate":  1528915062,
  "number": 3,
  "activationbirthdate":1528911062,

  "activationdeathdate":15210911062,
  "canoverwritecontainer": false,
  "isdemo": false,
  "customerrequired": true,
  "description": "TEST_UPDATE2",
  "quantity": 1,
  "status": 1,
  "type": 1,
  "ishardwarelicense": false,
  "crmid": "",
  "refid": ""
}];

Создание нового заказа (тип Sale)

Авторизация требуется.  Входные параметры RAW JSON:

{
   "customerId" : 8,

  "orderActivationBirthDate":1528911062,
  "orderActivationDeathDate":15210911062,
  "orderCanOverwriteContainer": false,

  "orderIsDemo": false,
  "customerRequired": true,
  "orderQuantity" : 10,
  "orderActivationLimit" : 10,
  "orderDescription" : "Created by Postmam",
  "orderStatus" : 0,
  "orderType" : 0,
  "isHardwareLicense": false, //по умолчанию равно false
  "crmId": "",
  "refId": ""
}

'customerId' идентификатор покупателя БД (может отсутствовать, тогда заказ не будет привязан к покупателю)

'orderQuantity' количество серийных номеров или аппаратных ключей в заказе (задаётся пользователем).

'orderActivationLimit' предел активаций для серийного номера в заказе (задаётся пользователем).

'orderDescription'  текстового описание назначения заказа(задаётся пользователем).

'orderStatus' текущий жизненный статус заказа.

'orderType' тип заказа (должно быть значение Sale).

'orderCanOverwriteContainer'   флаг, определяющий возможность перезаписать предыдущие лицензионные условия значениями из текущего заказа.

'orderIsDemo' признак демо-заказа.

'customerrequired' - флаг могут ли серийные номера активироваться без информации о клиенте.

'orderActivationBirthDate' дата начала периода доступности заказа для активации лицензии.

'orderActivationDeathDate' дата окончания периода доступности заказа для активации лицензии.

'isHardwareLicense' - тип лицензии аппаратная или программная (по умолчанию - программная - false).


POST /v1.0/orders

Возвращает элемент order:

{
  "order": {
    "_id": 10052,
    "number": 1,
    "activationlimit": 10,

    "activationbirthdate":1528911062,
    "activationdeathdate":15210911062,
    "canoverwritecontainer": false,

    "isdemo": false,
    "customerrequired": true,

    "customer": {
       "_id": 8,
       "description": "test",
       "email": "cust@mail.ru",
       "name": "MyCostomer",
       "phone": "123-12-12",
       "status": 0,
       "crmid": "",
       "refid": ""
    },
    "date": 0,
    "submitdate":  1528915062,
    "description": "Created by Postmam",
    "quantity": 10,
    "status": 0,
    "type": 0,
    "ishardwarelicense": false,
    "crmid": "",
    "refid": ""
  }
}

Создание нового заказа (тип Update)

Авторизация требуется.  Входные параметры RAW JSON:

{
  "orderActivationBirthDate":1528911062,
  "orderActivationDeathDate":15210911062,
  "orderCanOverwriteContainer": false,
  "serialNumber" : "4uzFSk-ccyijp-SCDd4A-FMfezU-u7Rk6y",   // опциональное поле. необходимо только если создается заказ на обновление серийного номера
  "isHardwareLicense": true,                               // опциональное поле. необходимо только если создается заказ на обновление аппаратного ключа (должно быть выставлено в true)
  "dongleId": 343242234,                                 // опциональное поле. необходимо только если создается заказ на обновление аппаратного ключа
  "orderDescription" : "Created by Postmam",
  "orderType" : 1,
  "crmId": "",
  "refId": ""
}

'serialNumber' серийных номер для которого необходимо выполнить обновление лицензионных условий (задаётся пользователем). Опциональное поле. необходимо только если создается заказ на обновление серийного номера.

'isHardwareLicense' определяет тип лицензии. опциональное поле (по умолчанию false). Должно быть true для заказа на обновление аппаратного ключа.
'dongleId'  id аппаратного ключа. Опциональное поле. Необходимо только, если создается заказ на обновление аппаратного ключа

'orderDescription'  текстового описание назначения заказа(задаётся пользователем).

'orderType' тип заказа (должно быть значение Update).


POST /v1.0/orders

Возвращает элемент order:

{
  "order": {
    "_id": 10054,
    "activationlimit": 1,
    "date": 0,
    "submitdate":  1528915062,
    "number": 1,

    "activationbirthdate":1528911062,
    "activationdeathdate":15210911062,
    "canoverwritecontainer": false,

    "isdemo": false,
    "customerrequired": true,

    "description": "Created by Postmam",
    "quantity": 1,
    "status": 0,
    "type": 1,
    "ishardwarelicense": false,
    "crmid": "",
    "refid": ""
}

Изменение заказа (тип Sale)

Авторизация требуется.  Входные параметры RAW JSON:

{
  "orderActivationBirthDate":1528911062,
  "orderActivationDeathDate":15210911062,
  "orderCanOverwriteContainer": false,
  "customeRrequired": true,
  "customerId": 123213
  "orderQuantity" : 20,
  "orderActivationLimit" : 20,
  "orderDescription" : "Created by Postmam",
  "orderStatus" : 0,
  "orderIsDemo": false,
  "isHardwareLicense": false,
  "crmId": "",
  "refId": ""
}

PUT /v1.0/orders/{id}

Возвращает элемент order:

{
   "order": {
   "_id": 10051,
   "activationlimit": 20,
   "date": 0, 
   "submitdate":  1528915062,
   "number": 1,
   "activationbirthdate":1528911062,
   "activationdeathdate":15210911062,
   "canoverwritecontainer": false,
   "isdemo": false,
   "customerrequired": true,
   "description": "Created by Postmam",
   "quantity": 20,
   "status": 0,
   "type": 0,
   "ishardwarelicense": false,
   "crmid": "",
   "refid": ""
}
}

Изменение заказа (тип Update)

Авторизация требуется.  Входные параметры RAW JSON:

{
  "orderActivationBirthDate":1528911062,
  "orderActivationDeathDate":15210911062,
  "orderCanOverwriteContainer": false,
  "orderDescription" : "Created by Postmam",
  "orderStatus" : 0,
  "crmId": "",
  "refId": ""
}

PUT /v1.0/orders/{id}

Возвращает элемент order:

{
  "order": {
  "_id": 10054,
  "activationlimit": 1,
  "date": 0, 
  "submitdate":  1528915062,
  "number": 1,
  "activationbirthdate":1528911062,
  "activationdeathdate":15210911062,
  "canoverwritecontainer": false,
  "isdemo": false,
  "customerrequired": true,
  "description": "Created by Postman",
  "quantity": 1,
  "status": 0,
  "type": 1,
  "ishardwarelicense": false,
  "crmid": "",
  "refid": ""
}
}


При подтверждении заказа на аппаратные ключи могут получены следующие дополнительные ошибки:

  • ключ не поддерживает ограниченные по времени компонент (код ошибки 10172);
  • ключ не поддерживает сетевой компонент (код ошибки 10173);
  • общее количество сетевых компонентов превышает сетевой ресурс ключа (код ошибки 10174).

При получении ошибок 10172 и 10173 в ответе на запрос помимо описания ошибки также будут следующе поля: ID аппаратного ключа, номер компонента, номер продукта, номер заказа. Например:

{
   "conflictedDongleId":999392418,
   "conflictedFeatureNumber":16,
   "conflictedOrderNumber":94,
   "conflictedProductNumber":12350,
   "status":{"code":10172,"description":"Dongle does not support time limited features","message":"Bad Request","status":400}
}

При получении ошибки 10174 в ответе на запрос помимо описания ошибки будет только значение ID аппаратного ключа. 

Удаление заказа

Авторизация требуется.  Входных параметров нет.

DELETE /v1.0/orders/{id}

Получение заказа по идентификатору

Авторизация требуется.  Входных параметров нет.

GET /v1.0/orders/{id}

Возвращает элемент order.

Пример ответа (для заказа на аппаратные ключи):

{
    "order": {
        "_id": 471,
        "activationbirthdate": 1571130180,
        "activationdeathdate": 0,
        "activationlimit": 0,
        "archivationdate": 0,
        "archived": false,
        "canoverwritecontainer": false,
        "crmid": "",
        "customer": {
            "_id": 10,
            "archivationdate": 0,
            "archived": false,
            "companyname": "baskin&robings",
            "crmid": "",
            "description": "",
            "email": "dfgsfg@dfg-df.ru",
            "lastname": "cream",
            "name": "ice",
            "phone": "+349534534534",
            "refid": "",
            "status": 0
        },
        "customerrequired": false,
        "date": 1571130686,
        "description": "",
        "dongles": [
            {
                "dongleid": 991846791,
                "lastburn": {
                    "_id": 113,
                    "actiondate": 1571403137,
                    "actionresult": 0,
                    "activationsconsumed": 0,
                    "activationscountcurrent": 41
                },
                "model": 2,
                "netresource": 0,
                "publiccode": 1368487351,
                "typeflags": 442
            }
        ],
        "isdemo": true,
        "ishardwarelicense": true,
        "number": 70,
        "products": [
            {
                "_id": 126,
                "accesscode_id": -1,
                "archivationdate": 0,
                "archived": false,
                "binding": {
                    "CAN_REPLACE_CPU": false,
                    "CAN_REPLACE_DVD": false,
                    "CAN_REPLACE_HDD": false,
                    "CAN_REPLACE_MAC": false,
                    "CAN_REPLACE_MOTHERBOARD": false,
                    "CAN_REPLACE_OS": false,
                    "CPU": true,
                    "DVD": false,
                    "HDD": true,
                    "MAC": true,
                    "MOTHERBOARD": true,
                    "OS": false
                },
                "binding_maxhardwarechangenumber": 0,
                "binding_scheme": 0,
                "crmid": "",
                "description": "test_firmware_product778",
                "flags": 0,
                "hardwarebindingscheme": 0,
                "licensetype": 0,
                "modification": 0,
                "name": "test_firmware_product778",
                "productnumber": 778,
                "refid": "",
                "status": 1,
				"memoryitems": []
            }
        ],
        "quantity": 1,
        "refid": "",
        "status": 1,
        "submitdate": 1571130723,
        "type": 1
    }
}

Добавление продукта к заказу

Авторизация требуется.  Входных параметров нет.

POST /v1.0/orders/{id}/products/{pid}

Удаление продукта из заказа

Авторизация требуется.  Входных параметров нет.

DELETE /v1.0/orders/{id}/products/{pid}

Добавление фичи к продукту в заказе

Авторизация требуется.  Входных параметров нет.

POST /v1.0/orders/{id}/products/{pid}/features{fid}

Возвращает элемент 'licence':

{
  "license": {
  "consumptionmode": 0,
  "flags": 0,
  "netlicensescount": 12,
  "rentbegindate": 0,
  "rentdayscount": 55,
  "rentenddate": 0,
  "runcounter": 0,
  "licensingmodel": 4,
  "isremote": true
}
}

Удаление фичи из продукта в заказе

Авторизация требуется.  Входных параметров нет.

DELETE /v1.0/orders/{id}/products/{pid}/features{fid}

Получение всех фич для продукта в заказе

Авторизация требуется.  Входных параметров нет.

GET /v1.0/orders/{id}/products/{pid}/features

Возвращает массив 'features':


{
    "features": [
        {
            "_id": 14,
            "archivationdate": 0,
            "archived": false,
            "crmid": "",
            "defaultLicense": {
                "canexclude": false,
                "canmodify": false,
                "consumptionmode": 0,
                "flags": 4,
                "isremote": false,
                "licensingmodel": 2,
                "netlicensescount": 0,
                "rentbegindate": 1565273129,
                "rentdayscount": 0,
                "rentenddate": 1596895529,
                "runcounter": 0
            },
            "description": "f4",
            "featurenumber": 4,
			"pubkey":"F9 E5 EC 6B 52 54 BC 80 45 7D 49 BB F0 61 F9 F2 EC AA 9F 63 79 32 0A B6 77 44 8A E7 16 AC C1 82 8A 14 73 1E 56 B6 EF 53"
            "license": {
                "consumptionmode": 0,
                "flags": 4,
                "isExcluded": 0,
                "isremote": false,
                "licensingmodel": 2,
                "netlicensescount": 0,
                "rentbegindate": 1565273129,
                "rentdayscount": 0,
                "rentenddate": 1596895529,
                "runcounter": 0
            },
            "name": "f4",
            "refid": ""
        },
        {
            "_id": 31,
            "archivationdate": 0,
            "archived": false,
            "crmid": "",
            "defaultLicense": {
                "canexclude": true,
                "canmodify": true,
                "consumptionmode": 0,
                "flags": 4,
                "isremote": true,
                "licensingmodel": 1,
                "netlicensescount": 11,
                "rentbegindate": 0,
                "rentdayscount": 0,
                "rentenddate": 0,
                "runcounter": 0
            },
            "description": "Created by postMan",
            "featurenumber": 8,
            "pubkey":"F9 E5 EC 6B 52 54 BC 80 45 7D 49 BB F0 61 F9 F2 EC AA 9F 63 79 32 0A B6 77 44 8A E7 16 AC C1 82 8A 14 73 1E 56 B6 EF 53"
            "license": {
                "consumptionmode": 0,
                "flags": 4,
                "isExcluded": 1,
                "isremote": true,
                "licensingmodel": 1,
                "netlicensescount": 11,
                "rentbegindate": 0,
                "rentdayscount": 0,
                "rentenddate": 0,
                "runcounter": 0
            },
            "name": ",PostMan",
            "refid": ""
        }
    ]
}

Изменение лицензионных условий для фичи продукта в заказе

Авторизация требуется.  Входные параметры RAW JSON (набор полей зависит от типа лицензирования):

{
  "licensingmodel": 4,
  "licenseRentBeginDate" : 0,
  "licenseRentEndDate" : 0,
  "licenseRentDaysCount" : 55,
  "licenseNetLicenseCount" : 12,
  "consumptionmode" : 0,
  "flags" : 0,
  "licenseRuncounter": 0,
  "isRemote": true
}

PUT /v1.0/orders/{id}/products/{pid}/features/{fid}

Возвращает элемент 'licence':

{
  "license": {
  "consumptionmode": 0,
  "flags": 0,
  "netlicensescount": 12,
  "rentbegindate": 0,
  "rentdayscount": 55,
  "rentenddate": 0,
  "runcounter": 0,
  "licensingmodel": 4,
  "isremote": true
}
}

Изменение ячейки памяти в продукте заказа

Авторизация требуется.  Входные параметры RAW JSON:

{
	"data": "AdaFFFlgYWJj=="
}

PUT /v1.0/orders/{id}/products/{pid}/memoryitems/{mid}/params/{paramid}

Возвращает элемент param:

{
    "param": {
        "_id": 3,
        "data": "AdaFFFlgYWJj",
        "description": "param1",
        "editallowed": true,
        "name": "param1",
        "offset": 20,
        "size": 10
    }
}

Получение лицензий серийных номеров и аппаратных ключей

Авторизация требуется.  Входные параметры RAW JSON:

{
    "keySearchValue":"wubSTT", // опциональный параметр
    "clientId":  10,           // опциональный параметр
    "productId": "20490",      // опциональный параметр
    "orderNumber": "21626"         // опциональный параметр
}

POST /v1.0/search/license

Возвращает объект, содержащий массивы serialnumbers и dongles:

{
    "dongles": [],
    "serialnumbers": [
        {
            "_id": 20910,
            "activationcount": 0,
            "activationlimit": 3,
            "customer": {
                "_id": 10,
                "archivationdate": 0,
                "archived": false,
                "companyname": "baskin&robings",
                "crmid": "",
                "description": "",
                "email": "dfgsfg@dfg-df.ru",
                "lastname": "cream",
                "name": "ice",
                "phone": "+349534534534",
                "refid": "",
                "status": 0
            },
            "dongleid": -1359759134,
            "licensecontainerversion": 0,
            "memoryitems": [
                {
                    "_id": 10187,
                    "accesstype": 0,
                    "action": 0,
                    "aliasid": 500,
                    "archivationdate": 0,
                    "archived": false,
                    "crmid": "",
                    "description": "",
                    "draft": false,
                    "maxaccesserrors": 5,
                    "name": "item500",
                    "params": [
                        {
                            "_id": 10235,
                            "data": "AAHiQA==",
                            "datatype": 1,
                            "description": "",
                            "editallowed": true,
                            "name": "123456",
                            "offset": 0,
                            "size": 4
                        }
                    ],
                    "readpassword": 0,
                    "refid": "",
                    "size": 0,
                    "totalparams_size": 4,
                    "writepassword": 0
                }
            ],
            "products": [
                {
                    "_id": 20490,
                    "accesscode_id": 18,
                    "archivationdate": 0,
                    "archived": false,
                    "binding": {
                        "CAN_REPLACE_CPU": false,
                        "CAN_REPLACE_DVD": false,
                        "CAN_REPLACE_HDD": false,
                        "CAN_REPLACE_MAC": false,
                        "CAN_REPLACE_MOTHERBOARD": false,
                        "CAN_REPLACE_OS": false,
                        "CPU": true,
                        "DVD": false,
                        "HDD": true,
                        "MAC": true,
                        "MOTHERBOARD": true,
                        "OS": false
                    },
                    "binding_maxhardwarechangenumber": 0,
                    "binding_scheme": 0,
                    "crmid": "",
                    "description": "",
                    "featuresWithLicenses": [
                        {
                            "_id": 136,
                            "archivationdate": 0,
                            "archived": false,
                            "crmid": "",
                            "defaultLicense": {
                                "canexclude": true,
                                "canmodify": true,
                                "consumptionmode": 0,
                                "flags": 0,
                                "isremote": false,
                                "licensingmodel": 1,
                                "netlicensescount": 0,
                                "rentbegindate": 0,
                                "rentdayscount": 0,
                                "rentenddate": 0,
                                "runcounter": 0
                            },
                            "description": "f12274",
                            "featurenumber": 12274,
                            "license": {
                                "consumptionmode": 0,
                                "flags": 0,
                                "isExcluded": 0,
                                "isremote": false,
                                "licensingmodel": 1,
                                "netlicensescount": 0,
                                "rentbegindate": 0,
                                "rentdayscount": 0,
                                "rentenddate": 0,
                                "runcounter": 0
                            },
                            "name": "f12274",
                            "pubkey": "61 78 04 38 6F CC 61 9A E3 38 C6 11 12 8A 95 7B B0 A6 1B 41 E4 8D 17 B6 6F AE 1F 03 91 9A 68 88 B7 9A 8E 55 34 57 C4 58",
                            "refid": ""
                        }
                    ],
                    "flags": 0,
                    "hardwarebindingscheme": 0,
                    "licensetype": 0,
                    "memoryitems": [
                        {
                            "_id": 10187,
                            "accesstype": 0,
                            "action": 0,
                            "aliasid": 500,
                            "archivationdate": 0,
                            "archived": false,
                            "crmid": "",
                            "description": "",
                            "draft": false,
                            "maxaccesserrors": 5,
                            "name": "item500",
                            "params": [
                                {
                                    "_id": 10235,
                                    "data": "AAHiQA==",
                                    "datatype": 1,
                                    "description": "",
                                    "editallowed": true,
                                    "name": "123456",
                                    "offset": 0,
                                    "size": 4
                                }
                            ],
                            "readpassword": 0,
                            "refid": "",
                            "size": 0,
                            "totalparams_size": 4,
                            "writepassword": 0
                        }
                    ],
                    "modification": 0,
                    "name": "mem_pr",
                    "productnumber": 45369,
                    "refid": "",
                    "status": 1
                }
            ],
            "serialstring": "VJ7jgF-wubSTT-yt1TMj-utpB2R-BEuNb8",
            "status": 0
        }
    ]
}
  • No labels