Ver Mensaje Individual
  #1  
Antiguo 15-09-2025
navbuoy navbuoy is offline
Miembro
 
Registrado: mar 2024
Posts: 360
Reputación: 3
navbuoy Va por buen camino
trasteando con Binance (ordenes de compra venta de BTC)

hola, a ver si neftali o alguno de vosotros puede ayudarme con esto, estoy haciendo un programa para hacer pruebas con Binance API

esta es la url del TESTNET: https://testnet.binance.vision/

el problema es que utilizo el IdHTTP para enviar la peticion pero me dice 400 Bad Request

este es el codigo que tengo:

Código:
void PlaceOrder(TIdHTTP *http, UnicodeString symbol, UnicodeString side, double quantity)
{
	__int64 ts = GetUnixTimeMs();   //obtiene el timestamp

	UnicodeString query = "symbol=" + symbol +
						  "&side=" + side +
						  "&type=MARKET" +
						  "&quantity=" + FloatToStr(quantity) +
						  "&timestamp=" + IntToStr(ts);

	// Firmar
	AnsiString signature = HMAC_SHA256(AnsiString(API_SECRET), AnsiString(query));

	UnicodeString url = BASE_URL + "/api/v3/order?" + query + "&signature=" + signature;

	http->Request->CustomHeaders->Clear();
	http->Request->CustomHeaders->Add("X-MBX-APIKEY: " + API_KEY);

	try
	{
		TStringStream* ss = new TStringStream();
		UnicodeString resp = http->Post(url, ss);
		delete ss;  // libera memoria después de usar
		Form1->Memo1->Lines->Add("Orden enviada: " + resp);
	}
	catch (Exception &e)
	{
		Form1->Memo1->Lines->Add("Error en orden: " + e.Message);
	}
}
el APIKEY y API_SECRET los tiene bien configurados porque conectar conecta pero algo debo estar haciendo mal en la cadena de consulta al API, no se si es que tendria que poner la cadena en el "BODY" (ss) del http->Post(url, ss);

me podria ayudar alguien??
Responder Con Cita