Releases: junngla-tech/junngla-redpay-sdk-nodejs
v2.0.0
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
- Instalación
- RedPayClient: Gestión de peticiones HTTP
- Enrolador recaudador
- Enrolador pagador (billetera digital)
- Enrolador dual (Recaudador y Pagador)
- Control de integridad
- Colaboración
- Documentación
- API
Instalación
Para instalar la biblioteca, utiliza npm o yarn:
npm install redpay-sdk-nodejs
# o
yarn add redpay-sdk-nodejsRedPayClient: 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...v1.1.0
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: ba1cf4f1a0d5659a4c7dd8c70f74788a532c644c65eeb3d46d9e56cdb22eaeaavalidateSignature(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: truegetSignedObject(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
signatureel 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
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: ba1cf4f1a0d5659a4c7dd8c70f74788a532c644c65eeb3d46d9e56cdb22eaeaavalidateSignature(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: truegetSignedObject(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
signatureel 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
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: ba1cf4f1a0d5659a4c7dd8c70f74788a532c644c65eeb3d46d9e56cdb22eaeaavalidateSignature(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: truegetSignedObject(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
signatureel 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
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: ba1cf4f1a0d5659a4c7dd8c70f74788a532c644c65eeb3d46d9e56cdb22eaeaavalidateSignature(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: truegetSignedObject(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
signatureel 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
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: ba1cf4f1a0d5659a4c7dd8c70f74788a532c644c65eeb3d46d9e56cdb22eaeaavalidateSignature(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: truegetSignedObject(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
signatureel 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" }