微信服務器接入流程

                                      微信服務器接入流程

1. 創建django項目,創建app,創建wechat路由


2. 寫路由對應的視圖函數,不能使用csrf_token驗證,兩種方式:
  1)取消該項目所有視圖函數csrf_token的驗證


2)使用@csrf_exemp修飾器修飾該函數



3. 如果需要使用到數據庫,後臺管理等,需要將數據庫連接配置好,收集後臺使用的靜態文件,上傳項目至自己服務器

4. 將服務器的nginx默認80端口改爲其他端口

修改nginx默認端口
  1.進入cd /etc/nginx/sites-enabled
  2.編輯default文件 vim default

5. 將該項目部署到服務器的80或者443端口,參考之前講的django項目部署,保證在瀏覽器中可以正常訪問該項目

6. 微信開發的基本配置


7. 填寫配置

url填寫:http://服務器外網IP:端口號/wechat 例如:http://116.122.112.48/wechat  http的端口號固定使用80,不可填寫其他。

Token:自主設置,這個token用於驗證開發者服務器。

8. 修改後臺視圖函數wechat的代碼

 

# 定義一個用於驗證微信請求的處理函數

def checkSignature(request):

    # 全局變量

    global TOKEN

    # 捕獲異常

    try:

        # 從request中提取參數

        signature = request.GET['signature']

        echostr = request.GET['echostr']

        timestamp = request.GET['timestamp']

        nonce = request.GET['nonce']

        # 1.將token、timestamp、nonce三個參數進行字典序排序

        tmpList = [TOKEN,timestamp,nonce]

        tmpList.sort()

        # 2.將三個參數字符串拼接成一個字符串進行sha1加密

        tmpstr = '%s%s%s'%tuple(tmpList)

        tmpstr = hashlib.sha1(tmpstr).hexdigest()

        # 3.開發者獲得加密後的字符串可與signature對比,標識該請求來源於微信

        if tmpstr == signature:

            # 返回隨機字符串

            return echostr

    except:

            # 返回None表示驗證失敗

        return  None

在wechat視圖函數中調用該函數,將request作爲參數傳入

@csrf_exempt

def wechat(request):

    # 判斷請求類型

    if request.method == 'GET':

        # 執行驗證函數

        result = checkSignature(request)

        return HttpResponse(result,content_type='text/plain')

 

Ps: 重新在服務器中運行項目

9. 在微信基本配置中,提交配置信息,如果出現提交成功,表示連接成功



發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章