Aquí podrás encontrar las instrucciones para que puedas integrar la API de Mobbex en un sitio web y comenzar a recibir pagos.
Instalar el paquete usando:
npm install mobbex --save
Se debe importar la librería utilizando cualquiera de las siguientes opciones:
// 1)
const { mobbex } = require('mobbex');
// 2)
import { mobbex } from 'mobbex';
// 3)
const mobbex = require('mobbex').default;
// 4)
const mobbex = require('mobbex').mobbex;
// 5)
const { default: mobbex } = require('mobbex');
El paquete debe ser configurado utilizando la clave API de la aplicación y el Token de Acceso de la entidad dentro de un objeto, puedes encontrar las credenciales en tu portal de desarrollador:
mobbex.configurations.configure({
apiKey: 'API-KEY',
accessToken: 'ACCESS-TOKEN'
});
En caso de necesitar utilizar el Audit Key, simplemente se agrega al objeto junto con la clave API y el Token de Acceso:
mobbex.configurations.configure({
apiKey: 'API-KEY',
accessToken: 'ACESS-TOKEN',
auditKey: 'AUDIT-KEY'
});
Para crear un checkout se utiliza checkout.create
pasando como argumento el objeto del checkout:
const checkout = {
total: 100.2,
currency: 'ARS',
reference: '2982-2XtPXlgSaWccqUyobuv4sEmLYMV0N6oX6MoridMw',
description: 'Descripción de la Venta',
items: [
{
image: 'https://www.mobbex.com/wp-content/uploads/2019/03/web_logo.png',
quantity: 2,
description: 'Mi Producto',
total: 50
},
{
image: 'https://www.mobbex.com/wp-content/uploads/2019/03/web_logo.png',
quantity: 1,
description: 'Mi otro producto',
total: 50.2
}
],
options: {
domain: 'midominio.com'
},
return_url: 'https://mobbex.com/sale/return?session=56789',
webhook: 'https://mobbex.com/sale/webhook?user=1234'
};
mobbex.checkout
.create(checkout)
.then((data) => console.log(data))
.catch((error) => console.log(error));
Para eliminar un checkout se utiliza checkout.delete
pasando como argumento su ID
:
mobbex.checkout
.delete('ID')
.then((data) => console.log(data))
.catch((error) => console.log(error));
Para realizar un checkout con modalidad split se utiliza checkout.split
:
const split = {
total: 1000,
currency: 'ars',
reference: '12345',
description: 'Descripción de la Venta',
split: [
{
tax_id: '30121231235',
total: 900,
reference: 'pago_1',
fee: 100
},
{
tax_id: '33213213216',
total: 100,
reference: 'pago_2',
fee: 80
}
]
};
mobbex.checkout
.split(split)
.then((data) => console.log(data))
.catch((error) => console.log(error));
Para liberar fondos retenidos durante una operación de tipo Split simplemente se utiliza checkout.release
:
mobbex.checkout
.release('ID')
.then((data) => console.log(data))
.catch((error) => console.log(error));
Para crear un checkout se utiliza paymentOrder.create
pasando como argumento el objeto de la orden de pago:
paymentOder = {
total: 100,
description: 'Some Description #3',
actions: [
{
icon: 'attachment',
title: 'Factura',
url: 'https://speryans.com/mifactura/123'
}
],
reference: 'mi_referencia_123'
};
mobbex.paymentOrder
.create(paymentOrder)
.then((data) => console.log(data))
.catch((error) => console.log(error));
Para listar los métodos de pago se utiliza sources.list
pasando como argumento el total:
mobbex.sources
.list(200)
.then((data) => console.log(data))
.catch((error) => console.log(error));
Para obtener planes con reglas avanzadas se utiliza sources.listAdvanced
pasando como argumento la regla:
mobbex.sources
.listAdvanced('rule')
.then((data) => console.log(data))
.catch((error) => console.log(error));
Se utiliza paymentCode.create
pasando como argumentos el código y un objeto con los parámetros:
mobbex.paymentCode
.create('CODIGO', {
reference: 'reference',
total: 3230,
expiration: '01-12-2020'
})
.then((data) => console.log(data))
.catch((error) => console.log(error));
Para utilizar el módulo de fidelización es necesario configurar un Audit Key. Esto se puede realizar ya sea agregandolo al objeto de configurations.configure
o utilizando configurations.setAuditKey('AUDIT-KEY')
Se utiliza loyalty.search
pasando como argumento un objeto con la referencia:
mobbex.loyalty
.search({ reference: 'mi-referencia' })
.then((data) => console.log(data))
.catch((error) => console.log(error));
Se utiliza loyalty.create
pasando como argumento el objeto con los parámetros de la nueva cuenta:
mobbex.loyalty
.create({
identification: '12312312',
email: 'demo@mobbex.com',
tax_id: '30121231234'
})
.then((data) => console.log(data))
.catch((error) => console.log(error));
Se utiliza loyalty.balance
pasando como argumento un objeto con la credencial:
mobbex.loyalty
.balance({ credential: '123123123' })
.then((data) => console.log(data))
.catch((error) => console.log(error));
Se utiliza loyalty.charge
pasando como argumento el objeto con la información necesaria:
mobbex.loyalty
.charge({
credential: '123123123',
tax_id: '30121231234',
points: 32,
reference: 'chargeReference'
})
.then((data) => console.log(data))
.catch((error) => console.log(error));
Para crear una subscripción se utiliza subscriptions.create
pasando como argumento el objeto con la nueva subscripción:
const subscription = {
total: 200.0,
currency: 'ARS',
name: 'Prueba',
description: 'Prueba',
type: 'dynamic',
interval: '1m',
trial: 1,
limit: 0,
webhook: 'http://webhook',
return_url: 'http://return_url',
features: ['accept_no_funds']
};
mobbex.subscriptions
.create(subscripcion)
.then((data) => console.log(data))
.catch((error) => console.log(error));
Para editar una subscripción se pasan como argumentos el ID y un objeto con los cambios:
mobbex.subscriptions
.edit('ID', { total: 300.0 })
.then((data) => console.log(data))
.catch((error) => console.log(error));
Para obtener todas las subscripciones:
mobbex.subscriptions
.all()
.then((data) => console.log(data))
.catch((error) => console.log(error));
Es posible filtrar la busqueda por página pasando el número de página como argumento:
mobbex.subscriptions
.all(3) // Devuelve la página 3
.then((data) => console.log(data))
.catch((error) => console.log(error));
Para buscar una subscripción:
mobbex.subscriptions
.find('ID')
.then((data) => console.log(data))
.catch((error) => console.log(error));
Para activar una subscripción:
mobbex.subscriptions
.activate('ID')
.then((data) => console.log(data))
.catch((error) => console.log(error));
Para eliminar una subscripción:
mobbex.subscriptions
.delete('ID')
.then((data) => console.log(data))
.catch((error) => console.log(error));
Para los ejemplos ID
es el ID de la subscripción y SID
el ID del subscriptor
Para crear un nuevo subscriptor se utiliza subscribers.create
pasando como argumentos el ID de la subscripción y un objeto con el nuevo subscriptor:
const subscriber = {
customer: {
identification: '32321321',
email: 'demo@mobbex.com',
name: 'Demo User'
},
startDate: {
day: 15,
month: 5
},
reference: 'demo_user_321'
};
mobbex.subscribers
.create('ID', subscriber)
.then((data) => console.log(data))
.catch((error) => console.log(error));
Para obtener todos los usuarios de una subscripción se pasa como argumento el ID de la subscripción y opcionalmente la página:
mobbex.subscribers
.all('ID', 1)
.then((data) => console.log(data))
.catch((error) => console.log(error));
Para buscar un subscriptor se pasan como argumentos el ID de la subscripción y del subscriptor:
mobbex.subscribers
.find('ID', 'SID')
.then((data) => console.log(data))
.catch((error) => console.log(error));
Para editar un subscriptor se pasan como argumentos el ID de la subscripción y del subscriptor y un objeto con los nuevos parámetros. (Los parámetros son opcionales):
moobex.subscribers
.edit('ID', 'SID', {
total: 300,
reference: 'new_reference'
})
.then((data) => console.log(data))
.catch((error) => console.log(error));
Para suspenderlo y activarlo se pasan como argumentos el ID de la subscripción y del subscriptor:
mobbex.subscribers
.suspend('ID', 'SID')
.then((data) => console.log(data))
.catch((error) => console.log(error));
mobbex.subscribers
.activate('ID', 'SID')
.then((data) => console.log(data))
.catch((error) => console.log(error));
Para cambiar su agenda se pasan como argumentos el ID de la subscripción y del subscriptor y un objeto con la fecha de inicio:
mobbex.subscribers
.reschedule('ID', 'SID', {
startDate: {
day: 15,
month: 5
}
})
.then((data) => console.log(data))
.catch((error) => console.log(error));
Para moverlo a otra subscripción se pasan como argumentos el ID de la subscripción y del subscriptor y un objeto con el ID de la nueva subscripción:
mobbex.subscribers
.move('ID', 'SID', {
sid: 'new_subscription_id'
})
.then((data) => console.log(data))
.catch((error) => console.log(error));
El argumento EID
corresponde al ID de Ejecución.
mobbex.subscribers
.retryExecution('ID', 'SID', 'EID')
.then((data) => console.log(data))
.catch((error) => console.log(error));
mobbex.subscribers
.setPaidExecution('ID', 'SID', 'EID')
.then((data) => console.log(data))
.catch((error) => console.log(error));
mobbex.subscribers
.manualExecution('ID', 'SID')
.then((data) => console.log(data))
.catch((error) => console.log(error));
mobbex.subscribers
.manualDiffExecution('ID', 'SID', { total: 300 })
.then((data) => console.log(data))
.catch((error) => console.log(error));
mobbex.subscribers
.massiveManualExecution('ID', [
{ sid: 'SID', total: 100 },
{ sid: 'SID1', total: 300 }
])
.then((data) => console.log(data))
.catch((error) => console.log(error));
mobbex.subscribers
.scheduledExecution('ID', 'SID', {
date: { day: 1, month: 2 }
})
.then((data) => console.log(data))
.catch((error) => console.log(error));
Para crear una solicitud se utiliza devConnect.create
pasando como argumento el objeto con el url de retorno:
mobbex.devConnect
.create({
return_url: 'https://mobbex.com/'
})
.then((data) => console.log(data))
.catch((error) => console.log(error));
Para obtener credenciales se utiliza devConnect.get
pasando como argumento el ID de la solicitud:
mobbex.devConnect
.get('ID')
.then((data) => console.log(data))
.catch((error) => console.log(error));
Se utiliza transactions.get
pasando como argumento la referencia de la factura o pago:
mobbex.transactions
.get('REFERENCIA')
.then((data) => console.log(data))
.catch((error) => console.log(error));
Se utiliza transactions.search
pasando como argumento el objeto con los parámetros de búsqueda. Por defecto se realiza un POST request, pero si se quiere realizar un GET request, se agrega 'get'
como segundo parametro:
// POST REQUEST:
mobbex.transactions
.search({
// page y limit van dentro del objeto
// a pesar de ser párametros en URL
page: 1,
limit: 10,
currency: 'ARS'
})
.then((data) => console.log(data))
.catch((error) => console.log(error));
// GET REQUEST:
mobbex.transactions
.search(
{
page: 1,
limit: 10,
currency: 'ARS'
},
'get'
)
.then((data) => console.log(data))
.catch((error) => console.log(error));
Se utiliza transactions.refund
pasando como argumento el ID de la transacción:
mobbex.transactions
.refund('ID')
.then((data) => console.log(data))
.catch((error) => console.log(error));
Se utiliza transactions.partialRefund
pasando como argumentos el ID de la transacción y el total:
mobbex.transactions
.partialRefund('ID', 200)
.then((data) => console.log(data))
.catch((error) => console.log(error));
Se utiliza transactions.capture
pasando como argumentos el ID de la transacción y el total:
mobbex.transactions
.capture('ID', 200)
.then((data) => console.log(data))
.catch((error) => console.log(error));