源码网商城,靠谱的源码在线交易网站 我的订单 购物车 帮助

源码网商城

轻松实现python搭建微信公众平台

  • 时间:2020-08-18 08:39 编辑: 来源: 阅读:
  • 扫一扫,手机访问
摘要:轻松实现python搭建微信公众平台
本文主要是一步一步教大家如何利用python搭建微信公众平台,有兴趣的朋友可以参考一下 使用的工具,python 新浪SAE平台,微信的公众平台 你需要先在微信的公众平台与新浪SAE平台上各种注册,微信平台注册的时候需要你拍张手持身份证的照片,还有几天的审核期 微信公众平台:[url=http://mp.weixin.qq.com]http://mp.weixin.qq.com[/url] 新浪SAE:[url=http://sae.sina.com.cn/]http://sae.sina.com.cn/[/url] 等待微信公众审核通过后,登录公众平台后,点击高级功能。将会看到需要提供一个接入信息: [img]http://files.jb51.net/file_images/article/201602/2016216111959051.jpg?2016116112025[/img] [b]微信接口配置[/b] 那么我们需要一个网址作为接口(这时就需要SAE上搭建Python的一个应用),Token呢,就是相当于我们和微信之间约定的“密码”,这里可以随便填写英文或者数字,但实测输入纯数字有时会有问题,所以还是字符串比较靠谱。 [b]第一步,[/b][b]在SAE上搭建python的应用,在下图的应用里选择python应用。[/b] [img]http://files.jb51.net/file_images/article/201602/2016216112050569.jpg?2016116112059[/img]  填好二级域名和应用名称等,选择好语言。这里我们使用Python开发选择web应用。创建好应用之后,在代码管理中创建一个新的版本。而后我们可以选择编辑代码。能够实现在线编辑,根本用不着配置本地环境,SVN等等。当然像这种轻量级的应用在线编辑器就可以了,SVN的话还不如在线编辑好用 [b]第二步,[/b][b]编写index.wsgi[/b] 因为我们使用的是web.py框架,因为其良好的xml解析。 首先编写config.yaml
name: yangyanxing
version: 1
 
libraries:
- name: webpy 
 version: "0.36"
 
- name: lxml
 version: "2.3.4"
 
...
注意严格的缩进,差一个空格你就废了!而且调试的时候很不好发现问题。。。 接着我们继续编写index.wsgi
# coding: UTF-8
import os
 
import sae
import web
 
from weixinInterface import WeixinInterface
 
urls = (
'/weixin','WeixinInterface'
)
 
app_root = os.path.dirname(__file__)
templates_root = os.path.join(app_root, 'templates')
render = web.template.render(templates_root)
 
app = web.application(urls, globals()).wsgifunc()  
application = sae.create_wsgi_app(app)
简单解释一下, [b]from weixinInterface import WeixinInterface[/b] 这里我们需要再创建一个weixinInterface的py文件,你也可以将这个类写在index.wsgi文件中,只是这样看起来会乱乱的 新建一个weixinInterface.py文件,注意大小写,写入以下代码
# -*- coding: utf-8 -*-
import hashlib
import web
import lxml
import time
import os
import urllib2,json
from lxml import etree
 
class WeixinInterface:
 
 def __init__(self):
  self.app_root = os.path.dirname(__file__)
  self.templates_root = os.path.join(self.app_root, 'templates')
  self.render = web.template.render(self.templates_root)
 
 def GET(self):
  #获取输入参数
  data = web.input()
  signature=data.signature
  timestamp=data.timestamp
  nonce=data.nonce
  echostr=data.echostr
  #自己的token
  token="yangyanxing" #这里改写你在微信公众平台里输入的token
  #字典序排序
  list=[token,timestamp,nonce]
  list.sort()
  sha1=hashlib.sha1()
  map(sha1.update,list)
  hashcode=sha1.hexdigest()
  #sha1加密算法  
 
  #如果是来自微信的请求,则回复echostr
  if hashcode == signature:
   return echostr
这里定义了一个GET方法,是根据微信公众平台的要求,进行的token验证,因为这里我们定义了templates_root为根目录下的templates,所以还要在根目录下创建一个目录templates的目录 [img]http://files.jb51.net/file_images/article/201602/2016216112246753.jpg?2016116112255[/img] 因为微信是将验证信息GET发出去的,所以这里使用了GET方法来取得值并且返回相应用值 保存全部,现在回到微信的公众平台高级管理界面 微信接口配置 在url里面填写你在新浪SAE里应用名称并且加上/weixin,如:[url=http://XXXX.sinaapp.com/weixin]http://XXXX.sinaapp.com/weixin[/url] token随便输入,只要注意更改weixinInterface.py中的token就行了,输入好了以后点击提交,如果没有什么问题的话就会通过验证!  [img]http://files.jb51.net/file_images/article/201602/2016216112320742.jpg?2016116112330[/img] [b]第三步[/b][b],新建一个简单的自动回复的方法[/b],鹦鹉学舌,就是用户说什么,它也回复什么,没什么用,只是随便玩玩! 在weixinInterface.py里继续添加代码
def POST(self):  
  str_xml = web.data() #获得post来的数据
  xml = etree.fromstring(str_xml)#进行XML解析
  content=xml.find("Content").text#获得用户所输入的内容
  msgType=xml.find("MsgType").text
  fromUser=xml.find("FromUserName").text
  toUser=xml.find("ToUserName").text
  return self.render.reply_text(fromUser,toUser,int(time.time()),u"我现在还在开发中,还没有什么功能,您刚才说的是:"+content)
 这个def 是和上一个GET同级的,注意缩进 接着我们在templates目录下创建reply_text.xml模板文件,写入以下代码
$def with (toUser,fromUser,createTime,content)
<xml>
<ToUserName><![CDATA[$toUser]]></ToUserName>
<FromUserName><![CDATA[$fromUser]]></FromUserName>
<CreateTime>$createTime</CreateTime>
<MsgType><![CDATA[text]]></MsgType>
<Content><![CDATA[$content]]></Content>
</xml>
 
注意这里的toUser与fromUser是刚才post的是相反的,因为这里的toUser也就是POST函数里的fromUser,这里的fromUser也就是POST函数里的toUser,msgType是text 全部保存,现在就在用你的个人微信关注一下你创建的公众微信号,然后随便输入些内容,如果没有什么问题,你将会收到一条鹦鹉学舌的回复内容! 以上就是python搭建微信公众平台的全部内容,大家可以根据以上步骤进行搭建。
  • 全部评论(0)
联系客服
客服电话:
400-000-3129
微信版

扫一扫进微信版
返回顶部