A-A+

微信接入DeepSeek,网页获取微信授权

2025-02-16 最新 评论 阅读

 

### 一、准备工作

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)

标签:

条留言  

给我留言