免费注册 查看新帖 |

Chinaunix

  平台 论坛 博客 文库
最近访问板块 发新帖
查看: 5887 | 回复: 5
打印 上一主题 下一主题

perl 无法实现"微信公众平台的验证URL有效性接口 [复制链接]

论坛徽章:
0
跳转到指定楼层
1 [收藏(0)] [报告]
发表于 2013-12-25 12:00 |只看该作者 |倒序浏览
5可用积分
微信公众平台文档中要求checkSignature的方法返回true/false的布尔值,
但是perl没有布尔值类型
我尝试使用1 代替 true,undef 代替 false,但是验证通不过

论坛徽章:
0
2 [报告]
发表于 2013-12-25 12:04 |只看该作者
本帖最后由 huhuegg 于 2013-12-25 12:05 编辑
  1. package WeiXin;
  2. use Dancer ':syntax';
  3. use Digest::SHA1 qw(sha1_hex);
  4. #use JSON;

  5. our $VERSION = '0.1';


  6. get '/checkSignature' => sub {
  7.     my $sig ||= params->{signature} || '';
  8.     my $timestamp ||= params->{timestamp} || '';
  9.     my $nonce ||= params->{nonce} || '';
  10.     debug "sig:$sig timestamp:$timestamp nonce:$nonce\n";
  11.     my $token = "82345678908234567890823456789812";
  12.     my @arr;
  13.     push(@arr,$token);
  14.     push(@arr,$timestamp);
  15.     push(@arr,$nonce);
  16.     my @sortArr = sort(@arr);
  17.     my $str = join('',@sortArr);
  18.     $str = sha1_hex($str);

  19.     debug "str:$str sig:$sig\n";
  20.     if ($str eq $sig) {
  21.         debug "eq!";
  22.         return true;
  23.     } else {
  24.         return false;
  25.     }
  26. };

  27. true;
复制代码

论坛徽章:
0
3 [报告]
发表于 2013-12-25 12:06 |只看该作者
这样验证不通过

论坛徽章:
1
辰龙
日期:2014-05-15 19:37:15
4 [报告]
发表于 2013-12-26 17:39 |只看该作者
本帖最后由 iakuf 于 2013-12-26 17:40 编辑

return true;你确认不用引号...
我很久以前做过这个接口,没问题,可以通过认证

论坛徽章:
0
5 [报告]
发表于 2013-12-27 14:51 |只看该作者
晕,成功应该返回echostr
被微信文档中的php样例欺骗了...
您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

  

北京盛拓优讯信息技术有限公司. 版权所有 京ICP备16024965号-6 北京市公安局海淀分局网监中心备案编号:11010802020122 niuxiaotong@pcpop.com 17352615567
未成年举报专区
中国互联网协会会员  联系我们:huangweiwei@itpub.net
感谢所有关心和支持过ChinaUnix的朋友们 转载本站内容请注明原作者名及出处

清除 Cookies - ChinaUnix - Archiver - WAP - TOP