Update app.py
Browse files
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 |
-
|
1043 |
-
|
1044 |
-
|
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'}
|