【无标题】

发布时间:2023年12月25日

?个人微信号,未认证状态下,也可以通过自己的服务器设置更丰富的关键字回复?

?PHP方案

?

<?php  
$token = 'aaabbb'; // 在微信公众平台设置的 Token  
// 获取微信服务器发送的参数  
$signature = $_GET['signature'];  
$timestamp = $_GET['timestamp'];  
$nonce = $_GET['nonce'];  
$echoStr = $_GET['echostr'];  
  
// 将参数按照字典序排序  
$params = array($token, $timestamp, $nonce);  
sort($params, SORT_STRING);  
  
// 拼接参数并计算签名  
$str = implode($params);  
$signatureCheck = sha1($str);  
  
// 验证签名是否匹配  
if ($signature === $signatureCheck) {  
    // 签名匹配,返回 echostr 给微信服务器  
    echo $echoStr;  
} else {  
    // 签名不匹配,返回错误信息或空字符串  
    echo 'Invalid signature';  
}  
?>



<?php
// 获取微信服务器发送的POST数据
$postData = file_get_contents('php://input');

// 解析XML数据
$xmlData = simplexml_load_string($postData, 'SimpleXMLElement', LIBXML_NOCDATA);

// 获取消息类型
$msgType = $xmlData->MsgType;

// 获取用户发送的消息内容
$content = $xmlData->Content;

// 构建回复消息的XML结构
$response = "<xml>
    <ToUserName><![CDATA[" . $xmlData->FromUserName . "]]></ToUserName>
    <FromUserName><![CDATA[" . $xmlData->ToUserName . "]]></FromUserName>
    <CreateTime>" . time() . "</CreateTime>
    <MsgType><![CDATA[text]]></MsgType>
    <Content><![CDATA[你发送的消息是:" . $content . "]]></Content>
</xml>";

// 输出回复消息

echo $response;
?>

Node.js方案

nodejs方案
npm init -y
npm install express --save

const express = require('express');
const app = express();

// 用于验证微信Token的端点
app.get('/wechat/token', (req, res) => {
  const token = 'YOUR_WECHAT_TOKEN'; // 将YOUR_WECHAT_TOKEN替换为您在微信公众平台设置的Token

  const signature = req.query.signature;
  const timestamp = req.query.timestamp;
  const nonce = req.query.nonce;
  const echostr = req.query.echostr;

  const sha1 = require('sha1');
  const sortedString = [token, timestamp, nonce].sort().join('');
  const sha1String = sha1(sortedString);

  if (sha1String === signature) {
    res.send(echostr);
  } else {
    res.status(401).send('Invalid signature');
  }
});

const PORT = 3000;
app.listen(PORT, () => {
  console.log(`Server is running on port ${PORT}`);
});

文章来源:https://blog.csdn.net/aexwx/article/details/135192030
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。