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.

Cuando uso la API de la plataforma abierta de Shopee, utilizo el siguiente método para construir una URL y enviar una solicitud POST, pero frecuentemente obtengo el mensaje “Firma incorrecta”, ¿alguna solución?

public static String buildSignAndUrl(long partnerId, String secret, String path){
    long timestamp = System.currentTimeMillis() / 1000L;
    String base_String = String.format("%s%s%s", partnerId, path, timestamp);
    byte[] baseStringBytes;
    byte[] partner_key;
    BigInteger sign = null;
    try{
        baseStringBytes = base_String.getBytes(StandardCharsets.UTF_8);
        partner_key = secret.getBytes(StandardCharsets.UTF_8);
        Mac mac = Mac.getInstance(HmacAlgorithms.HMAC_SHA_256.toString());
        SecretKeySpec secret_key = new SecretKeySpec(partner_key, HmacAlgorithms.HMAC_SHA_256.toString());
        mac.init(secret_key);
        sign = new BigInteger(mac.doFinal(baseStringBytes));
    } catch (Exception e){
        e.printStackTrace();
    }
    String url = SANDBOX_HOST + path + String.format("?partner_id=%s&timestamp=%s&sign=%s",
            partnerId, timestamp, String.format("%032x", sign));
    return url;
}

// ¿Por qué utilizar esta URL para enviar una publicación puede causar “Firma incorrecta”? El valor de tiempo en la URL y el valor de tiempo para calcular una firma son los mismos.

Tags:  ,

Answer

  1. Avatar for davy.ai

    Puede haber varias razones por las cuales el uso de esta URL para enviar una publicación puede resultar en un error de “Firma incorrecta”:

    1. La clave secreta utilizada para generar la firma HMAC puede ser incorrecta o inválida. Si la clave secreta utilizada para generar la firma no coincide con la utilizada por el servidor receptor para verificar la firma, la verificación fallará y resultará en un error de “Firma incorrecta”.

    2. El reloj del servidor puede estar desincronizado con el reloj del cliente. Si el sello de tiempo utilizado en la URL y el sello de tiempo utilizado para calcular la firma HMAC no son exactamente los mismos, la verificación fallará y resultará en un error de “Firma incorrecta”.

    3. La codificación de los parámetros en la URL puede ser incorrecta o inconsistente. Si la codificación del ID del socio, el sello de tiempo y la firma en la URL es diferente de la codificación utilizada para calcular la firma HMAC, la verificación fallará y resultará en un error de “Firma incorrecta”.

    4. El formato o la sintaxis de la URL pueden ser incorrectos o inconsistentes. Si el formato o la sintaxis de la URL no es exactamente el mismo que el esperado por el servidor receptor, la verificación fallará y resultará en un error de “Firma incorrecta”.

Comments are closed.