公众号token验证_微信公众号 修改token配置 token验证 失效 - CSDN
精华内容
参与话题
  • 微信公众号开发之token验证

    千次阅读 2017-06-16 10:41:07
    这个坑就是:token验证老是不通过。试了许多网上的方法,有关于utf-8无bom格式的,有关于网络不好多试几次的 还有诸如加一个ob_clean();在echo $echoStr;之前之类的一些方法,但是并没有解决问题 苦思

    开贴记录下这一两天关于被微信公众号-新浪云折磨的日子

    首先我是按照方倍工作室的微信开发公众号的步子来进行开发的,没想到这里面居然埋了一个大坑,

    折磨得我不要不要的

    这个坑就是:token验证老是不通过。试了许多网上的方法,有关于utf-8无bom格式的,有关于网络不好多试几次的

    还有诸如加一个ob_clean();在echo $echoStr;之前之类的一些方法,但是并没有解决问题

    苦思冥想的对着

    新浪云的日记发呆,然而就在我郁闷不已的时候随手百度居然看到了 新浪云要实名验证才可以正常使用创建的应用

    就在刚刚,笔者实名验证通过后,果不其然,token验证通过了。

    我勒个擦,方倍真是太坏了,这里居然不明说,亏我还买了他的书。

    这里重申一次,当你试过了网上的所有方法的时候还不能token验证成功

    一定得去看看新浪云是否实名验证了!

    这篇文章上面都是废话,就只有一句话,总结就是:

    新浪云做微信开发时,要实名验证!

    展开全文
  • 这里附上配置表单,我傻逼一开始不知道什么意思,以为填写了url 和令牌 就可以成功 谁知道一直出现 ,token验证失败的信息。后来看了下文档,如下要返回参数给微信,返回成功则成为开发者;所以我准备的一下代码...


    这里附上配置表单,我傻逼一开始不知道什么意思,以为填写了url 和令牌 就可以成功 谁知道一直出现 ,token验证失败的信息。



    后来看了下文档,如下


    要返回参数给微信,返回成功则成为开发者;

    所以我准备的一下代码

    respond.php:

    <?php
    /**
      * wechat php test
      */
     
    //define your token
    define("TOKEN", "hwqhwq");
    $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 = "<xml>
                                <ToUserName><![CDATA[%s]]></ToUserName>
                                <FromUserName><![CDATA[%s]]></FromUserName>
                                <CreateTime>%s</CreateTime>
                                <MsgType><![CDATA[%s]]></MsgType>
                                <Content><![CDATA[%s]]></Content>
                                <FuncFlag>0</FuncFlag>
                                </xml>";             
                    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是能访问的。

    二、token最好是不要和别人重复的;

    所以服务器上的token要改,要有配置表单上的一样,他们对应就可以了



    展开全文
  • pom中引入jar: &lt;dependency&gt; &lt;groupId&gt;commons-codec&lt;/groupId&gt; &lt;artifactId&gt;commons-codec&lt;/artifactId&gt; &...

    pom中引入jar:

    		<dependency>
    			<groupId>commons-codec</groupId>
    			<artifactId>commons-codec</artifactId>
    			<version>1.9</version>
    		</dependency>
    		<dependency>
    			<groupId>com.github.binarywang</groupId>
    			<artifactId>weixin-java-mp</artifactId>
    			<version>3.1.0</version>
    		</dependency>

     token验证方法:

        /**
    	 * 将微信公众号发送来的加密后的消息体解密
    	 * @return
    	 * @throws Exception
    	 */
    	@GetMapping(produces = "text/plain;charset=utf-8",value = "/msg")
    	public static String msgEncrypt(
    			@RequestParam(name = "signature",required = false) String signature,
    			@RequestParam(name = "timestamp",required = false) String timestamp,
    			@RequestParam(name = "nonce", required = false) String nonce,
    			@RequestParam(name = "echostr", required = false) String echostr
    	) throws Exception{
    		System.out.print("进入token验证");
    		System.out.print("signature:"+signature);
    		String token = "token";
    
                     //字典序排序
    		String[] strs = new String[]{token,timestamp,nonce};
    		Arrays.sort(strs);
    
    		System.out.print("加密后:"+SHA1.gen(strs));
    		try {
    			//判断加密后的字符串与signature字符串是否一致
    			if( SHA1.gen(strs).equals(signature)){
    				//一致返回rechostr
    				return echostr;
    			}
    			else {
    				//不一致返回error
    				return "error";
    			}
    		} catch (Exception var5) {
    			return "error";
    		}
    	}

     

     

    展开全文
  • 微信公众号服务器配置--验证token

    万次阅读 2017-08-12 16:46:37
    1 登陆公众号后台:https://mp.weixin.qq.com2 鼠标滑到最底部的《开发–基本配置...4 写一个验证文件放进服务器,验证token,看是否连接成功。附上验证代码:** * wechat php test */ //define your tokendefine("T

    1 登陆公众号后台:https://mp.weixin.qq.com

    2 鼠标滑到最底部的《开发–基本配置》
    这里写图片描述

    3 填写相关服务器配置信息:
    这里写图片描述
    这里的token要跟服务器的验证文件里的token一致。

    4 写一个验证文件放进服务器,验证token,看是否连接成功。附上验证代码:

    <?php
    
    /**
      * wechat php test
      */
    
    
    //define your token
    
    define("TOKEN", "wechat");
    
    $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 = "<xml>
    
                                <ToUserName><![CDATA[%s]]></ToUserName>
    
                                <FromUserName><![CDATA[%s]]></FromUserName>
    
                                <CreateTime>%s</CreateTime>
    
                                <MsgType><![CDATA[%s]]></MsgType>
    
                                <Content><![CDATA[%s]]></Content>
    
                                <FuncFlag>0</FuncFlag>
    
                                </xml>";
    
                    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;
    
            }
    
        }
    
    }
    
    
    ?>

    5 如果点击提交之后,提示token验证成功,说明已经成功了,如果失败,查看代码是否正确,配置信息是否正确,多提交几次看看。

    展开全文
  • 在点击提交的时候,微信服务会向你指定的URL发送一个GET请求,用来对你的服务器进行token验证 在我的服务器,我是用的是Django搭建的服务 import hashlib from django.http import HttpRespons...
  • 对于自学者,可以申请公众号测试账号,地址:http://mp.weixin.qq.com/debug/cgi-bin/sandboxinfo?action=showinfo&t=sandbox/index 注册账号 对于企业开发者,可以直接用公司微信公众号登录微信公众平台,地址...
  • Java写的微信公众号token验证+实现你问我答功能小项目
  • java实现微信公众号token验证

    千次阅读 2019-06-13 17:45:10
    微信公众号token验证 查看了一些微信公众号平台的开发文档,得知签名验证需要以下参数 签名验证规则是: 1.开发者服务端获取得到signature、timestamp、nonce、echostr参数。 2.然后将token、timestamp、nonce三个...
  • 公司去年申请的公众号,刚开始配置成功了 后来要给客户部署,对方提供了开发者的参数,可进行配置的时候提示token验证失败。 回来用我们自己的账号登陆,修改服务器配置,直接点确定也提示token验证失败…… 检查...
  • 有时候我们发现所有的配置都设置好了,网上也查了不少的资料,还是不行 请您检查这几项: 1. 在您的URL(服务器地址)页面里,直接Get获取echostr参数打印到页面上。 在火狐浏览器里Firebug里面看到echostr前面多...
  • jsp里的源码: String token = Weixin.TOKEN;...系统算出的签名和微信返回的签名是一致的,然后就一直token验证失败。求各位大神们看看哪里出了问题。 是不是我echstr原样返回的不对。该怎么返回才正确。
  • 公众平台接入微擎时token验证失败

    万次阅读 2017-02-03 20:45:22
    URL接口地址已经为一级已备案域名且绑定了虚拟主机。 试了很多遍,更换Token、重头排查还是token验证失败。 解决:手动更新微擎
  • node.js微信公众平台开发之Token验证

    千次阅读 2017-04-10 16:29:26
    进行微信公众平台的开发,进行token验证是第一步,如下图所示。url填写自己的服务器地址。Token这里可以自定义,但是要和代码中的Token保持一致。 node.js代码如下: var crypto = require('crypto'); var url...
  • 微信公众平台测试号验证Token失败的坑

    万次阅读 热门讨论 2018-11-09 07:16:01
    订阅号不能认证,所以在公众号设置中,没有网页授权域名这一项。不过微信提供了测试号供开发者使用。 根据大神 https://blog.csdn.net/chmod_R_755/article/details/75554735 的文章,他最后的checkSignature方法和...
  • 1.1 没有严格按照微信官方的要求进行token验证。 解决方案建议:详细多阅读几次官方文档,并达到理解的程度。这里我将文档中的重点位置摘录,以提醒注意: 验证消息的确来自微信服务器 开发者提交信息(如何配置不再...
  • 首先要确定你填写的URL在外网可以访问,填写的URL精确到你要上传的那个文件名,如我的:http://www.域名/weixin/index.php将下面的代码写到index.php里面&lt;?...//1.将timestamp,nonce,toke按字典顺序...$token ...
  • 因为我自己没有服务器的URL地址所以想跟别人的共用,我将别人的URL与token填入我的微信公众平台提交成功了。想知道我的使用对于对方有没有什么影响等,或者产生什么冲突。微信菜鸟希望回答者说得明白点。谢谢!!!
  • 微信公众号开发基本设置中官方文档bug,致使token验证无法通过 这篇博文主要要讲的是,根据腾讯官方开发者文档进行公众号开发者基本配置后,出现的token验证无法通过的问题,在此我将叙述整个懵逼及思考的过程。 ...
  • 关于ThinkPHP框架开发微信公众号在微信后台配置服务器URL提示Token验证失败的解决方案
  • 首先我们来看两张图,第一张是微信公众号中设置的图 第二张是测试号中的图片,之所以打马赛克是怕不良之心的人,如果有疑问可以在文章后留言,因为本人在这个问题上捣鼓了好几天,所以比较有心得,而微信公众号的...
1 2 3 4 5 ... 20
收藏数 11,391
精华内容 4,556
关键字:

公众号token验证