本篇文章中讲述了在微信开发中遇到Token验证失败的解决方法,对微信开发感兴趣的或者遇到过token验证失败解决不了的,都可以看看本篇文章哦!废话少说,我们来进入正题吧!

微信小程序配置消息推送的时候一般都会出现Token验证失败的问题,这个错误是因为,你的接口页面还没有反馈正确的信息给微信接口,网友们也给出了一些解决方法,但有些能够配置成功,有些则不然。下面给出网友提供的2种比较容易配置成功的php接口验证代码。

代码示例一(我的验证可以成功):<?php

//1. 将timestamp , nonce , token 按照字典排序

$timestamp = $_GET['timestamp'];

$nonce = $_GET['nonce'];

$token = "你自定义的Token值";

$signature = $_GET['signature'];

$array = array($timestamp,$nonce,$token);

sort($array);

//2.将排序后的三个参数拼接后用sha1加密

$tmpstr = implode('',$array);

$tmpstr = sha1($tmpstr);

//3. 将加密后的字符串与 signature 进行对比, 判断该请求是否来自微信

if($tmpstr == $signature)

{

echo $_GET['echostr'];

exit;

}

代码示例二:<?php

/**

* wechat php test

*/

//define your token

define("TOKEN", "自定义token");

$wechatObj = new wechatCallbackapiTest();

$wechatObj->valid();

class wechatCallbackapiTest

{

public function valid()

{

$echoStr = $_GET["echostr"];

//valid signature , option

if($this->checkSignature()){

echo $echoStr;

exit;

}

}

public function responseMsg()

{

//get post data, May be due to the different environments

$postStr = $GLOBALS["HTTP_RAW_POST_DATA"];

//extract post data

if (!empty($postStr)){

$postObj = simplexml_load_string($postStr, 'SimpleXMLElement', LIBXML_NOCDATA);

$fromUsername = $postObj->FromUserName;

$toUsername = $postObj->ToUserName;

$keyword = trim($postObj->Content);

$time = time();

$textTpl = "

%s

0

";

if(!empty( $keyword ))

{

$msgType = "text";

$contentStr = "Welcome to wechat world!";

$resultStr = sprintf($textTpl, $fromUsername, $toUsername, $time, $msgType, $contentStr);

echo $resultStr;

}else{

echo "Input something...";

}

}else {

echo "";

exit;

}

}

private function checkSignature()

{

$signature = $_GET["signature"];

$timestamp = $_GET["timestamp"];

$nonce = $_GET["nonce"];

$token = TOKEN;

$tmpArr = array($token, $timestamp, $nonce);

sort($tmpArr);

$tmpStr = implode( $tmpArr );

$tmpStr = sha1( $tmpStr );

if( $tmpStr == $signature ){

return true;

}else{

return false;

}

}

}

?>

以上两种实例代码选择一种直接上传到你的服务器上,在消息配置中的url(服务器地址写上php文件的服务器地址),填入对应的自定义Token(令牌),消息加密密钥随机生成即可,加密方式我的填了兼容模式,数据格式随个人喜好吧(我的填了JSON)。然后直接点击提交即可。如果出现下图说明验证通过了:

大家遇到过Token验证错误的可以看看哦!帮助你更快的解决token的难题!

相关推荐:

php网页微信登录验证失败,微信开发Token验证失败解决方法相关推荐

  1. java微信公众号开发token验证失败的问题及解决办法

    java微信公众号开发token验证失败的问题及解决办法 参考文章: (1)java微信公众号开发token验证失败的问题及解决办法 (2)https://www.cnblogs.com/beardu ...

  2. 对于微信二维码相关官方文档的一些注解(微信登录和绑定微信、关注公众号)

    转载自:https://www.jianshu.com/p/d533c69be034 由于微信官方文档对此的描述虽然还可以,但是还是有一些让人疑惑的地方,所以笔者做了一些注解,希望对大家有所帮助 为什 ...

  3. 技能学习:学习使用php(tp6框架) + vue.js,开发前端全栈网站-6.用户登录(二),token验证

    技能学习:学习使用php(tp6框架) + vue.js,开发前端全栈网站-6.用户登录(二),token验证 技能学习:学习使用php(tp6框架) + vue.js,开发前端全栈网站-1.工具和本 ...

  4. lol微信登录服务器,lol开放微信登录功能 lol微信怎么登陆

    lol开放微信登录功能 lol微信登录功能开放大区有哪些 英雄联盟在5月6日开放了部分大区的微信登录功能,玩家们现在可在目前开放了微信登录功能的 大区使用微信登录,但需要将微信账号与已有QQ账号进行绑 ...

  5. 微信公众号分享出现的报错和解决方法整合

    微信分享链接出现config:invalid signature错误的解决方法 开发微信时需要做特定的页面做分享时,根据官方提供的jssdk.php文件创建的签名数据包调试时,大家碰到的最多的错误而且 ...

  6. php微信回复乱码,php版微信公众平台回复中文出现乱码问题的解决方法

    本文实例分析了php版微信公众平台回复中文出现乱码问题的解决方法.分享给大家供大家参考,具体如下: 微信公众平开发时碰到回复中文乱码了,这个问题小编发现是编码问题,其实只要把编码转成utf8就可以解决 ...

  7. 微信nickname乱码 php,php版微信公众平台回复中文出现乱码问题的解决方法

    本文实例分析了php版微信公众平台回复中文出现乱码问题的解决方法.分享给大家供大家参考,具体如下: 微信公众平开发时碰到回复中文乱码了,这个问题小编发现是编码问题,其实只要把编码转成utf8就可以解决 ...

  8. sql无法打开用户默认数据库,登录失败,用户‘sa’登录失败,错误:4064的解决方法

            sql无法打开用户默认数据库,登录失败,用户'sa'登录失败,错误:4064的解决方法 无法打开用户默认数据库,登录失败,这是因为登录帐户的默认数据库被删除. 解决方案:用window ...

  9. 微信上传图文素材接口报41005错误解决方法

    微信上传图文素材接口报41005错误解决方法 参考文章: (1)微信上传图文素材接口报41005错误解决方法 (2)https://www.cnblogs.com/gy1010/p/6674529.h ...

  10. login控件“您的登录尝试不成功。请重试”的解决方法

    login控件"您的登录尝试不成功.请重试"的解决方法 原文:login控件"您的登录尝试不成功.请重试"的解决方法 遇到login控件"您的登录尝试 ...

最新文章

  1. 亚信安全服务器深度安全防护系统中标“世界最长”的城轨网络
  2. CentOS 7安装gitlab服务器
  3. 第十八章 33用重载输出运算符函数实现字符串的输出
  4. 图解四种启动模式 及 实际应用场景解说
  5. VC 系统托盘编程,含有气泡提示
  6. csrf 攻击和防御
  7. python中try...except的用法_提高开发效率,从避免滥用 try...except... 开始
  8. QML 界面切换的几种方法
  9. java dot画图_小O的图案 (Java代码)(最简单的解法)
  10. 任务调度、磁盘、进程管理、PRM和YUM
  11. 第二季-专题2-我从内部看ARM
  12. phpSQLiteAdmin - 基于Web的SQLite数据库管理工具 - OPEN 开发经验库
  13. 学画画软件app推荐_学画漫画的APP有哪些?2018动漫绘画学习软件推荐
  14. t/p命令的区别 cs和ds
  15. DatePickerDialog的确定和取消按钮
  16. 取消word文档中某些页面的页眉
  17. 7. ShowWindow
  18. 1000瓶水里面有一瓶毒水,通过用兔子去喝水的方式检验,只能让兔子喝一次水,那么最少用多少只兔子检验出来是哪一瓶?
  19. 大数据可视化(六)文本数据可视化
  20. PHP自动排班系统 源码+说明

热门文章

  1. 3_寻找假币问题(分治法)
  2. 安装ROS中出现bash: /opt/ros/melodic/setup.bash: 没有那个文件或目录或者bash: /opt/ros/kinetic/setup.bash:的解决办法
  3. 阿里、美团、Oracle凭这套题不知道刷了多少人
  4. [CityHunter]点击ListView项目后修改其内容
  5. lighttpd 配置php,Lighttpd常用配置方法
  6. 未能完成该操作pkdownloaderror错误8_国家励志奖学金申请和审批操作指南
  7. 一级路由器映射二级路由器端口映射
  8. 四叶草数 ---JAVA代码实现
  9. 针对笔记本双显卡安装ubuntu16.04双系统,开机只显示背景图解决办法
  10. 回顾2022,展望2023,笔耕不辍,钟情翰墨