|
|
|
@ -1,23 +1,43 @@
|
|
|
|
|
<?php
|
|
|
|
|
namespace LaneWeChat\Core\Aes; // 定义命名空间,用于组织代码
|
|
|
|
|
namespace LaneWeChat\Core\Aes; // 定义命名空间为 LaneWeChat\Core\Aes,用于组织与微信消息加密相关的代码
|
|
|
|
|
|
|
|
|
|
class WXBizMsgCrypt // 定义WXBizMsgCrypt类
|
|
|
|
|
{
|
|
|
|
|
private $token; // 微信Token
|
|
|
|
|
private $encodingAesKey; // 微信EncodingAESKey
|
|
|
|
|
private $appId; // 微信AppId
|
|
|
|
|
/**
|
|
|
|
|
* 微信消息加密类
|
|
|
|
|
*
|
|
|
|
|
* 该类用于对微信公众号的消息进行加密和解密操作,确保消息的安全性。
|
|
|
|
|
*/
|
|
|
|
|
class WXBizMsgCrypt {
|
|
|
|
|
private $token; // 微信Token,用于验证消息来源
|
|
|
|
|
private $encodingAesKey; // 微信EncodingAESKey,用于消息加密
|
|
|
|
|
private $appId; // 微信AppId,用于标识公众号
|
|
|
|
|
|
|
|
|
|
// 类构造函数,用于初始化Token、EncodingAESKey和AppId
|
|
|
|
|
public function __construct($token, $encodingAesKey, $appId)
|
|
|
|
|
{
|
|
|
|
|
$this->token = $token;
|
|
|
|
|
$this->encodingAesKey = $encodingAesKey;
|
|
|
|
|
$this->appId = $appId;
|
|
|
|
|
/**
|
|
|
|
|
* 类构造函数
|
|
|
|
|
*
|
|
|
|
|
* 用于初始化Token、EncodingAESKey和AppId。
|
|
|
|
|
*
|
|
|
|
|
* @param string $token 微信Token
|
|
|
|
|
* @param string $encodingAesKey 微信EncodingAESKey
|
|
|
|
|
* @param string $appId 微信AppId
|
|
|
|
|
*/
|
|
|
|
|
public function __construct($token, $encodingAesKey, $appId) {
|
|
|
|
|
$this->token = $token; // 初始化微信Token
|
|
|
|
|
$this->encodingAesKey = $encodingAesKey; // 初始化微信EncodingAESKey
|
|
|
|
|
$this->appId = $appId; // 初始化微信AppId
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
// 加密消息方法
|
|
|
|
|
public function encryptMsg($replyMsg, $timeStamp, $nonce, &$encryptMsg)
|
|
|
|
|
{
|
|
|
|
|
/**
|
|
|
|
|
* 加密消息方法
|
|
|
|
|
*
|
|
|
|
|
* 对回复消息进行加密,确保消息在传输过程中的安全性。
|
|
|
|
|
*
|
|
|
|
|
* @param string $replyMsg 要加密的回复消息
|
|
|
|
|
* @param int $timeStamp 时间戳
|
|
|
|
|
* @param string $nonce 随机数
|
|
|
|
|
* @param string $encryptMsg 加密后的消息
|
|
|
|
|
* @return int 返回加密结果的状态码
|
|
|
|
|
*/
|
|
|
|
|
public function encryptMsg($replyMsg, $timeStamp, $nonce, &$encryptMsg) {
|
|
|
|
|
$pc = new Prpcrypt($this->encodingAesKey); // 实例化Prpcrypt类,用于消息加密
|
|
|
|
|
$array = $pc->encrypt($replyMsg, $this->appId); // 调用encrypt方法进行消息加密
|
|
|
|
|
$ret = $array[0]; // 获取加密结果的状态码
|
|
|
|
@ -27,20 +47,4 @@ class WXBizMsgCrypt // 定义WXBizMsgCrypt类
|
|
|
|
|
// 省略了后续代码,但通常这里会将加密后的消息、时间戳、随机数等信息
|
|
|
|
|
// 格式化为XML格式,并赋值给$encryptMsg变量
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
?>
|
|
|
|
|
命名空间声明:namespace LaneWeChat\Core; 定义了类的命名空间,表明这个类属于LaneWeChat模块的核心部分。
|
|
|
|
|
类定义:class Menu 定义了一个用于管理微信自定义菜单的类。
|
|
|
|
|
setMenu方法:用于创建自定义菜单。处理菜单数据,将一维数组转换为树形结构,支持子菜单,并发送POST请求到微信服务器。
|
|
|
|
|
getMenu方法:用于获取当前公众号的自定义菜单信息。发送GET请求到微信服务器。
|
|
|
|
|
delMenu方法:用于删除当前公众号的自定义菜单。发送GET请求到微信服务器
|
|
|
|
|
命名空间声明:namespace LaneWeChat\Core; 定义了类的命名空间,表明这个类属于LaneWeChat模块的核心部分。
|
|
|
|
|
类定义:class Menu 定义了一个用于管理微信自定义菜单的类。
|
|
|
|
|
setMenu方法:用于创建自定义菜单。处理菜单数据,将一维数组转换为树形结构,支持子菜单,并发送POST请求到微信服务器。
|
|
|
|
|
getMenu方法:用于获取当前公众号的自定义菜单信息。发送GET请求到微信服务器。
|
|
|
|
|
delMenu方法:用于删除当前公众号的自定义菜单。发送GET请求到微信服务器
|
|
|
|
|
命名空间声明:namespace LaneWeChat\Core; 定义了类的命名空间,表明这个类属于LaneWeChat模块的核心部分。
|
|
|
|
|
类定义:class Menu 定义了一个用于管理微信自定义菜单的类。
|
|
|
|
|
setMenu方法:用于创建自定义菜单。处理菜单数据,将一维数组转换为树形结构,支持子菜单,并发送POST请求到微信服务器。
|
|
|
|
|
getMenu方法:用于获取当前公众号的自定义菜单信息。发送GET请求到微信服务器。
|
|
|
|
|
delMenu方法:用于删除当前公众号的自定义菜单。发送GET请求到微信服务器
|
|
|
|
|
}
|