Skip to content

Releases: junngla-tech/junngla-redpay-sdk-nodejs

v2.0.0

24 Jan 18:29

Choose a tag to compare

RedPay SDK NodeJS

RedPay SDK NodeJS es una biblioteca diseñada para facilitar la integración con los servicios de RedPay en aplicaciones basadas en Node.js. Proporciona herramientas completas para la gestión de usuarios, generación y validación de tokens, y control de integridad en todas las interacciones con los servicios de RedPay.

Estado del SDK: Versión BETA

El SDK se encuentra actualmente en su versión BETA. Estamos trabajando continuamente para mejorar su funcionalidad y confiabilidad. Valoramos enormemente tus comentarios y sugerencias, ya que son esenciales para optimizar esta herramienta.

Si encuentras algún problema o deseas compartir tus ideas, no dudes en contactarnos a través del correo electrónico: soporteqri@junngla.com. Estamos aquí para ayudarte.

Agradecemos tu confianza y colaboración durante esta etapa de desarrollo.

Tabla de Contenidos

  1. Instalación
  2. RedPayClient: Gestión de peticiones HTTP
  3. Enrolador recaudador
  4. Enrolador pagador (billetera digital)
  5. Enrolador dual (Recaudador y Pagador)
  6. Control de integridad
  7. Colaboración
  8. Documentación
  9. API

Instalación

Para instalar la biblioteca, utiliza npm o yarn:

npm install redpay-sdk-nodejs
# o
yarn add redpay-sdk-nodejs

RedPayClient: Gestión de peticiones HTTP

El cliente de RedPay es una clase que permite realizar peticiones HTTP a los servicios de RedPay.

Características

  • Firma Automática: Las peticiones son firmadas automáticamente con el secreto de integridad.
  • Validación de Respuestas: Se verifica la firma en las respuestas para evitar manipulaciones.

Enrolador recaudador

Configuración inicial

La configuración inicial de la librería es global y debe realizarse una única vez. Define los certificados, secretos y parámetros del entorno (producción o integración) necesarios para operar como recolector.

Ejemplo de configuración:

import {
  RedPayConfigProvider,
  RedPayEnvironment,
  Certificate,
  Secrets,
  Accounts,
  Account,
  Bank,
  AccountAuthorization,
} from "redpay-sdk-nodejs";

// Certificados mTLS
const certificates = new Certificate({
  key_path: "private.key",
  cert_path: "certificate.crt",
});

const secrets = new Secrets({
  integrity: "90d966f496e3a3831ee62e55d4656471c5f6508b",
  chargeback: "4B3C60D59fA9EE7D3dC837Ff18e3d4b7fCcED2fe674",
});

const accounts = new Accounts({
  // Cuenta de devolución (opcional)
  chargeback: new Account({
    id: "demo",
    number: 22222222,
    bank: Bank.BANCO_BICE,
    type: AccountAuthorization.CORRIENTE,
  }),
});

RedPayConfigProvider.getInstance().setConfig({
  type: Enroller.COLLECTOR,
  certificates,
  environment: RedPayEnvironment.Integration,
  secrets,
  accounts,
});

RedPayService

Este servicio ofrece las siguientes funcionalidades para las integraciones de tipo Enrolador Recaudador:

Métodos generales:

  • createUser: Crear un usuario recolector.
  • updateUser: Actualizar información de un usuario recolector.
  • verifyUser: Verificar la información de un usuario recolector.

Métodos específicos:

  • generateToken: Crear un token para operaciones.
  • validateToken: Validar los detalles de un token (opcional).
  • revokeToken: Revocar un token existente.
  • generateChargeback: Realizar un contra cargo (devolución).
  • validateAuthorization: Validar estado final de una transacción.

Ejemplo de implementación: Generación de usuario (comercio)

import {
  RedPayService,
  UserCollectorRequest,
  UserAccount,
  Bank,
  AccountUser,
  Geo,
  Withdrawal,
} from "redpay-sdk-nodejs";

const userAccount = new UserAccount({
  number: 22222222,
  bank: Bank.BANCO_BICE,
  tax_id: "76222222-1",
  type: AccountUser.CUENTA_CORRIENTE,
});

const geo = new Geo({
  lat: 1.1234,
  lng: 1.1234,
});

const withdrawal = new Withdrawal({
  mode: WithdrawalMode.MONTHLY,
});

const userCollectorRequest = new UserCollectorRequest({
  user_id: "demo",
  email: "example@example.com",
  name: "Comercio de prueba",
  account: userAccount,
  geo: geo,
  tax_address: "Calle de fantasia 123",
  tax_id: "76222222-1",
  gloss: "Comercio de prueba",
  withdrawal: withdrawal,
});

const service = new RedPayService();

try {
  const userCreated = await service.createUser(userCollectorRequest);
} catch (e) {
  console.log("Error al crear el usuario", e);
}

Withdrawal

El objeto Withdrawal se utiliza para definir el modo de retiro de fondos de un usuario recolector que utiliza el Portal de Cartolas. Los modos disponibles son:

  • WithdrawalMode.MONTHLY: Retiro mensual.
  • WithdrawalMode.WEEKLY: Retiro quincenal.
  • WithdrawalMode.DAILY: Retiro diario.
  • WithdrawalMode.MANUAL: Retiro manual (personalizado).

Para el modo MANUAL, se debe definir el campo settlement con la frecuencia de retiro deseada.

Gestión de tokens

Los tokens son componentes esenciales para las operaciones en RedPay. La librería permite manejar diversos tipos de tokens (T0, T1, T2, T3, T4), cada uno con características específicas.

Tipos de tokens

  • T0: Token de transacción.
  • T1: Token de suscripción.
  • T2: Token de cobro de suscripción.
  • T3: Token de envío de dinero.
  • T4: Token de transacción con un alias.

Ejemplo de implementación: Generación de token

import {
  RedPayService,
  TokenT0Request,
  TokenDataT0
  TokenType,
} from "redpay-sdk-nodejs";

const tokenT0Request = new TokenT0Request({
  user_id: userCollector.user_id,
  data: new TokenDataT0({
    amount: 1000,
  }),
  token_type: TokenType.T0,
  detail: "Token de Prueba",
});

const service = new RedPayService();

try {
  const tokenCreated = await service.generateToken(tokenT0Request);
} catch (e) {
  console.log("Error al crear el token", e);
}

Ejemplo de implementación: Revocación de token

import { RedPayService, RevokeTokenRequest } from "redpay-sdk-nodejs";

const revokeTokenRequest = new RevokeTokenRequest({
  user_id: userCollector.user_id,
  token_uuid: "token_uuid",
});

const service = new RedPayService();

try {
  const tokenRevoked = await service.revokeToken(revokeTokenRequest);
} catch (e) {
  console.log("Error al revocar el token", e);
}

Ejemplo de implementación: Validación de token

import {
  RedPayService,
  ValidateTokenRequest,
  UserType,
} from "redpay-sdk-nodejs";

const validateTokenRequest = new ValidateTokenRequest({
  user_id: userCollector.user_id,
  token_uuid: "token_uuid",
  user_type: UserType.COLLECTOR,
});

const service = new RedPayService();

try {
  const tokenValidated = await service.validateToken(validateTokenRequest);
} catch (e) {
  console.log("Error al validar el token", e);
}

Validación de autorización

El método validateAuthorization permite validar el estado final de una autorización de transacción. Dependiendo de la propiedad status_code obtenida en la respuesta, se puede determinar si la transacción fue exitosa, fallida o se encuentra en proceso.

Ejemplo de implementación: Validación de autorización

import {
  RedPayService,
  ValidateAuthorizationCollectorRequest,
  UserType,
} from "redpay-sdk-nodejs";

const validateAuthorizationRequest = new ValidateAuthorizationCollectorRequest({
  user_id: userCollector.user_id,
  authorization_uuid: "authorization_uuid",
  user_type: UserType.COLLECTOR,
});

const service = new RedPayService();

try {
  const authorizationValidated = await service.validateAuthorization(
    validateAuthorizationRequest
  );
} catch (e) {
  console.log("Error al validar una autorización", e);
}

Detalles de la devolución

Para realizar una devolución, se debe definir previamente la cuenta chargeback en la configuración inicial de la librería.

Adicionalmente, si desea operar con el modelo devolución automática, se debe definir el secrets.chargeback_automatic y la cuenta account.chargeback_automatic en la configuración inicial de la librería.

Ejemplo de implementación: Devolución (opcional)

import { RedPayService, ChargebackRequest...
Read more

v1.1.0

08 Aug 17:59

Choose a tag to compare

RedPay SDK NodeJS

Está librería incluye funcionalidades las cuales facilitan la integración al Servicio de RedPay en proyectos desarrollados con NodeJS.

Control de integridad

Esté set de funciones permiten controlar la integridad de los datos enviados o recibidos en servicios de RedPay.

generateSignature(input: object, secret: string): string

Permite generar la firma de un objeto.

Parámetros de entrada entrada:

  • input: el objeto para el cual desean generar una firma
  • secret: el secreto a utilizar para firmar el objeto

Valor de retorno:

  • La firma, string de 64 caracteres correspondiente al objeto de entrada

Ejemplo:

import { generateSignature } from 'redpay-sdk-nodejs';

const signature = generateSignature({
    "hello": "world"
}, 'f441bb4d-9cd3-410a-8ede-cefd33cf3fa0');

console.log(signature);
// output: ba1cf4f1a0d5659a4c7dd8c70f74788a532c644c65eeb3d46d9e56cdb22eaeaa

validateSignature(input: object, secret: string): boolean

Permite validar la firma de un objeto.

Parámetros de entrada entrada:

  • input: el objeto para el cual desea validar la firma
  • secret: el secreto a utilizar para firmar el objeto

Valor de retorno:

  • Un booleano correspondiente a la validez del signature

Ejemplo:

import { validateSignature } from 'redpay-sdk-nodejs';

const isSignatureValid = validateSignature({
    "hello": "world",
    "signature": "ba1cf4f1a0d5659a4c7dd8c70f74788a532c644c65eeb3d46d9e56cdb22eaeaa"
}, 'f441bb4d-9cd3-410a-8ede-cefd33cf3fa0');

console.log(isSignatureValid);
// output: true

getSignedObject(input: object, secret: string): object

Permite generar un objeto firmado.

Parámetros de entrada entrada:

  • input: el objeto para el cual desea sumarle la firma
  • secret: el secreto a utilizar para firmar el objeto

Valor de retorno:

  • Un objeto poblado con el campo signature el cual contiene la firma correspondiente

Ejemplo:

import { getSignedObject } from 'redpay-sdk-nodejs';

const signedObject = getSignedObject({
    "hello": "world",
    "signature": "ba1cf4f1a0d5659a4c7dd8c70f74788a532c644c65eeb3d46d9e56cdb22eaeaa"
}, 'f441bb4d-9cd3-410a-8ede-cefd33cf3fa0');

console.log(signedObject);
// output: { "hello": "world", "signature": "ba1cf4f1a0d5659a4c7dd8c70f74788a532c644c65eeb3d46d9e56cdb22eaeaa" }

v1.0.3

21 Sep 21:56

Choose a tag to compare

RedPay SDK NodeJS

Está librería incluye funcionalidades las cuales facilitan la integración al Servicio de RedPay en proyectos desarrollados con NodeJS.

Control de integridad

Esté set de funciones permiten controlar la integridad de los datos enviados o recibidos en servicios de RedPay.

generateSignature(input: object, secret: string): string

Permite generar la firma de un objeto.

Parámetros de entrada entrada:

  • input: el objeto para el cual desean generar una firma
  • secret: el secreto a utilizar para firmar el objeto

Valor de retorno:

  • La firma, string de 64 caracteres correspondiente al objeto de entrada

Ejemplo:

import { generateSignature } from 'redpay-sdk-nodejs';

const signature = generateSignature({
    "hello": "world"
}, 'f441bb4d-9cd3-410a-8ede-cefd33cf3fa0');

console.log(signature);
// output: ba1cf4f1a0d5659a4c7dd8c70f74788a532c644c65eeb3d46d9e56cdb22eaeaa

validateSignature(input: object, secret: string): boolean

Permite validar la firma de un objeto.

Parámetros de entrada entrada:

  • input: el objeto para el cual desea validar la firma
  • secret: el secreto a utilizar para firmar el objeto

Valor de retorno:

  • Un booleano correspondiente a la validez del signature

Ejemplo:

import { validateSignature } from 'redpay-sdk-nodejs';

const isSignatureValid = validateSignature({
    "hello": "world",
    "signature": "ba1cf4f1a0d5659a4c7dd8c70f74788a532c644c65eeb3d46d9e56cdb22eaeaa"
}, 'f441bb4d-9cd3-410a-8ede-cefd33cf3fa0');

console.log(isSignatureValid);
// output: true

getSignedObject(input: object, secret: string): object

Permite generar un objeto firmado.

Parámetros de entrada entrada:

  • input: el objeto para el cual desea sumarle la firma
  • secret: el secreto a utilizar para firmar el objeto

Valor de retorno:

  • Un objeto poblado con el campo signature el cual contiene la firma correspondiente

Ejemplo:

import { getSignedObject } from 'redpay-sdk-nodejs';

const signedObject = getSignedObject({
    "hello": "world",
    "signature": "ba1cf4f1a0d5659a4c7dd8c70f74788a532c644c65eeb3d46d9e56cdb22eaeaa"
}, 'f441bb4d-9cd3-410a-8ede-cefd33cf3fa0');

console.log(signedObject);
// output: { "hello": "world", "signature": "ba1cf4f1a0d5659a4c7dd8c70f74788a532c644c65eeb3d46d9e56cdb22eaeaa" }

v1.0.2

21 Sep 21:52

Choose a tag to compare

RedPay SDK NodeJS

Está librería incluye funcionalidades las cuales facilitan la integración al Servicio de RedPay en proyectos desarrollados con NodeJS.

Control de integridad

Esté set de funciones permiten controlar la integridad de los datos enviados o recibidos en servicios de RedPay.

generateSignature(input: object, secret: string): string

Parámetros de entrada entrada:

  • input: el objeto para el cual desean generar una firma
  • secret: el secreto a utilizar para firmar el objeto

Valor de retorno:

  • La firma, string de 64 caracteres correspondiente al objeto de entrada

Ejemplo:

import generateSignature from 'junngla-redpay-sdk-nodejs';

const signature = generateSignature({
    "hello": "world"
}, 'f441bb4d-9cd3-410a-8ede-cefd33cf3fa0');

console.log(signature);
// output: ba1cf4f1a0d5659a4c7dd8c70f74788a532c644c65eeb3d46d9e56cdb22eaeaa

validateSignature(input: object, secret: string): boolean

Parámetros de entrada entrada:

  • input: el objeto para el cual desea validar la firma
  • secret: el secreto a utilizar para firmar el objeto

Valor de retorno:

  • Un booleano correspondiente a la validez del signature

Ejemplo:

import validateSignature from 'junngla-redpay-sdk-nodejs';

const isSignatureValid = validateSignature({
    "hello": "world",
    "signature": "ba1cf4f1a0d5659a4c7dd8c70f74788a532c644c65eeb3d46d9e56cdb22eaeaa"
}, 'f441bb4d-9cd3-410a-8ede-cefd33cf3fa0');

console.log(isSignatureValid);
// output: true

getSignedObject(input: object, secret: string): object

Parámetros de entrada entrada:

  • input: el objeto para el cual desea sumarle la firma
  • secret: el secreto a utilizar para firmar el objeto

Valor de retorno:

  • Un objeto poblado con el campo signature el cual contiene la firma correspondiente

Ejemplo:

import getSignedObject from 'junngla-redpay-sdk-nodejs';

const signedObject = getSignedObject({
    "hello": "world",
    "signature": "ba1cf4f1a0d5659a4c7dd8c70f74788a532c644c65eeb3d46d9e56cdb22eaeaa"
}, 'f441bb4d-9cd3-410a-8ede-cefd33cf3fa0');

console.log(signedObject);
// output: { "hello": "world", "signature": "ba1cf4f1a0d5659a4c7dd8c70f74788a532c644c65eeb3d46d9e56cdb22eaeaa" }

v1.0.1

21 Sep 21:41

Choose a tag to compare

RedPay SDK NodeJS

Está librería incluye funcionalidades las cuales facilitan la integración al Servicio de RedPay en proyectos desarrollados con NodeJS.

Control de integridad

Esté set de funciones permiten controlar la integridad de los datos enviados o recibidos en servicios de RedPay.

generateSignature(input: object, secret: string): string

Parámetros de entrada entrada:

  • input: el objeto para el cual desean generar una firma
  • secret: el secreto a utilizar para firmar el objeto

Valor de retorno:

  • La firma, string de 64 caracteres correspondiente al objeto de entrada

Ejemplo:

import generateSignature from 'junngla-redpay-sdk-nodejs';

const signature = generateSignature({
    "hello": "world"
}, 'f441bb4d-9cd3-410a-8ede-cefd33cf3fa0');

console.log(signature);
// output: ba1cf4f1a0d5659a4c7dd8c70f74788a532c644c65eeb3d46d9e56cdb22eaeaa

validateSignature(input: object, secret: string): boolean

Parámetros de entrada entrada:

  • input: el objeto para el cual desea validar la firma
  • secret: el secreto a utilizar para firmar el objeto

Valor de retorno:

  • Un booleano correspondiente a la validez del signature

Ejemplo:

import validateSignature from 'junngla-redpay-sdk-nodejs';

const isSignatureValid = validateSignature({
    "hello": "world",
    "signature": "ba1cf4f1a0d5659a4c7dd8c70f74788a532c644c65eeb3d46d9e56cdb22eaeaa"
}, 'f441bb4d-9cd3-410a-8ede-cefd33cf3fa0');

console.log(isSignatureValid);
// output: true

getSignedObject(input: object, secret: string): object

Parámetros de entrada entrada:

  • input: el objeto para el cual desea sumarle la firma
  • secret: el secreto a utilizar para firmar el objeto

Valor de retorno:

  • Un objeto poblado con el campo signature el cual contiene la firma correspondiente

Ejemplo:

import getSignedObject from 'junngla-redpay-sdk-nodejs';

const signedObject = getSignedObject({
    "hello": "world",
    "signature": "ba1cf4f1a0d5659a4c7dd8c70f74788a532c644c65eeb3d46d9e56cdb22eaeaa"
}, 'f441bb4d-9cd3-410a-8ede-cefd33cf3fa0');

console.log(signedObject);
// output: { "hello": "world", "signature": "ba1cf4f1a0d5659a4c7dd8c70f74788a532c644c65eeb3d46d9e56cdb22eaeaa" }

1.0.0

21 Sep 21:20

Choose a tag to compare

RedPay SDK NodeJS

Está librería incluye funcionalidades las cuales facilitan la integración al Servicio de RedPay en proyectos desarrollados con NodeJS.

Control de integridad

Esté set de funciones permiten controlar la integridad de los datos enviados o recibidos en servicios de RedPay.

generateSignature(input: object, secret: string): string

Parámetros de entrada entrada:

  • input: el objeto para el cual desean generar una firma
  • secret: el secreto a utilizar para firmar el objeto

Valor de retorno:

  • La firma, string de 64 caracteres correspondiente al objeto de entrada

Ejemplo:

import generateSignature from 'junngla-redpay-sdk-nodejs';

const signature = generateSignature({
    "hello": "world"
}, 'f441bb4d-9cd3-410a-8ede-cefd33cf3fa0');

console.log(signature);
// output: ba1cf4f1a0d5659a4c7dd8c70f74788a532c644c65eeb3d46d9e56cdb22eaeaa

validateSignature(input: object, secret: string): boolean

Parámetros de entrada entrada:

  • input: el objeto para el cual desea validar la firma
  • secret: el secreto a utilizar para firmar el objeto

Valor de retorno:

  • Un booleano correspondiente a la validez del signature

Ejemplo:

import validateSignature from 'junngla-redpay-sdk-nodejs';

const isSignatureValid = validateSignature({
    "hello": "world",
    "signature": "ba1cf4f1a0d5659a4c7dd8c70f74788a532c644c65eeb3d46d9e56cdb22eaeaa"
}, 'f441bb4d-9cd3-410a-8ede-cefd33cf3fa0');

console.log(isSignatureValid);
// output: true

getSignedObject(input: object, secret: string): object

Parámetros de entrada entrada:

  • input: el objeto para el cual desea sumarle la firma
  • secret: el secreto a utilizar para firmar el objeto

Valor de retorno:

  • Un objeto poblado con el campo signature el cual contiene la firma correspondiente

Ejemplo:

import getSignedObject from 'junngla-redpay-sdk-nodejs';

const signedObject = getSignedObject({
    "hello": "world",
    "signature": "ba1cf4f1a0d5659a4c7dd8c70f74788a532c644c65eeb3d46d9e56cdb22eaeaa"
}, 'f441bb4d-9cd3-410a-8ede-cefd33cf3fa0');

console.log(signedObject);
// output: { "hello": "world", "signature": "ba1cf4f1a0d5659a4c7dd8c70f74788a532c644c65eeb3d46d9e56cdb22eaeaa" }