赞
踩
以下是一个简单的代码,使用Python编写,通过调用微信公众平台提供的接口实现自动回复功能。请注意,这个示例代码假设你已经有了微信公众平台的开发者账号,并且已经创建了一个用于接收消息和回复消息的服务器
- import hashlib
- import xml.etree.ElementTree as ET
- from flask import Flask, request, make_response
-
- app = Flask(__name__)
-
- @app.route('/wechat', methods=['GET', 'POST'])
- def wechat():
- if request.method == 'GET':
- token = 'your_token' # 在微信公众平台设置的Token
- signature = request.args.get('signature', '')
- timestamp = request.args.get('timestamp', '')
- nonce = request.args.get('nonce', '')
- echostr = request.args.get('echostr', '')
-
- # 对token、timestamp和nonce进行排序,并拼接在一起进行sha1加密
- temp_arr = [token, timestamp, nonce]
- temp_arr.sort()
- temp_str = ''.join(temp_arr)
- hash_str = hashlib.sha1(temp_str.encode()).hexdigest()
-
- # 将加密后的字符串与signature进行对比,判断请求是否来自微信服务器
- if hash_str == signature:
- return echostr
- else:
- return 'Verification failed.'
-
- elif request.method == 'POST':
- xml_data = request.data
- root = ET.fromstring(xml_data)
- to_user = root.findtext(".//ToUserName")
- from_user = root.findtext(".//FromUserName")
- msg_type = root.findtext(".//MsgType")
-
- # 判断消息类型是否为文本消息
- if msg_type == 'text':
- content = root.findtext(".//Content")
- reply_msg = "您发送的消息是:" + content
-
- # 构建回复消息的xml
- reply_xml = f"""
- <xml>
- <ToUserName><![CDATA[{from_user}]]></ToUserName>
- <FromUserName><![CDATA[{to_user}]]></FromUserName>
- <CreateTime>{int(time.time())}</CreateTime>
- <MsgType><![CDATA[text]]></MsgType>
- <Content><![CDATA[{reply_msg}]]></Content>
- </xml>
- """
-
- # 返回回复消息的xml
- return reply_xml
-
- if __name__ == '__main__':
- app.run(debug=True)
注意,这只是一个简单的代码,并且假设你已经了解如何在微信公众平台上设置服务器和配置。在实际应用中,你还需要处理更多的细节,例如消息的加解密、用户身份验证等
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。