Skip to main content

Inicializar componente

Cuando se crea una nueva instancia del componente es necesario un objeto de configuración con las propiedades nonce, payload y display_settings.
  • nonce: valor de seguridad para intercambiar por un token
  • payload: información de la transacción a procesar
  • display_settings: configuraciones del formulario
El payload mantiene la misma estructura del API de Autorización - ecommerce sin incluir el objeto payment_method, ya que el método de pago será seleccionado dentro de Flex.

Parámetros

CampoObligatorioTipoDescripción
nonceSIAlfanuméricoCódigo encriptado que contiene el valor de la key del comercio. Debe ser generado en backend desde el servicio OAuth de Alignet, a través del API Nonce.
payloadSIObjeto JSONJSON con los detalles necesarios para inicializar el formulario, incluyendo datos de la compra y datos del comprador.
display_settingsNOObjetoConfiguraciones de visualización del formulario.
display_settings.methodsNOArray de StringMétodos de pago a mostrar. Valores posibles: CARD, YAPE, QR, BANK_TRANSFER, CUOTEALO, PAGOEFECTIVO. Si no se envía, se mostrarán todos los métodos habilitados para el comercio por defecto.

Objeto payload

El objeto payload mantiene la misma estructura de API de Autorización - ecommerce sin incluir el objeto payment_method.

Objeto raíz

CampoDescripciónEjemploTipoObligatorio
actionAcción a ejecutarauthorizeStringSI
channelCanal donde se ejecutará la transacciónecommerceStringSI
merchant_codeIdentificador del comercioCadena alfanuméricaStringSI
merchant_operation_numberNúmero de pedido de la operaciónCadena numérica entre 6 y 12 dígitosStringSI
payment_detailsObjeto con información de la transacciónObjectObjectSI

Objeto payment_details

CampoDescripciónEjemploTipoObligatorio
payment_details.amountMonto en centavos de la operación1050StringSI
payment_details.currencyCódigo ISO 4217 de la moneda de la operación604StringSI
payment_details.additional_fieldsDiccionario para enviar campos y valores personalizados según key:valueexternal_id:5468724DictionaryNO
payment_details.customerObjeto con información del cliente que realiza la compraObjectObjectNO
payment_details.billingObjeto con información de facturaciónObjectObjectSI
payment_details.shippingObjeto con información de envíoObjectObjectNO
Para S/. 10.50 se debe enviar 1050 y en currency el valor 604 para Soles.

Objeto payment_details.customer

CampoDescripciónTipoObligatorio
payment_details.customer.first_nameNombresStringNO
payment_details.customer.last_nameApellidosStringNO
payment_details.customer.emailCorreo electrónicoStringNO
payment_details.customer.phoneObjeto con información del teléfonoObjectNO
payment_details.customer.phone.country_codeCódigo del país del teléfonoStringNO
payment_details.customer.phone.subscriberNúmero del teléfonoStringNO
payment_details.customer.identity_documentObjeto con información del documento de identidadObjectNO
payment_details.customer.identity_document.countryPaís del documentoStringNO
payment_details.customer.identity_document.typeTipo de documentoStringNO
payment_details.customer.identity_document.identifierNúmero de documentoStringNO
payment_details.customer.locationObjeto con información de ubicaciónObjectNO
payment_details.customer.location.line_1Dirección 1StringNO
payment_details.customer.location.line_2Dirección 2StringNO
payment_details.customer.location.cityCiudadStringNO
payment_details.customer.location.stateEstadoStringNO
payment_details.customer.location.countryPaísStringNO

Objeto payment_details.billing

CampoDescripciónTipoObligatorio
payment_details.billing.first_nameNombresStringSI
payment_details.billing.last_nameApellidosStringSI
payment_details.billing.emailCorreo electrónicoStringSI
payment_details.billing.phoneObjeto con información del teléfonoObjectSI
payment_details.billing.phone.country_codeCódigo del país del teléfonoStringSI
payment_details.billing.phone.subscriberNúmero del teléfonoStringSI
payment_details.billing.locationObjeto con información de ubicaciónObjectSI
payment_details.billing.location.line_1Dirección 1StringSI
payment_details.billing.location.line_2Dirección 2StringNO
payment_details.billing.location.cityCiudadStringSI
payment_details.billing.location.stateEstadoStringSI
payment_details.billing.location.countryPaísStringSI

Objeto payment_details.shipping

CampoDescripciónTipoObligatorio
payment_details.shipping.first_nameNombresStringNO
payment_details.shipping.last_nameApellidosStringNO
payment_details.shipping.emailCorreo electrónicoStringNO
payment_details.shipping.phoneObjeto con información del teléfonoObjectNO
payment_details.shipping.phone.country_codeCódigo del país del teléfonoStringNO
payment_details.shipping.phone.subscriberNúmero del teléfonoStringNO
payment_details.shipping.locationObjeto con información de ubicaciónObjectNO
payment_details.shipping.location.line_1Dirección 1StringNO
payment_details.shipping.location.line_2Dirección 2StringNO
payment_details.shipping.location.cityCiudadStringNO
payment_details.shipping.location.stateEstadoStringNO
payment_details.shipping.location.countryPaísStringNO

Ejemplo

var payload = {
    "action": "authorize",
    "channel": "ecommerce",
    "merchant_code": "b0deb6f3-e51a-48a7-9268-f1441d46f7bd",
    "merchant_operation_number": "221354",
    "payment_details": {
        "amount": "7000",
        "currency": "604",
        "billing": {
            "first_name": "Levis",
            "last_name": "Silvestre",
            "email": "levis.silvestre@alignet.com",
            "phone": {
                "country_code": "+51",
                "subscriber": "958435685"
            },
            "location": {
                "line_1": "Av. San Borja Norte 1743",
                "line_2": "",
                "city": "Lima",
                "state": "Lima",
                "country": "PE"
            }
        },
        "shipping": {
            "first_name": "Levis",
            "last_name": "Silvestre",
            "email": "levis.silvestre@alignet.com",
            "phone": {
                "country_code": "+51",
                "subscriber": "958435685"
            },
            "location": {
                "line_1": "Av. San Borja Norte 1743",
                "line_2": "",
                "city": "Lima",
                "state": "Lima",
                "country": "PE"
            }
        },
        "customer": {
            "first_name": "Levis",
            "last_name": "Silvestre",
            "email": "levis.silvestre@alignet.com",
            "phone": {
                "country_code": "+51",
                "subscriber": "958435685"
            },
            "identity_document": {
                "country": "PER",
                "type": "DNI",
                "identifier": "72661927"
            },
            "location": {
                "line_1": "Av. San Borja Norte 1743",
                "line_2": "",
                "city": "Lima",
                "state": "Lima",
                "country": "PE"
            }
        }
    }
}

Inicializar el componente

var paymentForm = new FlexPaymentForms({
    "nonce": "eyJ0eXAiOiJKV1QiLCJhbGciOiJIUzI1NiJ9.eyJpc3MiOiJBbGlnbmV0IEpXVCBCdWlsZGVyIiwiaWF0IjoxNzEwNTQzMDAyLCJleHAiOjE3MTA1NDMwMzIsImF1ZCI6Imh0dHBzOi8vYXBpLmRldi5hbGlnbmV0LmlvIiwic3ViIjoiejhXd0FWN3JkMmpDVTBTaXZ3dFFWdjk0MWtxWmNFb3UiLCJub25jZSI6IjA0OTIwZTZjLTI0ZTgtNDYzMC05MmVkLWUxMjA2ZDg5YTNjZSIsInNjb3BlIjoiY3JlYXRlOnRva2VuIHBvc3Q6Y2hhcmdlcyB0ZXN0IiwiZ3R5IjoiY2xpZW50X2NyZWRlbnRpYWxzIn0.eOK4e_i6QaNuNlUd1or28qbPNyI3pRq19Cj-eGxqJs8",
    "payload": payload,
    "display_settings": {
        methods: ["QR", "BANK_TRANSFER", "CARD"]
    }
});

Mostrar Pay-me Flex

Este es el paso final, donde indicamos dentro de qué elemento del DOM se debe mostrar el formulario y una función callback para ejecutarse al finalizar el proceso. Como parámetros adicionales se pueden agregar dos funciones callback. No son obligatorias, pero sirven para obtener mayor información del proceso:
CallbackDescripción
responseCallbackSe ejecuta cuando se tiene un proceso completado (AUTORIZADO / DENEGADO).
trackingCallbackSe ejecuta por cada evento disparado durante el proceso, por ejemplo click en pagar, click en método de pago o click en información de pago.
onErrorCallbackSe ejecuta cuando hay un error durante el proceso.

Mostrar formulario de pago

function responseCallback(response) {
    console.log("-------Respuesta-------");
    console.log({response});
}

function trackingCallback(trackdata) {
    console.log("-------Tracking de Eventos-------");
    console.log({trackdata});
}

function onErrorCallback(error) {
    console.log("-------Error en el proceso-------");
    console.log({error});
}

paymentForm.init(
    document.querySelector("#demo"),
    responseCallback,
    trackingCallback,
    onErrorCallback
);
El objeto response de la función responseCallback tendrá la misma estructura que la respuesta del API de Autorización - ecommerce. Toma esa sección como referencia principal para request/response del flujo de autorización.

Referencia relacionada

API de Autorización - ecommerce

Usa esta referencia para el contrato de respuesta que recibes en responseCallback.

API de Consulta

Si integras Flex, usa consulta como segunda validación backend antes de cerrar la orden.