授权与激活
一、购买与发放 (在线全自动)
99% 的客户走在线主路径, 完全自动化, 销售/开发不参与:
- 访问 https://ethercat.darra.xyz/purchase
- 选择产品规格 (个人版 / 企业版-100台 / 企业版-500台), 输入邮箱与公司名 (企业版)
- 跳转支付页面, 输入卡号完成支付
- 支付成功后 30 秒内 邮箱收到激活码邮件 (发件人 jtl1207@darra.xyz)
- 邮件内含: 激活码 + 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。
联系支持
- 技术支持: support@darra.xyz
- 商务咨询: sales@darra.xyz
- 文档反馈: 在文档站每页底部留言