/** * Devuelve array con los parámetros a enviar a la pasarela de pago * * @param integer $idTipo Tipo de pasarela * @param integer $idPedido El id de pedido web * @return array */ static function getParametros($idTipo, $idPedido) { $pedido = new PedidosWebCab($idPedido); $total = $pedido->getTotal() + $pedido->getGastosEnvio(); unset($pedido); // El número de pedido debe tener al menes 4 cifras if ($idPedido < 1000) { $idPedido = str_pad($idPedido, 4, "0", STR_PAD_LEFT); } switch ($idTipo) { case '1': //Paypal $parametros = self::getParamsPaypal($idPedido, $total); break; case '2': // Redsys $parametros = self::getParamsRedsys($idPedido, $total); break; case '3': // Pagantis $parametros = self::getParamsPagantis($idPedido, $total); break; case '4': // CECA $parametros = self::getParamsCeca($idPedido, $total); break; default: $parametros = array(); } return $parametros; }
/** * Devuelve array con los parámetros para Ceca * * @param int $idPedido * @param decimal $total * @return array */ private static function getParamsCeca($idPedido) { $pedido = new PedidosWebCab($idPedido); $total = $pedido->getTotal() + $pedido->getGastosEnvio(); unset($pedido); $modo = $_SESSION['varEnv']['Pro']['shop']['ceca']['modo'] == '1' ? 'real' : 'test'; $urlWeb = $_SESSION['varEnv']['Pro']['shop']['url']; $clave = $modo === 'real' ? $_SESSION['varEnv']['Pro']['shop']['ceca']['claveReal'] : $_SESSION['varEnv']['Pro']['shop']['ceca']['claveTest']; $total = number_format($total, 2, '', ''); if ($total[0] == '0') { // si es menor de 1 hay q quitar el cero inicial (ej: 0.25 => 025 => 25) $total = substr($total, 1); } $string = "lib/calculo {$clave} " . "{$_SESSION['varEnv']['Pro']['shop']['ceca']['MerchantID']} " . "{$_SESSION['varEnv']['Pro']['shop']['ceca']['AcquirerBIN']} " . "{$_SESSION['varEnv']['Pro']['shop']['ceca']['TerminalID']} " . "{$idPedido} " . "{$total} " . "{$_SESSION['varEnv']['Pro']['shop']['ceca']['TipoModena']} " . "{$_SESSION['varEnv']['Pro']['shop']['ceca']['Exponente']} \"\" "; $firma = exec($string); $parametros = array('url_tpv' => self::$urlTpv[4][$modo], 'Num_operacon' => $idPedido, 'Importe' => $total, 'MerchantID' => $_SESSION['varEnv']['Pro']['shop']['ceca']['MerchantID'], 'AcquirerBIN' => $_SESSION['varEnv']['Pro']['shop']['ceca']['AcquirerBIN'], 'Firma' => $firma, 'TerminalID' => $_SESSION['varEnv']['Pro']['shop']['ceca']['TerminalID'], 'TipoModena' => $_SESSION['varEnv']['Pro']['shop']['ceca']['TipoModena'], 'Exponente' => $_SESSION['varEnv']['Pro']['shop']['ceca']['Exponente'], 'Pago_soportado' => $_SESSION['varEnv']['Pro']['shop']['ceca']['Pago_soportado'], 'URL_OK' => $urlWeb . '/carrito/notificacion/ceca/ok', 'URL_NOK' => $urlWeb . '/carrito/notificacion/ceca/ko'); return $parametros; }