npm package discovery and stats viewer.

Discover Tips

  • General search

    [free text search, go nuts!]

  • Package details

    pkg:[package-name]

  • User packages

    @[username]

Sponsor

Optimize Toolset

I’ve always been into building performant and accessible sites, but lately I’ve been taking it extremely seriously. So much so that I’ve been building a tool to help me optimize and monitor the sites that I build to make sure that I’m making an attempt to offer the best experience to those who visit them. If you’re into performant, accessible and SEO friendly sites, you might like it too! You can check it out at Optimize Toolset.

About

Hi, 👋, I’m Ryan Hefner  and I built this site for me, and you! The goal of this site was to provide an easy way for me to check the stats on my npm packages, both for prioritizing issues and updates, and to give me a little kick in the pants to keep up on stuff.

As I was building it, I realized that I was actually using the tool to build the tool, and figured I might as well put this out there and hopefully others will find it to be a fast and useful way to search and browse npm packages as I have.

If you’re interested in other things I’m working on, follow me on Twitter or check out the open source projects I’ve been publishing on GitHub.

I am also working on a Twitter bot for this site to tweet the most popular, newest, random packages from npm. Please follow that account now and it will start sending out packages soon–ish.

Open Software & Tools

This site wouldn’t be possible without the immense generosity and tireless efforts from the people who make contributions to the world and share their work via open source initiatives. Thank you 🙏

© 2024 – Pkg Stats / Ryan Hefner

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.