天天看點

Python學習筆記:7.5.6 Django快速建站 - Web開發實戰 微信公衆号開發1

前言:本文是學習網易微專業的《python全棧工程師 - Django快速建站》課程的筆記,歡迎學習交流。同時感謝老師們的精彩傳授!

一、課程目标

  • 了解微信公衆号開發流程
  • 實作内網穿透
  • 完成微信公衆号開發驗證

二、詳情解讀

2.1.微信公衆号開發

2.1.1.微信公衆号

  • 訂閱号:為媒體和個人提供的一種資訊傳播方式,主要偏于為使用者傳達資訊(類似報紙雜志),主要的定位是閱讀,每天可以群發1條消息。
  • 服務号:為企業,政府或組織提供對使用者進行服務,主要偏于服務互動。
  • 企業号:為企業、政府、事業機關,實作生産管理和協作營運的移動化,主要用于公司内部通訊使用,旨在為使用者提供移動辦公,需要先有成員的通訊資訊驗證才可以關注成功企業微信。

2.1.2.微信公衆号背景管理

  • 沒有針對公衆号做開發
    Python學習筆記:7.5.6 Django快速建站 - Web開發實戰 微信公衆号開發1
  • 針對公衆号進行開發

2.1.3.業務流程

Python學習筆記:7.5.6 Django快速建站 - Web開發實戰 微信公衆号開發1
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:

建立免費隧道

Python學習筆記:7.5.6 Django快速建站 - Web開發實戰 微信公衆号開發1

step1

:免費購買隧道:

Python學習筆記:7.5.6 Django快速建站 - Web開發實戰 微信公衆号開發1

Step2

: 配置隧道

Python學習筆記:7.5.6 Django快速建站 - Web開發實戰 微信公衆号開發1
Python學習筆記:7.5.6 Django快速建站 - Web開發實戰 微信公衆号開發1

這裡要注意:由于是免費隧道,域名/端口會随機且不定時強制更換。是以,每次啟動的時候,要檢查一下是否有更換,有則跟着更換。

Python學習筆記:7.5.6 Django快速建站 - Web開發實戰 微信公衆号開發1
  • 在本地執行

    Linux/Mac OS

# 獲得權限
% chmode a+x natapp  # 這個在軟體natapp同一個目錄下執行的指令
% ./natapp # 顯示認證錯誤
% ./natapp -authtoken your-token 
           

如果有顯示下面的結果,則表示本地執行成功:

Python學習筆記:7.5.6 Django快速建站 - Web開發實戰 微信公衆号開發1
  • 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
           
  • wechatpy

    官網:http://docs.wechatpy.org/zh_CN/master/
    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)
           

上述準備做好後,可以點選測試公衆号裡的送出,結果如下圖:

Python學習筆記:7.5.6 Django快速建站 - Web開發實戰 微信公衆号開發1

三、課程小結

  • 01、了解微信公衆号
  • 02、内網穿透
  • 03、完成開發都驗證

繼續閱讀