开发者社区> 问答> 正文

signature签名获取不对

贴一下sign的代码:
public static String sign(String ticket, String nonceStr, long timeStamp, String url) throws OApiException {
        String plain = "jsapi_ticket=" + ticket + "&noncestr=" + nonceStr + "&timestamp=" + String.valueOf(timeStamp)
        + "&url=" + url;
        try {
            MessageDigest sha1 = MessageDigest.getInstance("SHA-1");
            sha1.reset();
            sha1.update(plain.getBytes("UTF-8"));
            return bytesToHex(sha1.digest());
        } catch (NoSuchAlgorithmException e) {
            throw new OApiResultException(e.getMessage());
        } catch (UnsupportedEncodingException e) {
            throw new OApiResultException(e.getMessage());
        }
    }
    private static String bytesToHex(byte[] hash) {
        Formatter formatter = new Formatter();
        for (byte b : hash) {
            formatter.format("%02x", b);
        }
        String result = formatter.toString();
        formatter.close();
        return result;
    }
然后我就在js中配置了config,可是dd.device.notification.confirm就是不执行,把config注释掉之后才执行,我猜想是config配置有问题,找了好久就是不知道哪里有问题

dd.config({
        agentId:agentId,
        corpId: corpId,
        timeStamp: timeStamp,
        nonceStr:nonceStr,
        signature: signature,
        jsApiList: ['device.notification.alert', 'device.notification.confirm','device.geolocation.get']
    });


        dd.ready(function() {
            dd.device.notification.confirm({
                message: "config还是不对啊!!!",
                title: "提示",
                buttonLabels: ['z', 'z'],
                onSuccess : function(result) {
                    //onSuccess将在点击button之后回调
                    /*
                    {
                        buttonIndex: 0 //被点击按钮的索引值,Number类型,从0开始
                    }
                    */
                },
                onFail : function(err) {}
            });
        });

展开
收起
royalovo 2016-07-17 11:08:22 5208 0
3 条回答
写回答
取消 提交回答
  • 丫丫丫丫丫丫丫丫丫
    dd.device.geolocation.get 是在dd.ready里面调用的吗? 如果是在dd.ready外面调用的话,可能会有errorcode:7 Notauthorized的问题
    2016-07-18 14:42:57
    赞同 展开评论 打赏
  • 回 1楼竹梅的帖子
    dd error:{
    "message":"权限校验失败 Code:52013-Message:签名校验失败,"“errorCode”:3
    }

    -------------------------

    回 1楼竹梅的帖子
    发现是url的问题,改了之后dd.device.notification.confirm可以正常调用
    但dd.device.geolocation.get不能正常调用,输出err也不显示,不知道为什么?

    -------------------------

    回 1楼竹梅的帖子
    dd.device.geolocation.get的err信息显示errorcode:7 Notauthorized
    未获取授权,可是config信息已经配置了而且dd error{}没有报错
    为什么没有权限?
    2016-07-18 09:20:13
    赞同 展开评论 打赏
  • 在dd.error里把错误信息打印出来,
    dd.error(function(error){
      
    });

    有可能是权限校验未通过,权限校验问题可以见常见论坛帖 https://bbs.aliyun.com/read/266079.html?spm=5176.bbsl276.0.0.g7Xkf4
    如果未解决,可以把错误码及错误信息贴到帖子里,定位下问题
    2016-07-17 23:30:53
    赞同 展开评论 打赏
问答分类:
问答地址:
问答排行榜
最热
最新

相关电子书

更多
低代码开发师(初级)实战教程 立即下载
冬季实战营第三期:MySQL数据库进阶实战 立即下载
阿里巴巴DevOps 最佳实践手册 立即下载