微信api接入微信验证的坑!!!(未定义数组索引:signature/nonce/timestamp/echostr)

之前弄微信公众号开发,在微信api接入验证这块遇到了几个问题,记录一下踩坑之路。

 

一、官方文档的接入讲解

https://developers.weixin.qq.com/miniprogram/dev/framework/server-ability/message-push.html

微信api接入微信验证的坑!!!(未定义数组索引:signature/nonce/timestamp/echostr)_第1张图片

微信api接入微信验证的坑!!!(未定义数组索引:signature/nonce/timestamp/echostr)_第2张图片

 

微信api接入微信验证的坑!!!(未定义数组索引:signature/nonce/timestamp/echostr)_第3张图片

PHP示例代码下载:

下载

 

 

 

我已开始是这样写的:

        //1.得到微信发过来的timestamp,nonce,token,signature变量

        $timestamp=$_GET['timestamp'];

        $nonce=$_GET['nonce'];

        $token='weixin';

        $signature=$_GET['signature'];

        $echostr=$_GET['echostr'];

 

        //2.对其进行字典序排序并合并后加密

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

        sort($array);

        $string=sha1(implode('', $array));

        //3.再与signature关键字进行比较

        if($string==$signature){

            echo $echostr;

            exit;

        }else {

        }

微信验证确实是能成功,但是访问就会一直出现这样的错误:

 

 

让我的微信关注事件的推送消息一直出不来,我写了一个用户关注公众号后会发送 “欢迎关注测试公众号” 得消息和用户发文本消息之后,公众号会回复相同的文本消息给用户的逻辑,都会出现问题,搞得我焦头烂额,不知咋办。

 

但是当我,把get的请求数据用request来接收后就解决了这两个问题,现在还不知道为什么,知道原因的大佬还请讲一下原因。

微信api接入微信验证的坑!!!(未定义数组索引:signature/nonce/timestamp/echostr)_第4张图片

这儿还有一个要注意的,大家都知道的获取微信推送过来的post数据php7以上不能用$GLOBALS[‘HTTP_RAW_POST_DATA’],而要用file_get_contents(‘php://input’)的方式来获取数据。

 

     //获取微信推送过来的post数据(xml格式)

     //$postArr=$GLOBALS['HTTP_RAW_POST_DATA']; php7以上不能用

     $postArr = file_get_contents('php://input');

 

你可能感兴趣的:(tp5,微信小程序开发,小程序)