接入流程
见 微信公众号开发文档 主要流程如下:
第一步:填写服务器配置
image
第二步:验证消息的确来自微信服务器
check.png
第三步:依据接口文档实现业务逻辑
其中 主要处理 第二步 验证消息来自微信服务器
"""存放与微信公众号开发中有关的方法,工具"""
import hashlib
def check(signature, timestamp, nonce):
token = "XXX" # 修改为你在微信公众号后台设置的token字段
# 1.将token、timestamp、nonce三个参数进行字典序排序
s = sorted([timestamp, nonce, token])
s = ''.join(s)
# 2.将三个参数字符串拼接成一个字符串进行sha1加密
hashcode = hashlib.sha1(s.encode('utf-8')).hexdigest()
# 3.开发者获得加密后的字符串可与signature对比
if hashcode == signature:
return True
else:
return False
采用框架 Flask Flask网址
框架如下
from flask import Flask
from flask import request
from utils import check
app = Flask(__name__)
@app.route('/')
def hello_world():
return "helloWorld"
@app.route('/wx', methods=["POST", "GET"])
def main():
if request.method == "GET": # 验证微信接入
my_signature = request.args.get("signature")
my_timestamp = request.args.get("timestamp")
my_nonce = request.args.get("nonce")
my_echostr = request.args.get("echostr")
if check(signature=my_signature, timestamp=my_timestamp, nonce=my_nonce):
return my_echostr
else:
return ''
if request.method == "POST": # 业务逻辑
pass
if __name__ == '__main__':
app.run()
网友评论