No mostrar más este mensaje

ecommerce

Envío XML

 

La firma electrónica del comercio, en los mensajes de petición de pago al TPV Virtual WebService, se deberá calcular concatenando el valor de los siguientes campos (salvo que sea alguno de valor nulo en cuyo caso no se considerará en la firma) incluyendo al final la clave secreta de encriptación:

DS_MERCHANT_AMOUNT + DS_MERCHANT_ORDER + DS_MERCHANT_MERCHANTCODE + DS_MERCHANT_CURRENCY + DS_MERCHANT_PAN + DS_MERCHANT_URL + DS_MERCHANT_CVV2 + DS_MERCHANT_SUMTOTAL + DS_MERCHANT_TRANSACTIONTYPE + CLAVE SECRETA

Para ello usaremos el siguiente método:

public static String getFirmaEnvioXML(Double importe, 
                                      String pedido, 
                                      String comercio, 
                                      String moneda, 
                                      String tarjeta, 
                                      String url, 
                                      String cvv2,
                                      Double importeTotal, 
                                      String claveSecreta, 
                                      String tipoTransaccion) throws NoSuchAlgorithmException {

    Integer importeFinal = (int) (importe * 100);

    Integer importeFinalTotal = null;

    if (importeTotal != null) {
        importeFinalTotal = (int) (importeTotal * 100);
    }

    StringBuilder firma = new StringBuilder();

    firma.append(importeFinal);
    appendNoNull(firma, pedido);
    appendNoNull(firma, comercio);
    appendNoNull(firma, moneda);
    appendNoNull(firma, tarjeta);
    appendNoNull(firma, url);
    appendNoNull(firma, cvv2);

    if (importeFinalTotal != null) {
        firma.append(importeFinalTotal);
    }
        
    appendNoNull(firma, tipoTransaccion);
    appendNoNull(firma, claveSecreta);
        
    return getHash(firma.toString());

}