Solucionados problemas con pasarela de pago al pasar a producción

git-svn-id: https://192.168.0.254/svn/Proyectos.FundacionLQDVI_Web/trunk@50 77ab8c26-3d69-2c4d-86f2-786f4ba54905
This commit is contained in:
David Arranz 2011-10-14 15:48:26 +00:00
parent 2d187140fb
commit e9bc099bde
2 changed files with 121 additions and 114 deletions

View File

@ -1,115 +1,116 @@
<?php
add_filter('gform_confirmation', 'build_confirmation_1', 10, 4);
function build_confirmation_1($confirmation, $form, $entry, $ajax) {
$confirmation = llamar_pasarela_socio($entry);
return $confirmation;
}
function llamar_pasarela_socio($entry) {
/*$file = fopen("tpv.log", "w");
fwrite ($file, "SOCIO\n");
foreach($entry as $k => $v) {
fwrite($file, "$k ==> $v\n");
}
fwrite ($file, "DATOS\n");*/
$nombre_cuotas = array('12' => 'mensual',
'4' => 'trimestral',
'2' => 'semestral',
'1' => 'anual');
$datos = array();
$datos['titular'] = $entry[1] . ' ' . $entry[2];
$datos['url_tpvv'] = 'https://sis-t.sermepa.es:25443/sis/realizarPago';
$datos['clave'] = 'qwertyasdf0123456789';
$datos['nombre_comercio'] = 'Fundacion Lo que de verdad importa';
$datos['url_comercio'] = 'http://www.loquedeverdadimporta.org';
$datos['code'] = '322204298';
$datos['terminal'] = '1';
$datos['num_orden'] = date('ymdHis');
$datos['moneda'] = '978'; //euros
$datos['URLOK'] = $datos['url_comercio'].'/web/quieres-ser-amigo/gracias-por-ser-nuestro-socio/';
$datos['URLKO'] = $datos['url_comercio'].'/web/se-ha-producido-un-error/';
// Convertir la cantidad
$cuota = explode("|", $entry[9]); //<- formato: frecuencia_ano|cantidad_euros
$datos['frecuencia_ano'] = $cuota[0];
if ($datos['frecuencia_ano'] != 1) { // Es una cuota
//$datos['frecuencia_dias'] = round(365/$datos['frecuencia_ano']);
//$datos['frecuencia_fecha_limite'] = date("Y-m-d", strtotime('+10 Year')); // Mantener las cuotas 10 años a partir de hoy
$datos['cantidad'] = $cuota[1] * 100;
/* Método de pago:
* T: significa pago con tarjeta.
* D: significa pago por domiciliación bancaria.
* R: significa pago por transferencia.
*/
$datos['metodo_pago'] = 'D'; // <- Domiciliación
//$datos['suma_total'] = $datos['cantidad'] * ($datos['frecuencia_ano']*10); // Calcular el total de cuotas en 10 años
$datos['producto'] = 'Cuota ' . $nombre_cuotas[$datos['frecuencia_ano']] . ' LQDVI';
$datos['transaction_type'] = '0'; // <- Autoriación ('5' <- Transacción recurrente)
} else { // Es una aportación puntual
$datos['cantidad'] = ereg_replace("[^0-9]", "", $entry[19]);
$datos['metodo_pago'] = 'T'; // <- Tarjeta
$datos['producto'] = 'Aportacion LQDVI';
$datos['transaction_type'] = '0'; // <- Autorización
}
// Calcular firma
/* if ($datos['frecuencia_ano'] != 1) { // Es una cuota
* $datos['mensaje'] = $datos['cantidad'].$datos['num_orden'].$datos['code'].$datos['moneda'].$datos['suma_total'].$datos['transaction_type'].$datos['url_comercio'].$datos['clave'];
*} else { // Es una aportación puntual
* $datos['mensaje'] = $datos['cantidad'].$datos['num_orden'].$datos['code'].$datos['moneda'].$datos['transaction_type'].$datos['url_comercio'].$datos['clave'];
*}
*/
// Calcular firma
$datos['mensaje'] = $datos['cantidad'].$datos['num_orden'].$datos['code'].$datos['moneda'].$datos['transaction_type'].$datos['url_comercio'].$datos['clave'];
$datos['firma'] = strtoupper(sha1($datos['mensaje']));
/*foreach($datos as $k => $v)
fwrite($file, "$k ==> $v\n"); */
$confirmation = "<div id='gforms_confirmation_message' style='text-align:center; padding: 10px;'>";
$confirmation .= "Conectando con pasarela de pago...";
$confirmation .= "<form method='post' action='".$datos['url_tpvv']."' name='form_to_tpv' id='form_to_tpv'>";
$confirmation .= "<input type='hidden' name='Ds_Merchant_Titular' value='".$datos['titular']."'/>";
$confirmation .= "<input type='hidden' name='Ds_Merchant_Amount' value='".$datos['cantidad']."'/>";
$confirmation .= "<input type='hidden' name='Ds_Merchant_Currency' value='".$datos['moneda']."'/>";
$confirmation .= "<input type='hidden' name='Ds_Merchant_Order' value='".$datos['num_orden']."'/>";
$confirmation .= "<input type='hidden' name='Ds_Merchant_MerchantCode' value='".$datos['code']."'/>";
$confirmation .= "<input type='hidden' name='Ds_Merchant_Terminal' value='".$datos['terminal']."'/>";
$confirmation .= "<input type='hidden' name='Ds_Merchant_TransactionType' value='".$datos['transaction_type']."'/>";
$confirmation .= "<input type='hidden' name='Ds_Merchant_MerchantURL' value='".$datos['url_comercio']."'/>";
$confirmation .= "<input type='hidden' name='Ds_Merchant_MerchantSignature' value='".$datos['firma']."'/>";
$confirmation .= "<input type='hidden' name='Ds_Merchant_ProductDescription' value='".$datos['producto']."'/>";
$confirmation .= "<input type='hidden' name='Ds_Merchant_UrlOK' value='".$datos['URLOK']."'/>";
$confirmation .= "<input type='hidden' name='Ds_Merchant_UrlKO' value='".$datos['URLKO']."'/>";
/* if ($datos['frecuencia_ano'] != 1) { // Es una cuota
* $confirmation .= "<input type='hidden' name='Ds_Merchant_DateFrecuency' value='".$datos['frecuencia_dias']."'/>";
* $confirmation .= "<input type='hidden' name='Ds_Merchant_ChargeExpiryDate' value='".$datos['frecuencia_fecha_limite']."'/>";
* $confirmation .= "<input type='hidden' name='Ds_Merchant_SumTotal' value='".$datos['suma_total']."'/>";
*}
*/
$confirmation .= "<input type='hidden' name='Ds_Merchant_PayMethods' value='".$datos['metodo_pago']."'/>";
$confirmation .= "</form>";
$confirmation .= "</div>";
$confirmation .= "<script type='text/javascript'>";
$confirmation .= "document.getElementById('form_to_tpv').submit();";
$confirmation .= "</script>";
/*fwrite($file, $confirmation);
fclose($file); */
return $confirmation;
}
<?php
add_filter('gform_confirmation', 'build_confirmation_1', 10, 4);
function build_confirmation_1($confirmation, $form, $entry, $ajax) {
$confirmation = llamar_pasarela_socio($entry);
return $confirmation;
}
function llamar_pasarela_socio($entry) {
/*$file = fopen("tpv.log", "w");
fwrite ($file, "SOCIO\n");
foreach($entry as $k => $v) {
fwrite($file, "$k ==> $v\n");
}
fwrite ($file, "DATOS\n");*/
$nombre_cuotas = array('12' => 'mensual',
'4' => 'trimestral',
'2' => 'semestral',
'1' => 'anual');
$datos = array();
$datos['titular'] = $entry[1] . ' ' . $entry[2];
$datos['url_tpvv'] = 'https://sis-t.sermepa.es:25443/sis/realizarPago';
$datos['clave'] = 'qwertyasdf0123456789';
$datos['nombre_comercio'] = 'Fundacion Lo que de verdad importa';
$datos['url_comercio'] = 'http://www.loquedeverdadimporta.org/wp-content/themes/lqdvi/respuesta_pasarela_tpv.php';
$datos['code'] = '322204298';
$datos['terminal'] = '1';
$datos['num_orden'] = date('ymdHis');
$datos['moneda'] = '978'; //euros
$datos['URLOK'] = 'http://www.loquedeverdadimporta.org/quieres-ser-amigo/gracias-por-ser-nuestro-socio/';
$datos['URLKO'] = 'http://www.loquedeverdadimporta.org/se-ha-producido-un-error/';
// Convertir la cantidad
$cuota = explode("|", $entry[9]); //<- formato: frecuencia_ano|cantidad_euros
$datos['frecuencia_ano'] = $cuota[0];
if ($datos['frecuencia_ano'] != 0) { // Es una cuota
//$datos['frecuencia_dias'] = round(365/$datos['frecuencia_ano']);
//$datos['frecuencia_fecha_limite'] = date("Y-m-d", strtotime('+10 Year')); // Mantener las cuotas 10 años a partir de hoy
$datos['cantidad'] = $cuota[1] * 100;
/* Método de pago:
* T: significa pago con tarjeta.
* D: significa pago por domiciliación bancaria.
* R: significa pago por transferencia.
*/
$datos['metodo_pago'] = 'D'; // <- Domiciliación
//$datos['suma_total'] = $datos['cantidad'] * ($datos['frecuencia_ano']*10); // Calcular el total de cuotas en 10 años
$datos['producto'] = 'Cuota ' . $nombre_cuotas[$datos['frecuencia_ano']] . ' LQDVI';
$datos['transaction_type'] = '0'; // <- Autorización ('5' <- Transacción recurrente)
} else { // Es una aportación puntual
$datos['cantidad'] = ereg_replace("[^0-9]", "", $entry[19]);
$datos['metodo_pago'] = 'T'; // <- Tarjeta
$datos['producto'] = 'Aportacion LQDVI';
$datos['transaction_type'] = '0'; // <- Autorización
}
// Calcular firma
/* if ($datos['frecuencia_ano'] != 0) { // Es una cuota
* $datos['mensaje'] = $datos['cantidad'].$datos['num_orden'].$datos['code'].$datos['moneda'].$datos['suma_total'].$datos['transaction_type'].$datos['url_comercio'].$datos['clave'];
*} else { // Es una aportación puntual
* $datos['mensaje'] = $datos['cantidad'].$datos['num_orden'].$datos['code'].$datos['moneda'].$datos['transaction_type'].$datos['url_comercio'].$datos['clave'];
*}
*/
// Calcular firma
$datos['mensaje'] = $datos['cantidad'].$datos['num_orden'].$datos['code'].$datos['moneda'].$datos['transaction_type'].$datos['url_comercio'].$datos['clave'];
$datos['firma'] = strtoupper(sha1($datos['mensaje']));
/*foreach($datos as $k => $v)
fwrite($file, "$k ==> $v\n"); */
$confirmation = "<div id='gforms_confirmation_message' style='text-align:center; padding: 10px;'>";
$confirmation .= "Conectando con pasarela de pago...";
$confirmation .= "<form method='post' action='".$datos['url_tpvv']."' name='form_to_tpv' id='form_to_tpv'>";
$confirmation .= "<input type='hidden' name='Ds_Merchant_Titular' value='".$datos['titular']."'/>";
$confirmation .= "<input type='hidden' name='Ds_Merchant_Amount' value='".$datos['cantidad']."'/>";
$confirmation .= "<input type='hidden' name='Ds_Merchant_Currency' value='".$datos['moneda']."'/>";
$confirmation .= "<input type='hidden' name='Ds_Merchant_Order' value='".$datos['num_orden']."'/>";
$confirmation .= "<input type='hidden' name='Ds_Merchant_MerchantCode' value='".$datos['code']."'/>";
$confirmation .= "<input type='hidden' name='Ds_Merchant_Terminal' value='".$datos['terminal']."'/>";
$confirmation .= "<input type='hidden' name='Ds_Merchant_TransactionType' value='".$datos['transaction_type']."'/>";
$confirmation .= "<input type='hidden' name='Ds_Merchant_MerchantURL' value='".$datos['url_comercio']."'/>";
$confirmation .= "<input type='hidden' name='Ds_Merchant_MerchantSignature' value='".$datos['firma']."'/>";
$confirmation .= "<input type='hidden' name='Ds_Merchant_ProductDescription' value='".$datos['producto']."'/>";
$confirmation .= "<input type='hidden' name='Ds_Merchant_UrlOK' value='".$datos['URLOK']."'/>";
$confirmation .= "<input type='hidden' name='Ds_Merchant_UrlKO' value='".$datos['URLKO']."'/>";
/* if ($datos['frecuencia_ano'] != 0) { // Es una cuota
* $confirmation .= "<input type='hidden' name='Ds_Merchant_DateFrecuency' value='".$datos['frecuencia_dias']."'/>";
* $confirmation .= "<input type='hidden' name='Ds_Merchant_ChargeExpiryDate' value='".$datos['frecuencia_fecha_limite']."'/>";
* $confirmation .= "<input type='hidden' name='Ds_Merchant_SumTotal' value='".$datos['suma_total']."'/>";
*}
*/
$confirmation .= "<input type='hidden' name='Ds_Merchant_PayMethods' value='".$datos['metodo_pago']."'/>";
$confirmation .= "</form>";
$confirmation .= "</div>";
$confirmation .= "<script type='text/javascript'>";
$confirmation .= "document.getElementById('form_to_tpv').submit();";
$confirmation .= "</script>";
/*fwrite($file, $confirmation);
fclose($file); */
return $confirmation;
}
?>

View File

@ -0,0 +1,6 @@
<?php
$handle = fopen('log_servired.txt','a');
$cad = date("c")." ".implode("#", $_POST)."\n";
$fw = fwrite($handle, $cad);
fclose($handle);
?>