43
VERSIÓN 3.1

Pagosonline.net - Manual de Integracin Tradicional 3

Embed Size (px)

Citation preview

Page 1: Pagosonline.net - Manual de Integracin Tradicional 3

VERSIÓN 3.1

Page 2: Pagosonline.net - Manual de Integracin Tradicional 3

TABLA DE CONTENIDOPág.

1. INTRODUCCIÓN 2

2. DESCRIPCIÓN 3

3. PROCESO DE INTEGRACIÓN 53.1. Página de Envío de la Información 53.1.1 Cálculo de la base de Devolución 83.1.2 Generación de las firmas digitales 83.1.3 Ejemplo de generación de las firmas digitales en PHP 103.1.4 Ejemplo de generación de las firmas digitales en JAVA 123.1.5 Ejemplo de generación de las firmas digitales en ASP.NET 14

4. PÁGINA DE RESPUESTA 164.1. Ejemplo en PHP para capturar variables de URL de respuesta 174.2. Ejemplo en JAVA para capturar variables de URL de respuesta 184.3. Ejemplo en ASP.NET para capturar variables de URL de respuesta 18

5. PÁGINA DE CONFIRMACIÓN 195.1. Ejemplo en PHP para capturar variables de URL de respuesta 215.2. Ejemplo en JAVA para capturar variables de URL de respuesta 215.3. Ejemplo en ASP.NET para capturar variables de URL de respuesta 21

6. ERRORES MÁS FRECUENTES 22

7. MÓDULO DE AGENCIAS DE VIAJES 23

8. PRUEBAS 24

8.1. PRUEBAS CON TARJETA DE CRÉDITO 24

8.2. PRUEBAS A TRAVÉS DE PSE 25

9. CERTIFICACIÓN PSE (SOLO PLAN EMPRESARIAL) 27

ANEXOS 32

I) Divisas admitidas 32

II) Idiomas admitidos 32

III) Parámetros adicionales para página de pago 33

IV) Estados posibles de transacciones (estado_pol) 34

V) Códigos de Respuesta (codigo_respuesta_pol) 35

VI) Tipos de Medio de Pago (tiposMediosDePago, tipo_medio_pago) 36

VII) Medio de Pago (medio_pago) 36

VIII) Parámetros adicionales para página de confirmación 37

IX) Preguntas frecuentes 37

X) GLOSARIO 40

Page 3: Pagosonline.net - Manual de Integracin Tradicional 3

1. INTRODUCCIÓN

Para poder aceptar pagos con tarjetas débito y crédito a través de Pagosonline.net usted debe conectar su página de Internet con nuestro sistema transaccional. A este proceso lo denominamos "integración".

Una vez finalizado, usted podrá recibir pagos desde cualquier parte del mundo, en diferentes monedas e idiomas, utilizando nuestro módulo Antifraude y la última tecnología para garantizar la seguridad y confiabilidad de las transacciones.

La Guía de integración estándar para Pagos desde su sitio Web proporciona información sobre la mayoría de las funciones de Pagosonline.net, así como explicaciones de cómo utilizarlas para cubrir sus necesidades de pago en Internet.

Utilice la Guía de integración estándar para:

• Configurar de manera rápida y sencilla la funcionalidad del comercio electrónico con Pagosonline.net. Por ejemplo, aprenda a integrar Pagosonline.net en su sitio Web en cuestión de minutos con los botones de pago utilizando formularios HTML.

• Conocer técnicas y herramientas más avanzadas para sacar el máximo partido a los servicios provistos por Pagosonline.net.

• Conocer que información debe enviar a, y recibir de Pagosonline.net.• Entender qué ven los compradores al momento de pagar dentro de Pagosonline.net.

Por ejemplo, revise qué significa para un nuevo comprador pasarela de pagos.• Conocer el funcionamiento de Pagosonline.net para visualizar mejor el flujo de los

Pagos.• Revisar las soluciones y buenas prácticas recomendadas.

La Guía de integración estándar incluye información e instrucciones del uso de las siguientes funciones:

• Páginas de pago, respuesta y confirmación• Envío y manipulación de información• Divisas o tipos de moneda admitidas• Tipos de Medio de Pago• Idiomas permitidos

Nota: Para conocer otras formas de integración y funcionalidades como por ejemplo, pagos recurrentes, por favor comuníquese con el área de soporte técnico en Pagosonline.net o acceda a nuestro foro: http://foros.pagosonline.net/

2

Page 4: Pagosonline.net - Manual de Integracin Tradicional 3

2. DESCRIPCIÓN

Figura 2.1. Flujo de una transacción típica.

Para comprender la validación manual consulte el Anexo IX

El comprador entra a la página del comercio y selecciona los productos y/o servicios que desea adquirir. (1) El comercio totaliza el valor de la compra y genera una trama que es enviada al sistema transaccional de Pagosonline.net por medio de una petición POST.

(2) El sistema transaccional valida la trama, captura la información en caso de tratarse de una tarjeta de crédito y envía los datos a la entidad bancaria.

(3) La entidad bancaria procesa la transacción y retorna una respuesta al sistema transaccional de Pagosonline.net (4) El sistema envía al comprador de nuevo a la página del comercio, utilizando la Página de Respuesta, esta incluye la información actual de la transacción. En el momento que se procese dicha transacción se envía la respuesta final a la Página de Confirmación.

3

Page 5: Pagosonline.net - Manual de Integracin Tradicional 3

Nota: Estas páginas, Respuesta y Confirmación se describen en detalle en capítulos posteriores.

Pagosonline.net cuenta con un módulo Antifraude que utiliza las últimas técnicas de inteligencia artificial para evaluar las transacciones, dependiendo de las opciones de configuración del comercio y del factor de riesgo asociado a una transacción, puede enviar la transacción a un proceso de validación manual, retardando el envío de la información a la entidad bancaria mientras se corrobora la autenticidad de la transacción.

Cuando esto sucede el sistema envía al comprador a la Página de Respuesta, indicando que la transacción se encuentra en proceso de validación.

ImportanteEl proceso de integración estándar está enfocado a los pymes y personales, si usted posee una cuenta empresarial o corporativa y/o está utilizando convenios propios es necesario realizar ajustes adicionales para la certificación ante ACH y así poder recaudar con tarjetas débito, cuentas corrientes o cuentas de ahorro. Por favor consulte con su asesor comercial o directamente con el área de soporte técnico en Pagosonline.net.

4

Page 6: Pagosonline.net - Manual de Integracin Tradicional 3

3. PROCESO DE INTEGRACIÓN

La utilización de Pagosonline.net requiere el desarrollo de una página dinámica y dos páginas dinámicas opcionales: La página de Envío de datos, y la página de Respuesta y la página de Confirmación respectivamente. A continuación se describe la funcionalidad de cada una de estas páginas y los parámetros asociados. Adicionalmente se describe cómo generar las firmas digitales de las transacciones y se presenta un ejemplo en PHP, Java y Asp .NET.

Nota: Ver imagen del flujo de una transacción, Figura 2.1.

ImportanteSi no desea utilizar las páginas de Respuesta y Confirmación, es necesario que redireccione el flujo del pago al index de su sitio web configurando en el módulo administrativo en Pagosonline.net la página de respuesta.

3.1 PÁGINA DE ENVÍO DE LA INFORMACIÓN

Esta es la página que envía la información al sistema transaccional de Pagosonline.net utilizando un formulario HTML. Como mínimo se debe enviar el código de referencia de la transacción “refVenta”, que no se debe repetir, el valor, el valor del IVA, la descripción de la venta y el número de usuario del comercio en Pagosonline.net. Con el código de referencia debe ser posible identificar exactamente qué producto o servicio se está pagando, así como los datos básicos del comprador.

Recomendamos utilizar un valor generado automáticamente por la base de datos. Además de ello recomendamos enviar también el correo electrónico del comprador para notificarle el resultado de la transacción así como para facilitar la evaluación de la transacción con el módulo antifraude. La página a la cual se debe enviar la información de los pagos se encuentra en la siguiente dirección URL:

https://gateway.pagosonline.net/apps/gateway/index.html

ImportanteLa dirección de enlace se encuentra bajo una capa SSL certificada por VERISIGN.

http://www.verisign.com/latinamerica/esp/

5

Page 7: Pagosonline.net - Manual de Integracin Tradicional 3

ImportanteSi envía una solicitud de pago con un mismo número de referencia pero con un valor o descripción diferente el sistema generará el error (-2017), consulte el capítulo 6 (Errores más frecuentes).

A continuación se presenta un ejemplo de un formulario HTML:

<form method="post" action="https://gateway.pagosonline.net/apps/gateway/index.html"><input name="usuarioId" type="text" value="2"><input name="descripcion" type="text" value="Pruebas"><input name="refVenta" type="text" value="0001"><input name="valor" type="text" value="116000"><input name="baseDevolucionIva " type="text" value="100000"><input name="iva" type="text" value="16000"><input name="moneda" type="text" value="COP"><input name="firma" type="text" value="694f9837325a1948796680e450a820b0"><input name="Submit" type="submit" value="Enviar">

</form>

En el formulario HTML se puede ver que se está generando una transacción para el usuario No 2, con una descripción de la venta "Pruebas", una referencia única de la compra "0001", por un valor total de "$116000" y un IVA de "$16000". El valor se envío en pesos colombianos, utilizando la variable moneda con el valor "COP", y se generó una firma digital con el valor "694f9837325a1948796680e450a820b0" que garantiza la autenticidad y la integridad de la transacción.

A continuación se presenta la tabla con los parámetros básicos que recibe la página de pagos, detallando el campo tipo como N: numérico y A: alfanumérico, la longitud máxima y si se trata de un campo requerido o no, para conocer los demás parámetros consulte en el anexo III.

Tabla 3.1. Parámetros básicos de la Pagina de PagosCampo Tipo. Tam. Req. Descripción

usuarioId N 12 Si El número de usuario en el sistema de Pagosonline.net. Este número lo encontrará en el correo de confirmación de la creación de su cuenta.

refVenta A 50 Si La referencia de la venta o pedido. Deber ser único por cada transacción que se envía al sistema.

descripcion A 255 Si Descripción de la venta.

valor N 14,2 Si El valor de la transacción especificado en la moneda enviada o en pesos si ésta no se especifica. Contiene dos dígitos decimales. Ej. 10000.00, son diez mil pesos con cero centavos.

iva N 14,2 Si El valor del IVA en la moneda especificada o en pesos si ésta no se especifica, si no se envía el IVA se aplicará el 16% automáticamente. Contiene dos dígitos decimales. Ej: 16000.00. En caso de que no tenga IVA o el IVA corresponda a otra tarifa se debe enviar en 0.

6

Page 8: Pagosonline.net - Manual de Integracin Tradicional 3

baseDevolucionIva N 14,2 Si El valor de la base de devolución del IVA para productos gravados con el 10% o el 16% de la tarifa del IVA. En caso de que no tenga IVA o el IVA corresponda a otra tarifa se debe enviar en 0.

firma A 32 Si La firma digital del mensaje utilizando el algoritmo Md5. Ver sección: Generación de las firmas digitales.

emailComprador A 255 No Campo que contiene el correo electrónico del comprador para notificarle el resultado de la transacción por correo electrónico.

prueba N 1 No Si el valor de la variable es "1" la transacción se considera una transacción de prueba.

lng A 3 No Código ISO-639 del idioma en el que se desea mostrar la pasarela de pagos. Ver los lenguajes admitidos en el anexo II.

moneda A 3 No Código ISO-4217 de la moneda respectiva en la que se debe mostrar la información del pago. El proceso de conciliación se hace en pesos a la tasa representativa del día. Ver las divisas admitidas en el Anexo I.

valorAdicional N 14,2 No El valor adicional no sujeto a comisión por parte de la entidad financiera Ej. una propina en un restaurante.

nombreComprador A 50 No El nombre del comprador. Este valor se tomará para llenar el formulario de tarjetas crédito.

documentoIdentificacion A 25 No El nombre de identificación del comprador. Este valor se tomará para llenar el formulario de tarjetas crédito. El nombre de identificación del comprador. Este valor se tomará para llenar el formulario de tarjetas crédito.

tipoDocumentoIdentificacion N 2 No El tipo de identificación del cliente. 1 – Cédula de Ciudadanía 2 - NIT (sin dígito de chequeo) 3 - Cédula de Extranjería 4 - Tarjeta de Identidad 5 - Pasaporte 6 - Tarjeta Social Security 7 - Sociedad extranjera sin Nit. 8 - Fideicomiso 9 - Registro Civil 10 – Carné Diplomático 99 – Otro

telefonoMovil A 50 No El número celular del comprador en caso de enviarlo se utilizará como teléfono del trabajo y de residencia Este valor se tomará para llenar el formulario de tarjetas crédito y será el teléfono de contacto.

extra1 A 255 No Campo adicional para enviar información sobre la compra. Ej. extra1 = teléfonos:2560608

extra2 A 255 No Campo adicional para enviar información sobre la compra.

url_respuesta A 255 No La url de respuesta. Donde se envía al tarjetahabiente una vez ha finalizado su proceso en Pagosonline.net1

url_confirmacion A 255 No La url de confirmación. Es una página dedicada a la recepción de datos de Pagosonline.net. Es transparente para cualquier usuario.

Las filas resaltadas son obligatorias para el sistema de Pagosonline.net.

1Este parámetro se debe enviar únicamente cuando la URL de respuesta y/o confirmación es diferente a la especificada en la configuración del cliente en su módulo administrativo . Si envía dicho parámetro, el sistema de Pagosonline.net ignorará la configurada en su panel administrativo y utilizará las variables que envíe.

7

Page 9: Pagosonline.net - Manual de Integracin Tradicional 3

Nota: Si desea conocer los demás parámetros que se pueden utilizar por favor remítase al anexo III.

3.1.1 Cálculo de la base de Devolución

La base de devolución corresponde al valor de los productos y/o servicios grabados con el IVA del 16% o del 10%. Para mayor claridad se presenta un ejemplo:

Tabla 3.2. Ejemplo del cálculo de la base de devolución del IVAProducto Base IVA Valor Total

A 100,000 16,000 116,000

B 200,000 20,000 220,000

C 150,000 0 150,000

Base Devolución IVA 300,000IVA 36,000Valor Total 486,000

Los campos que se deberían enviar a Pagosonline.net serían los siguientes:

Tabla 3.3. Ejemplo de los campos que se envían a Pagosonline.netCampo Valor

valor 486,000.00iva 36,000.00baseDevolucionIva 450,000.00

ImportanteSi usted envía los campos iva y baseDevolucionIva vacíos (p.e. IVA=' ') el sistema automáticamente tomará un IVA del 16% y la base de devolución respectiva.

3.1.2 Generación de las firmas digitales

Para garantizar la autenticidad y la integridad de las tramas que son recibidas y generadas por Pagosonline.net se desarrolló un sistema de firmas digitales basado en criptografía de una sola vía (funciones de Hashing).

8

Page 10: Pagosonline.net - Manual de Integracin Tradicional 3

Para la generación de las firmas se utiliza una llave de encripción que únicamente es conocida por Pagosonline.net y por el comercio (esta llave se puede consultar a través del módulo administrativo del sistema dado por Pagosonline.net). El algoritmo para la generación de las firmas digitales se describe a continuación:

Cadena de envío (COMERCIO → PAGOSONLINE):

El comercio almacena la información de la transacción en la base de datos y genera un código único de referencia. Con esta información construye una cadena de texto de la siguiente manera:

"llaveEncripcion~usuarioId~refVenta~valor~moneda"

en donde las variables son reemplazadas por sus valores correspondientes. El valor debe ir en el formato ###.00, por ejemplo "116000.00".A continuación se presenta un ejemplo para la generación de la firma digital por parte del comercio. Se supone que se cuenta con las siguientes variables:

Campo Valor

llaveEncripcion 1111111111111111usuarioId 2refVenta Pruebas01valor 116000.00moneda COP

La cadena que se debe construir es la siguiente:

"1111111111111111~2~Pruebas01~116000.00~COP"

Nota: Recuerde que estos datos son ejemplos, usted debe cambiarlos por los que le asignaron al convertirse en cliente de PAGOSONLINE.NET

A esta cadena se le debe aplicar la función de Hashing MD5, generando de esta manera la firma digital de la transacción. No olvide presentar la firma digital como una cadena en formato Hexadecimal. La firma digital correspondiente sería:

"ed3f338071021e4dff83ad6bc00ccae1"

9

Page 11: Pagosonline.net - Manual de Integracin Tradicional 3

Cadena de recepción (PAGOSONLINE → COMERCIO):

Las tramas generadas por Pagosonline.net también incluyen una firma digital para garantizar la autenticidad e integridad de la respuesta. La firma se construye al aplicar el algoritmo MD5 a la cadena:

"llaveEncripcion~usuarioId~refVenta~valor~moneda~estado_pol"

A continuación se presenta un ejemplo de una cadena generada con base a los siguientes campos:

Campo Valor

llaveEncripcion 1111111111111111usuarioId 2refVenta PRUEBAS01valor 116000.00moneda COP

La cadena generada sería:

"1111111111111111~2~PRUEBAS01~116000.00~COP~4".

Para poder usted comparar la firma digital enviada por Pagosonline.net y establecer la autenticidad de la cadena recibida, recuerde que debe tomar las variables que vienen en la transacción (GET para la de respuesta y POST para la de confirmación) y vienen en mayúscula sostenida. No realice la comparación tomando las variables, por ejemplo, desde su base datos (exceptuando su llave de encripción personal)

ImportanteRecuerde que el sistema asume la moneda "COP" siempre que se envía una transacción en donde no se especifica el campo "moneda". Para evitar posibles confusiones o errores le recomendamos enviar siempre la moneda asociada a una transacción.

10

Page 12: Pagosonline.net - Manual de Integracin Tradicional 3

3.1.3 Ejemplo de generación de las firmas digitales en PHP

A continuación se presenta un ejemplo de generación de firmas digitales con PHP. Por favor recuerde que la información se presenta a manera de ejemplo y es responsabilidad del comercio enviar los parámetros correctos como se explicó anteriormente.

<?php$llave_encripcion = "1111111111111111";$usuarioId=2;$refVenta=0001;$valor=116000;$baseDevolucionIva=100000;$iva=16000;$moneda=COP;$descripcion = "Pruebas de Generacion de Firmas";$firma= "$llave_encripcion~$usuarioId~$refVenta~$valor~$moneda";$firma_codificada = md5($firma);

?>

La llave de encripción que tiene asignado el usuario 2 es “1111111111111111”1. Con el identificador del usuario, la referencia de la venta, el valor y la moneda se genera la firma digital. Estos datos deben ser enviados a la página de pagos de Pagosonline.net, ubicada en https://gateway.pagosonline.net/apps/index.html.

A continuación se presenta el formulario HTML que es enviado a Pagosonline.net

<form name="form1" method="post" action="https://gateway.pagosonline.net/apps/gateway/index.html"><table width="500" border="0" cellpadding="0" cellspacing="2"><tr bgcolor="#FF8000 "><th> Campo</th><th >Valor</th></tr><tr bgcolor="#CCCCCC"><td>Usuario:</td><td><input name="usuarioId" type="text" value="<?php echo($usuarioId) ?>"></td></tr><tr bgcolor="#DEDEDE"><td>Descripci&oacute;n:</td><td><input name="descripcion" type="text" value="<?php echo $descripcion ?>" > </td></tr><tr bgcolor="#CCCCCC"><td>Ref. Venta:</td><td><input name="refVenta" type="text" value="<?php echo $refVenta ?>"></td></tr>

1 Para consultar la llave de encripción debe ingresar al módulo administrativo en https://secure.pagosonline.net/ y seleccionar la pestaña Opciones

11

Page 13: Pagosonline.net - Manual de Integracin Tradicional 3

<tr bgcolor="#DEDEDE"><td>Valor:</td><td><input name="valor" type="text" value="<?php echo $valor ?>">

</td> </tr> </tr> <tr bgcolor="#CCCCCC">

<td bgcolor="#CCCCCC">IVA:</td><td><input name="iva" type="text" value="<?php echo $iva ?>"></td></tr><tr bgcolor="#DEDEDE"><td bgcolor="#DEDEDE">Base Devolución Iva:</td><td><input name="baseDevolucionIva" type="text" value="<?php echo $baseDevolucionIva ?>" ></td></tr><tr bgcolor="#CCCCCC"><td bgcolor="#CCCCCC">Moneda:</td><td><input name="moneda" type="text" value="<?php echo $moneda ?>"></td></tr><tr bgcolor="#DEDEDE"><td>Firma:</td><td><input name="firma" type="text" value="<?php echo $firma_codificada ?>"></td></tr><tr bgcolor="#CCCCCC"><td>&nbsp;</td><td><input name="Submit" type="submit" value="Enviar"></td></tr></table>

</form>

3.1.4 Ejemplo de generación de las firmas digitales en JAVA

A continuación se presenta un ejemplo de generación de firmas digitales en JAVA. Por favor recuerde que la información se presenta a manera de ejemplo y es responsabilidad del comercio enviar los parámetros correctos como se explicó anteriormente.

<%@page import="org.apache.commons.codec.digest.DigestUtils"%>

<%String claveSecreta = "1111111111111111";int usuarioId = new Integer(request.getParameter("usuarioId")).intValue();String refVenta = request.getParameter("refVenta");double valor = new Double(request.getParameter("valor")).doubleValue();double baseDevolucion = new Double(request.getParameter("baseDevolucion")).doubleValue();double iva = new Double(request.getParameter("iva")).doubleValue();String moneda = request.getParameter("moneda");String descripcion = request.getParameter("descripcion");String cadena = claveSecreta + "~" + usuarioId + "~" + refVenta + "~" + valor + "~" + moneda;String firma = DigestUtils.md5Hex(cadena);

%>

12

Page 14: Pagosonline.net - Manual de Integracin Tradicional 3

ImportantePara poder ejecutar el ejemplo anterior debe incluir la librería commons-codec de Apache [http://jakarta.apache.org/commons/codec/].

La llave de encripción que tiene asignado el usuario 2 es “1111111111111111”2. Con el identificador del usuario, la referencia de la venta, el valor y la moneda se genera la firma digital. Estos datos deben ser enviados a la página de pagos de Pagosonline.net, ubicada en https://gateway.pagosonline.net/apps/index.html.

A continuación se presenta el formulario HTML que es enviado a Pagosonline.net

<form name="form1" method="post" action="https://gateway.pagosonline.net/apps/gateway/index.html"><table width="500" border="0" cellpadding="0" cellspacing="2"><tr bgcolor="#FF8000">

<th> Campo</th><th >Valor</th>

</tr><tr bgcolor="#CCCCCC">

<td>Usuario:</td><td><input name="usuarioId" type="text" value="<%= usuarioId %>"></td>

</tr><tr bgcolor="#DEDEDE">

<td>Descripci&oacute;n:</td><td><input name="descripcion" type="text" value="<%= descripcion %>"></td>

</tr><tr bgcolor="#CCCCCC">

<td>Ref. Venta:</td><td><input name="refVenta" type="text" value="<%= refVenta %>"></td>

</tr><tr bgcolor="#DEDEDE">

<td>Valor:</td><td><input name="valor" type="text" value="<%= valor %>"></td>

</tr><tr bgcolor="#DEDEDE">

<td>Base Devolución Iva:</td><td><input name="baseDevolucionIva" type="text"

value="<%= baseDevolucion%>"></td></tr><tr bgcolor="#CCCCCC">

<td bgcolor="#CCCCCC">IVA:</td><td><input name="iva" type="text" value="<%= iva %>"></td>

</tr><tr bgcolor="#DEDEDE">

<td bgcolor="#DEDEDE">Moneda:</td><td><input name="moneda" type="text" value="<%= moneda %>"></td>

</tr><tr bgcolor="#CCCCCC">

2 Para consultar la llave de encripción debe ingresar al módulo administrativo en https://secure.pagosonline.net/ y seleccionar la opción Opciones

13

Page 15: Pagosonline.net - Manual de Integracin Tradicional 3

<td>Firma:</td><td><input name="firma" type="text" value="<%= firma %>"></td>

</tr><tr bgcolor="#CCCCCC">

<td>&nbsp;</td><td><input name="Submit" type="submit" value="Enviar"></td>

</tr></table>

</form>

3.1.5 Ejemplo de generación de las firmas digitales en Visual Basic .NET

A continuación se presenta un ejemplo de generación de firmas digitales con Visual Basic (Asp.net). Por favor recuerde que la información se presenta a manera de ejemplo y es responsabilidad del comercio enviar los parámetros correctos como se explicó anteriormente.

<%@ Page Language="VB" %><%@ Import Namespace="System" %><%@ Import Namespace="System.Security.Cryptography" %><%@ Import Namespace="System.Text" %>.....<%

' Encripta una cadena ingresada y retorna el Hash' como una cadena hexadecimal de 32 caracteresFunction getMd5Hash(ByVal input As String) As String

' Crea una nueva instancia del objeto MD5.Dim md5Hasher As MD5 = MD5.Create()' Convierte la cadena ingresada a un array de bytes y genera el hash.Dim data As Byte() = md5Hasher.ComputeHash(Encoding.Default.GetBytes(input))' Create a new Stringbuilder to collect the bytes and create a string.Dim sBuilder As New StringBuilder()' Loop through each byte of the hashed data and format each one as a hexadecimal string.' Dim i As IntegerFor i = 0 To data.Length - 1sBuilder.Append(data(i).ToString("x2"))Next i' Return the hexadecimal string.Return sBuilder.ToString()

End Function'Se capturan las variables por ejemplo desde un formularioDim claveSecreta As String = "1111111111111111";Dim usuarioId As Integer = request.form("usuario_id")Dim refVenta As String = request.form("ref_venta")Dim valor As Double = request.form("valor")Dim moneda As String = request.form("moneda")Dim firma As String = "claveSecreta & "~" & usuarioId & "~" & refVenta & "~" & valor & "~" &moneda"Dim firma_codificada As String = getMd5Hash(firma) %>

14

Page 16: Pagosonline.net - Manual de Integracin Tradicional 3

La llave de encripción que tiene asignado el usuario 2 es “1111111111111111”3. Con el identificador del usuario, la referencia de la venta, el valor y la moneda se genera la firma digital. Estos datos deben ser enviados a la página de pagos de Pagosonline.net, ubicada en https://gateway.pagosonline.net/apps/index.html.

A continuación se presenta el formulario HTML que es enviado a Pagosonline.net

<form name="form1" method="post" action="https://gateway.pagosonline.net/apps/gateway/index.html">

<table width="500" border="0" cellpadding="0" cellspacing="2"><tr bgcolor="#000099">

<th width="119">Campo</th> <th width="375">Valor</th></tr><tr bgcolor="#CCCCCC">

<td>Usuario:</td><td><input name="usuarioId" type="text" value="<%= request.form("usuarioId") %>"></td>

</tr><tr bgcolor="#DEDEDE">

<td>Descripci&oacute;n:</td><td><input name="descripcion" type="text" value="<%= request.form("descripcion")%>"></td>

</tr><tr bgcolor="#CCCCCC">

<td>Ref. Venta:</td><td><input name="refVenta" type="text" value="<%= request.form("refVenta") %>"></td>

</tr><tr bgcolor="#DEDEDE">

<td>Valor:</td><td><input name="valor" type="text" value="<%= request.form("valor") %>"></td>

</tr><tr bgcolor="#CCCCCC">

<td>Valor:</td><td><input name="baseDevolucionIva" type="text" value="<%=request.form("baseDevolucionIva") %>"></td>

</tr><tr bgcolor="#DEDEDE">

<td bgcolor="#DEDEDE">IVA:</td><td><input name="iva" type="text" value="<%= request.form("iva") %>"></td>

</tr><tr bgcolor="#CCCCCC">

<td bgcolor="#CCCCCC">Moneda:</td><td><input name="moneda" type="text" value="<%= request.form("moneda") %>"></td>

</tr><tr bgcolor="#DEDEDE ">

<td>Firma:</td><td><input name="firma" type="text" value="<%= request.form("firma") %>"></td>

</tr><tr bgcolor="#CCCCCC">

<td>&nbsp;</td><td><input name="Submit" type="submit" value="Enviar"></td>

</tr> </table> </form>

3 Para consultar la llave de encripción debe ingresar al módulo administrativo en https://secure.pagosonline.net/ y seleccionar la opción Opciones

15

Page 17: Pagosonline.net - Manual de Integracin Tradicional 3

4. PÁGINA DE RESPUESTA

La página de respuesta es una página informativa que se le muestra al comprador una vez ha terminado de realizar su transacción financiera en Pagosonline.net. Esta página tiene un propósito puramente informativo. Dada la naturaleza de Internet, es imposible garantizar que la página de respuesta sea llamada en todos los casos, el comprador puede cerrar el navegador de Internet antes de tiempo, o puede tener un problema de comunicación temporal. Le recomendamos no realizar ningún tipo de operación transaccional en esta página, este tipo de operaciones se deben realizar utilizando la página de confirmación.

Nota: Ver imagen del flujo de una transacción, Figura 2.1.

A continuación se presenta los parámetros que son enviados a la página de respuesta, detallando el tipo campo N: numérico y A: alfanumérico, la longitud máxima y si se trata de un campo requerido o no.

Tabla 4.1. Parámetros enviados a la Pagina de RespuestaCampo Tipo. Tam. Descripción

usuario_id N 12 El número de usuario en el sistema de Pagosonline.net. Este número lo encontrará en el correo de confirmación de la creación de su cuenta.

estado_pol N 2 Indica el estado de la transacción en el sistema, ver tabla en el anexo IV con los estados.

riesgo N 12 El riesgo asociado a la transacción. Toma un valor entre 0 y 1. A mayor riesgo mayor valor. Viene en formato ###.00

codigo_respuesta_pol N 2 El código de respuesta de Pagosonline.net. Ver la tabla con los códigos de respuesta en el anexo V.

ref_venta A 50 La referencia de la venta o pedido. Deber ser único por cada transacción que se envía al sistema.

ref_pol N 12 La referencia o número de la transacción en Pagosonline.net.

firma A 32 La firma digital del mensaje utilizando el algoritmo Md5, esta firma se enviará en mayúscula sostenida por motivos de compatibilidad. Ver sección: Generación de las firmas digitales.

extra1 A 255 Campo adicional para enviar información sobre la compra. Ejemplo: extra1=teléfonos:2560608. Si el campo no especificado, envía una cadena en blanco.

extra2 A 255 Campo adicional para enviar información sobre la compra. Si el campo no fue especificado, envía una cadena en blanco.

mensaje A 255 Descripción del estado de la transacción.

medio_pago N 2 El identificador interno del medio de pago utilizado. Ver tabla en el anexo VII para consultar información sobre los medios depago disponibles

16

Page 18: Pagosonline.net - Manual de Integracin Tradicional 3

tipo_medio_pago N 2 El tipo de medio de pago utilizado para el pago. Ver tabla en el anexo VI para los tipos de medios de pago disponibles.

cuotas N 2 Número de cuotas en las cuales se difirió el pago con tarjeta crédito.

valor N 14,2 El valor de la transacción en formato ###.00 en la moneda que fue hecho el pago.

valorPesos N 14,2 El valor de la transacción en formato ###.00 en pesos Colombianos (COP).

iva N 14,2 El valor del IVA de la transacción en formato ###.00

valorAdicional N 14,2 El valor adicional enviado no sujeto a comisión por parte de la entidad financiera.

moneda A 3 Código ISO-4217 de la moneda utilizada para realizar el pago. Ver las divisas admitidas en el anexo I.

cus N 15 El cus, código único de seguimiento, es la referencia del pago dentro del Banco, aplica solo para pagos con PSE. En el caso de un pago con tarjeta de crédito se envía la fecha de la transacción YYYYMMDD. Requerido para la certificación de PSE con ACH Colombia.

banco_pse A 25 El nombre del banco, aplica solo para pagos con PSE. Requerido para la certificación de PSE con ACH Colombia.

idioma A 2 Código ISO-639 del idioma en el cual se mostró la pasarela de pagos. Ver los lenguajes admitidos en el anexo II.

emailComprador A 255 Campo que contiene el correo electrónico del comprador para notificarle el resultado de la transacción por correo electrónico.

fecha_procesamiento A 20 La fecha en que se realiza la transacción.

ImportantePara propósitos de despachos y/o manejo logístico de su negocio (a excepción de ciertos casos mencionados en el capítulo 9) NO UTILICE la página de respuesta como mecanismo para actualizar su base de datos. A su vez tenga en cuenta el estado en validación (para tarjetas de crédito) y el estado pendiente (para PSE), ya que no son una respuesta afirmativa ni negativa de la transacción. Entonces es necesario que en la página de respuesta usted informe al tarjeta habiente que dicha transacción debe ser autorizada por su sistema de pagos en línea y puede tomar un tiempo prudencial la verificación de datos y procesamiento de la misma. Para más información sobre este estado, remítase al Anexo IX numeral h .

4.1 EJEMPLO EN PHP PARA CAPTURAR VARIABLES DE URL DE RESPUESTA

Por favor recuerde que la información se presenta a manera de ejemplo y es responsabilidad del comercio mostrar los parámetros correctos como se explicó anteriormente.

17

Page 19: Pagosonline.net - Manual de Integracin Tradicional 3

En este caso tomaremos como ejemplo de variable la Referencia del pago (ref_pol):

<!—Código de respuesta del comercio --><tr>

<td>Referencia del pago:</td><td><?php echo $_GET['ref_pol']; ?></td>

</tr>

4.2 EJEMPLO EN JAVA PARA CAPTURAR VARIABLES DE URL DE RESPUESTA

<!—Código de respuesta del comercio --><tr>

<td>Referencia del pago:</td><td><% out.println(request.getParameter("ref_pol")); %></td>

</tr>

4.3 EJEMPLO EN ASP.NET PARA CAPTURAR VARIABLES DE URL DE RESPUESTA

<!—Código de respuesta del comercio --><tr>

<td>Referencia del pago:</td><td>><% =Request.querystring("ref_pol") %></td>

</tr>

Una vez el tarjetahabiente haya procesado el pago, podrá visualizar claramente página de respuesta que dará a conocer las variables anteriormente suscritas.

ImportanteSi usted lo desea, puede requerir que la página de respuesta sea una estándar de PAGOSONLINE.NET. Si hace esto, configure la URL de respuesta como el index de su página web (p.e. http://www.misitio.com/index.html) sobre su panel administrativo y consulte al área de soporte de Pagosonline.net.

ImportantePara descargar ejemplos y tutoriales no olvide visitar nuestra web de ayudas:

http://ayuda.pagosonline.net/ayuda/descargas.html

18

Page 20: Pagosonline.net - Manual de Integracin Tradicional 3

5. PÁGINA DE CONFIRMACIÓN

Una vez recibida la confirmación de la transacción por parte de la entidad financiera, Pagosonline.net invocará la página de confirmación. Esta página establece una comunicación directa entre el sistema transaccional de Pagosonline.net y el sitio web del comercio y por ende no se mostrará ninguna información al comprador. Esta página es independiente y diferente a la Página de Respuesta, no tiene tags html ni funciones de navegador como javascript; es transparente para cualquier usuario y solamente cumple la función de recibir la información a través de un socket entre el servidor del comercio y el de pagosonline.net

El propósito de la página de confirmación es notificar al comercio de la realización de una transacción en Pagosonline.net, para que éste pueda dar inicio al proceso logístico correspondiente4. La página de confirmación del comercio es llamada por medio de una petición HTTP POST.

A continuación se presentan los parámetros que son enviados a la página de confirmación, detallando el tipo campo N: numérico y A: alfanumérico, la longitud máxima y si se trata de un campo requerido o no.

Tabla 5.1. Parámetros enviados a la Pagina de ConfirmaciónCampo Tipo. Tam. Descripción

usuario_id N 12 El número de usuario en el sistema de Pagosonline.net. Este número lo encontrará en el correo de confirmación de la creación de su cuenta.

estado_pol N 2 Indica el estado de la transacción en el sistema, ver tabla en el anexo IV con los estados.

riesgo N 12 El riesgo asociado a la transacción. Toma un valor entre 0 y 1. A mayor riesgo mayor valor. Viene en formato ###.00

codigo_respuesta_pol N 2 El código de respuesta de Pagosonline.net. Ver la tabla anexa con los códigos de respuesta.

ref_venta A 50 La referencia de la venta o pedido. Deber ser único por cada transacción que se envía al sistema.

ref_pol N 12 La referencia o número de la transacción en Pagosonline.net.

firma A 32 La firma digital del mensaje utilizando el algoritmo Md5, esta firma se enviará en mayúscula sostenida por motivos de compatibilidad. Ver sección: Generación de las firmas digitales.

4 Le recomendamos establecer un proceso tanto para las transacciones aprobadas como para las transacciones rechazadas. Los clientes de Pagosonline.net que mayor volumen de ventas tienen, generalmente cuentan con un sistema de seguimiento automático capaz de generar control de inventarios, despachos y otras funciones relacionadas para contactar a sus clientes.

19

Page 21: Pagosonline.net - Manual de Integracin Tradicional 3

extra1 A 255 Campo adicional para enviar información sobre la compra. Ejemplo: extra1=teléfonos:2560608. Si el campo no especificado, envía una cadena en blanco.

extra2 A 255 Campo adicional para enviar información sobre la compra. Si el campo no fue especificado, envía una cadena en blanco.

medio_pago N 2 El identificador interno del medio de pago utilizado. Ver tabla en el anexo VII para consultar información sobre los medios de pago disponibles

tipo_medio_pago N 2 El tipo de medio de pago utilizado para el pago. Ver tabla en el anexo VI para los tipos de medios de pago disponibles.

cuotas N 2 Número de cuotas en las cuales se difirió el pago con tarjeta crédito.

valor N 14,2 El valor de la transacción en formato ###.00 en la moneda que fue hecho el pago.

iva N 14,2 El valor del IVA de la transacción en formato ###.00

valorAdicional N 14,2 El valor adicional enviado no sujeto a comisión por parte de la entidad financiera.

moneda A 3 Código ISO-4217 de la moneda respectiva en la que se debe mostrar la información del pago. El proceso de conciliación se hace en pesos a la tasa representativa del día. Ver las divisas admitidas en el anexo I.

fecha_transaccion A 20 La fecha de procesamiento de la transacción en formato: yyyy-MM-dd HH:mm:ss. Por ejemplo 2005-07-29 15:15:43

codigo_autorizacion A 7 Se envía únicamente si la transacción resultó aprobada. En el caso de tarjetas de crédito, se envía un código numérico de trazabilidad interno de pagosonline. En el caso de tarjeta débito se enviá en formato texto indicando el estado.

cus N 15 El cus, código único de seguimiento, es la referencia del pago dentro del Banco, aplica solo para pagos con PSE. En el caso de un pago con tarjeta de crédito se envía la fecha de la transacción YYYYMMDD. Requerido para la certificación de PSE con ACH Colombia.

banco_pse A 25 El nombre del banco, aplica solo para pagos con PSE. Requerido para la certificación de PSE con ACH Colombia.

email_comprador A 255 Campo que contiene el correo electrónico del comprador para notificarle el resultado de la transacción por correo electrónico.

Nota: Para validar la autenticidad y la integridad de los datos le recomendamos validar la firma digital de la transacción, como se detalla en el 3.1.2.

ImportantePor políticas de seguridad de Pagosonline.net, usted solo podrá utilizar el puerto80 para la recepción de la información enviada a la página de confirmación porPagosonline. Además si instala la página de confirmación en un servidor segurohttps, debe tener un certificado de seguridad válido y enviarlo al área de soportede Pagosonline.net. De lo contrario el sistema no podrá llamar a la página de confirmación

20

Page 22: Pagosonline.net - Manual de Integracin Tradicional 3

Por favor recuerde que la información se presenta a manera de ejemplo y es responsabilidad del comercio enviar los parámetros correctos como se explicó anteriormente.

5.1 Ejemplo en PHP para capturar variables de URL de confirmación

<?php $referenciaPol = $_POST['ref_pol'];

?>

5.2 Ejemplo en JAVA para capturar variables de URL de confirmación

<% longint referenciaPol;referenciaPol= request.getParameter("ref_pol"));

%>

5.3 Ejemplo en ASP.NET para capturar variables de URL de confirmación

<% Dim referenciaPol as LongreferenciaPol = Request.Form("ref_pol")

%>

Nota: Consulte el anexo III para ver los parámetros adicionales enviados a la página de confirmación. También le recomendamos revisar el anexo IX donde se resuelven dudas acerca de los errores generados para esta página.

ImportanteSi usted tiene un volumen transaccional alto o es crítico para las reglas de su negocio recibir la respuesta de la transacción rápidamente (por ejemplo ventas de tiquetes, reservas o boletería), le recomendamos enfáticamente consumir el método de consultarEstadoTransaccion() del web service de pagosonline.net en vez de utilizar la página de confirmación aquí descrita.Por favor consulte el manual de integración web service(http://ayuda.pagosonline.net) o comuníquese con el área de soporte.

21

Page 23: Pagosonline.net - Manual de Integracin Tradicional 3

6. ERRORES MÁS FRECUENTES

Tabla 6.1. Códigos de error que se pueden presentar durante el proceso de pago.No.

ErrorDescripción Posible solución

-7 La solicitud de pago ya se encuentra como pagada en el sistema.

Verifique que la referencia de venta no haya sido utilizada con anterioridad. Recuerde que la referencia de venta es un campo único.

-116 El monto de la transacción excede los límites establecidos, por favor comuníquese con la empresa

El comercio debe solicitar a través de correo electrónico o llamada telefónica el aumento del monto por transacción de ser necesario.

-113 Error validando firma digital. Por favor verifique que la cadena que está generando la firma digital esté correcta.

Revise el capítulo 3.1.2 para verificar la correcta generación de dicha variable. Verifique que la llave de encripción concuerde con la que esta en su módulo administrativo. También verifique que este enviando los campos como se indica en el capítulo 3.1.

-122 El valor es inferior al mínimo permitido, por favor verifique.

El monto mínimo de transacción para Pagosonline.net es 3,500 pesos colombianos.

-143 El valor de la base de devolución del IVA es inválido, por favor verifique que el campo no esté vacío o no corresponda el valor indicado.

Recuerde que la base de devolución depende del IVA, si no hay IVA no hay base de devolución. No se pueden enviar valores negativos.

-161 El valor del IVA es inválido, excede o es igual al valor de la transacción.

Verifique que la base de devolución más el IVA no superen el valor total de la transacción.

-175 El valor es superior al máximo permitido, si desea aumentar su monto permitido actual, por favor contacte con el área de transacciones.

El comercio debe solicitar a través de correo electrónico o llamada telefónica el aumento del monto mensual de transacciones de ser necesario.

-2010 Los datos para crear la solicitud de pago son inválidos o insuficientes

Verifique que todos los campos obligatorios se están enviando correctamente (incluido el usuarioId, refVenta y firma)

-1003 Transacción rechazada, por favor contacte el área de transacciones para mayor información.

Su IP no esta validada por el módulo antifraude para realizar pruebas. Por favor contacte con el área de soporte para habilitar su IP.

-2017 Modificación ilegal solicitud pago Este error ocurre cuando se envía una transacción con el mismo número de referencia de venta, pero se ha modificado algún valor (valor, iva, base de devolución del IVA). El sistema no permite dos transacciones con la misma referencia de venta. Verifique, si genera este número desde una base de datos (autoincrement), que este campo no este enviando números enviados anteriormente.

Nota: Si su error no aparece aquí, visite nuestros foro: http://foros.pagosonline.net/

22

Page 24: Pagosonline.net - Manual de Integracin Tradicional 3

7. MÓDULO DE AGENCIAS DE VIAJES

El sistema cuenta con un módulo especial para las agencias de viajes que permite cobrar la tarifa administrativa y el tiquete aéreo en un único pago, enviando el dinero de la tarifa administrativa a la agencia de viajes y el dinero del tiquete aéreo a la aerolínea. Para utilizar este módulo únicamente se debe enviar el código VISA o el código IATA de la aerolínea, así como el valor de la tarifa administrativa, el iva de la tarifa administrativa y la base de devolución del IVA.

El módulo utiliza la página de respuesta y la página de confirmación para reportar el resultado del pago al cliente. En caso tal que los campos correspondientes a la tarifa administrativa no se envíen, el sistema procesará la transacción de manera ordinaria, abonando el dinero directamente a la cuenta de la agencia de viajes

ImportantePor motivos técnicos es posible que la transacción para el pago del tiquete aéreo se apruebe y la transacción de la tarifa administrativa se rechace. Cuando esto ocurre, el sistema retorna el código de respuesta 24, transacción parcial aprobada. Es responsabilidad del comercio procesar de nuevo el pago para la tarifa administrativa.

El módulo de agencias de viajes se encuentra disponible únicamente para pagos con tarjetas de Crédito VISA, AMEX y DINERS. Aún no se encuentra disponible para pagos con tarjetas de crédito MASTERCARD.El valor de la tasa aeroportuaria se debe enviar en el campo valorAdicional y no se debe agregar al valor total de la transacción para que la entidad financiera no cobre comisión sobre este valor.

Este es un ejemplo de como se envían los campos:

Campo Valor

valor 109620.00baseDevolucionIva 94500.00iva 15120.00valorAdicional 11300.00tarifaAdministrativa 21231.00ivaTarifaAdministrativa 2928.00baseDevolucionTarifaAdministrativa 18303.00

23

Page 25: Pagosonline.net - Manual de Integracin Tradicional 3

8. PRUEBAS

Pagosonline.net cuenta con un módulo y un servidor de pruebas (clon del servidor de producción), que permite realizar pruebas con tarjetas de crédito ficticias y pagos simulados sobre el sistema PSE, en tiempo real.

8.1 PRUEBAS CON TARJETA DE CRÉDITO

A continuación se describe el procedimiento para realizar una prueba en el sistema:

1. Para que el sistema utilice el módulo de pruebas debe enviar una solicitud de pago (ver sección 3.1) con la variable prueba con el valor 1 y el campo action del form se debe modificar de la siguiente manera:

<form method="post" action="https://gateway2.pagosonline.net/apps/gateway/index.html">

2. Debe seleccionar una de las franquicias emisoras de las tarjetas de crédito

3. Debe ingresar todos los datos requeridos por el sistema, digitando en el campo de la tarjeta de crédito un número de longitud 16 dígitos. Para conseguir determinada respuesta ingrese uno de los siguientes números:

Número de tarjeta Respuesta respuesta_estado_pol

9955555555555501 Aprobada

9955555555555504 Rechazada

9955555555555515 En proceso de validación

Por ejemplo, para aceptar una transacción escriba el siguiente número de tarjeta de crédito: 9900000000000001. Los dos primeros dígitos (99) indican que se trata de una tarjeta de crédito de pruebas. Los dos últimos dígitos de la tarjeta de crédito (01) corresponden al código de respuesta de una transacción aceptada. Los dígitos intermedios son irrelevantes pueden tomar cualquier número. Por lo tanto si usted desea generar otros estados de respuesta por favor remítase al Anexo V. Si hace la prueba con MasterCard los dígitos de verificación son '123'.

24

Page 26: Pagosonline.net - Manual de Integracin Tradicional 3

ImportanteNo realice pruebas con tarjetas débito, cuenta de ahorro o cuenta corriente si el action del form envía los datos a

https://gateway.pagosonline.net/apps/gateway/index.html

ya que se le debitará de la cuenta el pago como si fuera una transacción real. Para analizar el funcionamiento completo del sistema realice pruebas con tarjetas crédito, el flujo de la información con tarjetas débito es el mismo, tan solo que al momento de pagar se redirige al sitio web del banco para que allí ingrese usuario y contraseña, y al finalizar el pago se redirige a su página de respuesta.

8.2 PRUEBAS A TRAVÉS DE PSE

Nota: El sistema de PSE esta disponible solamente en el horario 8:00 a.m. - 8:00 p.m. (en ambiente de pruebas)

Pagosonline cuenta con un sistema de pruebas para PSE similar al de tarjetas de crédito; por lo tanto también es posible generar varios códigos de respuesta. Para ello, una vez que ingrese a la pasarela de pagos de pagosonline.net, debe escoger PSE como medio de pago. Una vez allí seleccione el banco: BANCO WEB SERVICE ACH como lo indica la imagen.

Figura 8.1

25

Page 27: Pagosonline.net - Manual de Integracin Tradicional 3

En la siguiente pantalla, sale un formulario de pruebas de PSE donde se debe colocar los siguientes datos:

Account Agency: 1234Account Number: 1234Password: 123456

como lo indica la imagen

Figura 8.2

El resultado de la operación será aprobada.

Para obtener el estado Rechazada elegimos de nuevo Banco Web Service ACH como en la Figura 8.1. Cuando lleguemos al formulario de PSE (Figura 8.2) le damos clic en Cancel, y en la siguiente pantalla coloque 00001, como lo muestra la imagen:

Figura 8.3

26

Page 28: Pagosonline.net - Manual de Integracin Tradicional 3

De igual manera podemos simular otros resultados:

Banco a seleccionar Datos plantilla PSE Resultado de la operación

Banco Web Service ACH AA: 1234AN: 1234P: 123456

Aprobada

Banco Web Service ACH Botón Cancel.Luego en el campo Error Code colocar: 00001

Rechazada

Banco Unión Colombiano AA: 1234AN: 1234P: 123456

Fallida

Banco Tequendama AA: 1234AN: 794613P: -

Pendiente

AA: Account AgencyAN: Account NumberP: Password

27

Page 29: Pagosonline.net - Manual de Integracin Tradicional 3

9. CERTIFICACIÓN PSE (solo plan empresarial)

ACH Colombia es una Cámara de Compensación Autorizada que permite el intercambio de transacciones entre diferentes Entidades Financieras. Para el caso de compras en internet, el sistema a utilizar es PSE (Proveedor de Servicios Electrónicos), y por lo tanto todo el proceso de compra de un artículo o servicio, debe ser certificado por dicha entidad.

Para todo este capítulo tenga en cuenta la siguiente tabla de estados:

estado_pol cod_respuesta_pol estado a mostrar Tipo de estado

4 1 Transacción aprobada final6 5 Fallido. final6 4 Transacción Rechazada final12 9994 Pendiente, Por favor revisar si el

débito fue realizado en el Banco Intermedio

6 15 En proceso de validación Intermedio

Estos son los principales requerimientos que su sitio web y el proceso de comprar debe cumplir.:

1. Manejar formato de miles para las cantidades que se muestren en el sitio web del comercio durante todo el proceso de pago (p.e.: 156,000).

2. Si se desea realizar una página de respuesta personalizada, debe tenerse en cuenta que para efectos de la certificación debe mostrar los siguientes datos:

• Nombre y nit de la empresa (estos datos deben coincidir con la información con la que se creó el código de servicio en ACH para el comercio en cuestión).

• Fecha en que se realiza la transacción. (fecha_procesamiento)• Estado de la transacción. (mensaje)• Referencia del pedido (ref_venta)• Referencia de la transacción (ref_pol)• CUS (cus)• Banco (banco_pse)• Valor (valor)• Moneda (moneda)• Valor en pesos colombianos (valorPesos)• Descripción (obtenida desde su base de datos)

28

Page 30: Pagosonline.net - Manual de Integracin Tradicional 3

En todos los casos debe mostrar el Estado de la transacción en base a la tabla de estados de este capítulo. Además debe incluirse el teléfono del comercio para que el cliente pueda comunicarse para hacer consultas sobre sus transacciones.

Nota: Si tiene otros medios de pago, imprima en la página de respuesta la variable mensaje.

Figura 9.1 Ejemplo de respuesta

3. En caso del uso obligado de ventanas emergentes, se debe tener en cuenta que no debe ser posible hacer cambios en los datos de la transacción ingresando a la ventana que se abrió inicialmente.

4. La descripción debe ser clara y referente al producto o servicio que se está pagando. No debe superar los 80 caracteres. Ejemplo: “Compra en Tutienda.com”

5. La pasarela de pagos debe estar personalizada. Para ello deben solicitar al área de soporte de Pagosonline.net el archivo html a personalizar.

29

Page 31: Pagosonline.net - Manual de Integracin Tradicional 3

6. Se debe enviar la variable email del comprador (emailComprador) o el documento de identidad (documentoIdentificacion) para la validación del doble pago5 .Si en el sitio web se maneja una razón social diferente de la registrada en ACH, se debe enviar a esta entidad el soporte que explique la relación.

7. La pasarela de pagos no debe ser cargada en una ventana nueva (_blank) ni tampoco en IFrame (ventana interna).

8. Si existe algún mecanismo de consulta respecto a las compras virtuales realizadas en la web del comercio, los estados de las mismas deben coincidir con el estado mostrado con la página de respuesta.

9. Si se desea mostrar textos informativos, no se debe mencionar el término tarjeta débito, por ejemplo “Pague aquí con su tarjeta débito”. Se debe colocar:

“Usted puede hacer su pago con cuenta corriente o de ahorros a través de PSE”

10. Si su sistema cuenta con algún mecanismo de consulta o historial de transacciones o de compras verifique lo siguiente:

1. Cada vez que se vaya una transacción a pagosonline.net marque la transacción en su base de datos como abierta, y no la muestre aún en el mencionado mecanismo.

2. Utilice la página de respuesta para actualizar la base de datos, para ello utilice la validación de la firma digital devuelta por pagosonline (3.1.2). En el mecanismo de consulta ahora debe aparecer la transacción con el respectivo estado. Este estado, debe concordar con el estado mostrado en la página de respuesta. Sin embargo, para los casos de transacciones aprobadas, utilice la página de confirmación como medio eficaz de actualización.

3. El mecanismo de consulta o historial debe mostrar como mínimo estos parámetros:

Referencia de venta

Fecha CUS Banco Valor Estado

XXXXX Igual que en la página de respuesta

6 dígitos Banco Numérico con separador de miles

Igual que en la página de respuesta

Para las transacciones con tarjeta de crédito el CUS y el Banco no aplican.

5 Es el termino utilizado para el mecanismo de alerta del sistema de pagosonline.net, el cual le avisa al tarjetahabiente que aún tiene un pago pendiente que no se ha resuelto en PSE.

30

Page 32: Pagosonline.net - Manual de Integracin Tradicional 3

4. Para el caso de las transacciones pendientes:

a) Si su portal web se dedica a vender algún servicio o producto virtual y la persona intenta pagar el mismo servicio, debe bloquear la transacción e informarle al comprador que tienen una transacción pendiente y debe verificar si el débito ya se ha realizado en la página del banco.

b) Si su portal web vende productos tangibles, debe informar al comprador que tiene una transacción pendiente, pero sin embargo puede realizar la compra.

11. Se recomienda colocar imágenes y mensajes alusivos a la transacción. Por ejemplo advertirles acerca de la segunda clave como requerimiento en la mayoría de portales bancarios para realizar transacciones, o también frases alusivas como:

Esta a punto de realizar un pago seguro en internet, en una pagina HTTPS que encriptará su información personal.

Le recomendamos utilizar un computador de su entera confianza.

y también el logo de PSE:

A pesar de no ser un requerimiento, se ha demostrado que estas advertencias incrementan el número de ventas pues genera confianza al tarjetahabiente o comprador.

Nota: A través de PSE no es posible retornar a la página de confirmación el nombre del tarjetahabiente.

31

Page 33: Pagosonline.net - Manual de Integracin Tradicional 3

ANEXOS

I) Divisas admitidas

Las siguientes divisas las soporta Pagosonline.net y corresponden a la moneda en la que se desea mostrar la información del pago. El proceso de conciliación se hace en pesos colombianos a la tasa representativa del día, el código ISO es el que se enviará en el parámetro “moneda” en el botón de pago.

Tabla A.1 Divisas soportadas por Pagosonline.net y códigos ISO-4217 respectivos de las divisas para las transacciones.

Código ISO-4217 Divisa

COP Pesos Colombianos

EUR Euros

GBP Libras Esterlinas

MXN Pesos Mexicanos

USD U.S. Dolar

VEB Bolívares Fuertes

II) Idiomas admitidos

Los siguientes idiomas están soportados por Pagosonline.net para el uso en la página de pagos.

Tabla A.2 Idiomas permitidos por Pagosonline.net y sus códigos ISO-639 correspondientes

Código ISO-639 Idioma

fr Francés

en Inglés

es Español

it Italiano

32

Page 34: Pagosonline.net - Manual de Integracin Tradicional 3

III) Parámetros adicionales para página de pago

Los siguientes parámetros adicionales están permitidos por el sistema de Pagosonline.net para su respectiva necesidad.

Tabla A.3.1 parámetros adicionales en el botón de pagos.Campo Tipo. Tam. Descripción

tiposMediosDePago N 2 Especifica el o los códigos de los medios de pagos que quiere activar para que su cliente pueda pagar, en su defecto todos están activos.Ejemplo: tiposMediosDePago=2,8; si envía más de un código sepárelos por comas. Ver los tipos medios de pagos en el anexo VI

plantilla A 255 Le permite al usuario especificar una plantilla html personalizada que previamente debió haber sido registrada en el sistema tomando el servicio de Look and Feel.

codigo_pse A 50 Si posee más de un código de servicio creado en la plataforma de PSE y desea especificar cual utilizar. Solo aplica para plan empresarial o corporativo.

direccionCobro

A 255 La dirección de correspondencia (Esta información se retroalimenta con la página de confirmación).

ciudadCobro A 25 La ciudad de correspondencia (Esta información se retroalimenta con la página de confirmación).

direccionEnvio A 255 La dirección de entrega de la mercancía. (Esta información se retroalimenta con la página de confirmación).

ciudadEnvio A 25 La ciudad de entrega de la mercancía. (Esta información se retroalimenta con la página de confirmación).

paisEnvio A 2 Código ISO 3166 del país en donde se va a entregar la mercancía. (Esta información se retroalimenta con la página de confirmación).

telefono A 50 El teléfono de residencia del comprador. (Esta información se retroalimenta con la página de confirmación)

telefonoOficina A 50 El teléfono diurno del comprador. (Esta información se retroalimenta con la pagina de confirmación).

numeroCliente A 50 El número del cliente en el sistema de información del comercio. (Esta información se retroalimenta con la página deconfirmación).

33

Page 35: Pagosonline.net - Manual de Integracin Tradicional 3

Tabla A.3.2 parámetros adicionales en el botón de pagos para el módulo de agencias de viajes.

Campo Tipo. Tam. Req. Descripción

aerolinea N 2 Si Código de la aerolínea

tarifaAdministrativa N 12 Si El valor de la tarifa administrativa incluyendoIVA.

ivaTarifaAdministrativa A 50 Si El valor del IVA de la tarifa administrativa.

baseDevolucionTarifaAdministrativa

A 12 No El valor de la base de devolución del IVA de latarifa administrativa.

Nota: Si desea conocer información sobre cómo funciona el modulo de agencias por favor consulte a su asesor comercial.

IV) Estados posibles de transacciones (estado_pol)

Los siguientes códigos de estados son utilizados por Pagosonline.net para describir el estado actual de una transacción.

Tabla A.4 Estados de las transaccionesCódigo Descripción

1 Sin abrir

2 Abierta

4 Pagada y abonada

5 Cancelada

6 Rechazada

7 En validación

8 Reversada

9 Reversada fraudulenta

10 Enviada ent. Financiera

11 Capturando datos tarjeta de crédito

12 Esperando confirmación sistema PSE

13 Activa Débitos ACH

14 Confirmando pago Efecty

15 Impreso

16 Debito ACH Registrado

34

Page 36: Pagosonline.net - Manual de Integracin Tradicional 3

V) Códigos de Respuesta (codigo_respuesta_pol)

Los siguientes códigos de respuesta permiten saber el detalle del estado de una transacción.

Tabla A.5 Códigos de RespuestaCódigo de Respuesta Descripción

1 Transacción aprobada2 Pago cancelado por el usuario3 Pago cancelado por el usuario durante validación4 Transacción rechazada por la entidad5 Transacción declinada por la entidad6 Fondos insuficientes7 Tarjeta invalida8 Acuda a su entidad9 Tarjeta vencida

10 Tarjeta restringida11 Discrecional POL12 Fecha de expiración o campo seg. Inválidos13 Repita transacción14 Transacción inválida15 Transacción en proceso de validación5

16 Combinación usuario-contraseña inválidos17 Monto excede máximo permitido por entidad18 Documento de identificación inválido19 Transacción abandonada capturando datos TC20 Transacción abandonada21 Imposible reversar transacción22 Tarjeta no autorizada para realizar compras por internet.23 Transacción rechazada24 Transacción parcial aprobada25 Rechazada por no confirmación26 Comprobante generado, esperando pago en banco

9994 Transacción pendiente por confirmar9995 Certificado digital no encontrado9996 Entidad no responde9997 Error de mensajería con la entidad financiera9998 Error en la entidad financiera9999 Error no especificado

5 Consulte el anexo IX numeral h para más información respecto a este estado.35

Page 37: Pagosonline.net - Manual de Integracin Tradicional 3

VI) Tipos de Medio de Pago (tiposMediosDePago, tipo_medio_pago)

Los siguientes tipos de medio de pagos permiten identificar el medio de pago que estará activo.

Tabla A.6 Tipos de Medio de Pago

Tipos de medio de pago Descripción

2 Tarjetas de Crédito

3 Verified by VISA

4 PSE (Cuentas corriente/ahor.)

5 Debito ACH

7 Pago en efectivo (Efecty)

8 Pago referenciado

VII) Medio de Pago (medio_pago)

Los siguientes códigos son medios de pago con los cuales se realizó la transacción.

Tabla A.7 Medios de Pago

Medio de pago Descripción

10 VISA

11 MASTERCARD

12 AMEX

22 DINERS

24 Verified by VISA

25 PSE

27 VISA Debito

30 Efecty

31 Pago referenciado

36

Page 38: Pagosonline.net - Manual de Integracin Tradicional 3

VIII) Parámetros adicionales enviados a la página de confirmación

Los siguientes parámetros adicionales son enviados por el sistema de Pagosonline.net para su respectiva necesidad.

Tabla A.8 parámetros adicionales página de confirmaciónCampo Tipo. Tam. Descripción

tasa_cambio N 10,2 La tasa de cambio utilizada en el momento de la transacción. Ejemplo: Si la transacción es $10 USD, el valor devuelto sería: 2015,25

ip A 15 La IP del comprador.

pago_recurrente N 1 Si es un pago recurrente esta variable se devuelve en 1. Para mayor información consulte el Manual de pago recurrente.

numero_visible A 16 10 dígitos de los 16 dígitos de la tarjeta de crédito. Esta información únicamente es de carácter informativo.

tarjeta_habiente A 50 El nombre de la persona dueña de la tarjeta de crédito. Si el pago es a través de un medio diferente a Tarjeta de crédito, esta variable se envía vacía.

franquicia A 10 El nombre de la franquicia de la tarjeta de crédito. Si el pago es a través de un medio diferente a Tarjeta de crédito, esta variable se envía vacía.

IX) Preguntas frecuentes

a) ¿Por qué al terminar el proceso de pago sale “Apreciado usuario: Ocurrió un error al procesando la solicitud” ?

Verifique que la variable url_respuesta sea enviada o este configurada correctamente en la pestaña Opciones del panel administrativo. El formato es el siguiente:

http://www.mipagina.com/respuesta.html

En varias ocasiones ocurre que estas variables no están parametrizadas o no cumplen el formato. Por ejemplo si la configuró de esta manera sin el “http”:

www.mipagina.com/respuesta.html

37

Page 39: Pagosonline.net - Manual de Integracin Tradicional 3

El sistema mostrará la página del error:

Nota: Es posible que también se genere el error al generar botones de pago con la herramienta del panel administrativo, si las urls de validación, aprobación y rechazo no cumplen el formato antes dicho.

b) Llega un correo electrónico del sistema de pagosonline.net diciendo que la página de confirmación no ha podido ser entrega. Normalmente el mensaje es este:

“El sistema realizó varios intentos para reportar a la página de confirmación, sin embargo un error impidió que este proceso se ejecutara de forma exitosa. La URL de la página es : ND14XXXXXX, ID: XXXXX de usuario”

¿A qué se debe este fallo?

Las causas pueden ser múltiples:

I) La url de confirmación esta mal configurada en el panel administrativo. Verifique que cumple el siguiente formato:

http://www.mipagina.com/confirmacion.php

II) La url contiene algún puerto especifico. Por ejemplo:http://www.mipagina.com:8080/confirmacion.php

Para poder utilizar un puerto diferente al puerto 80, debe contactar con el área de soporte de pagosonline.net notificando el hecho.

III) La url esta bajo una capa de seguridad:

https://www.mipagina.com/confirmacion.php

Para poder contactar la página de confirmación es necesario que haga llegar el certificado de seguridad al área de soporte de pagosonline.net

38

Page 40: Pagosonline.net - Manual de Integracin Tradicional 3

IV) Verifique que la página no contiene funciones javascript o similares. Recuerde que esta página es transparente y ningún navegador resolverá este tipo de código.

c) ¿Es posible reenviar las notificaciones POST a la página de confirmación?

Si es posible. Contacte al área de soporte para solicitar el reenvío.

d) ¿Es necesario la página de confirmación?

No, no lo es. Hay dos opciones para evitar los problemas con la misma. Configure como página de confirmación el index o home de su página web o contacte al área de soporte para pedir que le desactiven el envío de ésta.

e) ¿Es posible personalizar el mail que envía el sistema de pagosonline.net al comprador después de su compra?

Si es posible. Contacte al área de soporte para solicitar dicho cambio.

f) ¿Dónde encuentro la llave de encripción?

Para obtener la llave de encripción, necesaria para realizar transacciones a través del sistema de pagosonline, ingrese a http://www.pagosonline.net. Allí en la pestaña “Zona de usuarios” coloque su usuario y clave. Cuando ingrese busque la pestaña Opciones y allí aparecerá Llave para realizar encripciones.

g) ¿Qué usuario ID tengo?

Si no conoce el número de usuario, recuerde que fue enviado automáticamente por nuestro sistema al convertirse cliente de pagosonline.net. Si perdió el correo electrónico, envíe la solicitud al área de soporte desde el correo electrónico que tiene registrado como cliente en pagosonline.

h) ¿Qué es una transacción en validación?

Nuestra plataforma de pagos cuenta con un Modulo Antifraude que permite minimizar el riesgo de fraude en pagos electrónicos, tanto para nuestros clientes como para todos los pagadores que utilicen nuestro servicio. De esta manera nuestras transacciones reciben una puntuación que hace que sean enviadas a un proceso de validación avanzada el cual tiene como objetivo autenticar al titular de la tarjeta.

39

Page 41: Pagosonline.net - Manual de Integracin Tradicional 3

Con esto, garantizamos la fidelidad de la transacción y evitar así posibles fraudes, este proceso de validación se puede demorar de 1 a 48 horas (nacional) y hasta 72 Horas (Internacional) dependiendo el nivel de riesgo que muestre la transacción. Una vez se complete la lista de chequeo de nuestra validación avanzada se procederá a realizar contacto telefónico con el pagador para autenticar la compra.

Para efectos de ventas o envíos de artículos o servicios, utilice la página de confirmación para actualizar su sistema y proceder, o consulte su panel administrativo en pagosonline.net

i) En el manual no aparece ASP, ¿Puedo utilizar ASP para realizar el proceso de integración?

Si es posible. El único cambio en dicha integración es el algoritmo MD5, que no esta como tal en el lenguaje de programación (como objeto). Si desea obtener dicho algoritmo puede contactar nuestra área de soporte.

40

Page 42: Pagosonline.net - Manual de Integracin Tradicional 3

GLOSARIO

ASP.NET: Es un framework para aplicaciones web desarrollado y comercializado por Microsoft. Es usado por programadores para construir sitios web dinámicos, aplicaciones web y servicios web XML. Apareció en enero de 2002 con la versión 1.0 del .NET Framework, y es la tecnología sucesora de la tecnología Active Server Pages (ASP). ASP.NET esta construido sobre el Common Language Runtime, permitiendo a los programadores escribir código ASP.NET usando cualquier lenguaje admitido por el .NET Framework.

Métodos POST y GET: Son métodos de envío de información en formularios HTML. Ambos métodos, POST y GET, realizan una transacción mediante el protocolo HTTP, la diferencia radica en que el primer método envía los parámetros ocultos, mientras que el segundo los muestra en la barra de navegación.

PSE: Por las siglas (Proveedor de Servicios Electrónicos). un servicio ACH Colombia S.A. para realizar pagos electrónicos no presenciales.

IVA: Impuesto sobre el valor añadido. El IVA es un impuesto indirecto sobre el consumo, y varia dependiendo del país, producto o servicio. En Colombia regularmente es del 16%.

Encripción: Encripción o encriptación es un proceso para convertir la información a un formato codificado, generalmente a través de un proceso matemático Existen dos niveles de encripción generales -aunque no son los únicos- en los navegadores: de 40 y 128 bits. Los navegadores más comunes son de 40 bits. La encripción de 128 bits también está disponible en los navegadores más comunes y es mucho más segura.

PHP: PHP es un acrónimo recursivo que significa PHP Hypertext Pre-processor (inicialmente PHP Tools, o, Personal Home Page Tools). Es un lenguaje de programación interpretado, diseñado originalmente para la creación de páginas web dinámicas. Es usado principalmente en interpretación del lado del servidor (server-side scripting).

JAVA: Java es un lenguaje de programación orientado a objetos desarrollado por Sun Microsystems a principios de los años 90. El lenguaje en sí mismo toma mucha de su sintaxis de C y C++, pero tiene un modelo de objetos más simple y elimina herramientas de bajo nivel, que suelen inducir a muchos errores, como la manipulación directa de punteros o memoria.

41

Page 43: Pagosonline.net - Manual de Integracin Tradicional 3

2009