khipu-payment-intent-creator
v1.0.23
Published
Este proyecto permite crear intenciones de pago y debe ser usado por clientes de khipu que realizan la conciliación de sus propios pagos, si van a delegar la conciliación de pagos a Khipu, se debe utilizar la [API REST para crear cobros y recibir pagos](h
Downloads
7
Readme
Khipu Payment Intent Creator
Este proyecto permite crear intenciones de pago y debe ser usado por clientes de khipu que realizan la conciliación de sus propios pagos, si van a delegar la conciliación de pagos a Khipu, se debe utilizar la API REST para crear cobros y recibir pagos.
1. Creación de la intención de pago
Para esto se utiliza el paquete npm Para esto se utiliza el paquete npm
Instalación del paquete
npm i khipu-payment-intent-creator.git
Importando el paquete en su código
Usando formato CommonJS
const {KhipuPaymentIntentCreator} = require('khipu-payment-intent-creator')
O ES6
import {KhipuPaymentIntentCreator} from 'khipu-payment-intent-creator'
Creando la intención de pago
Para este paso debe contar con la URL de la API y la llave pública, contacte su ejecutivo Khipu para obtenerla.
La biblioteca contiene la declaración de tipos (archivos .d.ts) para typescript, si la implementación en es javascript se deben validar previamente.
const khipuPaymentCreator = new KhipuPaymentIntentCreator(API_URL, SERVER_PUBLIC_KEY)
const paymentIntentDescriptor = khipuPaymentIntentCreator.create(
bank, //string
paymentId, //string
subject, //string
amount, //number
currencyCode, //'CLP'
payerEmail, //string
payerName, //string
targetAccountBank, //string
targetAccountNumber, //string
targetAccountName, //string
targetAccountPersonalIdentifier, //string
)
2. Inicialización de la biblioteca KhipuJS
Inclusión de la biblioteca KhipuJS
En el frontend del comercio se debe incluir la biblioteca KhipuJS.
<script src='https://js.khipu.com/v1/kws.js></script>
Configuración de la biblioteca KhipuJS
const prettyJson = (obj) => JSON.stringify(obj, null, 4)
const successHandler = (result) => {
console.log(`Success handler: ${prettyJson(result)}`)
alert(`Success handler: ${prettyJson(result)}`);
};
const warningHandler = (warning) => {
console.log(`Warning handler: ${prettyJson(warning)}`)
alert(`Error handler: ${prettyJson(warning)}`);
};
const errorHandler = (error) => {
console.log(`Error handler: ${prettyJson(error)}`)
alert(`Error handler: ${prettyJson(error)}`);
};
let khipu = new Khipu();
khipu.init({
mountElement: document.getElementById('khenshin-web-root'), //elemento donde se montará la interfaz de khipu web, debe existir
modal: true, //Levantar khipu web en un overlay modal o embebida en la página
options: {
style: {
//Por ser implementado, permitirá modificar colores y tipos de letras
},
skipExitPage: true, //Que Khipu pinte las páginas finales o solo ejecute los callbacks y cierre la interfaz
},
},
successHandler, //callback cuando el pago sea exitoso
warningHandler, //callback cuando el resultado del pago es indeterminado
errorHandler //callback cuando el pago falla
);
En este ejemplo, successHandler
se llamará cuando un pago fue confirmado en el Banco
originador, errorHandler
se llamará cuando el pago fue rechazado por el banco originador (por falta de fondos,
contraseñas inactivas, indisponibilidad del banco u otros motivos de falla no solucionable) y warningHandler
se
llamará cuando el pago es posible que se efectúe pero el banco originador no lo ha confirmado.
En todo caso, successHandler
y warningHandler
por si solos no constituyen un pago confirmado, para esto se
debe esperar la notificación de aceptación del pago.
3. Inicio del pago
En este punto se debe usar el descriptor del pago obtenido en el paso 1 y retomar el flujo en alguno de las funciones de callback.
khipu.start(paymentDescriptor);