开启服务器消息推送后收不到微信推送的数据
发布于 5 年前 作者 jiejin 3808 次浏览 来自 问答

appId :wx221563f29cd20a25

在小程序的后台开启了消息推送按文档说的客服消息接入指引操作的

验证成功后未能收到微信服务器推送的post数据。

自己已经使用postman去测试了服务器相关的代码逻辑,发现服务器没有报错,也能记录到post数据。

使用明文和加密都未能获取到微信服务器post过来的数据,是用php开发的后台,用$_POST获取到的是空的

在社区搜索的时候发现有很多的开发者有这样的问题,希望官方能重视下,给出相应的解决方案,谢谢。

附上服务器的日志以及我自己记录的log信息

服务器日志


[ 2018-02-27T11:47:10+08:00 ] 42.51.16.83 140.207.54.75 POST ******/index?signature=28600d64f7a942fcf4a92aa4152086697296d447&timestamp=1519703512&nonce=497231388&openid=o7jb30LNMOTQu4Y9xYcuqE1o933o

[ info ] *********/index?signature=28600d64f7a942fcf4a92aa4152086697296d447&timestamp=1519703512&nonce=497231388&openid=o7jb30LNMOTQu4Y9xYcuqE1o933o [运行时间:0.036870s][吞吐率:27.12req/s] [内存消耗:146.41kb] [文件加载:34]

[ info ] [ LANG ] /zundata/www/wwwroot/****/thinkphp/lang/zh-cn.php

[ info ] [ ROUTE ] array (

  ‘type’ => ‘module’,

  ‘module’ => 

  array (

    0 => ‘index’,

    1 => ‘***’,

    2 => ‘index’,

  ),

)

[ info ] [ HEADER ] array (

  ‘content-type’ => ‘text/xml’,

  ‘content-length’ => ‘302’,

  ‘pragma’ => ‘no-cache’,

  ‘host’ => ‘*********’,

  ‘accept’ => ‘*/*’,

  ‘user-agent’ => ‘Mozilla/4.0’,

)

[ info ] [ PARAM ] array (

  ‘signature’ => ‘28600d64f7a942fcf4a92aa4152086697296d447’,

  ‘timestamp’ => ‘1519703512’,

  ‘nonce’ => ‘497231388’,

  ‘openid’ => ‘o7jb30LNMOTQu4Y9xYcuqE1o933o’,

)

[ info ] [ RUN ] ********->index[ /zundata/www/wwwroot/*****/application/index/controller/***.php ]

[ info ] [ LOG ] INIT File

我自己记录的访问数据

执行日期:20180227114710

array (

)

执行日期:20180227114710

执行日期:20180227114710

array (

  0 => false,

)

执行日期:20180227114710

array (

  ‘signature’ => ‘28600d64f7a942fcf4a92aa4152086697296d447’,

  ‘timestamp’ => ‘1519703512’,

  ‘nonce’ => ‘497231388’,

  ‘openid’ => ‘o7jb30LNMOTQu4Y9xYcuqE1o933o’,

)

服务器上接受数据的处理

$api = new \mine\wxapi();

$get = input(‘get.’);

if(Request::instance()->isPost()){

    self::logIt(var_export($_POST,true),‘post’);

    $postStr = isset($GLOBALS[‘HTTP_RAW_POST_DATA’]) ? $GLOBALS[‘HTTP_RAW_POST_DATA’] : ‘’;

    self::logIt($postStr,‘post’);

    $post = (array)simplexml_load_string($postStr,‘SimpleXMLElement’,LIBXML_NOCDATA);

         self::logIt(var_export($post,true),‘post’);

         self::logIt(var_export($get,true),‘post’);

         //$res = $api->decryptMsg($get,$post);

    }

    

    if(isset($get[‘echostr’])){

         if($api->checkSignature($get)) exit($get[‘echostr’]);

    }

日期日志和我记录的访问数据上都有,这个是用户点击客服按钮进入聊天时微信发送过来的请求

3 回复

按你说的,获取到了…

我的也收不到消息

我的也收不到消息

小程序ID:wx6eed282d0e6005e5

是否试过 php://input ?

回到顶部