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

2014-11-13 17:50:29 +08:00
 alex321
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 中木有看到这个验证方法。
1958 次点击
所在节点    问与答
2 条回复
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
2014-11-13 18:14:09 +08:00
@arzusyume 这个是之前没有做加密的,我的程序已经顺利运行着,目前跑了 20 个左右的公众号,木有问题;里面我使用的微信公众号基础类库已经在 github 上开源了。
现在是新出了一个加密信息的内容,官方说是用了 aes 加密,我说的是新的这个。

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/146261

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX