DmitrMakeev commited on
Commit
da12f0e
·
verified ·
1 Parent(s): 207741a

Update app.py

Browse files
Files changed (1) hide show
  1. app.py +22 -48
app.py CHANGED
@@ -1039,77 +1039,51 @@ def is_valid(*, query: dict, secret: str) -> bool:
1039
  return query["sign"] == decoded_hash_code
1040
 
1041
  # Маршрут для получения заказа
 
1042
  @app.route('/get_order', methods=['POST'])
1043
  def get_order():
1044
  try:
1045
- logging.debug("Начало обработки запроса get_order")
1046
 
1047
- # Чтение параметров из POST-запроса
1048
- url = request.form.get('fullUrl', '') # Получаем полный URL из запроса
1049
  vkid = request.form.get('vk_id', '')
1050
  order = request.form.get('order', '')
1051
- apps_id = request.form.get('apps_id', '')
1052
-
1053
- # Логирование параметров запроса
1054
- logging.debug(f"Полученные параметры: vk_id: {vkid}, order: {order}, apps_id: {apps_id}")
1055
- logging.debug(f"Полный URL, полученный в запросе: {url}") # Логируем url
1056
 
1057
- # Проверка наличия параметров
1058
- if not url or not vkid or not order or not apps_id:
1059
- logging.error("Отсутствуют обязательные параметры")
1060
- return jsonify({"error": "Missing required parameters"}), 400
 
1061
 
1062
- # Получение ключей приложения
1063
- api_key_apps_vk_dict = json.loads(api_key_apps_vk)
1064
-
1065
- # Получение секретного ключа
1066
- secret_key = api_key_apps_vk_dict.get(apps_id)
1067
- if not secret_key:
1068
- logging.error(f"Не найден секретный ключ для приложения с ID {apps_id}")
1069
- return jsonify({"error": "Secret key not found for app ID"}), 400
1070
-
1071
- # Разбираем параметры из URL
1072
- query_params = dict(parse_qsl(urlparse(url).query, keep_blank_values=True))
1073
-
1074
- # Проверка подписи
1075
- if not is_valid(query=query_params, secret=secret_key):
1076
- logging.error(f"Неверная подпись для запроса: {url}")
1077
- return jsonify({"error": "Invalid signature"}), 400
1078
-
1079
- # Подключение к базе данных
1080
- conn = sqlite3.connect('your_database.db')
1081
  cursor = conn.cursor()
1082
 
1083
- # Поиск записи по vk_id
1084
  cursor.execute("SELECT orders FROM contacts WHERE vk_id = ?", (vkid,))
1085
  result = cursor.fetchone()
1086
 
1087
- # Если vk_id не найден
1088
  if not result:
1089
- logging.error(f"VK ID {vkid} не найден в базе данных")
1090
- return jsonify({order: 'not'}), 200
 
1091
 
1092
- # Извлечение данных о заказах
1093
  shop_st = result[0] if result[0] else '{}'
1094
- try:
1095
- shop_st_data = json.loads(shop_st)
1096
- except json.JSONDecodeError:
1097
- logging.error(f"Не удалось декодировать JSON для orders: {shop_st}")
1098
- return jsonify({order: 'not'}), 200
1099
-
1100
- logging.debug(f"Существующее значение JSON: {shop_st_data}")
1101
 
1102
- # Поиск значения по ключу order
1103
  value = shop_st_data.get(order, 'not')
1104
 
1105
- # Возврат результата
1106
  response = {order: value}
1107
  return jsonify(response), 200
1108
 
1109
  except Exception as e:
1110
- logging.error(f"Произошла ошибка: {str(e)}")
1111
- return jsonify({"error": str(e)}), 500
1112
-
1113
 
1114
 
1115
 
 
1039
  return query["sign"] == decoded_hash_code
1040
 
1041
  # Маршрут для получения заказа
1042
+ # Функция для для Чтение ордера для приложения
1043
  @app.route('/get_order', methods=['POST'])
1044
  def get_order():
1045
  try:
1046
+ logging.debug("Starting get_order")
1047
 
1048
+ # Читаем параметры из POST-запроса
 
1049
  vkid = request.form.get('vk_id', '')
1050
  order = request.form.get('order', '')
1051
+ apps_id = request.form.get('apps_id', '') # Сюда придёт ИД ВК приложения, значение будет ключем для поиска Защищённого ключа в переменной 'api_key_apps_vk'
1052
+ sign = request.form.get('sign', '') # Значение sign полученное при запуске приложения
 
 
 
1053
 
1054
+ # надо проверку подленности добавить, находим в переменной 'api_key_apps_vk' Защищённый ключ по значению apps_id и проверяем подпись sign
1055
+ # Если подленная продолжаем действие, если нет сразу возвращаем в ответе not
1056
+ if not vkid or not order:
1057
+ logging.error("VK ID and order are required")
1058
+ return json.dumps({"error": "VK ID and order are required"}), 400
1059
 
1060
+ conn = sqlite3.connect(DATABASE_NEW)
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1061
  cursor = conn.cursor()
1062
 
1063
+ # Ищем запись по vk_id
1064
  cursor.execute("SELECT orders FROM contacts WHERE vk_id = ?", (vkid,))
1065
  result = cursor.fetchone()
1066
 
1067
+ # Если запись по vk_id не найдена, возвращаем значение "not" для ордера
1068
  if not result:
1069
+ logging.error(f"VK ID {vkid} not found")
1070
+ response = {order: 'not'}
1071
+ return jsonify(response), 200
1072
 
 
1073
  shop_st = result[0] if result[0] else '{}'
1074
+ shop_st_data = json.loads(shop_st)
1075
+ logging.debug(f"Existing record found. Loaded JSON: {shop_st_data}")
 
 
 
 
 
1076
 
1077
+ # Ищем значение по ключу order
1078
  value = shop_st_data.get(order, 'not')
1079
 
1080
+ # Возвращаем данные из столбца
1081
  response = {order: value}
1082
  return jsonify(response), 200
1083
 
1084
  except Exception as e:
1085
+ logging.error(f"An error occurred: {str(e)}")
1086
+ return json.dumps({"error": str(e)}), 500
 
1087
 
1088
 
1089