1.申请一个微信公众号
2.安装Python,PyCharm,下载wechatpy(pip install wechatpy)
3.服务器
如是自己没有服务器, 下载ngrok ,ngrok 是一个反向代理,通过在公共端点和本地运行的 Web
服务器之间建立一个安全的通道,实现内网主机的服务可以暴露给外网
我自己使用ngrok反向代理作为服务器的,配置ngrok遇到一些坑,我用的是免费的,免费的是无法配置固定域名的,临时的域名10个小时就会过期,有点烦。
启动ngrok
打开ngrok,复制图中代码,点击确认。
确认之后,显示如下图所示,图示网址相当于localhost:80
打开PyCharm,新建一个Django项目
新建一个名为wx的app,
在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