ALIGNET MERCHANT SOLUTION Virtual POS (V-POS)

Transcripción

ALIGNET MERCHANT SOLUTION Virtual POS (V-POS)
ALIGNET MERCHANT SOLUTION
Virtual POS (V-POS)
Guía de integración de comercios
Documento técnico funcional que describe el
procedimiento para la integración de un nuevo
comercio a la plataforma AMS a través del
Virtual Point Of Sale (V-POS)
© 2005 - 2012 ALIGNET. Todos los Derechos reservados.
Este documento es de carácter confidencial. Los contenidos y conceptos que se desarrollan en el presente
documento no pueden ser utilizados por personas naturales o jurídicas a las que no se encuentre dirigida de manera
explícita dicha información.
Historia de Revisiones
Fecha
2005-08-25
2005-09-02
2005-09-15
2005-09-19
Versión
0.1
0.2
0.8
0.9
Descripción
Elaboración inicial del documento
Definición de objetivos del documento
Diagrama secuencia, mejoras varias
Especificaciones Técnicas
2005-09-19
2005-09-30
1.0
1.2
2005-11-30
2005-11-30
2005-12-06
2006-03-27
2006-05-30
1.3
1.3
1.4
1.5
1.5
Revisión final
Generación de llaves para esquema de
seguridad
Actualización de puntos 7, 8 , 9
Revisión final
Actualizaciones puntos 7, 8 y Anexos
Actualizaciones puntos 7, 8 y Anexos
Revisión y control
2006-06-26
1.5
Modificación de plantilla
2008-06-30
2010-02-26
2.0.1
2.1.0
2012-05-12
2.3.1
Revisión general
Revisión general: actualización de
dominios para ambiente de pruebas y
campos adicionales para el envío de
datos
Inclusión de campos adicionales de
respuesta
Guía de integración de comercios
Virtual POS (V-POS)
ALIGNET Merchant Solution [Confidencial – ALIGNET]
Autor
R. Barturen
H. Alosilla
R. Barturén
J. Botta y
D. Cruz
D. Cruz
D. Cruz
R. Barturén
D. Cruz
R. Barturén
R. Barturén
T. J.
Carrasco
T. J.
Carrasco
M. Alcalá
J. Bautista
J. Bautista
Pág. 1
Índice
1. INTRODUCCIÓN.......................................................................................3
OBJETIVOS ..................................................................................................3
GLOSARIO ...................................................................................................3
FLUJO DE COMPRA ......................................................................................3
EXPERIENCIA DE COMPRA ............................................................................5
2. ¿QUÉ ES EL V-POS?...............................................................................8
DESCRIPCIÓN ..............................................................................................8
ARQUITECTURA ...........................................................................................8
SOLICITUD Y RESPUESTA DEL FLUJO DE PAGO ..............................................9
3. INTEGRACIÓN AL V-POS .....................................................................10
PROCEDIMIENTO DE INTEGRACIÓN AL V-POS .............................................10
ADMINISTRACIÓN DE LLAVES CRIPTOGRÁFICAS ............................................11
SOLICITUD DE PAGO ...................................................................................13
RESPUESTA DE PAGO ...................................................................................1
4. INTEGRACIÓN CON EL PLUG-IN...........................................................2
5. PREGUNTAS Y RESPUESTAS FRECUENTES .....................................3
6. DATOS ADICIONALES ............................................................................4
7. ANEXO 1: INTEGRACIÓN CON EL PLUG-IN PARA .NET C#...............5
INSTALACIÓN DEL PLUG-IN C# ......................................................................5
USO DEL PLUG-IN C# PARA ENVIAR INFORMACIÓN AL V-POS.........................6
USO DEL PLUG-IN C# PARA RECIBIR INFORMACIÓN DEL V-POS......................7
GENERACIÓN DE LLAVES EN C#....................................................................8
8. ANEXO 2: INTEGRACIÓN CON EL PLUG-IN Y GENERADOR DE
LLAVES EN JAVA ........................................................................................10
INSTALACIÓN DEL PLUG-IN JAVA .................................................................10
COMPONENTES DEL PLUGIN DE JAVA 2.0.1 .................................................10
USO DEL PLUG-IN JAVA PARA ENVIAR INFORMACIÓN AL V-POS....................10
USO DEL PLUG-IN JAVA PARA RECIBIR INFORMACIÓN DEL V-POS.................12
GENERACIÓN DE LLAVES EN JAVA ...............................................................13
9. ANEXO 3: INTEGRACIÓN CON EL PLUG-IN PARA PHP 5 EN LINUX
15
REQUISITOS NECESARIOS...........................................................................15
COMPROBACIÓN DEL PHP PARA VER SI TIENE LAS LIBRERÍAS INSTALADAS Y
FUNCIONANDO CORRECTAMENTE ................................................................15
INSTALACIÓN DEL PLUG-IN EN PHP5 ..........................................................16
USO DEL PLUG-IN EN PHP PARA ENVIAR INFORMACIÓN AL V-POS ...............22
USO DEL PLUG-IN EN PHP PARA RECIBIR INFORMACIÓN DEL V-POS ............26
GENERACIÓN DE LLAVES ............................................................................27
Guía de integración de comercios
Virtual POS (V-POS)
ALIGNET Merchant Solution [Confidencial – ALIGNET]
Pág. 2
1. Introducción
Para realizar transacciones electrónicas los comercios requieren de
una plataforma que les permita conectarse con el mundo
transaccional de pagos virtuales.
Para ello el flujo de pago, actualmente, está compuesto por dos
procesos principales. El primero es el de autenticación que permite
al tarjeta habiente tener mayor seguridad cuando esté realizando
una compra por Internet. El proceso de Autenticación está
compuesto de tres dominios principales: Adquirente con el servicio
Merchant Plug-in (MPI), Emisor con el servicio Access Control
Server (ACS) e Interoperabilidad con el servio del Directory Server.
El segundo proceso es el de autorización, que permite realizar la
solicitud de pago de una compra electrónica.
Estos procesos serán atendidos por el V-POS, un servicio
centralizado que permitirá al comercio integrarse fácilmente con el
proceso de pago.
Objetivos
Este documento tiene como objetivos lo siguiente:
•
•
Describir las funcionalidades que brinda el V-POS.
Describir los pasos necesarios para la integración con el VPOS.
Glosario
A lo largo del presente documento se utilizan los siguientes
términos bajo la conceptualización que se señala a continuación:
•
•
•
•
•
•
Proceso de Autenticación: Servicio de verificación del tarjeta
habiente
Proceso de Autorización: Servicio de autorización del pago
MPI: Merchant Plug-In. Servicio de Autenticación para el
Adquirente y Comercios
ACS: Access Control Server. Servicio de Autenticación para
el Emisor
V-POS: Virtual Point Of Sale. Interfaz del mundo
transaccional de pagos virtuales
Tarjeta habiente: Titular de la tarjeta
Flujo de Compra
El flujo de compra se inicia cuando el tarjeta habiente desea
realizar una compra en un comercio electrónico.
Guía de integración de comercios
Virtual POS (V-POS)
ALIGNET Merchant Solution [Confidencial – ALIGNET]
Pág. 3
El tarjeta habiente escoge los productos que desea comprar
agregándolos al carrito de compras del comercio. A continuación se
listan los pasos del flujo de compra (Ver Figura 1. Flujo de
Compra):
1. El Comercio desde un formulario envía al V-POS los datos de
compras haciendo uso del plug-in proporcionado por
ALIGNET, exceptuando el número de Tarjeta de Crédito, la
fecha de Vencimiento y el CVV2.
2. El V-POS muestra en el navegador del tarjeta habiente una
página donde se ingresa el número de tarjeta de crédito, la
fecha de vencimiento, y el valor CVV2.
3. El usuario ingresa en la pantalla anterior, los valores
solicitados.
4. El V-POS envía al MPI los valores correspondientes para
iniciar el proceso de autenticación.
5. Si la tarjeta está enrolada a Verified by Visa/MasterCard
SecureCode, se le presentará una página solicitándole su
contraseña que autenticará su compra.
6. Al finalizar el proceso de autenticación, el MPI devuelve al VPOS los valores de respuesta de la autenticación.
7. El V-POS después de analizar los valores devueltos por el
MPI, y envía al sistema V-Payment una solicitud de pago
que inicia el proceso de autorización.
8. El V-Payment luego de realizar el proceso de autorización
devuelve los valores al V-POS para su posterior análisis del
proceso de compra.
9. El V-POS devuelve el resultado de la compra al comercio. El
comercio haciendo uso del plug-in (ver Anexos) obtiene los
valores de respuesta; quien finalmente le mostrará al
tarjeta habiente el resultado de su compra.
Guía de integración de comercios
Virtual POS (V-POS)
ALIGNET Merchant Solution [Confidencial – ALIGNET]
Pág. 4
Figura 1: Flujo de Compra
Experiencia de Compra
A continuación se mostrará la experiencia de compra electrónica
del tarjeta habiente aprovechando la plataforma:
1. El tarjeta habiente ingresa al sitio Web del Comercio
electrónico.
Figura 2: Página de Inicio del Comercio
2. El tarjeta habiente llena el carrito de compras, luego ingresa
sus datos de compra, dando inicio al flujo de compra.
Guía de integración de comercios
Virtual POS (V-POS)
ALIGNET Merchant Solution [Confidencial – ALIGNET]
Pág. 5
Figura 3: Página de Carrito de compras del Comercio
3. Luego al tarjeta habiente se le mostrará la página
centralizada del V-POS y le solicitará el ingreso de los datos
de su tarjeta.
Figura 4: Página centralizada V-POS para el ingreso
de datos de la tarjeta
4. Si el tarjeta habiente se encuentra enrolado o afiliado a
Verified by Visa (proceso solicitado al Emisor de la tarjeta
por el tarjetahabiente) aparecerá la página de autenticación.
Figura 5: Página de autenticación del tarjeta habiente
Guía de integración de comercios
Virtual POS (V-POS)
ALIGNET Merchant Solution [Confidencial – ALIGNET]
Pág. 6
5. Finalmente al tarjeta habiente le aparecerá la página
resultado del Comercio.
Figura 6: Página de resultado del comercio
Guía de integración de comercios
Virtual POS (V-POS)
ALIGNET Merchant Solution [Confidencial – ALIGNET]
Pág. 7
2. ¿Qué es el V-POS?
El V-POS es el sistema que atiende la solicitud de pago enviado
desde los comercios virtuales, cuya funciones principales son
concentrar y preprocesar las solicitudes de Pago. Concentrar,
porque centraliza los dos procesos principales de un flujo de
compra (autenticación y autorización); Preprocesar, porque procesa
la validación de los datos de la tarjeta antes de iniciar el proceso de
autenticación y autorización.
Descripción
Su función principal es concentrar las transacciones de compra por
comercio electrónico para validar datos generales de la compra, así
como centralizar la obtención y seguridad de los datos sensibles del
tarjeta habiente (número de tarjeta, fecha de expiración y CVV2),
iniciar el proceso de pago – Proceso de Autenticación y Proceso de
Autorización - para que finalmente se le entregue la respuesta de la
transacción al comercio que lo solicitó.
Arquitectura
El comercio se comunicará vía Internet, a través de un canal
seguro (HTTPS) con el V-POS para enviarle los datos de la compra
desde un formulario a través del navegador del tarjeta habiente;
luego el V-POS le presentará al tarjeta habiente una página de
ingreso de datos sensibles para luego iniciar los procesos de pago:
Autenticación y Autorización. Finalmente el V-POS le enviará desde
un formulario, el resultado de la transacción al comercio vía
Internet, a través de un canal seguro (HTTPS).
En el siguiente gráfico se muestra la arquitectura general del
V-POS:
Figura 7: Arquitectura con el V-POS
Guía de integración de comercios
Virtual POS (V-POS)
ALIGNET Merchant Solution [Confidencial – ALIGNET]
Pág. 8
Solicitud y Respuesta del Flujo de Pago
El comercio enviará una solicitud o petición de pago al V-POS quien
se encargará de realizar tanto el proceso de autenticación como de
autorización y recibirá una respuesta a los dos proceso como se
muestra en la figura anterior.
Tarjeta
Habiente
Sitio Web
Comercio
V-POS
Autenticación
V-Payment
Autorización
1: Completa Datos de Compra
2: Envía datos de Compra
3: muestra página centralizada
4: Ingresa datos de tarjeta
5: Solicita Autenticación
6: Solicita clave VbV
7: Ingresa su clave VbV
8: envía resultado de Autenticación
9: Solicita Autorización
10: envía resultado de Autorización
11: resultado a la página de respuesta
12: Muestra resultado
Fig. 8:
Diagrama de secuencia de la solicitud
y respuesta del flujo de pago
Guía de integración de comercios
Virtual POS (V-POS)
ALIGNET Merchant Solution [Confidencial – ALIGNET]
Pág. 9
3. Integración al V-POS
Procedimiento de Integración al V-POS
La integración se hace inicialmente en un ambiente de Pruebas y
luego se traslada a un ambiente de Producción.
Para el Ambiente de Pruebas:
Los principales pasos para la integración del comercio al V-POS en
el ambiente de Pruebas son:
1. Se le hace entrega al comercio del documento de plataforma de
sitio Web, el cual debe ser devuelto con todos los datos llenos
2. Se aprobará el documento y se entregará el KIT de seguridad
compuesto por un Componente de seguridad (plug-in) y el
Generador de llaves de criptografía y de firma de digital, el cual
será utilizado durante el proceso de compra
3. El comercio revisará y evaluará para los desarrollos necesarios
la Guía de integración de comercios, el Componente de
seguridad (plug-in), así como el Generador de llaves de
criptografía y de firma digital
4. El comercio confirmará la fecha de término de su desarrollo y
solicitará la habilitación del ambiente de prueba
5. El comercio deberá ser registrado en los sistemas de
autenticación y autorización antes de iniciar un proceso de
compra de prueba. En esta fase de registro del comercio, se le
solicitarán los datos necesarios para su integración en los
diferentes sistemas involucrados (Directory Server, MPI, VPayment).
6. Se enviarán las referencias o personas de contacto del
comercio, que serán responsables de las pruebas, de iniciar el
intercambio de llaves de criptografía y de firma digital entre
ALIGNET y el comercio. Se hará entrega al comercio de los
valores de configuración (IDACQUIRER, IDECOMMERCE)
requeridos por el Componente de seguridad (plug-in).
7. El comercio hace uso de la aplicación Generador de llaves de
criptografía y de firma digital que se le proporcionó (ver
Administración de llaves criptográficas). Las llaves públicas de
pruebas generadas por el comercio serán enviadas a ALIGNET
por un canal seguro (Vg.: correo seguro). Se enviarán las llaves
públicas del V-POS que son requeridas por el componente de
seguridad (plug-in). El comercio definirá un valor para el vector
de inicialización que informará por el mismo medio.
8. El comercio y ALIGNET confirman por correo al Adquirente que
sus llaves se encuentra configurado en el ambiente de pruebas
9. Se envía al comercio los datos de prueba y la ruta de acceso al
V-POS en el ambiente de prueba
10. El comercio acuerda una fecha y hora para realizar las pruebas.
Se definen los responsables de las pruebas tanto por el lado de
ALIGNET como del comercio
11. Se realizan las pruebas
12. ALIGNET informa al Adquirente el término y el resultado de las
pruebas en el Ambiente de Pruebas.
Guía de integración de comercios
Virtual POS (V-POS)
ALIGNET Merchant Solution [Confidencial – ALIGNET]
Pág. 10
13. Es posible que el Adquirente realice pruebas adicionales de
validación
Nota: Según el procedimiento del Adquirente, puede inscribir al
comercio en Verified by Visa/MasterCard SecureCode cuando lo
estime conveniente.
Para el Ambiente de Producción:
Los principales pasos para la integración del comercio al V-POS en
el ambiente de Producción son:
1. Se solicita al Comercio los datos de producción requeridos para
la integración al V-POS. El formato será proporcionado por
ALIGNET. Se registrará al Comercio en los sistemas de
Autenticación y Autorización de Producción
2. Se enviarán las referencias o personas de contacto del comercio
para iniciar el intercambio de llaves de criptografía y de firma
digital entre ALIGNET y el Comercio así como la entrega de los
valores de configuración (IDACQUIRER, IDECOMMERCE) al
comercio
3. El comercio utiliza una vez más de la aplicación Generador de
llaves de criptografía y de firma digital que se le proporcionó
(ver Administración de llaves criptográficas). Las nuevas llaves
públicas generadas por el comercio serán enviadas a ALIGNET
por un canal seguro (Vg.: correo seguro). Se enviarán las llaves
públicas del V-POS que son requeridas por el Componente de
seguridad (plug-in). El comercio definirá un valor para el vector
de inicialización que será enviado a ALIGNET
4. El comercio y ALIGNET confirman por correo al Adquirente que
sus llaves se encuentran configuradas en el Ambiente de
Producción
5. Se envía al comercio la ruta de acceso al V-POS Producción y
los datos necesarios para realizar las pruebas en producción
6. El comercio acuerda una fecha y hora para realizar las pruebas.
Se definen los responsables de las pruebas tanto por parte de
ALIGNET como por el lado del comercio
7. Se realizan las pruebas
8. ALIGNET informa al Adquirente el término de las pruebas en el
ambiente de producción
9. Es posible que el Adquirente desee realizar pruebas adicionales
de validación
Nota: Según el procedimiento del Adquirente, puede inscribir al
comercio en Verified by Visa cuando lo estime conveniente.
Administración de llaves criptográficas
Con la finalidad de que la transmisión de información entre el
comercio y el V-POS se realice de manera segura, guardando los
tres principios de seguridad: Protección, Integridad y Autenticidad
de datos, el comercio generará un par de llaves (pública y privada)
para cifrar la información y un par de llaves (pública y privada)
Guía de integración de comercios
Virtual POS (V-POS)
ALIGNET Merchant Solution [Confidencial – ALIGNET]
Pág. 11
para la generación de la firma digital de la solicitud de pago. Las
llaves públicas serán enviadas por el comercio al V-POS durante la
etapa de integración del comercio (ver Integración al V-POS). De la
misma manera, el V-POS generará un par de llaves para el cifrado
y un par de llaves para la generación de la firma digital de la
respuesta de pago. Las llaves públicas serán enviadas por el V-POS
hacia el comercio durante la etapa de integración del comercio (ver
Integración al V-POS).
Una vez que se ha generado las llaves, tanto el comercio como el
V-POS deberán intercambiar sus respectivas llaves públicas,
enviando éstas a través de correo electrónico seguro. De forma
adicional el comercio definirá un valor para el vector de
inicialización que se utilizará para la criptografía y también será
enviado. Este será un valor hexadecimal de 16 caracteres. Por
ejemplo: d412589745df36fa. Es responsabilidad del comercio el
almacenamiento de las llaves en un entorno seguro.
A continuación se muestra el gráfico resume el intercambio de
llaves entre el comercio y el V-POS de ALIGNET:
COMERCIO
V-POS
PAR DE LLAVES RSA
1024 BITS PARA FIRMA
DIGITAL
PAR DE LLAVES RSA
1024 BITS PARA
CIFRADO RSA
GENERACION
DE
LLAVES
PAR DE LLAVES RSA
1024 BITS PARA FIRMA
DIGITAL
PAR DE LLAVES RSA
1024 BITS PARA
CIFRADO RSA
LLAVE PUBLICA
1024 BITS PARA
FIRMA DIGITAL
CORREO
SEGURO
LLAVE PUBLICA
1024 BITS PARA
CIFRADO RSA
INTERCAMBIO DE LLAVES
SE ENVIAN AMBAS
LLAVES PUBLICAS
GENERADAS POR EL
COMERCIO
CORREO
SEGURO
Figura 9: Intercambio de llaves comercio y V-POS
Guía de integración de comercios
Virtual POS (V-POS)
ALIGNET Merchant Solution [Confidencial – ALIGNET]
Pág. 12
Solicitud de pago
La solicitud de pago se define como el conjunto de datos que
necesita el V-POS para generar la solicitud de autenticación así
como la solicitud de autorización.
Para iniciar la solicitud de pago, el comercio deberá preparar una
petición POST HTTPS, en la que utilizará el Componente de
seguridad (plug-in) para enviar la petición de manera segura al VPOS.
Parámetros de Envío
Los parámetros que enviará el comercio al V-POS para iniciar la
solicitud de pago son los siguientes:
Campo
IDACQUIRER
IDCOMMERCE
XMLREQ
DIGITALSIGN
SESSIONKEY
Descripción
Identificador fijo del Adquirente que permite al VPOS reconocer a la entidad adquirente del
comercio. Este valor es generado por ALIGNET.
Identificador fijo del comercio o tienda virtual que
permite al V-POS reconocer al comercio que está
enviando la solicitud de pago.
Mensaje de solicitud de pago que contiene los
datos de la compra. Este mensaje es generado
por el plug-in, quien se encarga de cifrarlo para
su envío al V-POS.
Firma digital del mensaje XMLREQ que asegura
tanto la autenticidad del emisor y receptor, como
la integridad de la información. Esta firma digital
es generada por el plug-in.
Llave de sesión con la cual se cifrará el mensaje
XMLREQ. Esta llave es generada por el plug-in.
Para el envío de la solicitud de pago se deberá de generar una
solicitud POST HTTPS, usando un formulario HTML, implementado
en el lenguaje de programación del comercio o tienda virtual. A
continuación un ejemplo del formulario el cual deberá tener la
forma siguiente:
<form name=”frmSolicitudPago” method=”post”
action=”https://test2.alignetsac.com/VPOS/MM/transactionStart20.do”>
<input type=”hidden” name=”IDACQUIRER” value=”99”>
<input type=”hidden” name=”IDCOMMERCE” value=”3529”>
<input type=”hidden” name=”XMLREQ” value=”D2ZQMEg4c9qlxJE3r2u3Y8PXT7vZ
5JNkrY84pEg4c94c9hS14k9OUWk4Y1”>
<input type=”hidden” name=”DIGITALSIGN” value=”hS14k9OUWk4c9qldiN2vfBdjg4jB9
Wk4D2ZQMEg4c94c9qlOxVUg4yj2Q9atvfByY”>
<input type=”hidden” name=”SESSIONKEY” value=”S14k9OUWk”>
</form>
Nota: Los valores que se encuentran en IDACQUIRER e
IDCOMMERCE deben modificarse de acuerdo a los datos del
comercio respectivo. Así mismo
los valores del XMLRES,
Guía de integración de comercios
Virtual POS (V-POS)
ALIGNET Merchant Solution [Confidencial – ALIGNET]
Pág. 13
SESSIONKEY y DIGITALSIGN deben ser capturados desde la clase
de envío.
Parámetros necesarios para el Componente de seguridad
Para que el Componente de seguridad (plug-in) pueda generar el
mensaje del parámetro XMLREQ, el comercio deberá llenar los
siguientes parámetros con sus respectivos valores:
Guía de integración de comercios
Virtual POS (V-POS)
ALIGNET Merchant Solution [Confidencial – ALIGNET]
Pág. 14
Campo Plug-in
Tipo
acquirerId
NUMERICO
Ancho
Máximo
4
commerceId
NUMERICO
12
purchaseOperationNumber
ALFANUMERICO
12
purchaseAmount
NUMERICO
12
purchaseCurrencyCode
NUMERICO
12
purchaseIPAddress
commerceMallId
language
ALFANUMERICO
ALFANUMERICO
15
12
2
tipAmount
NUMERICO
12
billingFirstName
ALFANUMERICO
30
billingLastName
ALFANUEMRICO
50
billingEMail
billingAddress
billingZIP
billingCity
billingState
billingCountry
ALFANUMERICO
50
50
10
50
15
2
NUMERICO
ALFANUMERICO
ALFANUMERICO
ALFANUMERICO
ALFANUMERICO
ALFANUMERICO
Observaciones
Código de adquirente asignado por Alignet. Valor fijo igual
al parámetro IDACQUIRER (1)
Código único de Comercio asignado por Alignet. Valor fijo
igual al parámetro IDCOMMERCE (1)
Identificador único por cada transacción, dado por el
comercio (1)
Valor total de la compra, dado por el Comercio. el monto
debe ir sin separador decimal (Si el monto es 100.30
dólares entonces la cantidad a enviar es 10030) (1)
Moneda Según Estándar numérico ISO
Tipo alfanumérico, longitud de 3 caracteres (Debe estar en
las monedas permitidas para el comercio) (1)
Dirección IP del comprador (1)
Valor del ID del Mall al cual pertenece el comercio
Idioma usado, tiene dos posibles valores: Español (SP),
Inglés (si no se envía valor alguno el idioma por defecto
será el español)
Valor de propina. El formato será igual al del campo
purchaseAmount
Nombre del tarjetahabiente. (como aparece en la tarjeta de
crédito) (1)
Apellido del tarjetahabiente (como aparece en la tarjeta de
crédito) (1)
Dirección electrónica del tarjetahabiente. (1)
Dirección del tarjetahabiente. (1)
Código Postal del tarjetahabiente. (1)
Nombre de la ciudad del tarjetahabiente. (1)
Nombre del estado del tarjetahabiente. (1)
Código ISO del país del tarjetahabiente.
© 2005 - 2012 ALIGNET. Todos los Derechos reservados.
Este documento es de carácter confidencial. Los contenidos y conceptos que se desarrollan en el presente documento no pueden ser utilizados por personas naturales o jurídicas a las que no se
encuentre dirigida de manera explícita dicha información.
billingPhone
shippingFirstName
shippingLastName
shippingEmail
shippingAddress
shippingZIP
shippingCity
shippingState
shippingCountry
shippingPhone
HTTPSessionId
additionalObservations
terminalCode
reserved1
.
.
.
reserved40
ALFANUMERICO
ALFANUMERICO
ALFANUMERICO
ALFANUMERICO
ALFANUMERICO
ALFANUEMRICO
ALFANUMERICO
ALFANUMERICO
ALFANUMERICO
ALFANUMERICO
ALFANUMERICO
ALFANUMERICO
ALFANUMERICO
ALFANUMERICO
15
30
50
30
50
10
50
15
2
15
30
50
12
30
Teléfono del tarjetahabiente. (1)
Nombre de la persona que recibirá los bienes
Apellido de la persona que recibirá los bienes
Email de la persona que recibirá los bienes
Dirección de entrega del pedido del tarjetahabiente
Código Postal de la entrega.
Nombre de la ciudad de entrega.
Nombre del estado/región o departamento de entrega.
Código ISO del país de entrega.
Teléfono del lugar de entrega.
Sesión HTTP solo en el caso que el comercio lo requiera
Observaciones adicionales de la compra
Código de terminal de la compra
Campos para datos adicionales no revisados por el VPOS
(2)
(1) Campos requeridos por el VPOS
(2) Lo que se envíe en estos campos será devuelto en la respuesta
Guía de integración de comercios
Virtual POS (V-POS)
ALIGNET Merchant Solution [Confidencial – ALIGNET]
Pág. 1
Parámetros de Seguridad necesarios para el Plug-in
Además de los valores o campos mostrados, se deberá ingresar al
plug-in los valores o campos necesarios para el cifrado del mensaje
XMLREQ así como también para la generación de la firma digital del
mismo. Estos valores se describen a continuación:
Campo
Vector de
Inicialización
Campo Plug-in
VectorInicializacion
Llave privada
de Firma
LlavePrivadaFirmaRSA
Llave pública
de cifrado
LlavePublicaCifradoRSA
Observaciones
Valor necesario para el cifrado del
mensaje XMLREQ. Este valor debe ser
generado por el comercio.
Llave privada del comercio con la que
se generará la firma digital del
mensaje XMLREQ. Esta llave privada
es generada y almacenada por el
comercio.
Llave pública con la que se cifrará el
mensaje XMLREQ. Esta llave pública es
generada por ALIGNET y debe ser
almacenada por el comercio.
© 2005 - 2012 ALIGNET. Todos los Derechos reservados.
Este documento es de carácter confidencial. Los contenidos y conceptos que se desarrollan en el presente
documento no pueden ser utilizados por personas naturales o jurídicas a las que no se encuentre dirigida de manera
explícita dicha información.
Respuesta de pago
Parámetros de Recibo
La respuesta de pago que enviará el V-POS al comercio estará
compuesta por los siguientes campos:
Campo
IDACQUIRER
IDCOMMERCE
XMLRES
DIGITALSIGN
SESSIONKEY
Descripción
Es el identificador fijo del Adquirente que permite
al V-POS reconocer a la entidad adquirente del
comercio. Este valor es generado por ALIGNET
durante la configuración del Adquirente.
Es el identificador del comercio o tienda virtual
que permite al V-POS reconocer al comercio que
esta enviando la solicitud de pago. Este valor es
generado por ALIGNET durante la configuración
del comercio.
Es el mensaje de respuesta de pago que contiene
los datos del resultado de la autorización.
Es la firma digital del mensaje XMLRES, y asegura
tanto la autenticidad del emisor y receptor como
la integridad de la información. Esta firma digital
es generada por el V-POS.
Es la llave de sesión con la cual se descifrará el
mensaje XMLRES.
Para recibir la respuesta de pago del V-POS es necesario que el
comercio implemente una página dinámica en donde se extraigan
los valores de los parámetros mostrados en la tabla anterior.
Guía de integración de comercios
Virtual POS (V-POS)
ALIGNET Merchant Solution [Confidencial – ALIGNET]
Pág. 1
Parámetros de respuesta obtenidos del Plug-in
Así mismo el XMLRES devuelve los mismos campos enviados en el XMLREQ enviados al inicio de la compra con la adición
de los siguientes campos:
Campo Plug-in
Tipo
authorizationResult
NUMERICO
Ancho
Máximo
2
authorizationCode
ALFANUMERICO
6
errorCode
ALFANUMERICO
4
errorMessage
ALFANUMERICO
Observaciones
Este campo contiene el resultado de la autorización. Tiene tres
posibles valores enviados por el V-POS:
00, indica que la transacción ha sido autorizada,
01, indica que la transacción ha sido denegada en e Banco
Emisor, y
05, indica que la transacción ha sido rechazada por el VPOS.
NOTA IMPORTANTE: El comercio mostrará los mensajes de
resultado al tarjeta habiente según estos tres códigos. Por
ejemplo:
“Operación Autorizada”.
“Operación Denegada”.
“Operación Rechazada” (1)
En caso que la transacción haya sido autorizada, este campo
contendrá el código de autorización de la transacción. (1)
En caso que la transacción haya sido denegada o rechazada este
campo contendrá el código de error respectivo que indicará el
motivo del rechazo. La lista de códigos puede aumentar o
disminuir según las mejoras que se realicen al V-Payment y/o
nuevas especificaciones de las marcas.
NOTA IMPORTANTE: Este código de respuesta no debe ser
mostrado al tarjeta habiente.
Este campo contendrá la descripción del código de error en caso
de producirse un rechazo.
NOTA IMPORTANTE: Este mensaje de error no debe ser
mostrado al tarjeta habiente. El Adquirente puede acordar con el
comercio para que se muestren grupos de mensajes.
© 2005 - 2012 ALIGNET. Todos los Derechos reservados.
Este documento es de carácter confidencial. Los contenidos y conceptos que se desarrollan en el presente documento no pueden ser utilizados por personas naturales o jurídicas a las que no se
encuentre dirigida de manera explícita dicha información.
Además de estos campos, la respuesta de pago o XMLRES,
contendrá todos los campos enviados al V-POS que se ingresaron
en el XMLREQ de la solicitud de pago y que podrán ser recuperados
usando el componente de seguridad (plug-in). Asimismo se tiene
los siguientes campos adicionales
Campo
Plug-in
Tipo
planCode
NUMERICO
Ancho
Máxim
o
4
planName
ALFANUMERICO
30
quotaCode
NUMERICO
4
quotaName
ALFANUMERICO
30
cardType
ALFANUMERICO
4
cardNumber NUMERICO
19
ECI
NUMERICO
2
VCI
ALFANUMERICO
4
Observaciones
Código del plan seleccionado por el
tarjetahabiente en caso haber financiado el
pago
Nombre del plan seleccionado por el
tarjetahabiente en caso haber financiado el
pago
Código de la cuota seleccionada por el
tarjetahabiente en caso haber financiado el
pago
Nombre de la cuota seleccionada por el
tarjetahabiente en caso haber financiado el
pago
Marca de la tarjeta seleccionada por el
tarjetahabiente en caso de haber sido
ingresada
Número de tarjeta ingresada por el
tarjetahabiente en caso de haber sido
ingresada. La devolución de este dato
deberá ser autorizada por el adquirente
Indicador de comercio electrónico. Se
devolverá en caso se haya realizado el
proceso de autenticación
Indicador de escenario de autenticación. Se
devolverá en caso se haya realizado el
proceso de autenticación
Parámetros necesarios para obtener los datos del XMLRES
Para descifrar el mensaje XMLRES, se deberá configurar al plug-in
los valores o campos criptográficos necesarios, así como también
para la verificación de la firma digital del mismo. Estos valores se
describen a continuación:
Campo
Vector de
Inicialización
Llave pública de
Firma
Llave privada de
Campo Plug-in
VectorInicializacion
Observaciones
Valor necesario para el descifrado
del mensaje XMLRES. Este valor
debe ser
generado por el
comercio.
LlavePublicaVerificac Es la llave pública del V-POS con la
ionFirma
que se verificará la validez de la
firma digital del mensaje XMLRES.
Esta llave es generada por el VPOS
y
almacenada
por
el
comercio.
LlavePrivadaCifrado Es la llave privada con la que se
© 2005 - 2012 ALIGNET. Todos los Derechos reservados.
Este documento es de carácter confidencial. Los contenidos y conceptos que se desarrollan en el presente
documento no pueden ser utilizados por personas naturales o jurídicas a las que no se encuentre dirigida de manera
explícita dicha información.
cifrado
Guía de integración de comercios
Virtual POS (V-POS)
ALIGNET Merchant Solution [Confidencial – ALIGNET]
descifrará el mensaje XMLRES.
Esta
llave
es
generada
y
almacenada por el comercio.
Pág. 1
4. Integración con el Plug-in
El comercio recibirá el Componente de seguridad (plug-in) que
deberá ser acoplada a su solución Web, para ser activado en el
momento de la solicitud final de compra (en general, al presionar el
botón “Comprar”).
El Componente de seguridad (plug-in) está disponible para los
siguientes lenguajes de programación:
•
•
•
Plug-in .Net (C#)
Plug-in .Java
Plug-in .PHP
Según la plataforma del comercio, se le proporcionará el plug-in
respectivo. Para los detalles de integración ver Anexo
correspondiente al lenguaje de programación requerido.
Guía de integración de comercios
Virtual POS (V-POS)
ALIGNET Merchant Solution [Confidencial – ALIGNET]
Pág. 2
5. Preguntas y Respuestas Frecuentes
¿Qué lenguajes soporta el Componente de seguridad (plug-in)?
En la actualidad el plug-in tiene una versión para cada uno de
los siguientes lenguajes: Microsoft .Net (C#), Java y PHP. De
acuerdo a la plataforma del sitio Web del comercio, se le
enviará la versión correspondiente.
El documento describe que los comercios deben generar llaves de
encriptación y de firma digital. ¿Cómo será la generación?
De forma adicional al Componente de seguridad (plug-in), se
proporcionará una aplicación para la plataforma del comercio
por medio de la que se generarán estas llaves.
El documento describe que debemos intercambiar llaves de
encriptación y de firma digital. ¿Cómo será este intercambio?
El intercambio de llaves será ejecutado por un canal seguro
entre el comercio y ALIGNET. Para iniciar el intercambio de
llaves una de las posibilidades es solicitar la dirección de correo
electrónico seguro de su proveedor.
¿Existe algún carrito de compras comercial que se integre al
plug-in?
No. En Internet existen varios sitios Web que ofrecen carritos
de compras o sitios Web para comercios, pero para realizar la
integración se necesita el soporte de un programador o
desarrollador para que integre a la plataforma del comercio el
código del plug-in.
¿Si el comercio soporta el idioma inglés, por qué la página de
ingreso de la clave Verified by Visa/MasterCard Secure Code se
muestra en castellano?
La página de ingreso de la clave Verified by Visa/MasterCard
SecureCode es una página que pertenece al Emisor de la tarjeta
y no al Adquirente o al Comercio. El idioma de la página será la
que el Emisor de tarjeta haya decido configurar para sus tarjeta
habientes.
Guía de integración de comercios
Virtual POS (V-POS)
ALIGNET Merchant Solution [Confidencial – ALIGNET]
Pág. 3
6. Datos Adicionales
Las llaves especificadas en cada formulario varían de acuerdo al
ambiente en el que el comercio se encuentre, de la misma manera
las urls del VPOS.
Se indican las urls según el ambiente en el que el comercio se
encuentre:
-TESTING URL VPOS:
https://test2.alignetsac.com/VPOS/MM/transactionStart20.do
-PRODUCCION URL VPOS:
https://vpayment.verifika.com/VPOS/MM/transactionStart20.do
Guía de integración de comercios
Virtual POS (V-POS)
ALIGNET Merchant Solution [Confidencial – ALIGNET]
Pág. 4
7. Anexo 1: Integración con el Plug-in para .Net C#
Instalación del Plug-in C#
Al comercio se le entregará una dll VPOS20_PLUGIN.dll que deberá
ser acoplada a su solución web, a continuación se presenta los
pasos para la integración del plug-in:
2.Examinar
1.Click
derecho
Agregar referencia
3.
Escoger
VPOS20_PLUGIN.
dll y Abrir
o
o
Referenciar al plug-in en la carpeta Referencias de la
aplicación Web
En la ventana Agregar Referencia buscar el componente
VPOS20_PLUGIN.dll
Nota: Utilizar el archivo .DLL que se encuentra dentro de la carpeta
PLUGIN.
Guía de integración de comercios
Virtual POS (V-POS)
ALIGNET Merchant Solution [Confidencial – ALIGNET]
Pág. 5
:
Uso del Plug-in C# para enviar información al V-POS
Llaves necesarias para el envío de información:
Testing:
ALIGNET.TESTING.NOPHP.CRYPTO.PUBLIC.txt
Llave de firma privada del comercio
Producción:
ALIGNET.PRODUCCION.NOPHP.CRYPTO.PUBLIC.txt
Llave de firma privada del comercio
A continuación se mostrará un ejemplo de uso del plug-in utilizando
C#:
//Asemblies adicionales a usar
using System.IO;
using VPOS20_PLUGIN;
//Instanciando e inicializando
VPOSBean oVPOSBean = new VPOSBean();
string R1 = "C:/LLAVE.VPOS.CRYPTO.1024.txt";
string R2 = "C:/LlaveFirmaComercioPrivada.txt";
srVPOSLlaveCifradoPublica = new StreamReader(R1);
srComercioLlaveFirmaPrivada = new StreamReader(R2);
oVPOSBean.acquirerId = "2";
oVPOSBean.commerceId = "359";
oVPOSBean.purchaseCurrencyCode = "840";
oVPOSBean.purchaseAmount = "100000";
oVPOSBean.purchaseOperationNumber = "40";
// Se invoca a la clase VPPOSend que tiene como parámetros las llaves
y el vector de inicialización
VPOSSend
oVPOSSend
=
new
VPOSSend(srVPOSLlaveCifradoPublica,
srComercioLlaveFirmaPrivada, "D412589745DF36FA");
oVPOSSend.execute(ref oVPOSBean);
Guía de integración de comercios
Virtual POS (V-POS)
ALIGNET Merchant Solution [Confidencial – ALIGNET]
Pág. 6
//Recuperando datos cifrados, los cuales se asignan al formulario de
envío al VPOS
String sCipheredSessionKey = oVPOSBean.cipheredSessionKey;
String sCipheredXML = oVPOSBean.cipheredXML;
String sCipheredSignature = oVPOSBean.cipheredSignature;
Uso del Plug-in C# para recibir información del V-POS
Llaves necesarias para recibir la información:
Testing:
ALIGNET.TESTING.NOPHP.SIGNATURE.PUBLIC.txt
Llave de cifrado privada del comercio
Producción:
ALIGNET.PRODUCCION.NOPHP.SIGNATURE.PUBLIC.txt
Llave de cifrado privada del comercio
A continuación se muestra un ejemplo de código implementado en
C# para el descifrado de los datos y la verificación de la firma
digital:
using System.IO;
using System.Collections.Specialized;
using VPOS20_PLUGIN;
NameValueCollection coll = new NameValueCollection();
coll = Request.Params;
String sIDACQUIRER = coll.Get("IDACQUIRER");
String sIDCOMMERCE = coll.Get("IDCOMMERCE");
String sXMLRES = coll.Get("XMLRES");
String sSESSIONKEY = coll.Get("SESSIONKEY");
String sDIGITALSIGN = coll.Get("DIGITALSIGN");
VPOSBean oVPOSBean = new VPOSBean();
oVPOSBean.cipheredXML = sXMLRES;
oVPOSBean.cipheredSessionKey = sSESSIONKEY;
oVPOSBean.cipheredSignature = sDIGITALSIGN;
Guía de integración de comercios
Virtual POS (V-POS)
ALIGNET Merchant Solution [Confidencial – ALIGNET]
Pág. 7
StreamReader
srVPOSLlaveFirmaPublica
=
new
StreamReader("D:/LLAVE.VPOS.FIRMA.1024.txt");
StreamReader
srComercioLlaveCifradoPrivada
=
new
StreamReader("D:/LlaveCifradoComercioPrivada.txt");
// Se invoca a la clase VPOSReceive que tiene como parámetros las
llaves y el vector de inicialización
VPOSReceive oVPOSReceive = new VPOSReceive(srVPOSLlaveFirmaPublica,
srComercioLlaveCifradoPrivada, "D412589745DF36FA");
oVPOSReceive.execute(ref oVPOSBean);
if ( oVPOSBean.validSign == true )
{
//El descifrado fue correcto y la firma digital es correcta
//Luego evaluar oVPOSBean.authorizationResult para saber si la
//transacción fue aceptada o denegada
String sAuthResult =oVPOSBean.authorizationResult;
String sErrorCode =oVPOSBean.errorCode;
}
Generación de llaves en C#
Para
la
generación
de
llaves
se
usa
el
aplicativo
KeyGeneratorVerifika.exe, para ejecutarlo se requiere tener
instalado el .net Framework en una PC con Windows 98, XP, 2000,
etc. y colocar la librería VERIFIK_PROTOCOL.dll en la misma
carpeta donde se ejecutará el archivo exe.
1.
Ejecutar el archivo KeyGeneratorVerifika.exe y presionar el
botón Generar Llaves
Guía de integración de comercios
Virtual POS (V-POS)
ALIGNET Merchant Solution [Confidencial – ALIGNET]
Pág. 8
2.
Una vez generado guardar las llaves privadas en un
dispositivo seguro y las llaves públicas enviarlas mediante un medio
seguro.
Guía de integración de comercios
Virtual POS (V-POS)
ALIGNET Merchant Solution [Confidencial – ALIGNET]
Pág. 9
8. Anexo 2: Integración con el Plug-in y Generador de
llaves en Java
Instalación del Plug-in Java
Al comercio le será entregado un archivo .jar que deberá ser
acoplado a su solución Web. A continuación se presentan los pasos
para la integración del plug-in en Java con el comercio:
•
•
En caso de ser una aplicación stand-alone configurar en la
variable classpath la librería plugin-vpos-1.2.jar
En caso de una aplicación Web incluir en la carpeta de
librerías WEB-INF\lib la librería plugin-vpos-1.2.jar
Componentes del Plugin de Java 2.0.1
•
Bean de datos del VPOS (com.alignet.bean.VPOS20Bean)
El cual contendrá los datos enviados al VPOS y recibidos del
VPOS
Uso del Plug-in Java para enviar información al V-POS
Llaves necesarias para el envío de información:
Testing:
ALIGNET.TESTING.NOPHP.CRYPTO.PUBLIC.txt
Llave de firma privada del comercio
Producción:
ALIGNET.PRODUCCION.NOPHP.CRYPTO.PUBLIC.txt
Llave de firma privada del comercio
A continuación se muestra el código en Java para el envío de
información al V-POS:
// referenciar al componente
import com.alignet.bean.*;
import com.alignet.exception.*;
import com.alignet.plugin.*;
//Crear
una
instancia
com.alignet.bean
de
la
clase
VPOSBean
del
paquete
VPOS20Bean bean = new VPOS20Bean();
//Setear los parámetros dentro de las propiedades del objeto Plugin
try
{
bean.setAcquirerId (“2”);
bean.setCommerceId (“359”);
bean.setPurchaseAmount (“15000”);
Guía de integración de comercios
Virtual POS (V-POS)
ALIGNET Merchant Solution [Confidencial – ALIGNET]
Pág. 10
bean.setPurchaseCurrencyCode (“840”);
bean.setPurchaseOperationNumber (“5646554”);
// Seguir seteando los demás datos.
}
catch(InvalidVPOSParameterException e)
{
//errores en el seteo de los datos obligatorios
e.printStackTrace();
}
// setear campos opcionales si es el caso
// setear campos Reservados si es el caso
bean.setReserved1(“5646554”);
// setar plugin con lo valores para encriptar
try
{
//instanciar una clase Send , pasar como parámetro la llave
//publica para encriptar , la privada para firmar y
//vector de inicialización
Send20 send= new Send20(
new FileReader("c:\\LLAVE.VPOS.CRYPTO.1024.txt"),
new FileReader("c:\\LlavePruebaFirmaComercioPriv.txt"),
"0000000000000000");
//encriptar
send.execute(bean);
}
catch(PlugInVPOSException e)
{
//manejar errores en la encriptacion
e.printStackTrace();
}
catch(FileNotFoundException e)
{
//manejar errores en la lectura de llaves
e.printStackTrace();
}
//obtener valores encriptados para colocarlos en el
//formulario de envio al VPOS
bean.getCipheredSessionKey ();
bean.getCipheredXML ();
bean.getCipheredSignature ();
Para obtener los campos SESSIONKEY, XMLREQ y DIGITALSIGN
que se configurarán en el formulario de la solicitud de pago,
primero se debe invocar al método ejecutar del objeto plug-in, de
la siguiente manera:
send.execute(bean);
Para la generación del campo SESSIONKEY que deberá
configurarse en el formulario de la solicitud de pago, se deberá
usar el plug-in de la siguiente manera:
String SESSIONKEY = bean.getCipheredSessionKey();
Para obtener el mensaje XMLREQ se deberá utilizar el plug-in de la
siguiente manera:
Guía de integración de comercios
Virtual POS (V-POS)
ALIGNET Merchant Solution [Confidencial – ALIGNET]
Pág. 11
String XMLREQ = bean.getCipheredXML();
Para obtener la firma digital se deberá utilizar el plug-in de la
siguiente manera:
String DIGITALSIGN = bean.getCipheredSignature();
El XMLREQ, SESSIONKEY y DIGITALSIGN, deben ser capturados en
el formulario cada uno respectivamente (pag. 13).
Uso del Plug-in Java para recibir información del V-POS
Llaves necesarias para recibir la información:
Testing:
ALIGNET.TESTING.NOPHP.SIGNATURE.PUBLIC.txt
Llave de cifrado privada del comercio
Producción:
ALIGNET.PRODUCCION.NOPHP.SIGNATURE.PUBLIC.txt
Llave de cifrado privada del comercio
A continuación se muestra un ejemplo de código implementado en
Java para el descifrado de los datos y la verificación de la firma
digital:
//Referenciar al componente
import com.alignet.bean.*;
import com.alignet.exception.*;
import com.alignet.plugin.*;
//Crear
una
instancia
de
la
clase
VPOSBean
del
paquete
com.alignet.bean
VPOSBean bean = new VPOSBean();
//Colocar los parámetros dentro de las propiedades del objeto Plug ejm:
try
{
bean.setCipheredSessionKey (llaveSessionCifrada);
bean.setCipheredXML(xmlreq);
bean.setCipheredSignature(firma);
}
catch(InvalidVPOSParameterException e)
{
//manejar errores de seteo incorrecto de parametros
e.printStackTrace();
}
//Invocar al método ejecutar de la objeto execute, el cual desencripta el
xml
try
{
Receive receive= new Receive(
new FileReader("c:\\LLAVE.VPOS.FIRMA.1024.txt"),
new FileReader("c:\\LlavePruebaCifradoComercioPriv.txt"),
"0000000000000000");
receive.execute(vPOSBean);
}
catch(PlugInVPOSException e)
Guía de integración de comercios
Virtual POS (V-POS)
ALIGNET Merchant Solution [Confidencial – ALIGNET]
Pág. 12
{
//manejar errores de la desencriptacion
e.printStackTrace();
}
catch(FileNotFoundException e)
{
//manejar errores de lectura de llaves
//si la firma no es valida tambien se lanza la exepcion
e.printStackTrace();
}
//Verificando la firma digital, que permitirá verificar la integridad de los
//datos
bolean esFirmaValida = vPOSBean.isValidSign();
A continuación se muestra un ejemplo de código implementado en
Java para la recuperación de los datos usando el plug-in:
//Asignar los valores desencriptados a variables
//En caso la transacción fue aprobada:
String codigoAutorizacion = bean.getAuthorizationCode ();
//En caso la transacción fue denegada:
String codigoError = bean.getErrorCode();
String mensajeError = bean.getErrorMessage();
//Extrayendo otros datos de la respuesta
String variable1 = bean.getAcquirerId();
String variable2 = bean.getCommerceId();
...
String varible17 = bean.getReserved1();
Generación de llaves en Java
Para ejecutar el generador de llaves en Java se requiere tener
instalado el JDK y llamar al siguiente comando: java –jar
keygeneratorverifika.jar
Guía de integración de comercios
Virtual POS (V-POS)
ALIGNET Merchant Solution [Confidencial – ALIGNET]
Pág. 13
Una vez generado, mediante las funciones copiar y pegar guardar
las llaves privadas en un medio electrónico y asegurarlo físicamente
o en un dispositivo seguro. Las llaves públicas enviarlas mediante
un medio seguro para su integración con el V-POS.
Cabe anotar que estas claves son críticas y en la medida que se
mantengan en custodia se preservará la seguridad de todo el
sistema para el procesamiento de las transacciones del comercio.
Guía de integración de comercios
Virtual POS (V-POS)
ALIGNET Merchant Solution [Confidencial – ALIGNET]
Pág. 14
9. Anexo 3: Integración con el Plug-in para PHP 5 en
Linux
Requisitos necesarios
Para poder utilizar el componente en PHP en Linux es necesario
tener instaladas las siguientes librerías
•
•
•
PHP5 instalado con las funcionalidades --with-openssl y -with-expat-dir (a partir de la versión 4.0.5)
OpenSSL 0.9.7 en adelante
Libreria libmcrypt instalada
Comprobación del PHP para ver si tiene las librerías instaladas y
funcionando correctamente
Se debe generar una página que contenga la siguiente sentencia de
PHP
phpinfo();
Lo cual genera una página como esta:
Véase lo resaltado para notar que el PHP actual posee las
características pedidas
Ahora se buscará si es que el PHP posee correctamente los módulos
necesarios, para eso hay que buscar si es que en la misma página
de información del PHP se encuentran los apartados siguientes
Guía de integración de comercios
Virtual POS (V-POS)
ALIGNET Merchant Solution [Confidencial – ALIGNET]
Pág. 15
•
•
•
MCRYPT
OPENSSL
XML
De esta forma se puede notar que el PHP ya esta habilitado para
poder usar el script compilado de PHP
Instalación del Plug-in en PHP5
Descargar el Zend Optimizer (revisar que este para la
versión de su PHP) de acuerdo a la plataforma que posee
(Windows, Linux, BSD, otros)
URL de descarga del Zend Optimizer (Escoger version 3.0.2):
http://www.zend.com/free_download/optimizer
•
•
Descomprimir el archivo descargado del Zend Optimizer,
suponiendo que se instala en una maquina Linux con
arquitectura i386 entonces hay que utilizar el siguiente
comando
tar –zxvf ZendOptimizer-3.0.2-linux-glibc21-xxx.tar.gz
Donde xxx corresponde a la arquitectura (i386 o x86_64)
Guía de integración de comercios
Virtual POS (V-POS)
ALIGNET Merchant Solution [Confidencial – ALIGNET]
Pág. 16
•
Este crea un directorio llamado ZendOptimizer-2.6.2-linuxglibc21-i386 por lo tanto hay que entrar al directorio recien
creado
cd ZendOptimizer-3.0.2-linux-glibc21-xxx
•
Como usuario root se debe instalar el Zend Optmizer usando
el siguiente comando:
./install
•
Se muestra una pantalla indicando que se instalará el Zend
Optimizer (en el caso de ejemplo versión 2.6.2), seguir cada
uno de los pasos como se muestran en las pantallas
siguientes, los valores mostrados acá son propios de la
instalación del PHP
Guía de integración de comercios
Virtual POS (V-POS)
ALIGNET Merchant Solution [Confidencial – ALIGNET]
Pág. 17
Guía de integración de comercios
Virtual POS (V-POS)
ALIGNET Merchant Solution [Confidencial – ALIGNET]
Pág. 18
Guía de integración de comercios
Virtual POS (V-POS)
ALIGNET Merchant Solution [Confidencial – ALIGNET]
Pág. 19
Guía de integración de comercios
Virtual POS (V-POS)
ALIGNET Merchant Solution [Confidencial – ALIGNET]
Pág. 20
•
Al finalizar todo correctamente ya ha sido instalado el Zend
Optimizer por lo tanto, ya puede ejecutar páginas
ofuscadas.
Guía de integración de comercios
Virtual POS (V-POS)
ALIGNET Merchant Solution [Confidencial – ALIGNET]
Pág. 21
Uso del Plug-in en PHP para enviar información al V-POS
Para usar el Plug-In hay que tener en cuenta lo siguiente:
1. Se debe crear un Arreglo de entrada con todos los campos
que serán enviados al Plug-In, de acuerdo a lo visto en la
página.
2. El Plug-in devuelve un arreglo con los campos cifrados y
codificados listos para ser enviados al VPOS
a. XMLREQ
b. SESSIONKEY
c. DIGITALSIGN
3. La pagina a usar las funciones debe incluir el archivo
vpos_plugin.php en su código usando la siguiente sentencia
de PHP.
4. Llaves necesarias para el envío de información:
Testing:
ALIGNET.TESTING.PHP.CRYPTO.PUBLIC.txt
Llave de firma privada del comercio
Producción:
ALIGNET.PRODUCCION.PHP.CRYPTO.PUBLIC.txt
Llave de firma privada del comercio
A continuación se mostrará un ejemplo de uso del plug-in utilizando
PHP:
Se referencia al plugin mediante un incluye:
<?php include("vpos_plugin.php");?>
array_send es el arreglo que contiene los parámetros para ser
ingresados al Plug-In del VPOS
array_get es el arreglo que contiene los parámetros devueltos por
el Plug-In listos para ser enviados al VPOS
Guía de integración de comercios
Virtual POS (V-POS)
ALIGNET Merchant Solution [Confidencial – ALIGNET]
Pág. 22
//Todos
los
parámetros
del
componente
se
colocan
en
un
arreglo de
//cadenas, cuyo campo llave es el nombre del parámetro
$array_send['acquirerId']=$CodigoAdquirente;
$array_send['commerceId']=$CodigoComercio;
$array_send['purchaseAmount ']=$Monto;
$array_send['purchaseCurrencyCode']=$CodigoMoneda;
$array_send['purchaseOperationNumber']=$CodigoOperacion;
$array_send['billingAddress']=$direccionCobranza;
$array_send['billingCity']=$ciudadCobranza;
$array_send['billingState']=$estadoCobranza;
$array_send['billingCountry']=$paisCobranza;
$array_send['billingZIP']=$codigoPostalCobranza;
$array_send['billingPhone']=$telefonoCobranza;
$array_send['billingEMail']=$correoElectronicoCobranza;
$array_send['billingFirstName']=$primerNombreTarjetaH;
$array_send['billingLastName']=$ segundoNombreTarjetaH;
$array_send['language']=’SP’; //En español
//Setear un arreglo de cadenas con los parámetros que serán
devueltos
//por el componente
$array_get['XMLREQ']="";
$array_get['DIGITALSIGN']="";
$array_get['SESSIONKEY']="";
Guía de integración de comercios
Virtual POS (V-POS)
ALIGNET Merchant Solution [Confidencial – ALIGNET]
Pág. 23
Se define a su vez un variable con el vector de inicialización. Las
llaves pueden ser ingresadas de forma escrita en el mismo código
//Vector de inicialización
$VI = "0000000000000000";
//Ejemplo de una llave harcodeada en el PHP
//notese el \n son los agregados al final de cada linea, son
saltos de linea necesarios para el formato PEM
$llavePub
=
"-----BEGIN
PUBLIC
KEY-----\n".
"MIGJAoGBAKkJKIAJgm8/zA10FIpGUMAF6WTuTTKd1nqFHUokyXCNYn1oZAz6
vVqy\n".
"BfJjWxL0o8r8ooBKQ/jKIVm4mFtVgQ5EamzYQFxsmU1dFfuBZdm7o3eId7xh
mSnD\n".
"ZNiwGv7xmTybY4QH7VMqPAgaeKN9cPAnN1+F2Jzw/WVWtD7E7xXhAgMBAAE=
\n".
"-----END RSA PUBLIC KEY-----";
O también de un archivo de texto plano existente en el sistema
operativo
//Vector de inicialización
$VI = "0000000000000000";
//Ejemplo de una llave leida de un archivo de texto plano
$llavePriv = "file://camino_archivo_completo";
Para poder ejecutar el componente hay que invocar a la función
VPOSSend con todos los campos a enviar, los parámetros de
salida de la función el SESSIONKEY, el DIGITALSIGN y el XMLREQ
serán devueltos en el arreglo de salida, en este caso el array_get
VPOSSend($array_send,$array_get,$llaveVPOSCryptoPub,$llaveComercioFirma
Priv,$VI);
Leer los valores dentro del arreglo $array_get y enviarlos mediante
un formulario al VPOS
Guía de integración de comercios
Virtual POS (V-POS)
ALIGNET Merchant Solution [Confidencial – ALIGNET]
Pág. 24
<INPUT
TYPE="hidden"
NAME="IDACQUIRER"
$CodigoAdquirente; ?>">
<INPUT
TYPE="hidden"
NAME="IDCOMMERCE"
$CodigoComercio; ?>">
<INPUT
TYPE="hidden"
NAME="XMLREQ"
$array_get['XMLREQ'];?>">
<INPUT
TYPE="hidden"
NAME="DIGITALSIGN"
$array_get['DIGITALSIGN'];?>">
<INPUT
TYPE="hidden"
NAME="SESSIONKEY"
$array_get['SESSIONKEY'];?>">
value="<?php
echo
value="<?php
echo
value="<?php
value="<?php
echo
value="<?php
echo
Se indican las urls a donde se deben enviar estos valores mediante
post
TESTING:
https://test2.alignetsac.com/VPOS/MM/transactionStart20.do
PRODUCCION:
https://vpayment.verifika.com/VPOS/MM/transactionStart20.do
Guía de integración de comercios
Virtual POS (V-POS)
ALIGNET Merchant Solution [Confidencial – ALIGNET]
echo
Pág. 25
Uso del Plug-in en PHP para recibir información del V-POS
Llaves necesarias para recibir la información:
Testing:
ALIGNET.TESTING.PHP.SIGNATURE.PUBLIC.txt
Llave de cifrado privada del comercio
Producción:
ALIGNET.PRODUCCION.PHP.SIGNATURE.PUBLIC.txt
Llave de cifrado privada del comercio
A continuación se muestra un ejemplo de código implementado en
PHP para el descifrado de los datos y la verificación de la firma
digital:
$VI = "0000000000000000";
$llavePriv
=
“file:///var/llaves/LlavePruebaCifradoComercioPriv.txt”;
$llavePriv = "file:///var/llaves/LLAVE.VPOS.FIRMA.1024.txt";
Se preparan los datos para ser ingresados a la función
VPOSResponse, la salida de la función es true o false lo cual
indica si han podido descifrarse y validarse correctamente los
valores enviados por el VPOS
if(VPOSResponse($arrayIn,$arrayOut,$llavePublicaFirma,$llavePriv
adaCifrado,$VI)){
//La
salida
esta
en
decifrados devueltos por
$arrayOut
con
todos
los
parámetros
el VPOS
$resultadoAutorizacion = $arrayOut['authorizationResult']
$codigoAutorizacion = $arrayOut['authorizationCode']
}else{
//Puede haber un problema de mala configuración de las llaves,
vector de
//inicializacion o el VPOS no ha enviado valores correctos
}
Guía de integración de comercios
Virtual POS (V-POS)
ALIGNET Merchant Solution [Confidencial – ALIGNET]
Pág. 26
Generación de llaves
Para generar las llaves se debe usar el OpenSSL mediante línea de
comandos
Antes de iniciar la generación de llaves es preferible mantener
estándares de creación de llaves, el estándar es el siguiente:
GENERADORA.USO.TIPO.pem
Donde:
GENERADORA: Es la entidad quien generó la llave por ejemplo si el
comercio se llama “Panadería la Miga” entonces puede ser MIGA
USO: Puede tomar dos valores (CIFRADO, FIRMA) dependiendo si
estas llaves trabajaran en la firma digital o con el cifrado asimétrico
de datos
TIPO: Indica que tipo de llave es (PUBLICA o PRIVADA)
Ahora se indicarán los pasos para generar cada llave:
1. Primero se genera la llave Privada mediante el comando
openssl genrsa –out MIGA.CIFRADO.PRIVADA.pem 1024
Esto genera una llave privada de 1024 bits en el archivo
MIGA.CIFRADO.PRIVADA.pem
2. Ahora de la llave privada hay que extraer la llave publica
openssl rsa –in MIGA.CIFRADO.PRIVADA.pem –out
MIGA.CIFRADO.PUBLICA.pem –pubout
Esto
coloca
la
llave
MIGA.CIFRADO.PUBLICA.pem
pública
en
el
archivo
3. Repetir el mismo proceso para el otro par de llaves
4. Enviar a su respectivo Adquirente las llaves PUBLICAS como
serian en este caso:
MIGA.CIFRADO.PUBLICA.pem
MIGA.FIRMA.PUBLICA.pem
5. El valor del vector de inicialización puede ser generado de
forma aleatoria, siendo sus principales condiciones:
a. Tener una longitud de 16 caracteres
b. Solo puede contener números o letras de la A a la F
Guía de integración de comercios
Virtual POS (V-POS)
ALIGNET Merchant Solution [Confidencial – ALIGNET]
Pág. 27

Documentos relacionados