63 lines
2.7 KiB
Python
63 lines
2.7 KiB
Python
import uuid
|
||
import requests
|
||
import json
|
||
|
||
# Конфигурация API
|
||
BASE_URL = "http://127.0.0.1:8001"
|
||
API_KEY = "de058226-37d3-4d0e-a483-3c2a7fac3573"
|
||
REF = "0d9aaa96-80e6-424c-84c9-ff70a6eb915e"
|
||
|
||
# Данные для запроса на создание продажи
|
||
# Замените эти значения на актуальные для вашей продажи
|
||
sale_data = {
|
||
"cost": 100, # Стоимость продажи
|
||
"ref": REF, # Ваш реферальный код
|
||
"sale_id": str(uuid.uuid4()), # Уникальный идентификатор продажи для вашей компании
|
||
"category": "vip", # название категории (например, 'basic', 'premium', 'vip')
|
||
"group_sale_id": str(uuid.uuid4()) # уникальный идентификатор группы продаж
|
||
}
|
||
|
||
# Эндпоинты
|
||
token_endpoint = f"{BASE_URL}/token"
|
||
sale_endpoint = f"{BASE_URL}/sale"
|
||
|
||
# Шаг 1: Получение JWT токена
|
||
print(f"Отправка запроса на получение токена на {token_endpoint}")
|
||
token_headers = {
|
||
"X-API-Key": API_KEY,
|
||
"Content-Type": "application/json"
|
||
}
|
||
|
||
try:
|
||
token_response = requests.post(token_endpoint, headers=token_headers)
|
||
token_response.raise_for_status()
|
||
|
||
token_data = token_response.json()
|
||
jwt_token = token_data["access_token"]
|
||
print("JWT токен успешно получен.")
|
||
|
||
except requests.exceptions.RequestException as e:
|
||
print(f"Произошла ошибка при получении токена: {e}")
|
||
if hasattr(e, 'response') and e.response is not None:
|
||
print("Тело ответа с ошибкой:", e.response.json())
|
||
exit() # Прерываем выполнение, если не удалось получить токен
|
||
|
||
# Шаг 2: Вызов эндпоинта /sale с использованием полученного JWT токена
|
||
headers_with_jwt = {
|
||
"Authorization": f"Bearer {jwt_token}",
|
||
"Content-Type": "application/json"
|
||
}
|
||
|
||
print(f"Отправка запроса на {sale_endpoint} с данными: {sale_data}")
|
||
|
||
try:
|
||
sale_response = requests.post(sale_endpoint, headers=headers_with_jwt, data=json.dumps(sale_data))
|
||
sale_response.raise_for_status() # Вызовет исключение для ошибок HTTP (4xx или 5xx)
|
||
|
||
print("Статус ответа:", sale_response.status_code)
|
||
print("Тело ответа:", sale_response.json())
|
||
|
||
except requests.exceptions.RequestException as e:
|
||
print(f"Произошла ошибка при вызове API sale: {e}")
|
||
if hasattr(e, 'response') and e.response is not None:
|
||
print("Тело ответа с ошибкой:", e.response.json()) |