Foros del Web » Programando para Internet » PHP »

Migración de SHA256 Redsys

Estas en el tema de Migración de SHA256 Redsys en el foro de PHP en Foros del Web. Hola.. tengo un problema y es que debo actualizar la programación de mi tienda online debido a la solicitud del Banco. Tengo el problema que ...
  #1 (permalink)  
Antiguo 15/01/2016, 09:56
 
Fecha de Ingreso: octubre-2007
Mensajes: 724
Antigüedad: 16 años, 6 meses
Puntos: 4
Migración de SHA256 Redsys

Hola..
tengo un problema y es que debo actualizar la programación de mi tienda online debido a la solicitud del Banco.
Tengo el problema que la tienda online esta hecha con PHP ( librerias php ) por lo que ando algo perdido ya que hace mucho tiempo que no lo gestiono . Verán, la tienda online consta de la pagina de la pasarela de pago, pero el form no estoy seguro si se tiene que modificar ya que he leido en algunos sitios que si, otros no dicen nada de cambiarlo, este es el que tengo yo ahora:
Archivo comprar_paso_5.php
Código HTML:
<html><body>

<form name="fCompra" action="<?=_TPV_URL?>" method="post">
<input type="hidden" name="Ds_Merchant_Amount" value='<?=$total?>'>
<input type="hidden" name="Ds_Merchant_Currency" value='<?=_TPV_MONEDA?>'>
<input type="hidden" name="Ds_Merchant_Order"  value='<?=$num_pedido?>'>
<input type="hidden" name="Ds_Merchant_MerchantCode" value='<?=_TPV_CODIGO?>'>
<input type="hidden" name="Ds_Merchant_Terminal" value='<?=_TPV_TERMINAL?>'>
<input type="hidden" name="Ds_Merchant_TransactionType" value='<?=_TPV_TIPO_TRANSACCION?>'>
<input type="hidden" name="Ds_Merchant_MerchantURL" value='<?=_TPV_URLMERCHANT?>'>
<input type="hidden" name="Ds_Merchant_MerchantSignature" value='<?=$signature?>'>
<input type="hidden" name="Ds_Merchant_UrlOK" value='<?=$TPV_URL_ok?>'>
<input type="hidden" name="Ds_Merchant_UrlKO" value='<?=$TPV_URL_ko?>'>
<input type="hidden" name="Ds_Merchant_ConsumerLanguage" value='<?=$TPV_idioma?>'>
<input type="hidden" name="Ds_Merchant_ProductDescription" value='<?=htmlentities($desc_compra)?>'>
<input type="hidden" name="Ds_Merchant_Titular" value=''>



</form>
<script>document.fCompra.submit()</script>
</body></html> 

estos valores los tengo declarados en otro archivo llamado config.php:

Código HTML:
/* Datos TPV */
define("_TPV_URL", 'https://sis.sermepa.es/sis/realizarPago');
define("_TPV_CLAVE", 'xxxxxx');
define("_TPV_NOMBRE", 'Nombre empresa');
define("_TPV_CODIGO", 'xxxx');
define("_TPV_TERMINAL", "001");
define("_TPV_MONEDA", "978");
define("_TPV_TIPO_TRANSACCION", "0");
define("_TPV_URLMERCHANT",_WEB_DOMAIN."comprar_actualizar_tpv.php");
define("_TPV_SIGNATUREVERSION", "HMAC_SHA256");


/* fin Datos TPV */
el problema es que el resultado de la respuesta del TPV es que debo actualizarlo y voy algo perdido.
a ver si pueden ayudarme.

gracias de antemano
  #2 (permalink)  
Antiguo 15/01/2016, 12:09
 
Fecha de Ingreso: octubre-2007
Mensajes: 724
Antigüedad: 16 años, 6 meses
Puntos: 4
Respuesta: Migración de SHA256 Redsys

Les dejo el código de la página donde se envía al cliente al TPV del Banco:

comprar_paso_5.php:

Código HTML:
	$total = number_format($pedido->ped_importe_total*100,0,"","");
	// Compute hash to sign form data
	//Ds_Merchant_Amount + Ds_Merchant_Order +Ds_Merchant_MerchantCode+ DS_Merchant_Currency + CLAVE SECRETA
	$message = $total
		.$num_pedido
		._TPV_CODIGO
		._TPV_MONEDA
		._TPV_TIPO_TRANSACCION
		._TPV_URLMERCHANT
		._TPV_CLAVE
		;
		
	$signature = (sha1($message));
	$TPV_idioma = "001"; //ESP
	if(_ID_IDIOMA=="ENG") $TPV_idioma = "002";
	if(_ID_IDIOMA=="DEU") $TPV_idioma = "005";
	
	$TPV_URL_ok = crearUrl(_ID_IDIOMA,array("comprar_paso_6"),"",array());
	$TPV_URL_ko = crearUrl(_ID_IDIOMA,array("comprar_paso_6"),"",array());
	
	$desc_compra = "";
	$_SESSION[_PREFIJO_SESSION.'_cesta'] = "";
	$cesta->init();
	$miObj = new RedsysAPIWs;
	include "./apiRedsys.php";
?>

<html><body>

<form name="fCompra" action="<?=_TPV_URL?>" method="post">
<input type="hidden" name="Ds_Merchant_Amount" value='<?=$total?>'>
<input type="hidden" name="Ds_Merchant_Currency" value='<?=_TPV_MONEDA?>'>
<input type="hidden" name="Ds_Merchant_Order"  value='<?=$num_pedido?>'>
<input type="hidden" name="Ds_Merchant_MerchantCode" value='<?=_TPV_CODIGO?>'>
<input type="hidden" name="Ds_Merchant_Terminal" value='<?=_TPV_TERMINAL?>'>
<input type="hidden" name="Ds_Merchant_TransactionType" value='<?=_TPV_TIPO_TRANSACCION?>'>
<input type="hidden" name="Ds_Merchant_MerchantURL" value='<?=_TPV_URLMERCHANT?>'>
<input type="hidden" name="Ds_Merchant_MerchantSignature" value='<?=$signature?>'>
<input type="hidden" name="Ds_Merchant_UrlOK" value='<?=$TPV_URL_ok?>'>
<input type="hidden" name="Ds_Merchant_UrlKO" value='<?=$TPV_URL_ko?>'>
<input type="hidden" name="Ds_Merchant_ConsumerLanguage" value='<?=$TPV_idioma?>'>
<input type="hidden" name="Ds_Merchant_ProductDescription" value='<?=htmlentities($desc_compra)?>'>
<input type="hidden" name="Ds_Merchant_Titular" value=''>
<input type="hidden" name="Ds_Merchant_SignatureVersion" value='<?=_TPV_SIGNATUREVERSION?>'>




</form>
<script>document.fCompra.submit()</script> 

Última edición por jonysi_d; 15/01/2016 a las 12:38
  #3 (permalink)  
Antiguo 15/01/2016, 13:15
 
Fecha de Ingreso: octubre-2007
Mensajes: 724
Antigüedad: 16 años, 6 meses
Puntos: 4
Respuesta: Migración de SHA256 Redsys

El código de error que me devuelve es que no envía datos de Ds_Merchant_Signature:


Código HTML:
   
        'code' => 'SIS0020',
        'message' => 'Ds_Merchant_Signature Falta el campo',
        'msg' => 'MSG0008',
        'detail' => ''
Ds_Merchant_Signature

Etiquetas: html, migración
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 00:21.