收藏
回答

wx.startSoterAuthentication安卓手机真机调试返回错误码-1

框架类型 问题类型 API/组件名称 终端类型 微信版本 基础库版本
小程序 Bug startSoterAuthentication 微信安卓客户端 7.0.17 1.2.15

        const onOff = 0; // 0 指纹登录,1 人脸识别登录

            let params = {

                challenge: JSON.stringify(uc) //挑战因子

            };

            let temp = {}; // 缓存数据

            switch (onOff) {

                case 0:

                    temp = {

                        name: '指纹登录'

                    };

                    params.requestAuthModes = ['fingerPrint'];

                    params.authContent = temp.name;

                    params.success = res => {

                        logger.info('>>>>>>>>>>>>>>>>' + temp.name + ' success: ', res);

                        this.logFingerPrint += '>>>>>>>>>>>>>>>>' + temp.name + ' success: ' + JSON.stringify(res);

                        this.$apply();

                    };

                    params.fail = err => {

                        logger.info('>>>>>>>>>>>>>>>>' + temp.name + ' fail: ', err); //安卓调试结果

                        this.logFingerPrint += '>>>>>>>>>>>>>>>>' + temp.name + ' fail: ' + JSON.stringify(err);

                        this.$apply();

                    };

                    break;

                case 1:

                    temp = {

                        name: '人脸登录'

                    };

                    params.requestAuthModes = ['facial'];

                    params.authContent = temp.name;

                    params.success = res => {

                        logger.info('>>>>>>>>>>>>>>>>' + temp.name + ' success: ', res);

                        this.logFacial += '>>>>>>>>>>>>>>>>' + temp.name + ' success: ' + JSON.stringify(res);

                        this.$apply();

                    };

                    params.fail = err => {

                        logger.info('>>>>>>>>>>>>>>>>' + temp.name + ' fail: ', err); // 安卓调试结果

                        this.logFacial += '>>>>>>>>>>>>>>>>' + temp.name + ' fail: ' + JSON.stringify(err);

                        this.$apply();

                    };

                    break;

                default:

                    break;

            }

            wx.startSoterAuthentication(params);


直接调用startSoterAuthentication的指纹识别,识别成功了,但触发fail回调,结果为:{authMode:"",errCode: -1,errMsg: "startSoterAuthentication:fail cancel",resultJSON:"",resultJSONSignature:""}

测试过的真机机型有:小米8、华为p20、华为荣耀20、魅族20X,都是有这个问题的。

最后一次编辑于  2020-08-13
回答关注问题邀请回答
收藏

2 个回答

  • 杨涛
    杨涛
    2020-08-13

    找到原因了,官方代码的挑战因子双引号android代码转义有问题,只支持简单的数字。

    2020-08-13
    有用
    回复
  • 灵芝
    灵芝
    2020-08-13

    你好,麻烦提供出现问题的具体机型、微信版本号、系统版本号,以及能复现问题的代码片段(https://developers.weixin.qq.com/miniprogram/dev/devtools/minicode.html

    2020-08-13
    有用
    回复
登录 后发表内容
问题标签