一行代码验证微信服务器配置

今天在搞微信小程序验证工作

在配置消息推送里Tokent 一直校验失败

把所有能想到的问题都解决了,但一还是校验失败

经过反复测试和网友的回答终于解决

其实微信向您的服务器发送验证请求时

你只需要将微信发送过来的echostr 再返回给它就可以验证通过了

当然正常情况下按照微信的文档,你应该对微信发送的数据进和你本地的数据进行对比,如果数据一致才告诉它验证通过

我这里只是测试环境为了偷懒才这样做的,正式环境还是应该遵守规则

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
<?php
 
//只需要将微信发送过来的随机字符串返回给微信即可验证通过
echo ($_GET['echostr']);<br><br>//必须使用echo返回给微信服务器,使用return是无效的<br>//就是此问题花了我2个小时的时间
//return ($_GET['echostr']);
 
die();
//code from https://mp.weixin.qq.com/debug/wxadoc/dev/api/custommsg/callback_help.html
function checkSignature()
{
    $signature = $_GET["signature"];
    $timestamp = $_GET["timestamp"];
    $nonce = $_GET["nonce"];
 
    $token ='your_tokent';
    $tmpArr = array($token, $timestamp, $nonce);
    sort($tmpArr, SORT_STRING);
    $tmpStr = implode( $tmpArr );
    $tmpStr = sha1( $tmpStr );
 
    if( $tmpStr == $signature ){
        if(isset($_GET['echostr'])){
            return $_GET['echostr'];
        }
        return true;
    }else{
        return false;
    }
}
 
echo checkSignature();
 
?>

 

参考:

微信小程序消息推送配置的token令牌一直验证错误

posted @   HTL  阅读(546)  评论(0编辑  收藏  举报
编辑推荐:
· 10年+ .NET Coder 心语,封装的思维:从隐藏、稳定开始理解其本质意义
· .NET Core 中如何实现缓存的预热?
· 从 HTTP 原因短语缺失研究 HTTP/2 和 HTTP/3 的设计差异
· AI与.NET技术实操系列:向量存储与相似性搜索在 .NET 中的实现
· 基于Microsoft.Extensions.AI核心库实现RAG应用
阅读排行:
· 10年+ .NET Coder 心语 ── 封装的思维:从隐藏、稳定开始理解其本质意义
· 地球OL攻略 —— 某应届生求职总结
· 提示词工程——AI应用必不可少的技术
· Open-Sora 2.0 重磅开源!
· 字符编码:从基础到乱码解决
htl
点击右上角即可分享
微信分享提示