开发者社区> 问答> 正文

验证URL有效性,返回字符串不匹配,71009


创建套件时,验证URL,提示错误代码:71009,代码可以正确获得signature, timeStamp, nonce,Random,
签名也验证成功,回传加密后的 Random,但是验证URL有效性试,报 返回字符串不匹配,71009

      

展开
收起
gihow 2015-12-03 10:40:55 9159 0
9 条回答
写回答
取消 提交回答
  • Re验证URL有效性,返回字符串不匹配,71009
    我也遇到同样的问题,求解?.....
    2016-04-07 13:37:23
    赞同 展开评论 打赏
  • Re验证URL有效性,返回字符串不匹配,71009
    问题解决了吗?我也遇到了同样的问题,怎么搞都没用
    2016-03-30 20:12:01
    赞同 展开评论 打赏
  • 回 10楼黑乌的帖子
    跟据PHP反向比对发现问题:返回的时候需要新签名。现在已经成功了。nodejs demo如下:

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

    Re验证URL有效性,返回字符串不匹配,71009

    https://github.com/hezedu/dingtalk_suite_callback
    2016-01-09 13:55:04
    赞同 展开评论 打赏
  • Re验证URL有效性,返回字符串不匹配,71009
    遇到了同样的问题,创建套件时回调地址验证不通过,加解密一切正常,我返回的数据如下:
    {"msg_signature":"2b0b103d4d6ccfc7688f8cbbbbbb4dc4452c51f3","timeStamp":"1452138755341","nonce":"gpJT0ukc","encrypt":"oZqwcOv6rBKpBkWrnBZ6buBOBv7n92q3rtwqjXGlHR0LZeVW4tGAPLmqZx546YpeIkQeEzncvvzVCfIudHtNbQ=="}
    显示验证不通过 71009, 怎么破,怎么破,文档中也没说明返回的数据格式,就给了个java的demo,哥们我是写nodejs的啊,加解密算法还要重新写,坑爹
    2016-01-07 15:09:58
    赞同 展开评论 打赏
  • 请先检查接收钉钉推送的数据,解密是否正常,
    dingTalkEncryptor = new DingTalkEncryptor(Env.TOKEN, Env.ENCODING_AES_KEY, Env.SUITE_KEY);
    String str = dingTalkEncryptor.getDecryptMsg(msg_signature,timestamp, nonce, json.getString("encrypt"));

    (1)如果是新创建的套件,SUITE_KEY使用“suite4xxxxxxxxxxxxxxx”;
    如果是已有的套件,使用的SUITE_KEY是通过开发者后台查询到的;
    (2)如解密后的random="hhhhhhh"
    返回时将受到的"hhhhhhh"加密返回
    (3)将加密后的串可以现在本地解密,看是否是“hhhhhhh”,
    (4)另外确认下字段是否有错误,如 ,如timeStamp,写成了timestamp等等,
    如有问题,请将错误信息贴出

    2015-12-23 12:04:15
    赞同 展开评论 打赏
  • 回 4楼semoon的帖子
    你看看你本地Debug    string sMsg = Cryptography.AES_decrypt(encrypt, Config.ENCODING_AES_KEY, ref cpid);
    encrypt  传加密后的Random      ENCODING_AES_KEY  你自己的加密字符串,我解密出来的sMsg 跟我加密前的Random    是一致的
    但还是验证不了

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

    回 5楼靖山的帖子
    我们用的是阿里云。这些参数我都取到了,Random也取到了,把Random加密后的密文放到本地用
    string sMsg = Cryptography.AES_decrypt(encrypt, Config.ENCODING_AES_KEY, ref cpid);
    解密,解密之后sMsg与加密前Random的一致,还是返回字符串不匹配。
    问一下,是将接收到的Random加密返回吧,不是返回“success”吧?
    回传的"msg_signature"    "timeStamp"        "nonce"     与钉钉推送的有什么变动吗?
    请指教
    2015-12-04 09:37:36
    赞同 展开评论 打赏
  • Re验证URL有效性,返回字符串不匹配,71009
    遇到同样的问题,回调获取的参数然后可以正确解密,自己返回消息里面加密之后就验证不了,debug之后自己加密的信息也无法解密(计算解密文字错误)。。。是不是github上代码旧了?

    2015-12-03 17:36:43
    赞同 展开评论 打赏
  • 回 楼主gihow的帖子
    请问,signature, timeStamp, nonce,这些值是做什么操作时可以获得,是在浏览器访问,回调url时吗,还是验证回调url有效性时

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

    回 1楼靖山的帖子
    请问,signature, timeStamp, nonce,这些值是做什么操作时可以获得,是在浏览器访问,回调url时吗,还是验证回调url有效性时,我怎么得到这些值,我在用浏览器访问回调url时,得不到这些值,点击验证url有效性时,怎么得到
    2015-12-03 14:00:32
    赞同 展开评论 打赏
  • 看一下这个文件,https://github.com/injekt/openapi-demo-java/blob/master/src/com/alibaba/dingtalk/openapi/servlet/IsvReceiveServlet.java

    /**对返回信息进行加密**/
                    long timeStampLong = Long.parseLong(timeStamp);
                    Map<String,String> jsonMap = null;
                    try {
                            jsonMap = dingTalkEncryptor.getEncryptedMap(res, timeStampLong, nonce);
                    } catch (DingTalkEncryptException e) {
                            System.out.println(e.getMessage());
                            e.printStackTrace();
                    }
                    JSONObject json = new JSONObject();
                    json.putAll(jsonMap);        
                    response.getWriter().append(json.toString());


    需要对 Random加密,timeStampLong, nonce 是否正确取到


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

    钉钉服务在回调你配置的URL时会把signature, timeStamp, nonce配置URL的参数里面,你收到这个回调时可以在请求头里取到

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

    回 3楼(colin513) 的帖子
    钉钉服务在回调你配置的URL时会把signature, timeStamp, nonce配置URL的参数里面,你收到这个回调时可以在请求头里取到

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

    你自己请求一下,你设置的回调URL,看一下返回的结果的结构是不是json,内容是否和文档要求一致。http://ddtalk.github.io/dingTalkDoc/?spm=a3140.7785475.0.0.e7MgaI#1-创建套件

    2015-12-03 11:36:36
    赞同 展开评论 打赏
滑动查看更多
问答排行榜
最热
最新

相关电子书

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