Update wechat.lib.php

src
pfspx4a7z 2 months ago
parent ea45a97354
commit 6e32234adf

@ -3,7 +3,7 @@
namespace LaneWeChat\Core; namespace LaneWeChat\Core;
// Wechat类定义用于处理微信相关功能 // Wechat类定义用于处理微信相关功能
class Wechat{ class Wechat {
// 私有属性,用于调试模式和请求数据 // 私有属性,用于调试模式和请求数据
private $debug; private $debug;
private $request; private $request;
@ -65,8 +65,7 @@ class Wechat{
} }
// 公共方法checkSignature用于检查签名 // 公共方法checkSignature用于检查签名
public function checkSignature() public function checkSignature() {
{
// 获取微信服务器发送的signature、timestamp、nonce参数 // 获取微信服务器发送的signature、timestamp、nonce参数
$signature = $_GET["signature"]; $signature = $_GET["signature"];
$timestamp = $_GET["timestamp"]; $timestamp = $_GET["timestamp"];
@ -78,17 +77,26 @@ class Wechat{
$tmpArr = array($token, $timestamp, $nonce); $tmpArr = array($token, $timestamp, $nonce);
sort($tmpArr, SORT_STRING); sort($tmpArr, SORT_STRING);
// 将组合后的字符串转为sha1签名 // 将组合后的字符串转为sha1签名
$tmpStr = implode( $tmpArr ); $tmpStr = implode($tmpArr);
$tmpStr = sha1( $tmpStr ); $tmpStr = sha1($tmpStr);
// 比较计算出的签名和微信服务器发送的签名 // 比较计算出的签名和微信服务器发送的签名
if( $tmpStr == $signature ){ if ($tmpStr == $signature) {
// 如果签名匹配返回echostr给微信服务器 // 如果签名匹配返回echostr给微信服务器
echo $_GET['echostr']; echo $_GET['echostr'];
return true; return true;
}else{ } else {
// 如果签名不匹配返回false // 如果签名不匹配返回false
return 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() 检查签名,验证微信服务器发送的签名是否匹配。
Loading…
Cancel
Save