Update app.py
Browse files
app.py
CHANGED
@@ -925,7 +925,29 @@ def get_order_monitop():
|
|
925 |
return json.dumps({"error": str(e)}), 500
|
926 |
|
927 |
|
928 |
-
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
929 |
@app.route('/get_order', methods=['POST'])
|
930 |
def get_order():
|
931 |
try:
|
@@ -933,15 +955,18 @@ def get_order():
|
|
933 |
|
934 |
# Читаем параметры из POST-запроса
|
935 |
data = request.json
|
936 |
-
|
937 |
vkid = data.get('vk_id', '')
|
938 |
order = data.get('order', '')
|
939 |
|
|
|
|
|
|
|
|
|
940 |
if key_admin != api_key_admin:
|
941 |
logging.error("Invalid admin key")
|
942 |
response = {order: 'not', 'online_date': '', 'crypto': ''}
|
943 |
return jsonify(response), 200
|
944 |
-
|
945 |
|
946 |
if not vkid or not order:
|
947 |
logging.error("VK ID and order are required")
|
@@ -983,7 +1008,6 @@ def get_order():
|
|
983 |
except Exception as e:
|
984 |
logging.error(f"An error occurred: {str(e)}")
|
985 |
return json.dumps({"error": str(e)}), 500
|
986 |
-
|
987 |
|
988 |
|
989 |
|
|
|
925 |
return json.dumps({"error": str(e)}), 500
|
926 |
|
927 |
|
928 |
+
|
929 |
+
# Функция для расшифровки данных для Чтение ордера по ключу и ВК ИД для приложения
|
930 |
+
def decrypt(encrypted_data, key):
|
931 |
+
# Добавляем заполнение до длины, кратной 16
|
932 |
+
def pad(s):
|
933 |
+
return s + (AES.block_size - len(s) % AES.block_size) * chr(AES.block_size - len(s) % AES.block_size)
|
934 |
+
|
935 |
+
# Удаляем заполнение
|
936 |
+
def unpad(s):
|
937 |
+
return s[:-ord(s[len(s)-1:])]
|
938 |
+
|
939 |
+
# Декодируем зашифрованные данные из base64
|
940 |
+
encrypted_data = base64.b64decode(encrypted_data)
|
941 |
+
|
942 |
+
# Создаем объект AES для расшифровки
|
943 |
+
cipher = AES.new(key.encode('utf-8'), AES.MODE_ECB)
|
944 |
+
|
945 |
+
# Расшифровываем данные
|
946 |
+
decrypted_data = unpad(cipher.decrypt(encrypted_data).decode('utf-8'))
|
947 |
+
|
948 |
+
return decrypted_data
|
949 |
+
|
950 |
+
# Чтение ордера по ключу и ВК ИД для приложения
|
951 |
@app.route('/get_order', methods=['POST'])
|
952 |
def get_order():
|
953 |
try:
|
|
|
955 |
|
956 |
# Читаем параметры из POST-запроса
|
957 |
data = request.json
|
958 |
+
encrypted_key_admin = data.get('key_admin', '')
|
959 |
vkid = data.get('vk_id', '')
|
960 |
order = data.get('order', '')
|
961 |
|
962 |
+
# Расшифровываем ключ администратора
|
963 |
+
key_admin = decrypt(encrypted_key_admin, crypto_key_sys)
|
964 |
+
|
965 |
+
# Проверка что key_admin совпадает с api_key_admin. Если совпадает продолжаем, если нет возвращаем "not"
|
966 |
if key_admin != api_key_admin:
|
967 |
logging.error("Invalid admin key")
|
968 |
response = {order: 'not', 'online_date': '', 'crypto': ''}
|
969 |
return jsonify(response), 200
|
|
|
970 |
|
971 |
if not vkid or not order:
|
972 |
logging.error("VK ID and order are required")
|
|
|
1008 |
except Exception as e:
|
1009 |
logging.error(f"An error occurred: {str(e)}")
|
1010 |
return json.dumps({"error": str(e)}), 500
|
|
|
1011 |
|
1012 |
|
1013 |
|