1.安裝配置Python
CentOS7 自帶 Python2.7, 我用的是Python3.6.5,需要CentOS7安裝配置Python3並和Python2共存的,請看以下教程:
2.安裝web.py
pip install web.py
可以換國內源下載,速度比較快
3.安裝libxml2, libxslt, lxml python
yum install libxml2
yum install libxslt
yum install lxml python
4.編寫服務器代碼
我們寫兩個模塊來處理驗證token,一個main.py,一個handle.py
# main.py
import web
from handle import Handle
urls = (
'/wx', 'Handle' # 映射
)
if __name__ == '__main__':
app = web.application(urls, globals())
app.run()
# handle.py
import hashlib
import web
class Handle(object):
def POST(self):
pass
# get方法,驗證token
def GET(self):
try:
data = web.input()
if len(data) == 0:
return "success!"
signature = data.signature
timestamp = data.timestamp
nonce = data.nonce
echostr = data.echostr
token = "demo" # 請按照公眾平台官網\基本配置中信息填寫,兩個token保持一致
list = [token, timestamp, nonce]
list.sort()
sha1 = hashlib.sha1()
sha1.update(list[0].encode("utf-8"))
sha1.update(list[1].encode("utf-8"))
sha1.update(list[2].encode("utf-8"))
hashcode = sha1.hexdigest() # 獲取加密串
# 驗證
print("handle/GET func: hashcode, signature: ", hashcode, signature)
if hashcode == signature:
return echostr
else:
return ""
except Exception as Argument:
return Argument
5.運行main.py文件,查看瀏覽器是否可以訪問
執行命令,注意要開放80端口,端口不要被占用
python main.py 80
打開瀏覽器訪問url:http://外網IP/wx
如果成功網頁會顯示get方法中返回的字符串: success!
6.登錄微信公眾平台填寫服務器配置信息
登錄微信公眾平台,網頁左下角開發欄點擊基本配置,如圖:
然后根據提示填入相關信息,最后點擊提交按鈕就好啦
配置成功后要在服務器配置那里點一下啟用,如圖,可隨時更改配置,啟用或者停用服務器
過程中遇到了各種各樣的坑,有空再來更新。。