1. 开启客户自助换机流程
将许可证关联客户邮箱,并按授权策略允许客户自助释放设备。在应用授权界面或支持说明中提供客户门户入口。
客户用一次性邮箱登录链接进入门户。打开登录链接不会解绑设备,必须选择旧设备并明确确认换机。
2. 在客户门户释放旧设备
- 打开客户门户,使用许可证关联邮箱登录。
- 选择旧设备,确认“解绑并换机”。
- 复制门户展示的一次性激活码,有效期最长 15 分钟,也可以选择通过邮件发送。
- 在新电脑把临时码粘贴到原有授权码输入框。
3. 沿用现有 SDK 激活接口
无需单独实现换机 HTTP 客户端。九种 SDK 的正常启动方法都接受 lv_tmp_ 临时码。下面 Go 片段放在应用返回 error 的启动或业务函数中。
// Use this for the customer's ordinary key or lv_tmp_ transfer code.
// Leave activationInput empty on later starts to restore the saved credential.
client, err := licentivo.OpenWithLicense(ctx, "product.json", activationInput,
func(err error) { log.Printf("License refresh: %v", err) })
if err != nil {
return err
}
defer client.Close()
return client.RunFeature("export", exportReport)4. 保留原来的授权权益
成功激活后保存本机绑定凭据,临时码随后过期不会使这台已激活设备失效。以后启动可傳入空授权码恢复凭据。
客户原首次激活时间、到期时间、维护权益、功能、已用次数和归属保持不变。换机不是重新购买,也不会重置使用次数。
兑换失败不消耗临时码。请求中断后保留 SDK 原状态重试以恢复结果。未使用但过期的临时码可以从原已释放设备记录重发;已使用的码不能从该旧记录再次发放。
5. 换到完全离线的新设备
策略允许设备绑定离线激活时,新设备可以用临时码生成离线申请,在临时码过期前带到门户取得批准响应,再回到该新设备导入。
旧设备要在下一次联网检查时才会得知远程解绑。仍有效的离线缓存可能继续按签名范围使用,直到联网或过期。永久离线缓存无法立即获知吊销,授权策略和客户说明应体现这个限制。
6. 验证与问题排查
- 确认门户需要许可证关联邮箱及明确释放确认。
- 在另一台测试电脑用临时码激活,随后用空授权码重启。
- 确认原到期时间和功能已用次数没有改变。
- 临时码过期时,从未使用的释放记录重新发放;已使用则查看新设备,不要重复使用旧码。
- 区分普通设备绑定 Close 和客户主动换机 Deactivate,普通退出不应释放客户注册。