joelrp Posted April 8, 2005 Posted April 8, 2005 I have the following code on file catalog/checkout_process.php that is a script of credit card authorization for a bank in Costa Rica. I don?t know what is the error, but when I call this page, the process never finishes and it remains in the instruction: $result = shell_exec($execute); I didn't get an error but the process never finishes. I hope someone can help me. Thank you in advance. This is the code: // 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_PAYMENT, 'error_message= Error.', 'SSL')); } elseif (strstr($result,"0010-")) { tep_redirect(tep_href_link(FILENAME_CHECKOUT_PAYMENT, 'error_message= Error', 'SSL')); } elseif (strstr($result,"0012-")) { tep_redirect(tep_href_link(FILENAME_CHECKOUT_PAYMENT, 'error_message= Error', 'SSL')); } elseif (strstr($result,"0013-")) { tep_redirect(tep_href_link(FILENAME_CHECKOUT_PAYMENT, 'error_message= Error', 'SSL')); } elseif (strstr($result,"0014-")) { tep_redirect(tep_href_link(FILENAME_CHECKOUT_PAYMENT, 'error_message= Error', 'SSL')); } elseif (strstr($result,"0017-")) { tep_redirect(tep_href_link(FILENAME_CHECKOUT_PAYMENT, 'error_message= Error', 'SSL')); } elseif (strstr($result,"0018-")) { tep_redirect(tep_href_link(FILENAME_CHECKOUT_PAYMENT, 'error_message= Error', 'SSL')); } elseif (strstr($result,"0020-")) { tep_redirect(tep_href_link(FILENAME_CHECKOUT_PAYMENT, 'error_message= Error', 'SSL')); } elseif (strstr($result,"0021-")) { tep_redirect(tep_href_link(FILENAME_CHECKOUT_PAYMENT, 'error_message= Error', 'SSL')); } elseif (strstr($result,"9999-")) { tep_redirect(tep_href_link(FILENAME_CHECKOUT_PAYMENT, 'error_message= Error', 'SSL')); } elseif ($result == "Conecct no error") { tep_redirect(tep_href_link(FILENAME_CHECKOUT_PAYMENT, 'error_message= Error', 'SSL')); } elseif ($result == "Syntax error") { tep_redirect(tep_href_link(FILENAME_CHECKOUT_PAYMENT, 'error_message= Error', 'SSL')); } else { tep_redirect(tep_href_link(FILENAME_CHECKOUT_PAYMENT, 'error_message= Error.', 'SSL')); } // End Credit card authorization Quote
shrdinc Posted July 27, 2005 Posted July 27, 2005 I am trying to get the same running, I have the manual here for the backend Credomatic de Costa Rica Manual de Operaci?n Aplicaci?n para autorizaciones ?cgi_aut? Diciembre, 2002 ?ndice Introducci?n 3 Descripci?n 4 Proceso de Autorizaci?n 5 Definici?n de par?metros de ejecuci?n del CGI 8 C?digos de Error: 11 Introducci?n La interfaz CGI consiste en un conjunto de normas que permiten a una p?gina Web comunicarse y ejecutar con programas externos a la p?gina. Estos programas deben a su vez seguir tambi?n una serie de normas. A los programas que cumplen estas reglas, impuestas por el interfaz CGI, se les llama programas CGI, scripts CGI o simplemente CGI's, y pueden estar escritos en cualquier lenguaje, tanto interpretados como compilados. La aplicaci?n enviada a los comercios que trabajan con credomatic esta dise?ada para realizar transacciones monetarias a trav?s de Internet utilizando la plataforma transaccional de Credomatic. Descripci?n El objetivo principal es el de crear una interfase de f?cil uso para el comercio que requiere realizar transacciones a trav?s de una red IP, todo esto ofreciendo un alto grado de seguridad y confiabilidad en la informaci?n. El Cgi enviado utiliza el est?ndar de cifrado SSL de 1024 bits para establecer la comunicaci?n garantizando seguridad y compatibilidad con la plataforma transaccional de Credomatic. CGI desarrollado por Credomatic el cual es llamado newcli es un programa de simple ejecuci?n funciona en la l?nea de comando, de esta forma se puede ejecutar de cualquier shell o lenguaje de alto nivel como PERL, AWK, PHP, ASP, HTML ( utilizando un servlet de Java ) ambientes que se encuentran para la mayor?a de los sistemas operativos est?ndar. Newcli es un programa ejecutable en 32 bits que puede ser llamado desde la l?nea de comandos y recibe par?metros separados por un espacio. En caso de ser llamado sin ning?n par?metro mostrara la ayuda indicando la forma en que debe ser utilizado. Proceso de Autorizaci?n La autorizaci?n consiste en que el programa o m?s bien el comercio solicita que se autorice cargar a un n?mero de tarjeta especificado, la cantidad que se indic?. Dicho monto no ser? acreditado a la tarjeta de cr?dito indicada, sino que esta en una condici?n temporal en la cual para efectos del comercio la aplicaci?n le permite verificar si el tarjeta habiente posee capacidad de pago. Si la transacci?n es v?lida devolver? un c?digo de error igual a cuatro ceros y un n?mero ?nico de transacci?n llamado ?Transaction ID? que le llamaremos a partir de ahora TID. Puede desarrollarse una forma en HTML que invoque al archivo enviado al cliente Si el cliente desea comprar una c?mara utilizando e-commerce utilizando una p?gina Web se muestra el producto. El cliente procede a incluir los datos: n: Numero de tarjeta Mes expiraci?n tarjeta A?o expiraci?n tarjeta Cantidad transacci?n 5412345678401234 Numero de tarjeta 12 Mes expiraci?n tarjeta 05 A?o expiraci?n tarjeta 259.99 Cantidad transacci?n Una vez incluidos estos datos en la p?gina Web se procede a invocar el newcli newcli aut 5412345678401234 12 05 25999 En este caso se esta llamado el programa con la opci?n ?aut? indic?ndole que se trata de una autorizaci?n a continuaci?n se le indica el n?mero de la tarjeta de cr?dito que en es caso es ?5412345678401234 ? y luego se indica la mes y el a?o de vencimiento de la misma, en este ejemplo se puso el mes 12 del a?o 2005, luego se indica el monto de transacci?n, n?tese que no existe la notaci?n decimal por lo que ?10000? equivale a 100.00 o bien 100 unidades. Por lo que los ?ltimos dos d?gitos siempre corresponder?n a las cent?simas de unidad, de igual forma si se requiere hacer una transacci?n por $259.99 la notaci?n ser? 25999. Luego de efectuar la autorizaci?n el programa responder? de la siguiente forma 0000-901234567890 Donde los primeros cuatro d?gitos siempre corresponder? a c?digo de error devuelto por el servidor de la plataforma transaccional de Credomatic, en general un c?digo de error 0000 indica que la transacci?n se realiz? sin problema y cualquier n?mero diferente de este indica que la transacci?n no se realiz? por el error indicado. Los d?gitos que van despu?s del gui?n indica el TID para esa autorizaci?n. Su compra ha sido aprobada Una vez realizada la autorizaci?n se puede hacer la venta en firme, utilizando los servicios de la sucursal electr?nica de Credomatic. Definici?n de par?metros de ejecuci?n del CGI CGI para Autorizaciones En el caso del CGI para autorizaciones puede ser invocado de la siguiente manera: C:\>cli ( tecla de entrada) Serial No: NEWCLI PARA WINDOWS TEST ( 5 ) Uso: newcli <tra> <tar> <mes> <a▒o> <mon> [ord] [-P<ruta>] [-C<CVC>] [-A<AVS>] Donde: Para Autorizaciones (aut): <tra> Identificacion de transacci?n <tar> Numero de tarjeta <mes> Mes expiraci?n tarjeta <a?o> A?o expiraci?n tarjeta <mon> Monto de la transacci?n [ord] Numero de Orden [-P<ruta>] Path de ubicaci≤n del DAT [-C<CVC>] C≤digo de Verificacion de la tarjeta [-A<AVS>] Direccion del tarjeta habiente. Max 50 caracteres C:\> Para cada uno de los par?metros existen las siguientes condiciones: <tra> Identificaci?n de transacci?n : La identificaci?n de transacci?n define el tipo de tarea a llevar acabo, debe ser indicado en min?scula y es obligatoria. En el caso de autorizaciones es aut <tar> numero de tarjeta: Indica el numero de tarjeta del cliente al que se debe cargar el monto de dinero indicado mas adelante. Deben ser solamente n?meros con un m?nimo de 14 y un m?ximo de 16. <mes> mes expiraci?n tarjeta: Es el mes indicado en la tarjeta como mes de expiraci?n de la misma. Deben ser ?nicamente dos caracteres num?ricos de 00 a 12. <a?o> a?o expiraci?n tarjeta: De forma similar al anterior, se refiere al a?o de expiraci?n de la tarjeta. ?nicamente deben ser dos caracteres num?ricos. <mon> cantidad transacci?n: Es el monto a cargar a la tarjeta indicada. Este monto debe incluir los d?gitos decimales sin indicar s?mbolo decimal. Ejemplo: 10000 ( indica cien unidades de la moneda a cargar ). 100 ( indica una unidad de la moneda a cargar ). <ordid> Numero de orden de compra: Aqu? es posible indicar el numero de orden asociado a la autorizaci?n. Esto con el fin de poder identificar de una mejor manera la transacci?n relacionada. Pueden ser hasta 26 caracteres alfanum?ricos, que dependen ?nicamente de la numeraci?n propia del comercio. [-P<ruta>] Path de ubicaci?n del DAT Este switch es utilizado para establecer la ubicaci?n de los archivos dat Ejemplos de Utilizaci?n del switch Ejecuci?n utilizando el dat en la unidad d: en el directorio CGI subdirectorio dat newcli aut ############ ## ## ###### -PD:\CGI\dat\ Ejecuci?n del CGI en un subdirectorio dat bajo el directorio actual newcli aut ############ ## ## ###### -P./dat/ Ejecuci?n del CGI llamando al dat en otro computador con el nombre jose en el directorio compartido dat newcli aut ############ ## ## ###### -P\\jose\dat\ Para rutas que hacen referencia a directorios con m?s de 8 caracteres: Hay 2 formas de hacerlo con el CGI actual Primera Opci?n: Utilizar los nombres de 8 caracteres c:\progra~1\dat\ El nombre corto se averigua utilizando el commando dir /x /X Muestra los nombres cortos generados para los nombres de archivo que no tienen el formato 8.3. El formato es el de /N con el nombre corto insertado antes del nombre largo. Si no existe un nombre corto, se muestran espacios en blanco en su lugar. Segunda Opci?n: Agregar la direcci?n entre comillas siempre dejando el \ al final ej: "c:\program files\dat"\ [-C<CVC>] C?digo de Verificacion de la tarjeta Este campo es para incluir los ultimos tres d?gitos de verificaci?n de la tarjeta [-A<AVS>] Direcci?n del tarjeta habiente. Max 50 caracteres Valor para la autorizaci?n de las tarjetas el cual indica la direcci?n del tarjeta habiente C?digos de Error: Dependiendo de la transacci?n el programa retornara diferentes c?digos de error que indican el resultado de la transacci?n. Continuaci?n se muestran los posibles c?digos: 0000 Transacci?n recibida y aprobada. 0001 Host inalcanzable 0010 Monto no valido. El monto es demasiado grande. 0012 ID de transacci?n Invalido 0013 Terminal Invalida 0014 Comercio Invalido 0017 Malfuncionamiento del Sistema 0018 Transaccion no soportada 0020 Tarjeta Invalida 0021 Tarjeta Expirada 9999 Transacci?n recibida y declinada Conecct no error ? Sistema del comercio no puede ver la direcci?n del Servidor de Autorizaciones. Syntax error ? Error en certificado SSL del comercio. Quote
ogamboa Posted September 24, 2007 Posted September 24, 2007 I know that is an old thread but I'm new with oscommerce. Does anybody can help me with the CGI suplly by credomatic? where do I have to make the call? Quote
ovas Posted December 22, 2007 Posted December 22, 2007 Did you fix this?? I have the same problem, the thing is that I think that you have to have your own servers. Quote
Recommended Posts
Join the conversation
You can post now and register later. If you have an account, sign in now to post with your account.
Note: Your post will require moderator approval before it will be visible.