<output id="qn6qe"></output>

    1. <output id="qn6qe"><tt id="qn6qe"></tt></output>
    2. <strike id="qn6qe"></strike>

      亚洲 日本 欧洲 欧美 视频,日韩中文字幕有码av,一本一道av中文字幕无码,国产线播放免费人成视频播放,人妻少妇偷人无码视频,日夜啪啪一区二区三区,国产尤物精品自在拍视频首页,久热这里只有精品12

      微信系列之公眾號Token驗證

      微信系列之公眾號Token驗證


      python3安裝web.py可以選擇安裝``pip install web.py==0.40.dev0`

      pycharm連接線上服務器開發

      1.打開pycharm > Tools > Deployment

      1.添加服務
      2.選擇SFTP
      3.配置信息
      1.遠程主機地址和商品
      2.根主機地址
      3.配置用戶名和密碼,可以選擇ssh文件
      4.**項目配置文件setting里設置以連接遠程解釋器


      token驗證

      官方文檔中map(sha1.update, list)是無法對sha1進行持續更新哈希值,實驗過后其值仍是空字符串的哈希的值,且sha1.update方法需要TypeError: Unicode-objects must be encoded before hashing

      微信signaturenonceechostr參數如下:

      參數 描述
      signature 微信加密簽名,signature結合了開發者填寫的token參數和請求中的timestamp參數、nonce參數。
      timestamp 時間戳
      nonce 隨機數
      echostr 隨機字符串

      微信圖片

      驗證方法
      1.服務器端獲取token,nonce,timestamp組成列表
      2.列表排序
      3.排序后的元素進行摘要
      4.摘要比對signature
      5.響應echostr

      # coding: utf-8
      # filename: handle.py
      import web
      import hashlib
      
      
      class Handle(object):
          def GET(self):
              """
              signature  微信加密簽名,signature 結合了開發者的
                          token和請求的 timestamp 與nonce
              token      時間戳
              nonce      隨機數
              echostr    隨機字符串
              :return:
              """
              try:
                  # 請求無參數,即非 token 驗證
                  data = web.input()
                  if len(data) == 0:
                      return "Hello, This is handle views"
                  signature = data.signature
                  nonce = data.nonce
                  timestamp = data.timestamp
                  echostr = data.echostr
                  token = "******"  # 基本配置的 token 填寫一樣的值
                  # 對 token timestamp nonce 進行排序后進行摘要
                  sha1_list = [token, timestamp, nonce]
                  sha1_list.sort()
                  sha1 = hashlib.sha1()
                  list(map(lambda s: sha1.update(s.encode('utf-8')), sha1_list))
                  hashcode = sha1.hexdigest()
                  print('func: hashcode, signature: {}  {}'.format(hashcode, signature))
                  if hashcode == signature:
                      return echostr
                  else:
                      return ""
              except Exception as e:
                  return e.reason
      
      

      參考資料

      posted @ 2019-03-09 00:40  朝行  閱讀(4521)  評論(0)    收藏  舉報
      主站蜘蛛池模板: 亚洲精品一区国产精品| 色综合亚洲一区二区小说| 亚洲中文字幕精品久久| 成人午夜免费无码视频在线观看 | 无码一区二区三区av在线播放| 日本污视频在线观看| 亚洲欧美日韩精品久久| 福利一区二区视频在线| 毛片内射久久久一区| 99在线精品视频观看免费| 国产自拍偷拍视频在线观看| 麻豆一区二区三区精品视频| 人人人澡人人肉久久精品| 日韩精品三区二区三区| 欧美国产综合视频| 欧美和黑人xxxx猛交视频| 亚洲欧美日韩人成在线播放| 精品人妻伦一二二区久久| 国产一区二区三区色老头| 久久亚洲av综合悠悠色| 国产色无码专区在线观看| 久爱无码精品免费视频在线观看| 国内精品久久久久电影院| 国产国产午夜福利视频| 亚洲精品国产字幕久久麻豆| 成人拍拍拍无遮挡免费视频| 亚洲色欲色欲大片www无码| 久久精品视频一二三四区| 亚洲欧洲日韩精品在线| 亚洲综合色成在线播放| 国产亚洲精品一区二区不卡| 色九九视频| 日本久久精品一区二区三区| 熟女一区二区中文字幕| 中文字幕午夜福利片午夜福利片97 | 亚洲卡1卡2卡3精品| 精品九九人人做人人爱| 中国极品少妇videossexhd| 一本久道久久综合中文字幕| 国产午夜福利在线视频| 少妇人妻互换不带套|