@clinpays/paygate
v1.0.67
Published
Realizar pagos con visa y mastercard
Downloads
180
Readme
PAYGATE PAYMENTS 🚀
Cómo instalarlo
npm
npm i @clinpays/paygate
Métodos principales
- Paygate.debug(true)
Visualizar en la consola los registros de log de todos los procesos.
| Parámetro | Tipo | Descripción | | ------------| --------| -----------------------------------| | true/false | Boolean | Activa/desactiva el modo debugger |
const Paygate = require('@clinpays/paygate');
Paygate.debug(true/false);
- Paygate.dataCollector(account, safeIdentifier, currency)
Ejecutar el data collector para el servicio de antifraude. Este método debe ser llamado en el frontend
, es decir en el navegador del cliente, ya que recolectará información relacionada a este. Este método devuelve una promesa que resuelve con un objeto con los ID de sesiones que deben ser enviados en el payload del método payOrder
.
| Parámetro | Requerido | Tipo | Especificación | Formato | Descripción |
|-----------------|-----------|---------|-----------------|---------------------------|---------------------------------------------------|
| account | Sí | String | - | 66107b9c1318da5f6c995357 | ID del comercio |
| safeIdentifier | Sí | String | - | 1234567891234567 | PAN de la tarjeta sin guiones ni espacios |
| currency | No | String | ISO 4217 code | HNL | Moneda de la transacción. Valor por defecto HNL
|
const Paygate = require('@clinpays/paygate');
async function collector() {
const result = await Paygate.dataCollector(
'66107b9c1318da5f6c995357',
'HNL',
'1234567891234567'
);
console.log(result);
}
Output:
{
sess: 'ID de 32 caracteres' | null,
bankSess: 'ID de 32 caracteres' | null
}
- Paygate.show3dsValidation(redirectData)
Mostrar la pantalla de validación 3DS a través de un modal. Este método recibe un parámetro de tipo string y mostrará una pantalla modal en caso de que el banco emisor de la tarjeta requiera validación adicional de parte del tarjetahabiente.
| Parámetro | Requerido | Tipo | Formato | Descripción | |--------------|-----------|---------|--------------------------------|-------------------------------------------------------------| | redirectData | Sí | String | HTML a insertar en iframe | HTML con javascript embebido que se inyectará en un iframe |
const Paygate = require('@clinpays/paygate');
await Paygate.show3dsValidation('[HTML FORM DATA TRUNCATED FOR BREVITY]');
- Paygate.configure_ecommerce(id, token)
Configurar la cuenta con las credenciales correspondientes para poder realizar cobros. Este método debe ser llamado únicamente en el backend
para evitar exponer el token de autenticación.
| Parámetro | Requerido | Tipo | Formato | Descripción | |-----------|-----------|---------|-------------------------------|---------------------| | id | Sí | String | 6610421453866e074b4be7b3 | ID del comercio | | token | Sí | String | JWT (eyJhbGciOiJIUzI1NiIs...) | Token del comercio |
const Paygate = require('@clinpays/paygate');
Paygate.configure_ecommerce('6610421453866e074b4be7b3', 'eyJhbGciOiJIUzI1NiIs...');
- Paygate.payOrder(payload)
Realizar el cobo a la tarjeta. Este método devuelve una promesa que resuelve con el resultado del pago o con un mensaje de error.
Contenido del objeto payload:
Datos personales
| Parámetro | Requerido | Tipo | Formato | Descripción | |---------------|:---------:|---------|-----------------|---------------------------------------------------------------------------| | email | C | String | [email protected] | Correo electrónico del cliente | | mobilePhone | C | String | +5049999999 | Número telefónico del cliente con código de área y sin guiones ni espacios| | customerName | C | String | Jorge Santos | Nombre completo del cliente |
Datos de la tarjeta
| Parámetro | Requerido | Tipo | Formato | Descripción | | ----------------|:---------:| --------| ------------------| ------------------------------------------| | firstName | Sí | String | Jorge | Nombre del tarjetahabiente | | lastName | Sí | String | Santos | Apellido del tarjetahabiente | | safeIdentifier | Sí | String | 1234567891234567 | PAN de la tarjeta sin guiones ni espacios | | validThru | Sí | String | MMYY (1226) | Fecha de expiración de la tarjeta | | cvv | Sí | String | 999 | Código de seguridad de la tarjeta |
Detalle del pago
| Parámetro | Requerido | Tipo | Especificación | Formato | Descripción |
| --------------------|:---------:|---------|-------------------------|---------------------| --------------------------------------------------|
| amount | Sí | Number | - | 20.50 | Total a cobrar |
| currency | No | String | ISO 4217 code | HNL | Moneda de la transacción. Valor por defecto HNL
|
| referenceId | Sí | String | | ABCDFG-1010 | Referencia única del la orden |
| description | Sí | String | | Pago Paygate | Descripción de la orden |
| orderNumber | Sí | String | | 100000000 | Número único de orden |
Facturación
| Parámetro | Requerido | Tipo | Especificación | Formato | Descripción | | --------------------|:---------:|---------|-------------------------|---------------------| --------------------------------------------| | b2cc | C | String | ISO 3166-1 alpha-2 | HN | País de factuación en código de dos letras | | billingCountryCode | C | String | ISO 3166-1 Numeric code | 340 | País de factuación en código numérico | | billingState | C | String | ISO 3166-2 | FM | Estado de factuación | | billingCity | C | String | - | Tegucigalpa | Estado o provincia de facturación | | billingAddress1 | C | String | - | Barrio Los Hermanos | Dirección de facturación | | billingPostalCode | C | String | Código ZIP | 11101 | Código postal de facturación |
Servicio de antifraude
| Parámetro | Requerido | Tipo | Formato | Descripción |
| ------------|:---------:|---------|---------------------|---------------------------------------------------|
| sess | C | String | ID de 32 caracteres | ID de sesión obtenido en el método dataCollector
|
| bankSess | C | String | ID de 32 caracteres | ID de sesión obtenido en el método dataCollector
|
const Paygate = require('@clinpays/paygate');
const = payload = {
// Datos personales del cliente
email: "[email protected]",
mobilePhone: "+5049999999",
customerName: "Jorge Santos",
// Datos de la tarjeta
firstName: "Jorge",
lastName: "Santos",
safeIdentifier: "4000000000000000",
validThru: "1226",
cvv: "999",
// Detalle del pago
amount: 20.50,
currency: "HNL",
referenceId: "ABCDFG-1010",
description: "Pago Paygate",
orderNumber: "100000000",
// Facturación
b2cc: "HN",
billingCountryCode: "340",
billingState: "FM",
billingCity: "Tegucigalpa",
billingAddress1: "Barrio Los Hermanos",
billingPostalCode: "11101"
// Servicio de antifraude
sess: "f45478b8495e4f7098c07bac0b26c3b1",
bankSess: ""
};
Con async/await
async function pagar() {
const result = await Paygate.payOrder(payload);
console.log(result);
}
Con then/catch
function pagar() {
Paygate.payOrder(payload)
.then(result => {
console.log(result);
})
.catch(err => {
console.log(err);
});
}
Output:
{
_id: "661077d38494c40a4318fb31",
status: "APPOVED" | "DENIED",
amount: 20.50,
tax: 0,
subtotal: 20.50,
firstName: "Jorge",
lastName: "Santos",
safeIdentifier: "4000-00**-****-0000",
paymentType: "VISA" | "MASTERCARD",
sequence: 12345,
transactionID: "AUTH-123",
createdAt: 2024-01-01T00:00:00.000
}
Utilidades
- Paygate.getCountriesAndStates()
Obtener listado de países y estados/departamentos disponibles
const Paygate = require('@clinpays/paygate');
const countriesAndStates = await Paygate.getCountriesAndStates();