前言:本文是學習網易微專業的《python全棧工程師 - Django快速建站》課程的筆記,歡迎學習交流。同時感謝老師們的精彩傳授!
一、課程目标
- 了解微信公衆号開發流程
- 實作内網穿透
- 完成微信公衆号開發驗證
二、詳情解讀
2.1.微信公衆号開發
2.1.1.微信公衆号
- 訂閱号:為媒體和個人提供的一種資訊傳播方式,主要偏于為使用者傳達資訊(類似報紙雜志),主要的定位是閱讀,每天可以群發1條消息。
- 服務号:為企業,政府或組織提供對使用者進行服務,主要偏于服務互動。
- 企業号:為企業、政府、事業機關,實作生産管理和協作營運的移動化,主要用于公司内部通訊使用,旨在為使用者提供移動辦公,需要先有成員的通訊資訊驗證才可以關注成功企業微信。
2.1.2.微信公衆号背景管理
- 沒有針對公衆号做開發
Python學習筆記:7.5.6 Django快速建站 - Web開發實戰 微信公衆号開發1 - 針對公衆号進行開發
2.1.3.業務流程
2.2.開發者環境
2.2.1.内網穿透
- 内網穿透,網絡位址轉換(
):通過映射端口,能讓外網的計算機找到處于内網的計算機。Network Address Translation,NAT
- 将本地計算機設定成為開發者伺服器:有公網可以通路的域名,公網域名與本地
對應(如:IP
)127.0.0.1:8080
-
打開:https://natapp.cn
– 使用者注冊
– 實名認證
– 下載下傳用戶端
Python學習筆記:7.5.6 Django快速建站 - Web開發實戰 微信公衆号開發1 -
:windows
小編用Python學習筆記:7.5.6 Django快速建站 - Web開發實戰 微信公衆号開發1
,自己下載下傳隻有一個windows
檔案,後面在官網上下載下傳了natapp.exe
這個檔案config.ini
-
–Linux/Mac OS
natapp
登入https://natapp.cn進入背景,如下圖:
Step0:
建立免費隧道
step1
:免費購買隧道:
Step2
: 配置隧道
這裡要注意:由于是免費隧道,域名/端口會随機且不定時強制更換。是以,每次啟動的時候,要檢查一下是否有更換,有則跟着更換。
-
在本地執行
–
Linux/Mac OS
# 獲得權限
% chmode a+x natapp # 這個在軟體natapp同一個目錄下執行的指令
% ./natapp # 顯示認證錯誤
% ./natapp -authtoken your-token
如果有顯示下面的結果,則表示本地執行成功:
-
:windows
Python學習筆記:7.5.6 Django快速建站 - Web開發實戰 微信公衆号開發1
2.2.2.建立項目
- 建立虛拟目錄
python3 -m venv official
cd official
source ./bin/activate
- 安裝
Django
- 建立項目
django-admin startproject wechat
在
settings.py
中配置公網域名
-
測試
– 啟動服務:
– 用公網域名通路:wechat% python manage.py runserver 127.0.0.1:8080
http://meq5b6.natappfree.cc
2.3.配置伺服器和驗證
2.3.1.申請開發測試賬号
- 位址:http://mp.weixin.qq.com/debug/cgi-bin/sandbox?t=sandbox/login
Python學習筆記:7.5.6 Django快速建站 - Web開發實戰 微信公衆号開發1 上圖的Python學習筆記:7.5.6 Django快速建站 - Web開發實戰 微信公衆号開發1
是免費隧道裡的token
。如何進行伺服器驗證呢?token
2.3.2.閱讀官方文檔
-
網址:https://developers.weixin.qq.com/doc/offiaccount/Basic_Information/Access_Overview.html
– 第一步:填寫伺服器配置
– 第二步:驗證消息的确來自微信伺服器
– 第三步:業務邏輯
2.3.3.建立應用
- 接收來自微信伺服器的資訊
python manage.py startapp auth
# 安裝第三方包
pip install wechatpy
-
官網:http://docs.wechatpy.org/zh_CN/master/wechatpy
Python學習筆記:7.5.6 Django快速建站 - Web開發實戰 微信公衆号開發1
Step1
配置路由
wechat/urls.py
代碼如下:
from django.contrib import admin
from django.urls import path, include, re_path
urlpatterns = [
path('admin/', admin.site.urls),
re_path('^auth/?', include('auth.urls', namespace='auth')),
]
wechat/auth/urls.py
代碼如下:
from django.urls import path
from . import views
urlpatterns = [
path('', views.auth, name='auth'),
]
Step2:
編寫
wechat/auth/views.py
中的
auth
視圖函數
from django.shortcuts import render
from django.http import HttpResponse
from wechatpy.utils import check_signature
from wechatpy.exceptions import InvalidSignatureException
# Create your views here.
def auth(request):
sign = request.GET.get('signature')
echostr = request.GET.get('echostr')
timestamp = request.GET.get('timestamp')
nonce = request.GET.get('nonce')
token = '免費隧道裡的authtoken'
try:
check_signature(token, sign, timestamp, nonce)
except InvalidSignatureException:
raise
return HttpResponse(echostr)
上述準備做好後,可以點選測試公衆号裡的送出,結果如下圖:
三、課程小結
- 01、了解微信公衆号
- 02、内網穿透
- 03、完成開發都驗證