微信接入DeepSeek,网页获取微信授权
### 一、准备工作
1. **注册DeepSeek账号**
- 访问[DeepSeek官网](https://www.deepseek.com/)注册并获取API Key,用于调用其AI服务。
2. **准备服务器**
- 需具备公网可访问的服务器(如Nginx/Apache)及域名,用于接收微信消息。
---
### 二、配置微信测试账号
1. **进入测试号系统**
- 访问[微信公众平台测试账号](
https://mp.weixin.qq.com/debug/cgi-bin/sandbox?t=sandbox/login),扫码登录。2. **获取账号信息**
- 记录`appID`和`appsecret`,后续服务器配置需要。
3. **配置服务器**
- **URL**:填写您的服务器API地址(如`
https://yourdomain.com/wechat`)- **Token**:自定义令牌,需与服务器代码一致
- **EncodingAESKey**:随机生成或点击随机生成
- 选择消息加解密方式(建议兼容模式)
---
### 三、编写服务器代码(Python示例)
```python
from flask import Flask, request
import requests
import hashlib
import xml.etree.ElementTree as ET
app = Flask(__name__)
WECHAT_TOKEN = "your_token" # 与微信配置的Token一致
DEEPSEEK_API_KEY = "your_deepseek_key"
# 微信验证接口
@app.route(/wechat, methods=[GET])
def verify():
signature = request.args.get(signature)
timestamp = request.args.get(timestamp)
nonce = request.args.get(nonce)
echostr = request.args.get(echostr)
# 验证签名
list = [WECHAT_TOKEN, timestamp, nonce]
list.sort()
sha1 = hashlib.sha1()
sha1.update("".join(list).encode(utf-8))
if sha1.hexdigest() == signature:
return echostr
else:
return Verification Failed
# 处理消息
@app.route(/wechat, methods=[POST])
def handle_message():
# 解析XML数据
xml_data = request.data
root = ET.fromstring(xml_data)
msg_type = root.find(MsgType).text
user_msg = root.find(Content).text
from_user = root.find(FromUserName).text
to_user = root.find(ToUserName).text
# 调用DeepSeek API
headers = {
"Authorization": f"Bearer {DEEPSEEK_API_KEY}",
"Content-Type": "application/json"
}
data = {
"messages": [{"role": "user", "content": user_msg}],
"model": "deepseek-chat"
}
response = requests.post("https://api.deepseek.com/v1/chat/completions", json=data, headers=headers)
ai_response = response.json()[choices][0][message][content]
# 返回微信XML格式响应
return f
<xml>
<ToUserName><![CDATA[{from_user}]]></ToUserName>
<FromUserName><![CDATA[{to_user}]]></FromUserName>
<CreateTime>{int(time.time())}</CreateTime>
<MsgType><![CDATA[text]]></MsgType>
<Content><![CDATA[{ai_response}]]></Content>
</xml>
if __name__ == __main__:
app.run(port=80, host=0.0.0.0)
```
---
### 四、部署与测试
1. **部署服务器**
- 将代码部署到服务器并启动(建议使用`gunicorn`生产环境部署)
2. **验证配置**
- 在微信测试号页面点击"提交",若显示配置成功即可
3. **发送测试消息**
- 扫描测试号二维码关注,发送消息应获得DeepSeek的回复
---
### 五、注意事项
1. **消息超时**
- 微信服务器5秒内未响应会断开,建议:
- 设置DeepSeek API调用超时时间(如3秒)
- 对复杂查询先返回"正在处理"的提示
2. **安全加固**
- 启用HTTPS防止中间人攻击
- 验证消息来源IP(微信服务器IP列表需定期更新)
3. **内容合规**
- 需遵守微信内容安全规范,建议:
- 对DeepSeek返回内容进行二次过滤
- 添加敏感词过滤机制
如需更详细的配置说明,可参考:
- [微信开发文档](
https://developers.weixin.qq.com/doc/)- [DeepSeek API文档](
https://platform.deepseek.com/api)
条留言