DmitrMakeev commited on
Commit
55d9963
·
verified ·
1 Parent(s): bc7d848

Update app.py

Browse files
Files changed (1) hide show
  1. app.py +11 -23
app.py CHANGED
@@ -1027,6 +1027,7 @@ def is_valid(*, query: dict, secret: str) -> bool:
1027
  return query.get("sign") == decoded_hash_code
1028
 
1029
  # Чтение ордера по ключу и ВК ИД для приложения
 
1030
  @app.route('/get_order', methods=['POST'])
1031
  def get_order():
1032
  try:
@@ -1035,29 +1036,15 @@ def get_order():
1035
  # Читаем параметры из POST-запроса
1036
  vkid = request.form.get('vk_id', '')
1037
  order = request.form.get('order', '')
1038
- apps_id = request.form.get('apps_id', '') # ИД ВК приложения
1039
- sign = request.form.get('sign', '') # Подпись
1040
-
1041
- # Проверка на обязательные параметры
1042
- if not vkid or not order or not apps_id or not sign:
1043
- logging.error("VK ID, order, apps_id, and sign are required")
1044
- return json.dumps({"error": "VK ID, order, apps_id, and sign are required"}), 400
1045
-
1046
- # Валидация подписи
1047
- secret_key = api_key_apps_vk.get(apps_id)
1048
- if not secret_key:
1049
- logging.error(f"Secret key not found for apps_id: {apps_id}")
1050
- return json.dumps({"error": "Invalid apps_id"}), 400
1051
-
1052
- # Здесь должна быть логика проверки подписи
1053
- # Для примера предполагаем, что подпись — это хэш от данных запроса, сгенерированный с помощью secret_key
1054
- # Псевдокод для проверки подписи:
1055
- expected_sign = generate_sign(vkid, order, secret_key) # Здесь предполагаемая функция для генерации подписи
1056
- if sign != expected_sign:
1057
- logging.error(f"Invalid sign. Expected {expected_sign}, got {sign}")
1058
- return json.dumps({"error": "Invalid sign"}), 400
1059
-
1060
- # Если подпись валидна, продолжаем обработку
1061
  conn = sqlite3.connect(DATABASE_NEW)
1062
  cursor = conn.cursor()
1063
 
@@ -1065,6 +1052,7 @@ def get_order():
1065
  cursor.execute("SELECT orders FROM contacts WHERE vk_id = ?", (vkid,))
1066
  result = cursor.fetchone()
1067
 
 
1068
  if not result:
1069
  logging.error(f"VK ID {vkid} not found")
1070
  response = {order: 'not'}
 
1027
  return query.get("sign") == decoded_hash_code
1028
 
1029
  # Чтение ордера по ключу и ВК ИД для приложения
1030
+ # Функция для для Чтение ордера для приложения
1031
  @app.route('/get_order', methods=['POST'])
1032
  def get_order():
1033
  try:
 
1036
  # Читаем параметры из POST-запроса
1037
  vkid = request.form.get('vk_id', '')
1038
  order = request.form.get('order', '')
1039
+ apps_id = request.form.get('apps_id', '') # Сюда придёт ИД ВК приложения, значение будет ключем для поиска Защищённого ключа в переменной 'api_key_apps_vk'
1040
+ sign = request.form.get('sign', '') # Значение sign полученное при запуске приложения
1041
+
1042
+ # надо проверку подленности добавить, находим в переменной 'api_key_apps_vk' Защищённый ключ по значению apps_id и проверяем подпись sign
1043
+ # Если подленная продолжаем действие, если нет сразу возвращаем в ответе not
1044
+ if not vkid or not order:
1045
+ logging.error("VK ID and order are required")
1046
+ return json.dumps({"error": "VK ID and order are required"}), 400
1047
+
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1048
  conn = sqlite3.connect(DATABASE_NEW)
1049
  cursor = conn.cursor()
1050
 
 
1052
  cursor.execute("SELECT orders FROM contacts WHERE vk_id = ?", (vkid,))
1053
  result = cursor.fetchone()
1054
 
1055
+ # Если запись по vk_id не найдена, возвращаем значение "not" для ордера
1056
  if not result:
1057
  logging.error(f"VK ID {vkid} not found")
1058
  response = {order: 'not'}