微信公众号开发用什么语言?PHP、Java 还是 Python哪个好?

更新时间:2019-09-19 15:30:28点击次数:381次

现在很多人都在做微信公众号开发,但大多数人都是按照腾讯公司给出的文档在用 PHP 或者 Java 做开发,那么用 Python 如何做?

微信公众号的准备

1. 注册

访问地址:span>

注意:本文样例使用个人公众号,由于个人公众号没有接口权限,自定义菜单无法进行开发,同学们不要注册错!

2. 配置

需要准备好自己的服务器地址,可以使用腾讯云阿里云京东云等等皆可,没有域名用 IP 也可以。

在公众平台官网的开发-基本设置页面,勾选协议成为开发者,点击“修改配置”按钮,填写服务器地址(URL)、Token 和 EncodingAESKey,其中 URL 是开发者用来接收 由开发者手动填写或随机生成,将用作消息体加解密密钥。

按照要求对开发基本信息配置,如下:

3. 连接

服务器配置提交后,微信服务器发送 GET 请求到填写的服务器地址 URL 上,GET 请求携带参数包括 signature、timestamp、nonce、echostr,服务端程序通过检验 signature 对请求进行校验(下面有校验方式)。

若确认此次 GET 请求来自微信服务器,请原样返回 echostr 参数内容给微信服务器确认后接入生效。加密/校验流程如下,下文中有代码具体实现:

将 token、timestamp、nonce 三个参数进行字典序排序;将三个参数字符串拼接成一个字符串进行 sha1 加密;开发者获得加密后的字符串可与 signature 对比,标识该请求来源于微信。基于 Django 开发微信公众号后台

1.准备工作

新建 django project,项目名称为 weixin:django-admin.pystartprojectweixin

新建 app,进入项目目录下,cd weixin 然后执行下面的命令:pythonmanage.pystartappweixin

或者如下命令:

django-admin.pystartappweixin

修改 settings.py 加入刚才创建的 weixin 应用:INSTALLED_APPS = ('django.contrib.admin','django.contrib.auth','django.contrib.contenttypes','django.contrib.sessions','django.contrib.messages','django.contrib.staticfiles','weixin',)

修改项目同名 app 内的 urls.py,添加新的 weixin 的路由解析跳转:urlpatterns = [ url(r'^admin/', include(admin.site.urls)), url(r'^weixin/', include('weixin.urls',namespace="weixin")), ]

2.编写 weixin 应用的 urls.py

修改 app weixin 内的 urls.py,添加针对视图函数的解析,默认访问指向视图函数的 weixin_index 方法。

app_name = 'weixin'urlpatterns = [ url(r'^admin/', include(admin.site.urls)), url(r'^$', views.index, name='weixin_index'), ]

3.编写 weinxin 应用的 views.py

GET 方法做校验,POST 方法传 xml 数据,解析和拼凑 xml 数据实现自动回复功能:

from django.http.response import HttpResponse, HttpResponseBadRequestfrom django.views.decorators.csrf import csrf_exemptfrom wechat_sdk import WechatBasicfrom wechat_sdk.exceptions import ParseErrorfrom wechat_sdk.messages import TextMessage# Create your views here.wechat_instance = WechatBasic( token='您设置的token', appid='您的公众号id', appsecret='您的公众号的秘钥')@csrf_exemptdefindex(request):if request.method == 'GET':# 检验合法性# 从 request 中提取基本信息 (signature, timestamp, nonce, xml) signature = request.GET.get('signature') timestamp = request.GET.get('timestamp') nonce = request.GET.get('nonce')ifnot wechat_instance.check_signature( signature=signature, timestamp=timestamp, nonce=nonce):return HttpResponseBadRequest('Verify Failed')return HttpResponse( request.GET.get('echostr', ''), content_type="text/plain")# 解析本次请求的 XML 数据else:try: print(request.body) wechat_instance.parse_data(data=request.body)except ParseError:return HttpResponseBadRequest('Invalid XML Data')# 获取解析好的微信请求信息 message = wechat_instance.get_message()# 关注事件以及不匹配时的默认回复 response = wechat_instance.response_text( content=('感谢您的关注!\n回复【功能】两个字查看支持的功能,还可以回复任意内容开始聊天' ))if isinstance(message, TextMessage):# 当前会话内容 content = message.content.strip()if content == '功能': reply_text = ('目前支持的功能:\n1. 关键词后面加上【教程】两个字可以搜索教程,''比如回复 "Django 后台教程"\n''2.回复任意词语,查天气,陪聊天,讲故事,无所不能!\n''还有更多功能正在开发中哦 ^_^\n' ) response = wechat_instance.response_text(content=reply_text) print(response)return HttpResponse(response, content_type="application/xml")

配置公网域名映射后,运行程序进行效果展示

pythonmanage.pyrunserver 0.0.0.0:80

发现不能正常使用,提示“该公众号提供的服务出现故障,请稍后再试”。

本篇的文章就分享到这里了!如果以上介绍的几款微信公众号开发语言,如果想了解更多的重庆公众号开发制作,或者你想学习小程序开发的,也可以来问我的噢!

  • 上一篇:已经没有了
  • 下一篇:已经没有了
  • 项目经理 点击这里给我发消息
  • 项目经理 点击这里给我发消息
  • 项目经理 点击这里给我发消息
  • 项目经理 点击这里给我发消息