知識
不管是網(wǎng)站,軟件還是小程序,都要直接或間接能為您產生價值,我們在追求其視覺表現(xiàn)的同時,更側重于功能的便捷,營銷的便利,運營的高效,讓網(wǎng)站成為營銷工具,讓軟件能切實提升企業(yè)內部管理水平和效率。優(yōu)秀的程序為后期升級提供便捷的支持!
微信公眾號 Token驗證失效 問題
發(fā)表時間:2020-10-17
發(fā)布人:葵宇科技
瀏覽次數(shù):85
最近在學習微信公眾號的時候遇到了一個問題:Token驗證失效
話不多說,看代碼:handle.py
import hashlib
import web
class Handle(object):
def GET(self):
try:
data = web.input()
if len(data) == 0:
return "hello, this is handle view"
# 微信服務器獲取到的數(shù)據(jù)
# 生成方式是將nonce、timestamp和token(也就是我們在網(wǎng)頁中配置的TOKNE)
# 三個字符串按照字典序排序后,對排序后得到的字符串數(shù)組使用哈希加密算法得到。
signature = data.signature
# 時間戳
timestamp = data.timestamp
# 隨機數(shù)
nonce = data.nonce
# 隨機數(shù),我們將所得到的參數(shù),按前面的方式生成生成hashcode,將其與signature進行比對,
# 若相等返回echostr,否則返回空
echostr = data.echostr
token = "xxxx" # 請按照公眾平臺官網(wǎng)\基本配置中信息填寫
list = [token, timestamp, nonce]
# 按字典順序排序
list.sort()
# 哈希算法加密list得到hashcode
sha1 = hashlib.sha1()
# 注釋掉
# map(sha1.update, list)
# 新增代碼
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
官網(wǎng)用的是python2.7,我本地裝的是python3。自己也忽視了map()函數(shù)的不同,搞了半天也沒找到錯誤在哪里,后來晚上看到這篇文章,終于解決了。
在此記錄一下,希望對你們有所幫助。
相關案例查看更多
相關閱讀
- 云南百度小程序
- 模版消息
- 云南省建設廳官方網(wǎng)站
- 云南小程序開發(fā)制作公司
- 云南軟件定制公司
- 云南網(wǎng)站開發(fā)
- 大理網(wǎng)站建設公司
- 報廢車回收管理軟件
- 電商網(wǎng)站建設
- 云南網(wǎng)站建設電話
- 云南網(wǎng)站制作
- 百度小程序公司
- 昆明做網(wǎng)站
- 云南小程序商城
- 海報插件
- 云南網(wǎng)站建設靠譜公司
- 百度推廣
- 報廢車管理
- 軟件開發(fā)
- 英文網(wǎng)站建設公司
- 搜索排名
- 汽車報廢回收管理系統(tǒng)
- 云南小程序哪家好
- 云南網(wǎng)站建設哪家好
- 河南小程序制作
- 跳轉小程序
- 汽車報廢軟件
- 楚雄小程序開發(fā)
- 小程序開發(fā)課程
- 做小程序被騙