$_SERVER 判断请求是否来自微信公众号

最近折腾了下微信公众号与网站对接的问题,由于没能将微信公众号发送的恳求与正常的网站恳求辨别开发作了一点小小的错误,比方下面这种:

图片[1]-$_SERVER 判断请求是否来自微信公众号-孤勇者社区

在“快速编辑”已发布文章的属性时的报错,看来是有必要辨别下微信发送的恳求与正常恳求了。

百度了一下,发现大局部办法都是经过判别 UA 信息来完成判别的,比方这种:

// 判别恳求能否来自微信
if(strpos($_SERVER["HTTP_USER_AGENT"],"MicroMessenger")){
	echo '是微信公众号发送的恳求!';
}else{
	echo '不是微信公众号发送的恳求!';
}

还有这种:

// 判别恳求能否来自微信
if( preg_match( '/MicroMessenger/', $_SERVER['HTTP_USER_AGENT'] ) ) {
	echo '是微信公众号发送的恳求!';
}

其实都是查询UA 信息中能否包含“MicroMessenger”内容来完成的。

但是很不幸,经自己测试无效!不知为何我获取的 UA 信息仅有“Mozilla/4.0”的内容。。。

此路不通再选一路,微信公众号每次发送恳求都会恳求我们配置好的地址,也就是下面这里,微信公众号配置时URL后面的传送参数:

图片[2]-$_SERVER 判断请求是否来自微信公众号-孤勇者社区

所以能够经过查找这里的参数判别恳求能否来自微信公众号,详细代码如下:

// 非微信公众号恳求直接返回
$request_sign = '这里填写你在微信公众号配置的URL传送参数';
if ( $_SERVER['REQUEST_METHOD'] == 'POST' && strpos($_SERVER['REQUEST_URI'], $request_sign) == 0 ) {
	$default_reply    = "不是微信公众号发送的恳求!";
	return;
}else{
	$default_reply    = "是微信公众号发送的恳求!";
}

最终测试胜利!

------本页内容已结束,喜欢请分享------

感谢您的来访,获取更多精彩文章请收藏本站。

© 版权声明
THE END
喜欢就支持一下吧
点赞15赞赏 分享
评论 抢沙发
头像
欢迎您留下宝贵的见解!
提交
头像

昵称

取消
昵称表情代码图片