概述
《使用Python进行微信公众号开发》系列文章将与大家分享如何使用Python一步步搭建微信公众号后台服务器。
效果体验
想要体验效果的小伙伴可以将微信公众号后台的 开发-> 基本配置 -> 服务器配置 中的Token随意配置,服务器地址配置为 https://apit.toodo.fun/wechatMP/ + Token,如
Token = hello # 可随意设置,但是要保证与服务器地址最后一项相同
服务器地址:https://apit.toodo.fun/wechatMP/hello
消息加解密方式:明文模式或者兼容模式
如果配置成功的话,新关注你公众号的用户将会收到“Hi~ 终于等到你”,并且收到消息后会由我服务器上的机器人自动回复。
我们选择flask进行服务器后台开发,在这一步中,会与大家分享微信公众号与服务器对接流程。
接收参数
在微信公众号第一次与服务器进行对接时,将向填写的服务器URL发送一个GET请求,GET请求携带的参数如下:
@app.route('/')
def main():
signature = request.values.get('signature')
timestamp = request.values.get('timestamp')
nonce = request.values.get('nonce')
echostr = request.values.get('echostr')
signature校检
当接收到参数后,我们需要确认这条消息是否来自微信服务器,即signature校检。
校检流程如下:
def checkSignature(token, timestamp, nonce, signature):
temp = [token, timestamp, nonce]
temp.sort()
res = hashlib.sha1("".join(temp).encode('utf8')).hexdigest()
return True if res == signature else False
微信公众号与服务器对接
在微信公众号向服务器发送的第一次请求中包含echostr参数,在对接过程中仅需要返回这一参数即可。
if echostr:
return echostr
from flask import Flask, request, abort
import hashlib
app = Flask(__name__)
@app.before_request
def checkSignature():
signature = request.values.get('signature')
timestamp = request.values.get('timestamp')
nonce = request.values.get('nonce')
echostr = request.values.get('echostr') # 仅在验证服务器时使用次参数
if not wmp.checkSignature(timestamp=timestamp, nonce=nonce, signature=signature):
abort(404)
if echostr:
return echostr
@app.route('/')
def main():
return "是雯子吖"
if __name__ == '__main__':
app.run()
开发者文档-接入指南:https://developers.weixin.qq.com/doc/offiaccount/Basic_Information/Access_Overview.html
总结
以上是编程之家为你收集整理的使用Python进行微信公众号开发(一)全部内容,希望文章能够帮你解决使用Python进行微信公众号开发(一)所遇到的程序开发问题。
如果您也喜欢它,动动您的小指点个赞吧