Foros del Web » Creando para Internet » Sistemas de gestión de contenidos »

bendito Oscommerce

Estas en el tema de bendito Oscommerce en el foro de Sistemas de gestión de contenidos en Foros del Web. Muy Buenas Noche, al grano para no perder tiempo, estoy implementando una solucion oscommerce todo funciona muy bien tengo configurado los modulos de envios, totalizacion, ...
  #1 (permalink)  
Antiguo 05/07/2008, 19:44
 
Fecha de Ingreso: julio-2008
Mensajes: 1
Antigüedad: 16 años, 4 meses
Puntos: 0
bendito Oscommerce

Muy Buenas Noche,

al grano para no perder tiempo,

estoy implementando una solucion oscommerce todo funciona muy bien tengo configurado los modulos de envios, totalizacion, y tarjetas de credito habilitados y funcionando perfectamentes, mi problema consiste en:

1. cuando los clientes ingresen el número de su tarjeta de crédito estos deben de ser validados en linea con unos archivos provistos por el emisor de tarjetas de credito (en este caso credomatic, que es el emisor de TC en Honduras), desde php debo de invocar este archivo y lo hago de la siguiente manera:

$cambio = $total;
$decim = round($cambio, 2);
$mon = $decim*100;
$file = "./newcli";
$cmd = "newcli aut $cc_number $cc_expiry_month $cc_expiry_year $mon";
$res = shell_exec($cmd);
$formt = substr ($res, 0, 4);
$tid = substr ($res, 5, 20);
switch($formt){
case "9999":
tep_redirect(tep_href_link(FILENAME_CHECKOUT_PAYME NT, 'error_message= Fondos Insuficientes', 'SSL'));
case "0001":
tep_redirect(tep_href_link(FILENAME_CHECKOUT_PAYME NT, 'error_message= La Transacción no se Pudo Completar, Intentelo de Nuevo mas Tarde', 'SSL'));
case "0010":
tep_redirect(tep_href_link(FILENAME_CHECKOUT_PAYME NT, 'error_message= El Monto es muy Grande', 'SSL'));
case "0012":
tep_redirect(tep_href_link(FILENAME_CHECKOUT_PAYME NT, 'error_message= ID de Transacción Inválido', 'SSL'));
case "0013":
tep_redirect(tep_href_link(FILENAME_CHECKOUT_PAYME NT, 'error_message= Lo Sentimos, En este momento nuestra terminal esta en mal estado', 'SSL'));
case "0014":
tep_redirect(tep_href_link(FILENAME_CHECKOUT_PAYME NT, 'error_message= Error en la Conección', 'SSL'));
case "0017":
tep_redirect(tep_href_link(FILENAME_CHECKOUT_PAYME NT, 'error_message= Mal Funcionamiento del Sistema', 'SSL'));
case "0018":
tep_redirect(tep_href_link(FILENAME_CHECKOUT_PAYME NT, 'error_message= Transacción no Soportada', 'SSL'));
case "0020":
tep_redirect(tep_href_link(FILENAME_CHECKOUT_PAYME NT, 'error_message= Tarjeta Inválida', 'SSL'));
case "0021":
tep_redirect(tep_href_link(FILENAME_CHECKOUT_PAYME NT, 'error_message= Tarjeta Expirada', 'SSL'));
}

tambien he intendado hacerlo con este otro codigo:

// Credit card authorization

$card = $HTTP_POST_VARS[x_Card_Num];
$month = substr($HTTP_POST_VARS[x_Exp_Date],0,2);
$year = substr($HTTP_POST_VARS[x_Exp_Date],2,2);
$amount = $HTTP_POST_VARS[x_Amount];

//newcli file
$newclipath = "/home/virtual/site4/fst/var/www/cgi-bin/newcli";

//cgi.dat
$datpath = "-P/home/virtual/site4/fst/var/www/cgi-bin/";
$result = "";

$execute = $newclipath." aut ".$card." ".$month." ".$year." ".$amount." ".$datpath;

//invoca al archivo newcli
$result = shell_exec($execute);

//validation
if (strstr($result,"0000-")) //
{
$tid=substr($result,5);
}
elseif (strstr($result,"0001-"))
{
tep_redirect(tep_href_link(FILENAME_CHECKOUT_PAYME NT, 'error_message= Error.', 'SSL'));
}
elseif (strstr($result,"0010-"))
{
tep_redirect(tep_href_link(FILENAME_CHECKOUT_PAYME NT, 'error_message= Error', 'SSL'));
}
elseif (strstr($result,"0012-"))
{
tep_redirect(tep_href_link(FILENAME_CHECKOUT_PAYME NT, 'error_message= Error', 'SSL'));
}
elseif (strstr($result,"0013-"))
{
tep_redirect(tep_href_link(FILENAME_CHECKOUT_PAYME NT, 'error_message= Error', 'SSL'));
}
elseif (strstr($result,"0014-"))
{
tep_redirect(tep_href_link(FILENAME_CHECKOUT_PAYME NT, 'error_message= Error', 'SSL'));
}
elseif (strstr($result,"0017-"))
{
tep_redirect(tep_href_link(FILENAME_CHECKOUT_PAYME NT, 'error_message= Error', 'SSL'));
}
elseif (strstr($result,"0018-"))
{
tep_redirect(tep_href_link(FILENAME_CHECKOUT_PAYME NT, 'error_message= Error', 'SSL'));
}
elseif (strstr($result,"0020-"))
{
tep_redirect(tep_href_link(FILENAME_CHECKOUT_PAYME NT, 'error_message= Error', 'SSL'));
}
elseif (strstr($result,"0021-"))
{
tep_redirect(tep_href_link(FILENAME_CHECKOUT_PAYME NT, 'error_message= Error', 'SSL'));
}
elseif (strstr($result,"9999-"))
{
tep_redirect(tep_href_link(FILENAME_CHECKOUT_PAYME NT, 'error_message= Error', 'SSL'));
}
elseif ($result == "Conecct no error")
{
tep_redirect(tep_href_link(FILENAME_CHECKOUT_PAYME NT, 'error_message= Error', 'SSL'));
}
elseif ($result == "Syntax error")
{
tep_redirect(tep_href_link(FILENAME_CHECKOUT_PAYME NT, 'error_message= Error', 'SSL'));
}
else
{
tep_redirect(tep_href_link(FILENAME_CHECKOUT_PAYME NT, 'error_message= Error.', 'SSL'));
}
// End Credit card authorization

el resultado es el mismo, no se enlaza con el servidor de credomatic,

en cambio si invoco el ejecutable newcli desde la linea de comando de linux si se enlaza y retorna los valores esperado.

mi php.ini esta configurado register_globals = On / safe_mode = on / safe_mode_exec_dir = (en la ruta donde esta el ejecutable newcli (asi se llama la aplicacion provista por el banco).


espero alguien me pueda ayudar con esto.

de antemano muchas gracias
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 17:18.