python微信公众号开发简单流程

 更新时间:2018年03月23日 11:38:55   作者:菲菲菲菲菲常新的新手  
这篇文章主要介绍了python微信公众号开发的相关资料,分步骤为大家分享python微信公众号开发,具有一定的参考价值,感兴趣的小伙伴们可以参考一下

本文为大家分享了python微信公众号开发的简单过程,供大家参考,具体内容如下

网上有很多微信公众号的开发教程,但是都是好几年前的了,而且很多都是抄袭其他人的,内容几乎一模一样。真的无语了。只好自己总结一下开发的一些简单流程。

一、注册个微信公众号,这个就不详细说了。

二、登录后台,进入开发中的基本配置,配置下服务器

填写url和token,url是服务器的地址,token是自己定义的

三、登录服务器开发

网上很多教程用的什么新浪sae啊,webpy都是很久之前的。现在很多东西都变了,所以我没有用,我用的阿里的服务器以及flask做后端。

代码如下

# coding:utf-8
from hashlib import sha1
from flask import Flask, request

token = 'xxxxxx'

app = Flask(__name__)

def get_update(token, timestamp, nonce):
  arguments = ''
  for k in sorted([token, timestamp, nonce]):
    arguments = arguments + str(k)
  m = sha1()
  m.update(arguments.encode('utf8'))
  return m.hexdigest()

def check_signature():
  signature = request.args.get('signature', '')
  timestamp = request.args.get('timestamp', '')
  nonce = request.args.get('nonce', '')
  check = get_update(token, timestamp, nonce)
  return True if check == signature else False

def parse_xml(data):
  try:
    import xml.etree.cElementTree as ET
  except ImportError:
    import xml.etree.ElementTree as ET
    root = ET.fromstring(data)
    datas = '<xml>'
    for child in root:
      if child.tag == 'ToUserName':
        toUser = child.text
        datas += '<FromUserName>%s</FromUserName>' % toUser
      elif child.tag == 'FromUserName':
        fromUser = child.text
        datas += '<ToUserName>%s</ToUserName>' % fromUser
      else:
        datas += '<' + child.tag + '>'
        datas += child.text
        datas += '</' + child.tag + '>'
    datas += '</xml>'
    return datas

@app.route('/weixin', methods=['GET', 'POST'])
def weixinInterface():
  if check_signature:
    if request.method == 'GET':
      echostr = request.args.get('echostr', '')
      return echostr
    elif request.method == 'POST':
      data = request.data
      msg = parse_xml(data)
      return msg
  else:
    return 'signature error'

if __name__ == '__main__':
  app.run(host='0.0.0.0')

一开始的话微信会让你验证填写的url,验证方式是通过传入时间戳timestamp,随机数nonce,token事先约定好的,echostr随机字符串,以及签名signature,需要根据时间戳,随机数,token的值进行字典序排序,然后用sha1加密得到签名,检验签名是否一致,是的话返回随机字符串echostr。如果校验成功,就可以提交了,提交之后就可以启用服务器配置。

上面的代码还包括了如果用户发送信息给公众号,返回该信息,当然只是很简单的解析xml以及构造xml。其他更复杂的功能需要查询微信的文档。

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持脚本之家。

相关文章

  • Pandas标记删除重复记录的方法

    Pandas标记删除重复记录的方法

    下面小编就为大家分享一篇Pandas标记删除重复记录的方法,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧
    2018-04-04
  • 酷! 程序员用Python带你玩转冲顶大会

    酷! 程序员用Python带你玩转冲顶大会

    程序员用Python玩转王思聪的《冲顶大会》,感兴趣的小伙伴们可以参考一下
    2018-01-01
  • Python输入正负10进制,转4位16进制问题

    Python输入正负10进制,转4位16进制问题

    这篇文章主要介绍了Python输入正负10进制,转4位16进制问题,具有很好的参考价值,希望对大家有所帮助。如有错误或未考虑完全的地方,望不吝赐教
    2023-06-06
  • Python实现图片识别加翻译功能

    Python实现图片识别加翻译功能

    这篇文章主要介绍了Python使用百度AI接口实现图片识别加翻译功能,本文通过实例代码给大家介绍的非常详细,具有一定的参考借鉴价值,需要的朋友可以参考下
    2019-12-12
  • 如何用itertools解决无序排列组合的问题

    如何用itertools解决无序排列组合的问题

    下面小编就为大家带来一篇如何用itertools解决无序排列组合的问题。小编觉得挺不错的,现在就分享给大家,也给大家做个参考。一起跟随小编过来看看吧
    2017-05-05
  • 如何用python绘制雷达图

    如何用python绘制雷达图

    这篇文章主要介绍了如何用python绘制雷达图,帮助大家更好的利用python进行数据分析,感兴趣的朋友可以了解下
    2021-04-04
  • python 正则表达式的使用

    python 正则表达式的使用

    这篇文章主要介绍了python 正则表达式的使用,Python 中正则表达式应用非常广泛,如数据挖掘、数据分析、网络爬虫、输入有效性验证等,Python 也提供了利用正则表达式实现文本的匹配、查找和替换等操作的 re 模块,下面和小编一起进入文章了解具体内容吧
    2021-10-10
  • python 百度aip实现文字识别的实现示例

    python 百度aip实现文字识别的实现示例

    百度aip将图片或扫描件中的文字识别成可编辑的文本,本文主要介绍了python 百度aip实现文字识别,具有一定的参考价值,感兴趣的可以了解一下
    2021-08-08
  • Python Flask前后端Ajax交互的方法示例

    Python Flask前后端Ajax交互的方法示例

    这篇文章主要介绍了Python Flask前后端Ajax交互的方法示例,小编觉得挺不错的,现在分享给大家,也给大家做个参考。一起跟随小编过来看看吧
    2018-07-07
  • Python接口自动化浅析pymysql数据库操作流程

    Python接口自动化浅析pymysql数据库操作流程

    本文主要介绍pymysql安装、操作流程、语法基础及封装操作数据库类,需要的朋友可以参考下,希望能对大家有所帮助,每日提升一点点,欢迎大家多多交流讨论
    2021-08-08

最新评论