使用Python进行微信公众号开发(一)

使用Python进行微信公众号开发(一),第1张

概述写在前面《使用Python进行微信公众开发》系列文章将与大家分享如何使用Python一步步搭建微信公众号后台服务器。效果体验扫码“是雯子吖”公众号进行体验配置自己的公众号后台进行体验想要体验效果的小伙伴可以将微信公众号后台的开发->基本配置->服务器配置中 写在前面

《使用Python进行微信公众号开发》系列文章将与大家分享如何使用Python一步步搭建微信公众号后台服务器。

效果体验扫码“是雯子吖”公众号进行体验

配置自己的公众号后台进行体验

想要体验效果的小伙伴可以将微信公众号后台的 开发-> 基本配置 -> 服务器配置 中的Token随意配置,服务器地址配置为 https://APIt.toodo.fun/wechatMP/ + Token,如

Token = hello  # 可随意设置,但是要保证与服务器地址最后一项相同服务器地址:https://APIt.toodo.fun/wechatMP/hello消息加解密方式:明文模式或者兼容模式

如果配置成功的话,新关注你公众号的用户将会收到“Hi~ 终于等到你”,并且收到消息后会由我服务器上的机器人自动回复。

后台服务器搭建

我们选择flask进行服务器后台开发,在这一步中,会与大家分享微信公众号与服务器对接流程。

接收参数

在微信公众号第一次与服务器进行对接时,将向填写的服务器URL发送一个GET请求,GET请求携带的参数如下:

参数描述
signature微信加密签名,signature结合了开发者填写的token参数和请求中的timestamp参数、nonce参数。
timestamp时间戳
nonce随机数
echostr随机字符串(仅第一次服务器验证时有此参数)
代码片段
@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校检。
校检流程如下:

将token、timestamp、nonce三个参数进行字典序排序将排序后的三个参数拼接为一个字符串,然后进行sha1加密将加密后的字符串与参数中的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, abortimport hashlibapp = Flask(__name__)@app.before_requestdef 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进行微信公众号开发(一)所遇到的程序开发问题。

如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。

欢迎分享,转载请注明来源:内存溢出

原文地址:https://54852.com/langs/1188306.html

(0)
打赏 微信扫一扫微信扫一扫 支付宝扫一扫支付宝扫一扫
上一篇 2022-06-03
下一篇2022-06-03

发表评论

登录后才能评论

评论列表(0条)

    保存