DmitrMakeev commited on
Commit
af4eca3
·
verified ·
1 Parent(s): 96ba60b

Update app.py

Browse files
Files changed (1) hide show
  1. app.py +19 -27
app.py CHANGED
@@ -1023,44 +1023,35 @@ def is_valid(*, query: dict, secret: str) -> bool:
1023
  decoded_hash_code = hash_code.decode('utf-8')[:-1].replace('+', '-').replace('/', '_')
1024
  return query.get("sign") == decoded_hash_code
1025
 
1026
- # Маршрут для получения ордера
1027
  @app.route('/get_order', methods=['POST'])
1028
  def get_order():
1029
  try:
1030
  logging.debug("Starting get_order")
1031
 
1032
- # Читаем параметры из POST-запроса и выводим их в лог
1033
  vkid = request.form.get('vk_id', '')
1034
  order = request.form.get('order', '')
1035
- apps_id = request.form.get('apps_id', '') # apps_id приходит в виде строки
1036
- sign = request.form.get('sign', '') # Значение sign полученное при запуске приложения
1037
-
1038
- logging.debug(f"Received vk_id: {vkid}")
1039
- logging.debug(f"Received order: {order}")
1040
- logging.debug(f"Received apps_id: {apps_id}")
1041
- logging.debug(f"Received sign: {sign}")
1042
 
1043
- # Выводим значение переменной api_key_apps_vk перед проверкой
1044
- logging.debug(f"api_key_apps_vk contents: {api_key_apps_vk}")
 
 
1045
 
1046
- # Проверка подлинности подписи
1047
  if apps_id not in api_key_apps_vk:
1048
- logging.error(f"Invalid apps_id: {apps_id}")
1049
- return jsonify({order: 'not'}), 200
1050
 
1051
  secret = api_key_apps_vk[apps_id]
1052
- logging.debug(f"Using secret for validation: {secret}")
1053
-
1054
- query_params = request.form.to_dict()
1055
- logging.debug(f"Query params for validation: {query_params}")
1056
 
 
 
1057
  if not is_valid(query=query_params, secret=secret):
1058
  logging.error("Invalid signature")
1059
- return jsonify({order: 'not'}), 200
1060
-
1061
- if not vkid or not order:
1062
- logging.error("VK ID and order are required")
1063
- return jsonify({"error": "VK ID and order are required"}), 400
1064
 
1065
  # Подключаемся к базе данных
1066
  conn = sqlite3.connect(DATABASE_NEW)
@@ -1076,12 +1067,13 @@ def get_order():
1076
  response = {order: 'not'}
1077
  return jsonify(response), 200
1078
 
1079
- # Обработка значений в базе
1080
  shop_st = result[0] if result[0] else '{}'
1081
- logging.debug(f"Value from database for vk_id {vkid}: {shop_st}")
 
1082
 
1083
  # Ищем значение по ключу order
1084
- value = shop_st.get(order, 'not')
1085
 
1086
  # Возвращаем данные из столбца
1087
  response = {order: value}
@@ -1089,7 +1081,7 @@ def get_order():
1089
 
1090
  except Exception as e:
1091
  logging.error(f"An error occurred: {str(e)}")
1092
- return jsonify({"error": str(e)}), 500
1093
 
1094
 
1095
 
 
1023
  decoded_hash_code = hash_code.decode('utf-8')[:-1].replace('+', '-').replace('/', '_')
1024
  return query.get("sign") == decoded_hash_code
1025
 
1026
+ # Чтение ордера по ключу и ВК ИД для приложения
1027
  @app.route('/get_order', methods=['POST'])
1028
  def get_order():
1029
  try:
1030
  logging.debug("Starting get_order")
1031
 
1032
+ # Читаем параметры из POST-запроса
1033
  vkid = request.form.get('vk_id', '')
1034
  order = request.form.get('order', '')
1035
+ apps_id = request.form.get('apps_id', '') # Сюда придёт ИД ВК приложения
1036
+ sign = request.form.get('sign', '') # Подпись приложения
 
 
 
 
 
1037
 
1038
+ # Проверяем наличие обязательных параметров
1039
+ if not vkid or not order:
1040
+ logging.error("VK ID and order are required")
1041
+ return json.dumps({"error": "VK ID and order are required"}), 400
1042
 
1043
+ # Проверка подписи для приложения
1044
  if apps_id not in api_key_apps_vk:
1045
+ logging.error("Invalid apps_id")
1046
+ return json.dumps({"error": "Invalid apps_id"}), 400
1047
 
1048
  secret = api_key_apps_vk[apps_id]
 
 
 
 
1049
 
1050
+ # Проверяем подпись
1051
+ query_params = request.form.to_dict()
1052
  if not is_valid(query=query_params, secret=secret):
1053
  logging.error("Invalid signature")
1054
+ return json.dumps({"error": "Invalid signature"}), 400
 
 
 
 
1055
 
1056
  # Подключаемся к базе данных
1057
  conn = sqlite3.connect(DATABASE_NEW)
 
1067
  response = {order: 'not'}
1068
  return jsonify(response), 200
1069
 
1070
+ # Извлекаем данные из результата
1071
  shop_st = result[0] if result[0] else '{}'
1072
+ shop_st_data = json.loads(shop_st)
1073
+ logging.debug(f"Existing record found. Loaded JSON: {shop_st_data}")
1074
 
1075
  # Ищем значение по ключу order
1076
+ value = shop_st_data.get(order, 'not')
1077
 
1078
  # Возвращаем данные из столбца
1079
  response = {order: value}
 
1081
 
1082
  except Exception as e:
1083
  logging.error(f"An error occurred: {str(e)}")
1084
+ return json.dumps({"error": str(e)}), 500
1085
 
1086
 
1087