import { AbstractClient } from "../../../common/abstract_client"; import { ClientConfig } from "../../../common/interface"; import { DescribeLicenseResponse, VerifyLicenseRequest, IssueLicenseResponse, VerifyLicenseResponse, DescribeLicenseRequest, IssueLicenseRequest } from "./cloudapp_models"; /** * cloudapp client * @class */ export declare class Client extends AbstractClient { constructor(clientConfig: ClientConfig); /** * 从软件进程读取 LICENSE。 */ VerifyLicense(req?: VerifyLicenseRequest, cb?: (error: string, rep: VerifyLicenseResponse) => void): Promise; /** * 颁发 License */ IssueLicense(req: IssueLicenseRequest, cb?: (error: string, rep: IssueLicenseResponse) => void): Promise; /** * # DescribeLicense 客户根据请求的参数获取当前名下的许可证信息 ```json { "Filters": [ { "Name": "QueryType", "Values": ["IncludeAddition"] } ] } ``` 返回的内容结构如下: - Response.RequestId 为当前请求的唯一 id - Response.Token 为 license 信息 jwt 加密后的 token 串 ```json { "Response": { "RequestId": "cd15813b-adff-460e-b9fc-64579e96412d", "Token": "eyJhbGciOiJSUzI1NiIsInR5cCI6IkpXVCJ9.eyJleHAiOjkzMjQ4MTc5ODAsImlhdCI6MTc1NjE3Nzk4MCwiaXNzIjoibGljZW5zZS1zZXJ2aWNlIiwicGF5bG9hZCI6eyJNYWluTGljZW5zZSI6eyJMaWNlbnNlTW9kZSI6IlN1YnNjcmlwdGlvbiIsIkJpbGxpbmdNb2RlIjoxLCJDcmVhdGVTb3VyY2UiOiJTTjE3MTk0MDc1NDc0SEJETSIsIkF1dGhvcml6ZWRDbG91ZGFwcFJvbGVJZCI6IjcwMDAwMTgzMzgwNiIsIkF1dGhvcml6ZWRDbG91ZGFwcElkIjoiY2xvdWRhcHAtc2V3ZWM2cHMiLCJBdXRob3JpemVkVXNlclVpbiI6IjcwMDAwMDkxODE1NiIsIkxpZmVTcGFuVW5pdCI6IlkiLCJMaWZlU3BhbiI6MzY1LCJTb2Z0d2FyZVBhY2thZ2VJZCI6InBrZy0xZ2xlaG9tNyIsIlNvZnR3YXJlUGFja2FnZVZlcnNpb24iOiIwLjAuMSIsIkF1dGhvcml6ZWRTcGVjaWZpY2F0aW9uIjpbeyJQYXJhbUtleSI6InZlcnNpb24iLCJQYXJhbUtleU5hbWUiOiLniYjmnKwiLCJQYXJhbVZhbHVlIjoiYmFzaWMiLCJQYXJhbVZhbHVlTmFtZSI6IuWfuuehgOeJiCJ9LHsiUGFyYW1LZXkiOiJzaXplIiwiUGFyYW1LZXlOYW1lIjoi6KeE5qC8IiwiUGFyYW1WYWx1ZSI6IjEwMCIsIlBhcmFtVmFsdWVOYW1lIjoiMTAw5Lq66KeE5qihIn1dLCJQcm92aWRlcklkIjoxMDAwMDAwNzEsIlByb3ZpZGVyVWluIjoiNzAwMDAwOTE4MTU2IiwiSXNzdWVEYXRlIjoiMjAyNC0wNi0yNlQyMToxMjozMiswODowMCIsIkFjdGl2YXRpb25EYXRlIjoiMjAyNC0wNi0yNlQyMToxMjozNSswODowMCIsIkV4cGlyYXRpb25EYXRlIjoiMjM4OS0wNi0yNlQyMToxMjozNSswODowMCIsIkxpY2Vuc2VTdGF0dXMiOiJBY3RpdmUiLCJMaWNlbnNlSWQiOiI3MDAwMDA5MTgxNTY6cGtnLTFnbGVob203OmNsb3VkYXBwLXNld2VjNnBzOjgwMDciLCJMaWNlbnNlVHlwZSI6IlN0YW5kYXJkIiwiTGljZW5zZUxldmVsIjoiTWFzdGVyIn0sIkFkZGl0aW9uTGljZW5zZXMiOltdLCJUaW1lc3RhbXAiOiIyMDI1LTA4LTI2VDExOjEzOjAwKzA4OjAwIn19.G8Lx49xZBW0Rh3lRA15XzZ-PzLJj0bAxwnklx0pTjrHWxqxQdETAdGfU_QaGI_WZfYh2IVbFcwHnRLiRj6pQb4guCMpCbcsgL28BRS4g1wnaFhjcyEQLLtpDdz4_lPnOR2VHHvnfwhLZtccAgsRpeedPMBK1hwO9D3WKisQg2LcIr0V-QB8gmgIqqyqrLW6z37QpjgB4ZyJ5bIC1J-0-VmghskA04xnQRPdGJtlyBhjzVjeDxBq5JOqm3Am0Nqu1jyTd3MuYgSRwJqkDyjVBOGFGGy6mZCIYnxU_ET6-0ZEendqYwXDkpYG4rZZv5YmRCXiSESYz0zx4czwmFWkw-TjRSvUQBxBfsoDcAgyzpY7zBOTnbrr7DyoMvVnnHo7vb0if8_vkub6o0MuRnvdDYxNJtnTtlIScCadWAIvWUQ1DlUw2kzS-h9Ju2h7JhKw9cUeutu0X_6V4arZu9JlgWT9Ns7BtS9Y5JxgQOd36Aan39Rwohy_BrVwjOkbvDuTFLc_yNUlNdq5T2GNbDjABCmi73CGhCuWyPgtRs4ftpPugDRrTe4E95F224jdhf7I0He-nY4i1MoVjz8Zzm4v0vH67cMfcu0XVhs7ywvmu5tBSwm0uuhAXFFIbSrgEzuadxNhSi6qVCFNLnjiPYplK1M9mxG8Hc-fU-0A0TPepx8Q" } } ``` 验签过程: 对 Response.Token 内容使用公钥进行解码转换得到许可结构体信息,返回的内容结构如下,其中 paylod 中的信息为许可证信息结构: ```json { "exp": 9324758169, "iat": 1756118169, "iss": "license-service", "payload": { "MainLicense": { "LicenseMode": "Subscription", "BillingMode": 1, "CreateSource": "SN1719406931EJJ1E", "AuthorizedCloudappRoleId": "700001833621", "AuthorizedCloudappId": "cloudapp-992nqg9u", "AuthorizedUserUin": "700001833621", "LifeSpanUnit": "Y", "LifeSpan": 365, "SoftwarePackageId": "pkg-1glehom7", "SoftwarePackageVersion": "0.0.1", "AuthorizedSpecification": [ { "ParamKey": "version", "ParamKeyName": "版本", "ParamValue": "basic", "ParamValueName": "基础版" }, { "ParamKey": "size", "ParamKeyName": "规格", "ParamValue": "100", "ParamValueName": "100 人规模" } ], "ProviderId": 100000071, "ProviderUin": "700000918156", "IssueDate": "2024-06-26T21:02:16+08:00", "ActivationDate": "2024-06-26T21:02:19+08:00", "ExpirationDate": "2389-06-26T21:02:19+08:00", "LicenseStatus": "Active", "LicenseId": "700000918156:pkg-1glehom7:cloudapp-992nqg9u:3988", "LicenseType": "Standard", "LicenseLevel": "Master" }, "AdditionLicenses": [ { "LicenseMode": "Subscription", "BillingMode": 1, "CreateSource": "SN1719406931EJJ1E", "AuthorizedCloudappRoleId": "700001833621", "AuthorizedCloudappId": "cloudapp-992nqg9u", "AuthorizedUserUin": "700001833621", "LifeSpanUnit": "Y", "LifeSpan": 365, "SoftwarePackageId": "pkg-1glehom7", "SoftwarePackageVersion": "0.0.1", "AuthorizedSpecification": [ { "ParamKey": "version", "ParamKeyName": "版本", "ParamValue": "basic", "ParamValueName": "基础版" }, { "ParamKey": "size", "ParamKeyName": "规格", "ParamValue": "100", "ParamValueName": "100 人规模" } ], "ProviderId": 100000071, "ProviderUin": "700000918156", "IssueDate": "2024-06-26T21:02:16+08:00", "ActivationDate": "2024-06-26T21:02:19+08:00", "ExpirationDate": "2389-06-26T21:02:19+08:00", "LicenseStatus": "Active", "LicenseId": "700000918156:pkg-1glehom7:cloudapp-992nqg9u:3988", "LicenseType": "Standard", "LicenseLevel": "Master" } ], "Timestamp": "2025-08-25T18:36:09+08:00" } } ``` */ DescribeLicense(req: DescribeLicenseRequest, cb?: (error: string, rep: DescribeLicenseResponse) => void): Promise; }