DmitrMakeev commited on
Commit
d4f7767
·
verified ·
1 Parent(s): 4b2b92d

Update app.py

Browse files
Files changed (1) hide show
  1. app.py +7 -3
app.py CHANGED
@@ -1019,11 +1019,15 @@ def get_order_monitop():
1019
  def is_valid(*, query: dict, secret: str) -> bool:
1020
  """Check VK Apps signature"""
1021
  logging.debug(f"Checking signature for query: {query}")
1022
- vk_subset = OrderedDict(sorted(x for x in query.items() if x[0][:3] == "vk_"))
1023
- logging.debug(f"Filtered VK params: {vk_subset}")
1024
- hash_code = b64encode(HMAC(secret.encode(), urlencode(vk_subset, doseq=True).encode(), sha256).digest())
 
 
1025
  decoded_hash_code = hash_code.decode('utf-8')[:-1].replace('+', '-').replace('/', '_')
1026
  logging.debug(f"Calculated signature: {decoded_hash_code}")
 
 
1027
  return query.get("sign") == decoded_hash_code
1028
 
1029
  # Чтение ордера по ключу и ВК ИД для приложения
 
1019
  def is_valid(*, query: dict, secret: str) -> bool:
1020
  """Check VK Apps signature"""
1021
  logging.debug(f"Checking signature for query: {query}")
1022
+
1023
+ # Если у нас нет параметров, начинающихся с 'vk_', просто используем все параметры запроса
1024
+ hash_code = b64encode(HMAC(secret.encode(), urlencode(query, doseq=True).encode(), sha256).digest())
1025
+
1026
+ # Декодируем base64 и заменяем символы
1027
  decoded_hash_code = hash_code.decode('utf-8')[:-1].replace('+', '-').replace('/', '_')
1028
  logging.debug(f"Calculated signature: {decoded_hash_code}")
1029
+
1030
+ # Сравниваем подпись из запроса с вычисленной
1031
  return query.get("sign") == decoded_hash_code
1032
 
1033
  # Чтение ордера по ключу и ВК ИД для приложения