partner-core/call_sale_api.py

62 lines
2.6 KiB
Python
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

import uuid
import requests
import json
# Конфигурация API
BASE_URL = "http://127.0.0.1:8001"
API_KEY = "672a1437-70e8-461f-9bff-20f5ce4a023d"
REF = "9bd1a6bd-98e1-48f4-a120-3b3d016011c0"
# Данные для запроса на создание продажи
# Замените эти значения на актуальные для вашей продажи
sale_data = {
"cost": 100.50, # Стоимость продажи
"ref": REF, # Ваш реферальный код
"sale_id": str(uuid.uuid4()), # Уникальный идентификатор продажи для вашей компании
"category": 1 # id категории (например, 1 - basic)
}
# Эндпоинты
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())