当前位置: 首页 > news >正文

Flask+腾讯云windows主机快速搭建微信公众号接口

0x00

在腾讯云官网https://cloud.tencent.com注册认证后可以免费领取一个月的云主机使用,本例中选用的是windows server2012

0x01

主要代码 first.py 提供简单重复会话

 1 # -*- coding=utf-8 -*-
 2 import time
 3 from flask import Flask,request,g,make_response
 4 import hashlib
 5 import xml.etree.ElementTree as ET
 6 
 7 app = Flask(__name__)
 8 
 9 
10 @app.route('/wx',methods=['GET','POST'])
11 def wechat_auth():
12     if request.method == 'GET':
13         token='yourtoken' #微信配置所需的token
14         data = request.args
15         signature = data.get('signature','')
16         timestamp = data.get('timestamp','')
17         nonce = data.get('nonce','')
18         echostr = data.get('echostr','')
19         s = [timestamp,nonce,token]
20         s.sort()
21         s = ''.join(s)
22         if (hashlib.sha1(s).hexdigest() == signature):
23             return make_response(echostr)
24     else:
25         rec = request.stream.read()
26         xml_rec = ET.fromstring(rec)
27         tou = xml_rec.find('ToUserName').text
28         fromu = xml_rec.find('FromUserName').text
29         content = xml_rec.find('Content').text
30         xml_rep = "<xml><ToUserName><![CDATA[%s]]></ToUserName><FromUserName><![CDATA[%s]]></FromUserName><CreateTime>%s</CreateTime><MsgType><![CDATA[text]]></MsgType><Content><![CDATA[%s]]></Content><FuncFlag>0</FuncFlag></xml>"
31         response = make_response(xml_rep % (fromu,tou,str(int(time.time())), content))
32         response.content_type='application/xml'
33         return response
34     return 'Hello weixin!'
35 
36 if __name__ == '__main__':
37     app.run(host='0.0.0.0',port=80)

0x02

在主机上安装python,并pip安装flask(不设置python全局变量时可以在python安装目录下的script下运行,tips:在目录下按shift+右键可快速打开在当前目录的cmd)

0x03

使用IIS部署flask项目详见 https://segmentfault.com/a/1190000008909201(部署成功后会在文件夹下生成python的编译文件.pyc,当部署新的项目时先在iis上停止服务器,删除掉目录下.pyc文件,然后再开启服务器)

0x04

腾讯云的公网ip访问时只允许iis的80端口服务,部署时将项目部署到80端口上

0x05

在微信公众平台中设置接口的url和token(注意与代码中的token保持一致url为http://你的主机的公网ip/),提交若提示系统错误一般是接口服务器无法通过公网ip进行访问,提示token验证失败时注意设置的token保持一致。

0x06

在微信上测试。。

 

转载于:https://www.cnblogs.com/QQQmadNULL/p/6906383.html

相关文章:

  • 一、简单工厂模式
  • 微软将所有的Windows代码库迁移到Git
  • magento megatron主题加入中文
  • 对象不支持“abigimage”属性或方法
  • Hyper-v创建检查点(VM的快照功能)
  • dede程序打开install安装时出现dir
  • 解答《编程之美》1.18问题1:给所有未标识方块标注有地雷概率
  • 【EMC】基本概念
  • Netty断线重连
  • 不要小看了get 与set
  • redhat7.2升级openssl、openssh
  • [HAOI2016]食物链
  • 事物分析的维度
  • 调查微软恶意升级 Windows 10 请愿即将达成
  • DB-Engines 4 月份全球数据库排名,MySQL 跌幅最大
  • JAVA SE 6 GC调优笔记
  • Java新版本的开发已正式进入轨道,版本号18.3
  • leetcode386. Lexicographical Numbers
  • LintCode 31. partitionArray 数组划分
  • Linux快速复制或删除大量小文件
  • Netty 4.1 源代码学习:线程模型
  • nodejs实现webservice问题总结
  • React 快速上手 - 07 前端路由 react-router
  • React-redux的原理以及使用
  • spring + angular 实现导出excel
  • supervisor 永不挂掉的进程 安装以及使用
  • 个人博客开发系列:评论功能之GitHub账号OAuth授权
  • 给自己的博客网站加上酷炫的初音未来音乐游戏?
  • 如何在GitHub上创建个人博客
  • 入口文件开始,分析Vue源码实现
  • 译有关态射的一切
  • 在Docker Swarm上部署Apache Storm:第1部分
  • 基于django的视频点播网站开发-step3-注册登录功能 ...
  • 通过调用文摘列表API获取文摘
  • ​​​​​​​Installing ROS on the Raspberry Pi
  • #经典论文 异质山坡的物理模型 2 有效导水率
  • (11)MATLAB PCA+SVM 人脸识别
  • (DFS + 剪枝)【洛谷P1731】 [NOI1999] 生日蛋糕
  • (JS基础)String 类型
  • (一)使用Mybatis实现在student数据库中插入一个学生信息
  • (转)Sublime Text3配置Lua运行环境
  • .chm格式文件如何阅读
  • .NET Micro Framework 4.2 beta 源码探析
  • .Net6支持的操作系统版本(.net8已来,你还在用.netframework4.5吗)
  • .NET开发不可不知、不可不用的辅助类(一)
  • .net生成的类,跨工程调用显示注释
  • .NET学习全景图
  • @Controller和@RestController的区别?
  • []常用AT命令解释()
  • [20180224]expdp query 写法问题.txt
  • [ActionScript][AS3]小小笔记
  • [APIO2015]巴厘岛的雕塑
  • [BZOJ]4817: [Sdoi2017]树点涂色
  • [BZOJ5125]小Q的书架(决策单调性+分治DP+树状数组)
  • [DAX] MAX函数 | MAXX函数