微信入坑第一弹【微信接口配置】

验证原理:

signature:微信加密签名,signature结合了开发者填写的token参数和请求中的timestamp参数、nonce参数。

其中:

timestamp:时间戳

nonce:随机数

echostr:随机字符串

1.将token、timestamp、nonce三个参数进行字典序排序。

2.将三个参数拼接成一个字符串,并使用sha1加密。

3.开发者将加密后的字符串与signature对比;若相同,则这次请求来源于微信,是可信的。

<span style="font-family:KaiTi_GB2312;font-size:14px;"><?php
define("TOKEN","weixin");
$weixinObj = new Wechat();
$weixinObj->valid();

class Wechat{
	public function valid(){
		$echoStr = $_GET['echostr'];
		if($this->checkSignature()){
			echo $echoStr;
			exit;
		}
	}
	//校验方法
	private function checkSignature(){
		$signature = $_GET['signature'];
		$timestamp = $_GET['timestamp'];
		$nonce = $_GET['nonce'];
		$token = TOKEN;

		$tmpArr = array($token, $timestamp, $nonce);
		sort($tmpArr);
		$tmpStr = implode($tmpArr);
		$tmpStr = sha1($tmpStr);
		if($tmpStr == $signature){
			return true;
		}else{
			return false;
		}
	}
}</span>



你可能感兴趣的:(PHP)