Код автоматически получает список активных ордеров (заказов на покупку или продажу предметов) с платформы DMarket через их API, а затем удаляет каждый из них. Он использует ваши API-ключи для авторизации, создаёт подпись для безопасного запроса, отправляет запрос на сервер DMarket, чтобы получить список ордеров, и, если они есть, по очереди удаляет их
Но после запуска кода : Ошибка получения ордеров: 404, {"Code":"Not Found","Message":"Not Found"}, ознакомился с документацией DmarketAPI, вроде все правильно но код не работает
import time
import json
import requests
from nacl.bindings import crypto_sign
# API ключи
PUBLIC_KEY = ""
SECRET_KEY = ""
ROOT_API_URL = "https://api.dmarket.com"
def sign_request(method, path, body=""):
nonce = str(int(time.time()))
string_to_sign = method + path + body + nonce
signature = crypto_sign(string_to_sign.encode(),
bytes.fromhex(SECRET_KEY))[:64].hex()
headers = {
"X-Api-Key": PUBLIC_KEY,
"X-Request-Sign": f"dmar ed25519 {signature}",
"X-Sign-Date": nonce,
"Content-Type": "application/json"
}
return headers
def get_user_orders():
path = "/marketplace-api/v1/user-orders"
headers = sign_request("GET", path)
response = requests.get(ROOT_API_URL + path, headers=headers)
if response.status_code == 200:
return response.json().get("orders", [])
else:
print(
f"[!] Ошибка получения ордеров: {response.status_code}, {response.text}")
return []
def delete_order(order_id):
path = f"/marketplace-api/v1/orders/{order_id}"
headers = sign_request("DELETE", path)
response = requests.delete(ROOT_API_URL + path, headers=headers)
if response.status_code == 200:
print(f"[-ORDER] Удалён ордер: {order_id}")
else:
print(
f"[!] Ошибка удаления ордера {order_id}: {response.status_code}, {response.text}")
def main():
print("\n Получение и удаление ордеров...")
orders = get_user_orders()
if not orders:
print("Нет активных ордеров.")
return
for order in orders:
order_id = order.get("orderId")
if order_id:
delete_order(order_id)
if __name__ == "__main__":
main()