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

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

 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}`);
});

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值