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×tamp=1519703512&nonce=497231388&openid=o7jb30LNMOTQu4Y9xYcuqE1o933o
[ info ] *********/index?signature=28600d64f7a942fcf4a92aa4152086697296d447×tamp=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’]);
}
日期日志和我记录的访问数据上都有,这个是用户点击客服按钮进入聊天时微信发送过来的请求