服务器配置URL默认接受 $_GET["echostr"] 配置成功。
public function GetShow(){
$token = $this->token;
//将token、timestamp、nonce三个参数进行字典序排序
$arr = [$token,$_GET["timestamp"],$_GET['nonce']];
sort($arr);
$str = implode($arr);
//加密
$GetShow = sha1($str);
//加密后的字符串与signature对比
if($GetShow == $_GET["signature"]){
echo $_GET['echostr'];die;
}
}
/*用户关注授权获取信息*/
public function responseMsg(){
if(@!empty($_GET["echostr"])){
file_put_contents("1.txt",json_encode($_GET));
$this->GetShow();
}
$data = file_get_contents("php://input");
$this->res = (array)simplexml_load_string($data,"SimpleXMLElement",LIBXML_NOCDATA);
//判断是否首次关注
if ($this->res['MsgType'] == 'event')
{
if ($this->res['Event'] == 'subscribe')
{
$this->sendText("欢迎您关注我们,更多了解,敬请期待!");
}
if ($this->res['Event'] == 'unsubscribe')
{
echo "取消关注";die;
}
}
}
//公共号首次关注推送消息
public function sendText($content){
echo "<xml>
<ToUserName><![CDATA[".$this->res['FromUserName']."]]></ToUserName>
<FromUserName><![CDATA[".$this->res['ToUserName']."]]></FromUserName>
<CreateTime>".time()."</CreateTime>
<MsgType><![CDATA[text]]></MsgType>
<Content><![CDATA[".$content."]]></Content>
</xml>";
}
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· .NET Core 中如何实现缓存的预热?
· 从 HTTP 原因短语缺失研究 HTTP/2 和 HTTP/3 的设计差异
· AI与.NET技术实操系列:向量存储与相似性搜索在 .NET 中的实现
· 基于Microsoft.Extensions.AI核心库实现RAG应用
· Linux系列:如何用heaptrack跟踪.NET程序的非托管内存泄露
· TypeScript + Deepseek 打造卜卦网站:技术与玄学的结合
· Manus的开源复刻OpenManus初探
· .NET Core 中如何实现缓存的预热?
· 三行代码完成国际化适配,妙~啊~
· 阿里巴巴 QwQ-32B真的超越了 DeepSeek R-1吗?