V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
V2EX 提问指南
alex321
V2EX  ›  问与答

哪位童鞋来解释一下微信公众平台的官方文档中的这句话

  •  
  •   alex321 · 2014-11-13 17:50:29 +08:00 · 1946 次点击
    这是一个创建于 3462 天前的主题,其中的信息可能已经有所发展或是发生改变。
    RT,http://mp.weixin.qq.com/wiki/index.php?title=%E6%8A%80%E6%9C%AF%E6%96%B9%E6%A1%88 页面中

    验证方式
    1. 开发者计算签名,dev_msg_signature=sha1(sort(Token、timestamp、nonce, msg_encrypt))
    2. 比较dev_msg_signature和URL上带的msg_signature是否相等,相等则表示验证通过

    这块是微信公众号和程序做是否合法签名检查的方法。
    我是 php 业余新人,想请教一下 sort(Token、timestamp、nonce, msg_encrypt) 这个该如何调试捏。在官放给的 samplecode 中木有看到这个验证方法。
    2 条回复    2014-11-13 18:14:09 +08:00
    arzusyume
        1
    arzusyume  
       2014-11-13 17:57:03 +08:00
    private function _valid()
    {
    $signature = $_GET["signature"];
    $timestamp = $_GET["timestamp"];
    $nonce = $_GET["nonce"];

    $token = $this->account['token'];
    $tmpArr = array($token, $timestamp, $nonce);
    sort($tmpArr);
    $tmpStr = implode( $tmpArr );
    $tmpStr = sha1( $tmpStr );

    if( $tmpStr == $signature ){
    echo $_GET['echostr'];
    }else{
    echo 0;
    }
    }

    翻以前的代码反倒一段这个, 不知道现在规则变了没
    alex321
        2
    alex321  
    OP
       2014-11-13 18:14:09 +08:00
    @arzusyume 这个是之前没有做加密的,我的程序已经顺利运行着,目前跑了 20 个左右的公众号,木有问题;里面我使用的微信公众号基础类库已经在 github 上开源了。
    现在是新出了一个加密信息的内容,官方说是用了 aes 加密,我说的是新的这个。
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   我们的愿景   ·   实用小工具   ·   3254 人在线   最高记录 6543   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 27ms · UTC 12:18 · PVG 20:18 · LAX 05:18 · JFK 08:18
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.