用Django开发微信公众号


用Django开发微信公众号

准备工作:

1.申请一个微信公众号
2.安装Python,PyCharm,下载wechatpy(pip install wechatpy)
3.服务器
如是自己没有服务器, 下载ngrok ,ngrok 是一个反向代理,通过在公共端点和本地运行的 Web 服务器之间建立一个安全的通道,实现内网主机的服务可以暴露给外网

开始

我自己使用ngrok反向代理作为服务器的,配置ngrok遇到一些坑,我用的是免费的,免费的是无法配置固定域名的,临时的域名10个小时就会过期,有点烦。

  1. 启动ngrok
    打开ngrok,复制图中代码,点击确认。
    确认之后,显示如下图所示,图示网址相当于localhost:80

  2. 打开PyCharm,新建一个Django项目

  3. 新建一个名为wx的app,

  4. 在view.py中编写以下代码

from django.http.response import HttpResponse
from django.views.decorators.csrf import csrf_exempt
from wechatpy import parse_message, create_reply
from wechatpy.exceptions import InvalidSignatureException
from wechatpy.pay import logger
from wechatpy.replies import TextReply
from wechatpy.utils import check_signature

token = 'fan'

def wechat(request):
    # GET 方式用于微信公众平台绑定验证
    if request.method == 'GET':
        signature = request.GET.get('signature', '')
        timestamp = request.GET.get('timestamp', '')
        nonce = request.GET.get('nonce', '')
        echo_str = request.GET.get('echostr', '')
        try:
            check_signature(token, signature, timestamp, nonce)
        except InvalidSignatureException:
            echo_str = '错误的请求'
        response = HttpResponse(echo_str)
        return response

    elif request.method == 'POST':
        msg = parse_message(request.body)
        if msg.type == 'text':
            reply = create_reply('这是条文字消息', msg)
        elif msg.type == 'image':
            reply = create_reply('这是条图片消息', msg)
        elif msg.type == 'voice':
            reply = create_reply('这是条语音消息', msg)
        else:
            reply = create_reply('这是条其他类型消息', msg)
        response = HttpResponse(reply.render(), content_type="application/xml")
        return response

5.在urls.py 文件里加入路由,并在主文件的urls 文件里include(‘wx.urls’);

6.在wx应用中增加urls文件,并编写如下代码

7.修改setting.py中的一些配置


8. 在命令行以80端口启动该文件:python manage.py runserver 80

配置公众号

进入到公众号页面后,左边的菜单栏有一个基本配置,点击,输入刚才的网址,令牌自己写,我这里是fan,随机生成秘钥,点击确认,如图所示:

在左边点击开发者工具, 点击在线接口调试工具

选择基础接口测试

显示如下即测试成功

消息接口测试

显示如下即测试成功。

公众号测试如下

以上只是最基本简单的开发,其他开发可参考WeChatpy的官方文档微信公众平台开发


原文链接:https://blog.csdn.net/qq_34621092/article/details/84957731