这个扩展实现了SP和微信公众平台的对接,1.0版暂时只实现了最简单的功能:绑定,收信息,回复信息。
扩展配置方法:
$spConfig = array(
'mode' => 'debug'
//扩展配置
, 'ext' => array(
//微信扩展设置
'spWeiXin' => array(
'TOKEN' => 'weixin' //微信通信密钥,后台设置
)
)
);然后在controll的方法里面执行:
$wx = spClass('spWeiXin');
$msg = $wx->run();就行了,如果是绑定那么会直接输出微信指定显示的echostr,程序中止执行。如果是收到信息,那么$msg就是收到的信息的数组,键名对照微信官方文档就成。
/**
* SpeedPHP微信接口扩展
*
2013年8月15日 08:51:23
* @author Lee(leeldy[AT]163.com)
* @version 1.0
*/
class spWeiXin {
//微信通信密钥
private $token;
//微信公众帐号ID
private $publicuserid;
//信息接受者
private $touserid;
public function __construct() {
$params = spExt('spWeiXin');
//获取配置参数
if (empty($params['TOKEN'])) {
spError('微信公众帐号通信密钥未设置!');
}
$this->token = $params['TOKEN'];
}
/**
* 绑定微信接口
* @return stringfalse
*/
public function bind() {
//随机字符串
$echoStr = $_GET["echostr"];
//微信加密签名
$signature = $_GET["signature"];
//签名时间戳
$timestamp = $_GET["timestamp"];
//加密随机数
$nonce = $_GET["nonce"];
/*
* 加密/校验流程:
1. 将token、timestamp、nonce三个参数进行字典序排序
2. 将三个参数字符串拼接成一个字符串进行sha1加密
3. 开发者获得加密后的字符串可与signature对比,标识该请求来源于微信
*/
$tmpArr = array($this->token, $timestamp, $nonce);
sort($tmpArr);
$_signature = sha1(implode($tmpArr));
if ($_signature != $signature) {
//签名不正确,返回false
$echoStr = false;
}
return $echoStr;
}
/**
* 接收消息,返回消息数组
* @return array
*/
public function receive() {
$raw = $this->php_fix_raw_query();
$msg = false;
if (!empty($raw)) {
$msg = (array) simplexml_load_string($GLOBALS['HTTP_RAW_POST_DATA'], 'SimpleXMLElement', LIBXML_NOCDATA);
$this->publicuserid = $msg['ToUserName'];
$this->touserid = $msg['FromUserName'];
}
return $msg;
}
/**
* 获取 POST 提交的原始数据
* @author robotreply at gmail dot com (24-Jul-2009 08:17)
* @return string
*/
private function php_fix_raw_query() {
// Try globals array
//试图从全局变量中获取
if (isset($GLOBALS["HTTP_RAW_POST_DATA"])) {
return $GLOBALS["HTTP_RAW_POST_DATA"];
}
// Try globals variable
//试图从全局变量中获取
if (isset($HTTP_RAW_POST_DATA)) {
return $HTTP_RAW_POST_DATA;
}
$post = '';
// Try stream
//试图从流中获取
if (!function_exists('file_get_contents')) {
//php://input is not available with enctype="multipart/form-data".
$fp = fopen("php://input", "r");
if ($fp) {
while (!feof($fp)) {
$post = fread($fp, 1024);
}
fclose($fp);
}
} else {
$post = file_get_contents("php://input");
}
return $post;
}
/**
* 回复文本消息
*
对于每一个POST请求,开发者在响应包中返回特定xml结构
*
对该消息进行响应(现支持回复文本、图文、语音、视频、音乐和对收到的消息进行星标操作)
*
微信服务器在五秒内收不到响应会断掉连接。
* @param string $Content 回复的消息内容
* @return stringfalse
*/
public function replyText($Content) {
$msg = false;
if (!empty($Content)) {
//CreateTime 消息创建时间
$CreateTime = time();
$msg =
touserid}]]>
publicuserid}]]>
{$CreateTime}
XML;
}
return $msg;
}
/**
* 回复音乐消息
* @param string $Title 标题
* @param string $Description 描述
* @param string $MusicUrl 音乐链接
* @param string $HQMusicUrl 高质量音乐链接,WIFI环境优先使用该链接播放音乐
* @return stringfalse
*/
public function replyMusic($Title, $Description, $MusicUrl, $HQMusicUrl) {
$msg = false;
if (!empty($MusicUrl)) {
//CreateTime 消息创建时间
$CreateTime = time();
$msg =
touserid}]]>
publicuserid}]]>
{$CreateTime}
XML;
}
return $msg;
}
/**
* 回复图文消息
* @param type $Articles 文章列表 array(array(Title,PicUrl,Url))
* @return stringfalse
*/
public function replyNews($Articles) {
$msg = false;
$articlesStr = '';
//图文消息个数,限制为10条以内
$ArticleCount = 0;
foreach ($Articles as $_art) {
if (!empty($_art['Title']) && !empty($_art['PicUrl']) && !empty($_art['Url'])) {
$ArticleCount++;
$articlesStr .= "
";
}
}
if (!empty($ArticleCount)) {
//CreateTime 消息创建时间
$CreateTime = time();
$msg =
touserid}]]>
publicuserid}]]>
{$CreateTime}
{$ArticleCount}
{$articlesStr}
XML;
}
return $msg;
}
/**
* 运行
* @return type
*/
function run() {
//微信服务器每次请求都会将signature,timestamp,nonce三个参数GET到接口
//只能通过是否存在echostr来判断是否是接口绑定动作
if (isset($_GET['echostr'])) {
//绑定
exit($this->bind());
} else {
//收到信息
return $this->receive();
}
}
}
?>

“你的组织要求你更改PIN消息”将显示在登录屏幕上。当在使用基于组织的帐户设置的电脑上达到PIN过期限制时,就会发生这种情况,在该电脑上,他们可以控制个人设备。但是,如果您使用个人帐户设置了Windows,则理想情况下不应显示错误消息。虽然情况并非总是如此。大多数遇到错误的用户使用个人帐户报告。为什么我的组织要求我在Windows11上更改我的PIN?可能是您的帐户与组织相关联,您的主要方法应该是验证这一点。联系域管理员会有所帮助!此外,配置错误的本地策略设置或不正确的注册表项也可能导致错误。即

Windows11将清新优雅的设计带到了最前沿;现代界面允许您个性化和更改最精细的细节,例如窗口边框。在本指南中,我们将讨论分步说明,以帮助您在Windows操作系统中创建反映您的风格的环境。如何更改窗口边框设置?按+打开“设置”应用。WindowsI转到个性化,然后单击颜色设置。颜色更改窗口边框设置窗口11“宽度=”643“高度=”500“>找到在标题栏和窗口边框上显示强调色选项,然后切换它旁边的开关。若要在“开始”菜单和任务栏上显示主题色,请打开“在开始”菜单和任务栏上显示主题

默认情况下,Windows11上的标题栏颜色取决于您选择的深色/浅色主题。但是,您可以将其更改为所需的任何颜色。在本指南中,我们将讨论三种方法的分步说明,以更改它并个性化您的桌面体验,使其具有视觉吸引力。是否可以更改活动和非活动窗口的标题栏颜色?是的,您可以使用“设置”应用更改活动窗口的标题栏颜色,也可以使用注册表编辑器更改非活动窗口的标题栏颜色。若要了解这些步骤,请转到下一部分。如何在Windows11中更改标题栏的颜色?1.使用“设置”应用按+打开设置窗口。WindowsI前往“个性化”,然

您是否在Windows安装程序页面上看到“出现问题”以及“OOBELANGUAGE”语句?Windows的安装有时会因此类错误而停止。OOBE表示开箱即用的体验。正如错误提示所表示的那样,这是与OOBE语言选择相关的问题。没有什么可担心的,你可以通过OOBE屏幕本身的漂亮注册表编辑来解决这个问题。快速修复–1.单击OOBE应用底部的“重试”按钮。这将继续进行该过程,而不会再打嗝。2.使用电源按钮强制关闭系统。系统重新启动后,OOBE应继续。3.断开系统与互联网的连接。在脱机模式下完成OOBE的所

任务栏缩略图可能很有趣,但它们也可能分散注意力或烦人。考虑到您将鼠标悬停在该区域的频率,您可能无意中关闭了重要窗口几次。另一个缺点是它使用更多的系统资源,因此,如果您一直在寻找一种提高资源效率的方法,我们将向您展示如何禁用它。不过,如果您的硬件规格可以处理它并且您喜欢预览版,则可以启用它。如何在Windows11中启用任务栏缩略图预览?1.使用“设置”应用点击键并单击设置。Windows单击系统,然后选择关于。点击高级系统设置。导航到“高级”选项卡,然后选择“性能”下的“设置”。在“视觉效果”选

在Windows11上的显示缩放方面,我们都有不同的偏好。有些人喜欢大图标,有些人喜欢小图标。但是,我们都同意拥有正确的缩放比例很重要。字体缩放不良或图像过度缩放可能是工作时真正的生产力杀手,因此您需要知道如何对其进行自定义以充分利用系统功能。自定义缩放的优点:对于难以阅读屏幕上的文本的人来说,这是一个有用的功能。它可以帮助您一次在屏幕上查看更多内容。您可以创建仅适用于某些监视器和应用程序的自定义扩展配置文件。可以帮助提高低端硬件的性能。它使您可以更好地控制屏幕上的内容。如何在Windows11

屏幕亮度是使用现代计算设备不可或缺的一部分,尤其是当您长时间注视屏幕时。它可以帮助您减轻眼睛疲劳,提高易读性,并轻松有效地查看内容。但是,根据您的设置,有时很难管理亮度,尤其是在具有新UI更改的Windows11上。如果您在调整亮度时遇到问题,以下是在Windows11上管理亮度的所有方法。如何在Windows11上更改亮度[10种方式解释]单显示器用户可以使用以下方法在Windows11上调整亮度。这包括使用单个显示器的台式机系统以及笔记本电脑。让我们开始吧。方法1:使用操作中心操作中心是访问

Windows上的激活过程有时会突然转向显示包含此错误代码0xc004f069的错误消息。虽然激活过程已经联机,但一些运行WindowsServer的旧系统可能会遇到此问题。通过这些初步检查,如果这些检查不能帮助您激活系统,请跳转到主要解决方案以解决问题。解决方法–关闭错误消息和激活窗口。然后,重新启动计算机。再次从头开始重试Windows激活过程。修复1–从终端激活从cmd终端激活WindowsServerEdition系统。阶段–1检查Windows服务器版本您必须检查您使用的是哪种类型的W


热AI工具

Undresser.AI Undress
人工智能驱动的应用程序,用于创建逼真的裸体照片

AI Clothes Remover
用于从照片中去除衣服的在线人工智能工具。

Undress AI Tool
免费脱衣服图片

Clothoff.io
AI脱衣机

AI Hentai Generator
免费生成ai无尽的。

热门文章

热工具

禅工作室 13.0.1
功能强大的PHP集成开发环境

MinGW - 适用于 Windows 的极简 GNU
这个项目正在迁移到osdn.net/projects/mingw的过程中,你可以继续在那里关注我们。MinGW:GNU编译器集合(GCC)的本地Windows移植版本,可自由分发的导入库和用于构建本地Windows应用程序的头文件;包括对MSVC运行时的扩展,以支持C99功能。MinGW的所有软件都可以在64位Windows平台上运行。

mPDF
mPDF是一个PHP库,可以从UTF-8编码的HTML生成PDF文件。原作者Ian Back编写mPDF以从他的网站上“即时”输出PDF文件,并处理不同的语言。与原始脚本如HTML2FPDF相比,它的速度较慢,并且在使用Unicode字体时生成的文件较大,但支持CSS样式等,并进行了大量增强。支持几乎所有语言,包括RTL(阿拉伯语和希伯来语)和CJK(中日韩)。支持嵌套的块级元素(如P、DIV),

记事本++7.3.1
好用且免费的代码编辑器

Atom编辑器mac版下载
最流行的的开源编辑器