微信服务器接入配置

接入服务器的时候需要做token验证;验证这确实是你的服务器;

官方文档说的是,微信会发送一条请求到你的服务器,然后需要你去处理,原样返回指定字符串;参数如下

signature 微信加密签名,signature结合了开发者填写的token参数和请求中的timestamp参数、nonce参数。
timestamp 时间戳
nonce 随机数
echostr 随机字符串

三个字符串加密后与signature对比是否一样,如果一样,返回echostr !!!
然后微信这边还给了个示例,然后我想都没想,直接c+v =_=!
;“为什么会验证失败”。。。。。。

回头看,才发现一行小字,要原样返回echostr

下面直接上代码

	define(TOKEN,'token');
	function checksignature(){
		//获取微信加密签名
		$signature=$_GET['signature'];
		//时间戳
		$timestamp=$_GET['timestamp'];
		//随机数
		$nonce=$_GET['nonce'];
		//将token timestamp nonce 存储在数组里
		$dataArray=array($nonce,$timestamp,TOKEN);
		//排序 SORT_STRING(加快元素排序)
		sort($dataArray,SORT_STRING);
		//拼接字符串
		$str=implode($dataArray);
		//加密字符串
		$str=sha1($str);
		//对比加密的字符串和$signature
		if($str==$signature){
		return true;//请求的确来自于微信服务器
		}else{
		return false;//请求不是来自于微信服务器
		}
	}

    if(checksignature()){
		//获取随机字符串
		$echostr=$_GET['echostr'];
		if($echostr){
			//原样返回 $echostr 网址接入生效 成为开发者
			echo $echostr;
			exit;
		}
	}
发布了15 篇原创文章 · 获赞 4 · 访问量 1874

猜你喜欢

转载自blog.csdn.net/jayLog/article/details/103204781