es.davy.ai

Preguntas y respuestas de programación confiables

¿Tienes una pregunta?

Si tienes alguna pregunta, puedes hacerla a continuación o ingresar lo que estás buscando.

Cómo producir una firma válida en la API de Binance usando Vanilla Javascript: {“código”:-2014,”msg”:”Formato de clave API no válido.”}

He pasado varias horas tratando de obtener la respuesta correcta del punto final. Para eso, necesito enviar una cadena de firma generada por una función SHA-256, adjunta a la cadena de consulta que envío al servidor.

He intentado diferentes métodos para obtener esa firma como se describe aquí en la documentación: https://developers.binance.com/docs/binance-api/spot/index/#signed-trade-user_data-and-margin-endpoint-security Pero nada parece funcionar.

He intentado varios enfoques para generar firmas válidas utilizando diferentes bibliotecas y funciones, pero no funcionan (incluso intenté usar la documentación de Web Crypto API).

Recibo este error cuando hago la llamada:

json
{"code":-2014,"msg":"Formato de la clave API no válido."}

Esta es la llamada:

url
https://testnet.binance.vision/api/v3/account?timestamp=my_timestamp&signature=my_signature

Supuse que era un problema con Fetch, pero en otras funciones personalizadas que tengo en mi aplicación no causa problemas.

Aquí está mi código:

export async function getAccountInfo() {
    const apiSecret = pub.TESTNET_SECRETKEY; // Tu clave secreta

    const timestamp = await serverTimestamp()
        .then(timestamp => {
            return timestamp;
        });

    let signature = sha256(apiSecret, timestamp);

    const testnet = 'https://testnet.binance.vision/api';

    const fullUrl = testnet + '/v3/account?timestamp=' + timestamp + '&signature=' + signature;

    retrieveInformation(fullUrl);
}
Tags:  , , , ,

Answer

  1. Avatar for davy.ai

    Solución de problemas para la generación de firma en el punto de conexión de la API de Binance

    Si tienes problemas al generar una cadena de firma válida para el punto de conexión de la API de Binance, aquí tienes algunas cosas que puedes intentar:

    1. Verifica que tu clave de API y clave secreta estén correctamente formateadas y coincidan con los pares de claves proporcionados por Binance.
    2. Comprueba si la marca de tiempo generada localmente en tu máquina está sincronizada con la marca de tiempo del servidor. Si hay una diferencia en las marcas de tiempo, no recibirás una respuesta válida.

    3. Asegúrate de proporcionar los parámetros correctos en el orden correcto para la generación de la firma. Según la documentación de Binance, los parámetros deben estar ordenados de forma ascendente y concatenados en una cadena sin espacios. Verifica si estás siguiendo el mismo procedimiento.

    4. Verifica si has implementado correctamente la función SHA-256 para la generación de la firma. Asegúrate de codificar el resultado en base64 y utilizar el formato de codificación correcto (ASCII o UTF-8).

    5. Asegúrate de enviar correctamente la cadena de firma como parámetro de consulta para el punto de conexión. Verifica nuevamente la clave del parámetro de consulta y su valor.

    Si ninguna de estas soluciones funciona, puede ser útil compartir más detalles sobre las bibliotecas y funciones que estás utilizando en tu código, así como los mensajes de error específicos que encuentres. Puedes buscar ayuda en el equipo de soporte para desarrolladores de Binance o consultar los foros de la API de Binance para obtener ayuda adicional.

Comments are closed.