跳到主要内容

授权与激活

一、购买与发放 (在线全自动)

99% 的客户走在线主路径, 完全自动化, 销售/开发不参与:

  1. 访问 https://ethercat.darra.xyz/purchase
  2. 选择产品规格 (个人版 / 企业版-100台 / 企业版-500台), 输入邮箱与公司名 (企业版)
  3. 跳转支付页面, 输入卡号完成支付
  4. 支付成功后 30 秒内 邮箱收到激活码邮件 (发件人 jtl1207@darra.xyz)
  5. 邮件内含: 激活码 + SDK 下载链接 + 激活说明

激活码格式

类型长度字符集示例
个人版12 位大写字母 + 数字 (无 0/O/1/I/l 易混)K3F8H2P9R7M4
企业版16 位同上D5K8N3R7H4P9M2J6

激活码全局唯一, 一次发放永不重复。

二、激活前准备

  • 程序需要以 管理员权限 运行 (写入授权文件需要管理员权限)
  • 需要 网络连接 (首次激活与运行期定期复验)
  • 需要 激活码 (购买后已发到邮箱)
  • Windows 10 / 11, x64 平台
注意
  • 个人版: 激活码绑定 一台机器, 不可换机
  • 企业版: 配额内多机共用, 同设备只能绑一个企业激活码, 跨企业不可转让
  • 编译 SDK 不会触发激活, 但运行测试 / 调用激活接口会触发, 请隔离开发环境与生产环境
  • 已激活的设备不会重复激活

三、SDK 激活

C#

using Darra.EtherCAT;

var (success, message) = Authorization.Activate("K3F8H2P9R7M4");

if (success)
{
Console.WriteLine("激活成功");
}
else
{
Console.WriteLine($"激活失败: {message}");
}

Python

from ethercat import Authorization

success, message = Authorization.activate("K3F8H2P9R7M4")
print("激活成功" if success else f"激活失败: {message}")

Java

import com.darra.ethercat.Authorization;

ActivateResult r = Authorization.activate("K3F8H2P9R7M4");
System.out.println(r.success ? "激活成功" : "激活失败: " + r.message);

C / C++

#include "ethercat.h"

result_t r = ec_activate("K3F8H2P9R7M4");
if (r.code == OK) {
printf("激活成功\n");
} else {
printf("激活失败: %s\n", r.message);
}

四、运行时验证

激活成功后, SDK 在每次启动以及运行期定期向授权服务核销:

  • 校验激活码与本机指纹一致, 防止授权文件被复制到其他机器
  • 校验授权未过期 / 未被远程禁用
  • 校验系统时间未被回拨, 防止人为修改系统时间绕过有效期
  • 联网失败进入离线宽限期, 超时后停服

授权码远程禁用后, 客户端最迟在下一次核销周期内停服, 不需要客户端配合。

五、查询激活状态

C#

var status = Authorization.LicenseStatus;

switch (status)
{
case LicenseStatus.Verified:
Console.WriteLine("已激活");
break;
case LicenseStatus.Inactive:
Console.WriteLine("未激活, 请先调 Activate()");
break;
case LicenseStatus.Expired:
Console.WriteLine("已过期");
break;
case LicenseStatus.MachineMismatch:
Console.WriteLine("机器不匹配, 该激活码已绑其他机器");
break;
case LicenseStatus.TimeRollback:
Console.WriteLine("检测到系统时间回拨");
break;
case LicenseStatus.Disabled:
Console.WriteLine("激活码已被远程禁用");
break;
}

LicenseStatus 完整枚举

枚举含义处理
Verified已激活, 校验通过正常运行
Inactive未激活调 Activate()
Expired过期联系销售续费
MachineMismatch授权信息与当前机器不一致个人版换机需销售迁移; 企业版重新激活
TimeRollback系统时间被回拨修正系统时间后重启
Disabled远程禁用 (退款/违规)联系销售
NetworkError联网核销失败进入 2 小时离线宽限期, 之后停服
SignatureInvalid授权信息已损坏或被篡改重新激活

六、常见错误

1. 激活失败: 激活码已绑定其他机器

个人版每码一机。换机需:

  • 联系 support@darra.xyz 申请迁移 (旧机会被远程禁用)
  • 或直接购买新激活码

2. 激活失败: 版本不匹配

SDK 版本与官方发布版本不一致, 通常是非官方渠道下载或被修改。请重新从 https://ethercat.darra.xyz/downloads 下载安装。

3. License Verify Failed: time rollback detected

系统时间被向前回拨。修复:

  • 联网同步系统时间 (NTP)
  • 重启程序

4. License Verify Failed: machine_id mismatch

授权信息与当前机器不匹配。原因:

  • 授权文件被复制到其他机器 → 在新机器重新激活
  • 主板 / CPU / 网卡更换 → 联系销售迁移

5. 离线运行多长时间会停服?

激活后, 客户端每 3-5 小时联网核销一次。如果联网失败, 进入 2 小时离线宽限期。超过 2 小时仍无法联网 → 停服。

完全离线场景请咨询销售购买离线许可。

七、企业版

配额管理

企业版按 "总台数" 计费 (100 台 / 500 台档位)。每激活一台占用 1 个配额:

  • 配额剩余 ≤ 10 台时, 自动给联系人邮箱发预警邮件
  • 配额耗尽时, 后续激活直接拒绝, 同时给联系人邮箱发耗尽通知

配额扩容

联系销售 support@darra.xyz, 提供企业激活码即可在线扩容, 不影响已激活机器。

设备解绑 (释放配额)

在被解绑机器上调用 SDK 的解绑接口即可释放该机配额。如机器无法启动, 也可联系销售在后台手动解绑。

八、数据安全

  • 所有授权通信走 HTTPS, 客户端 ↔ 服务端双向校验
  • 激活码在服务端加密存储, 全局唯一
  • 客户邮箱 / 公司名 不流向第三方, 仅用于支付与邮件通知
  • 授权文件离开本机即失效, 无法移植到其他机器
  • 客户端核心二进制经 EV 代码签名

九、商业版离线发放 (5% 场景)

只在以下场景走线下:

  • 银行转账客户
  • 测试 / 演示
  • 客户激活码丢失补发
  • 退款撤销

请联系销售 sales@darra.xyz

联系支持