visanet
v0.0.6
Published
Visanet integration write in JS
Downloads
16
Readme
visanet
Este paquete sirve como reemplazo al sistema integral de pagos en línea ofrecido por ALIGNET, en caso de estar trabajando con Nodejs, el uso del paquete se abstiene a limitantes, las cuales son descritas más abajo.
Instalación
npm i visanet
Configuración
Para configurar y empezar a usar el paquete se necesita tener las llaves publicas de la integración junto a las llaves privadas del comercio y el vector de inicialización, las llaves son RSA, tanto las publicas como las privadas.
import visanet, { config } from 'visanet';
config({
iv: '<<vector de inicialización>>',
signatureKeyPair: {
publicKey: '<<llave publica de la integración>>',
privateKey: '<<llave privada del comercio>>',
},
cryptoKeyPair: {
publicKey: '<<llave publica de la integración>>',
privateKey: '<<llave privada del comercio>>',
},
});
Uso
La documentación siguiente usa lo hecho anteriormente a forma de pasos, por lo que al referirse a una variable, sería la existente en un codigo anterior, inclusive para la configuración previamente hecha.
Armado de datos
/**
* Estos datos son armados de forma independiente de la aplicación
* que extiende el paquete, el formato esperado es flexible,
* sin embargo los datos importantes se detallan abajo
*
* IMPORTANTE: Este paquete no implementa los impuestos en su envio de datos,
* si su aplicación debe hacer uso de ellos, extienda o reemplace
* el uso de este paquete
*/
const applicationData = {
acquirerId: 0, // Reemplazar con su identificador
commerceId: 0, // Reemplazar con su identificador
purchaseOperationNumber: 10100100100,
purchaseAmount: 10000,
purchaseCurrencyCode: 858,
commerceMallId: 1,
language: 'SP',
billingFirstName: 'Juan',
billingLastName: 'Perez',
billingEMail: '[email protected]',
billingAddress: 'Direccion ABC',
billingZIP: 1234567890,
billingCity: 'Montevideo',
billingState: 'Montevideo',
billingCountry: 'UY',
billingPhone: '123456789',
shippingAddress: 'Direccion ABC',
terminalCode: '00000000',
reserved1: 'Valor Reservado 123',
reserved10: 6,
reserved11: 1111111,
reserved12: 9090.9090909091,
};
Envio de datos
Los datos una vez estructurados se proceden a enviar de la siguiente forma, la respuesta de esto se deberá usar en algún componente donde se haga el llamado al endpoint dado por la integración para procesar el pago.
const { SESSIONKEY, XMLREQ, DIGITALSIGN } = visanet.VPOSSend(applicationData);
/** Retorna
*
SESSIONKEY -> La llave de sesión cifrada.
XMLREQ -> Los datos en XML cifrados.
DIGITALSIGN -> La firma digital.
*
* /
Recibo y procesamiento de datos
En respuesta de la operación realizada por la integración, recibira un llamado POST con los datos de la transacción, los mismo llegaran en el formato que se detalla abajo, y con ellos puede extraer la información pertinente a su aplicación.
Al responder el conjunto de datos que retorna esta detallado en el kit de integración que proveen al comercio, los datos una vez sean procesados por el paquete se retornaran en formato de objeto de Javascript.
const response = {
IDCOMMERCE: 0,
IDACQUIRER: 0,
XMLRES: '5yy6r9ExSD60...',
DIGITALSIGN: 'gSbpU_nXTASxeYHtOX-...',
SESSIONKEY: 'uET3nEmzpr2yk-I...',
};
visanet.VPOSResponse(response);
Errores
El error más común que puede encontrase al usar el paquete es:
Not found loaded keys, please run config() before call VPOS methods
Como el mismo lo indica, se debe a que falta cargar las llaves para empezar a usar el paquete.