|
|
|
@ -3,7 +3,7 @@
|
|
|
|
|
namespace LaneWeChat\Core;
|
|
|
|
|
|
|
|
|
|
// Wechat类定义,用于处理微信相关功能
|
|
|
|
|
class Wechat{
|
|
|
|
|
class Wechat {
|
|
|
|
|
// 私有属性,用于调试模式和请求数据
|
|
|
|
|
private $debug;
|
|
|
|
|
private $request;
|
|
|
|
@ -65,8 +65,7 @@ class Wechat{
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
// 公共方法checkSignature,用于检查签名
|
|
|
|
|
public function checkSignature()
|
|
|
|
|
{
|
|
|
|
|
public function checkSignature() {
|
|
|
|
|
// 获取微信服务器发送的signature、timestamp、nonce参数
|
|
|
|
|
$signature = $_GET["signature"];
|
|
|
|
|
$timestamp = $_GET["timestamp"];
|
|
|
|
@ -78,17 +77,26 @@ class Wechat{
|
|
|
|
|
$tmpArr = array($token, $timestamp, $nonce);
|
|
|
|
|
sort($tmpArr, SORT_STRING);
|
|
|
|
|
// 将组合后的字符串转为sha1签名
|
|
|
|
|
$tmpStr = implode( $tmpArr );
|
|
|
|
|
$tmpStr = sha1( $tmpStr );
|
|
|
|
|
$tmpStr = implode($tmpArr);
|
|
|
|
|
$tmpStr = sha1($tmpStr);
|
|
|
|
|
|
|
|
|
|
// 比较计算出的签名和微信服务器发送的签名
|
|
|
|
|
if( $tmpStr == $signature ){
|
|
|
|
|
if ($tmpStr == $signature) {
|
|
|
|
|
// 如果签名匹配,返回echostr给微信服务器
|
|
|
|
|
echo $_GET['echostr'];
|
|
|
|
|
return true;
|
|
|
|
|
}else{
|
|
|
|
|
} else {
|
|
|
|
|
// 如果签名不匹配,返回false
|
|
|
|
|
return false;
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
命名空间声明:namespace LaneWeChat\Core; 定义了类的命名空间,用于组织代码。
|
|
|
|
|
类定义:class Wechat 定义了一个用于处理微信相关功能的类。
|
|
|
|
|
私有属性:private $debug; 和 private $request; 分别用于存储调试模式和请求数据。
|
|
|
|
|
构造函数:public function __construct($token, $debug = FALSE) 初始化Wechat对象,验证微信服务器的请求并解析微信发送的XML数据。
|
|
|
|
|
isValid方法:private function isValid() 检查是否是微信服务器的验证请求。
|
|
|
|
|
validateSignature方法:private function validateSignature($token) 验证微信服务器发送的签名。
|
|
|
|
|
getRequest方法:protected function getRequest($param = FALSE) 获取请求参数,如果没有指定参数,则返回所有请求参数。
|
|
|
|
|
run方法:public function run() 处理微信请求,根据请求类型分发处理。
|
|
|
|
|
checkSignature方法:public function checkSignature() 检查签名,验证微信服务器发送的签名是否匹配。
|