(安卓)WMPF 版本号:2.2
VoIP 插件版本号:latest (默认最新版本)
小程序 appId:wxc2617d39082b3ac9
通话的信息:
businessType=1
设备sn:JY240218000180
用户openid:oYhQP44Q601NWfqOSDIPuHl5Nd10
问题描述:
用户在手机端授权了设备组(groupId:g_kXtUvjYzA50KyIxWYWXYQ),但设备端发起通话失败,返回errCode=9。
设备端使用wmpfVoip.getIotBindContactList方法查询用户授权状态,状态返回status = 1 已授权,但设备端发起通话失败,返回errCode=9。
手机端使用wx.getDeviceVoIPList查询授权状态,返回了设备组授权成功。
在后台使用https://api.weixin.qq.com/wxa/business/group/getinfo 接口进行查询
返回:{"errcode":0,"errmsg":"ok","group_name":"知会云视频通话设备组01","device_list":[{"model_id":"OXBfkJimxdNHfq372Au3eQ","sn":"JY240218000180"}],"model_id":"OXBfkJimxdNHfq372Au3eQ","model_type":"控制面板","max_device_count":50}
能看到设备SN 在设备组里。
设备上和手机上都使用的是开发版小程序进行测试。
问题图片:
请仔细检查 initByCaller 的参数
测试代码里面的参数都是问题里面的验证过没有问题的参数
接口:https://api.weixin.qq.com/wxa/business/group/getinfo
请求参数和结果在图片里,从返回的结果能看到我设备组的model_id和设备的model_id一致,设备也加进去了
接口返回的设备SN是我上面调用initByCaller设备的SN
组的id(group_id) 用户也成功授权了
感觉流程都是对的,但调用initByCaller 还是返回errCode=9
问题找到了,是注册设备(registerMiniProgramDevice )时使用的SN 和initByCaller的caller.id 中使用的SN不一致导致的,注册设备后SN会被缓存,此时caller.id传的SN会被替换掉。
所以说在initByCaller中,businessType=1时,设备呼叫手机微信,caller.id 传的参数其实没有作用,他会去取注册设备(registerMiniProgramDevice )时使用的SN。
之前遇到过
是不是客户端小程序缓存 或者小程序删除过啊
接口查询也是已授权
需要客户端微信小程序重新授权之后才能正常通话