No mostrar más este mensaje

ecommerce

Pago Concurrente 

 

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 una serie de 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_SUMTOTAL + DS_MERCHANT_CVV2 + DS_MERCHANT_TRANSACTIONTYPE + CLAVE SECRETA

Para ello usaremos el siguiente método:

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

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

        StringBuilder firma = new StringBuilder();

        firma.append(importeFinal);
        appendNoNull(firma, pedido);
        appendNoNull(firma, comercio);
        appendNoNull(firma, moneda);
        appendNoNull(firma, tarjeta);
        firma.append(importeFinalTotal);
        appendNoNull(firma, cvv2);
        appendNoNull(firma, tipoTransaccion);
        appendNoNull(firma, claveSecreta);

        return getHash(firma.toString());
}