1. 程式人生 > >“微信公眾號-設置-基本配置”的配置

“微信公眾號-設置-基本配置”的配置

size resource sock 打開 吐槽一下 urn view 微信公眾 com

這個一定要吐槽一下,雖然沒什麽用。如果想改,早就改了。騰訊家大業大,不怎麽在乎個別用戶的吐槽。而且,開發者,並不是用戶。寫文檔的兄弟勿怪,雖然我覺得你不會看到。之所以說這些,是因為,騰訊一向以完美的產品稱霸天下。一個頁面的文字就能挑出來這麽多問題,是不是有點說不過去?

第一,模模糊糊感覺,似乎要做微信開發,就得啟用開發者模式,然後“開發”菜單下有個“基本配置”菜單,上面的一節是“公眾號開發信息”,這個相對比較簡單,一看就懂。

問題在下面那一節,叫個“服務器配置(未啟用)”,然後沒有任何說明,有沒有覺得這個說法太籠統了?什麽叫服務器配置?網上大量關於這個問題的詢問。其實關於這個功能的說明,藏在了那個“啟用”按鈕的提示裏,點“啟用”時,會有一個說明。騰訊應當把說明放在頁面的顯示位置。

第二,這個頁面沒有任何能夠指向幫助的鏈接,你得去點“修改配置”按鈕,才能看到一些幫助的鏈接。

同樣的,網上有大量的關於那個URL是什麽的提問。

打開第一個鏈接“接入指南”,會跳到“微信公眾平臺技術文檔”頁的首頁,前五項是一些常規性的說明,對於一個新手來講,基本沒用。重要的是第六項,“入門指引”,點擊進入,是一個長長的目錄,這倒無可厚非,接下來,我們會看到的一定是一個技術大牛寫的文檔,假設用戶具有相當的技術基礎,且文字相當簡練,確實不是給小白看的。如下,中括號裏是丟掉的字。

公眾平臺的技術文檔【的】目的【是】為了簡明扼要的交代接口的使用,語句難免苦澀難懂,甚至對於不同的讀者,有語意歧義。萬事皆是入門難,對於剛入門的開發者【來】講,更是難上加難,往往看了半天wiki,就是不懂說的什麽鬼。

第一步,首先推了一下騰訊的雲服務器。

這無可厚非,理所當然。問題是那句“學生黨註意:騰訊公司為在讀高校生提供了雲+校園計口,1元/月即可使用騰訊雲。”,其中的鏈接已然失效。

第二步,搭建服務

“以web.py網絡框【架】,python,騰訊雲服務器為例介紹。”

接下來:

“3)如果出現“socket.error: No socket could be created“錯誤信息,可能為80端口號被占用,可能是沒有權限,請自行查詢解決辦法。如果遇見其他錯誤信息,請到web.py官方文檔,學習webpy 框架3執行命令:sudo python main.py 80 。”


後面那部分,

應當是“學習webpy 框架

執行命令:sudo python main.py 80”

接下來:

現在選擇提交肯定是驗證token失敗,因為還需要完成代碼邏輯”,這一句應當往上移,放到上面的說明中,相信不少人看完上一步以後,就嘗試提交,搞半天失敗以後,再往下看,發現還有這麽一句,會不會牙根癢癢。

接下來的Python代碼,應當是python2版本,我改成了python3

# -*- coding: utf-8 -*-
# filename: handle.py

import hashlib
import web

class Handle(object):
    def GET(self):
        #try:
            data = web.input()
            print(data)
            if len(data) == 0:
                return "hello, this is handle view"
            signature = data.signature

            signature = signature
            print("signature:",data.signature)

            timestamp = data.timestamp

            timestamp = bytes(timestamp,utf-8)
            print("timestamp:",data.timestamp)
                      
            nonce = data.nonce
            nonce = bytes(nonce,utf-8)
            print("nonce:",data.nonce)

            echostr = data.echostr
            echostr = bytes(echostr,utf-8)
            print("echostr:",data.nonce)

            token = bytes("sabre",utf-8) #請按照公眾平臺官網\基本配置中信息填寫
            print("token:",token)


            list1 = [token, timestamp, nonce]
            list1.sort()
            print("list1:", list1)
            sha1 = hashlib.sha1()

            #map(sha1.update, list1)
            sha1.update(list1[0])
            sha1.update(list1[1])
            sha1.update(list1[2])
            
            hashcode = sha1.hexdigest()
            print("handle/GET func: hashcode, signature: ", hashcode, signature)
            print("hashcode:",hashcode)
            print("signatue:",signature)            
            if hashcode == signature:
                print("相等")

                return echostr
            else:
                print("不等")
                return ""
        #except (Exception) as Argument:
        #    return Argument

最開始總是報“token驗證失敗”,我做了各種測試各種輸出,最後,把map(sha1.update, list1)改成了

sha1.update(list1[0])
sha1.update(list1[1])
sha1.update(list1[2])

才生效,驗證通過。

p2的map函數和p3的有所不同,至於哪裏不同,有待詳細了解。目前以解決問題為主要工作。





“微信公眾號-設置-基本配置”的配置