# 名词解释

接入小微SDK前,首先需要在小微的官方平台上注册,并获得产品标识ProductId(PID)和小微业务标识appuin。PID唯一标识了您的产品,假如您有两款不同的产品,建议申请两个PID,OTA以及其它定制服务以PID为粒度。

小微后台采用签名认证方式来确保您的设备的合法性。对于每一个PID,您需要使用我们提供的shell脚本或c++算法源代码自己生成一组秘钥对,并将公钥publickKey提供给我们;对应的私钥privateKey您应妥善保存,后续用于对您的设备进行签名,签名算法为ecdsa,具体信息可以参考对应的readme。我们获得公钥后,会为您分配一个秘钥版本KeyVersion(未来您可以更新秘钥并替换版本)。在设备初始化SDK时,需要传入以下5个参数:

# SN

设备Serial Number,字符串,应保证每台设备拥有唯一的SN,SN中不应包含特殊字符,长度介于8到72之间。例如MAC地址就是一个较好的SN。对于每个PID下的每个SN,小微后台都会为其生成一个全局唯一的ID(DIN, device identity number),设备登录成功后可以查询到,后续问题反馈需要提供。

# Licence

利用私钥对SN的签名结果(Licence = ecdsa(SN + pid, privateKey)),显然这也是设备唯一的。Licence错误的设备将登录失败。

# KeyVersion

签名使用的秘钥版本,与上传到小微配置平台的版本对应,若您的Key不慎丢失,可以重新上传并生成新版本,此时旧版本的key和对应的version仍然默认合法,若需要让旧版本的key失效,请联系我们处理。

# PID

一个系列的产品PID均相同,但是若您有多个系列的产品,务必要注册多个不同的PID,因为产品审核、功能定制、OTA等功能,都是以PID为粒度。

# Appuin

与PID一一对应,用于微信侧确认小微身份,在注册PID时获得。

# 特别说明

  1. 一般的,privateKey应保存云端或产线中,在设备生产时生成上述5个参数,并烧录在设备中。建议不要将privateKey和签名算法保存在设备中,这样安全无法得到保证。
  2. 在测试阶段,我们可以提供少量的测试账号供您直接使用。
  3. 现阶段,为了安全起见,您需要将欲发布产品的SN提供给我们预注册,只有通过预注册的产品才能登录成功。具体步骤请参考接入流程