智慧硬件--获取SecretNo的时候老是说签名错误
请仔细说明或者出一个案例说明一下这些参数的具体意思和拼接。主要是签名这个参数(device_signature)的组装,我无论咋个组装,弄出来的签名始终是不正确的。
1、还是说我调用接口的时候必须要使《服务商后台》创建的应用“安装测试通过”?
2、device_signature参数生成的时候有个secret_no的常量,这个东西是直接传递给你“secret_no”还是说我可以传“123”这样子来区分我的场景?
3、seedSecretNo参数和secret_no参数,以及初始secretNo参数,这三个参数让我傻傻分不清楚。
一下是我对生成device_signature的文档的理解:
原文:device_signature = sha1(sort(sn、seedSecretNo、timestamp、nonce, “secret_no”))
例如:
sn = 111
seedSecretNo=222
timestamp = 333
nonce=444
secret_no=555
组合起来则是 device_signature = sha1(sort(111222333444555))
以上是我的理解,原谅我才进入这个智慧硬件开发行列,如有大神指点指点万分感激。谢谢
PS官方文档链接:https://work.weixin.qq.com/api/doc#90002/90150/91369
您好,get_secretno这个接口是为了给在服务商后台选中了使用同一初始secretno的设备使用的,如果没有在服务商后台勾选同一初始secretno,可以直接跳过这一步发起注册网络链接,需要调用时,传的secretno参数为常量参与设备签名计算
我也遇到相同的问题,这一段问题描述的比较模糊,对于勾选同一初始secretNo,一开始不理解这个secretNo值是什么,“seedSecreteNo”?签名一直是非法的,仔细看才知道登记SN时微信会生成一个secretNo初始值,长度为32。
我理解如下
原文:device_signature = sha1(sort(sn、seedSecretNo、timestamp、nonce, “secret_no”))
例如:
sn = 111
seedSecretNo=22222222222222222222222222222222(由微信后台生成,应该是每一类型号设备唯一)
timestamp = 333
nonce=444
secret_no=secret_no
组合起来则是 device_signature = sha1(11122222222222222222222222222222222333444secret_no) = 721798b80b870632bab293b102686d4400484ea1