Pago asistido

De VIVAitwiki
Ir a la navegaciónIr a la búsqueda

1 Pago asistido "mdpay"

1.1 Introducción


mdtel ha desarrollado en VIVAit Call un módulo específico que facilita la existencia de pago telefónico con tarjeta de crédito en pasarela de pago, pero asistido por agente humano, cumpliendo normativa PCIDSS.

Esta funcionalidad es muy útil en (por ejemplo) entornos de televenta, donde el cliente desea realizar una compra, llama por teléfono a un contact center, el agente consigue la venta, y para realizar el pago ha de pasarle a la plataforma de pagos. El funcionamiento tradicional ha sido que el agente transfiere la llamada a la plataforma de pagos, el cliente paga, y el agente posteriormente recupera la llamda para continuar con la venta.

Este modelo tradicional adolece del problema de la falta de control del proceso por parte del agente; con la funcionalidad "mdpay" se consigue que el agente continúe en comunicación con el cliente durante el proceso de pago, cumpliendo normativa PCIDSS.

  • El agente no escucha ni ve información alguna de tarjeta de crédito.
  • VIVAit Call no almacena información alguna sobre tarjeta de crédito durante el proceso de pago asistido.


1.2 Nomenclatura


Terminología
Término Definición
Cliente Persona que desea realizar la compra
Agente Profesional de ventas en contact center que atiende al cliente
Pasarela de pagos Entorno de pagos telefónicos que se encarga de realizar la transacción de pago
PBX externa Contact center al que está conectado el agente
CRM Aplicación de negocio que maneja el agente
Identificador de pago Identificador único del pago de la transacción

1.3 Interconexiones

La arquitectura del sistema y sus interconexiones s la reflejada en la figura siguiente.

esquema general mdpay

1.4 Proceso general


El proceso general para la realización del pago asistido será el que se muestra a continuación; se muestra el flujo para llamadas directas; el flujo para llamadas inversas será el equivalente a la inversa :

  • El cliente llama a la PBX externa y es atendido por un agente; la comunicación entre cliente y agente no solo pasa por la PBX externa, sino también por VIVAit Call.


mdpay Fase 1



  • Una vez conseguida la venta:
    • Para iniciar el proceso de pago el agente pulsará un botón en el CRM de "inicio de pago asistido".
    • Este botón invocará a una API en la PBX externa para el envío de códigos DTMF ###{numero Psasarela de pagos}*{Identificador pago}#.
    • Los códigos DTMF son capturados por VIVAit Call.
    • VIVAit Call envía la llamada del cliente a la plataforma de pagos con los headers adecuados (UCID e identificador de pago).
    • VIVait Call mantiene la llamada de agente, aparcándola (importante para que el agente no quede disponible y pueda entrarle otra llamada del contact center).


mdpay Fase 2



  • Con la llamada en la plataforma de pagos y el agente aparcado:
    • La plataforma de pagos:
      • Realiza una llamada a VIVAit con los headers adecuados (UCID)
      • Establece una multiconferencia entre la llamada entante de VIVAit Call y la llamada saliente a VIVAit Call
      • Se asegura de no enviar DTMF's
    • VIVAit Call:
      • Correla llamada entrante de plataforma de pagos y llamada de agente aparcado
      • Desaparca agente y le conecta la llamada entrante de la plataforma de pagos
mdpay Fase 3



Durante esta fase:

  • El cliente podrá realizar el proceso de pago en la plataforma de pagos
  • El agente seguirá manteniendo la comunicación con el cliente, pudiendo asistirle en todo lo que sea necesario
  • El cliente no ve ni escucha ningún dato de tarjeta de crédito


  • Una vez finalizado el pago
    • La plataforma de pagos finalizará la multiconferencia
    • VIVAit Call reconecta la llamada cliente-agente


mdpay Fase 4

2 Configuración y puesta en marcha

Para versiones de VIVAIt Call anteriores a la 5.2, las instrucciones de instalación se encuentran en #Instalación de mdpay en versiones anteriores de VIVAit Call

Los pasos fundamentales para poner en marcha el pago asistido serán:

  1. Disponer de canal mdpay
  2. Disponer de las modificaciones específicas en dialplan ext_MARCAR_Externo.conf
  3. Activar mdpay
  4. Para llamadas inversas, adaptar el trunk SIP a la PBX externa (añadir un contexto, damos como ejemplo ext_mdpay_Particular.conf.ejemplo)
  5. Definir tiempos de espera
  6. Desactivar trazas de multifrecuencia (desactivar DTMF, verbose máximo 3)
  7. Definir que llamadas pasarán tendrán pago asistido


2.1 Disponer de canal mdpay

2.2 Disponer de las modificaciones específicas en dialplan

2.3 Activar mdpay

2.4 Para llamadas inversas, adaptar el trunk SIP a la PBX externa

2.5 Definir tiempos de espera

2.6 Desactivar trazas de multifrecuencia (desactivar DTMF, verbose máximo 3)

2.7 Definir que llamadas pasarán tendrán pago asistido


3 API Omnisuite para mdpay

3.1 Introducción

En este documento definimos las invocaciones mínimas a realizar a endpoints de Omnisuite para activar el pago asistido Será necesario:

  • Obtener Id de usuario
  • Obtener UniqueId de la llamada del usuario
  • Enviar tonos DTMF a esa llamada


3.2 Autenticación

Todas las peticiones deben incluir el siguiente encabezado de seguridad:

  • Header: x-api-key
  • Valor: El API KEY de usuario de omnisuite proporcionado.


3.3 Endpoints

3.3.1 Obtener ID de un usuario

Recupera el identificador de un usuario específico basado en filtros.

  • Método: GET
  • URL: https://omnisuite.cliente.com/users
  • Parámetros de consulta (Query Params):
    • fields: Especifica los campos a retornar (ej. id).
    • filter: Criterio de búsqueda (ej. jac).
    • sort: Orden de los resultados (ej. id).

Ejemplo de solicitud:

GET https://omnisuite.cliente.com//users?fields=id&filter=jac&sort=id


Ejemplo de respuesta:

{
    "count": 1,
    "rows": [
        {
            "id": 5
        }
    ]
}


3.3.2 Consultar llamadas de un usuario

Obtiene el registro o estado de las llamadas asociadas a un ID de usuario.

{
  "userId": 5
}

Ejemplo de respuesta

{
   "count": 1,
   "rows": [
       {
           "abandoned": false,
           "accountcode": "",
           "answertime": "2026-02-10 14:53:54",
           "answered": true,
           "billableseconds": 0,
           "channel": "SIP/Trunk_PrepoCopr0-00000022",
           "callerid": "",
           "calleridname": "/50002",
           "calleridnum": "50002",
           "connectedlinename": "JAC",
           "connectedlinenum": "1004",
           "context": "from-voip-provider",
           "destination": "",
           "destinationchannel": "SIP/jac-00000023",
           "disposition": "ANSWERED",
           "duration": 0,
           "endtime": null,
           "exten": "10000",
           "holdtime": 6,
           "lastapplication": "queue",
           "lastdata": "Desarrollo,xX,,,300,,,,,",
           "linkedid": "1770731628.77",
           "membername": "jac",
           "monitor": true,
           "monitors": [
               {
                   "filename": "/var/spool/asterisk/monitor/1770731628.76.wav",
                   "createdAt": "2026-02-10 14:53:54",
                   "mixmonitorid": "",
                   "status": "rec"
               }
           ],
           "monitorFilename": "/var/spool/asterisk/monitor/1770731628.76.wav",
           "mohtime": 0,
           "queue": "Desarrollo",
           "sipcalllinkedid": "23f0e8b840c85fd057d7474a5fc68844@172.25.129.174:0",
           "sipcalluniqueid": "067515e4161a16e9594cd0aa6ea74fed@172.25.128.251:5060",
           "starttime": "2026-02-10 14:53:48",
           "tag": null,
           "type": "inbound",
           "uniqueid": "1770731628.76",
           "unmanaged": false,
           "UserId": 5,
           "routeid": "287"
       }
   ]
}


3.3.3 Enviar DTMF a una llamada

Permite enviar una secuencia de dígitos DTMF a una llamada activa.

{
  "digits": "###444*12345#",
  "duration": 100,
  "uniqueId": "1770732063.80",
  "userId": 5
}


El valor “duration” indica la duración del envío en ms (en el ejemplo anterior serían 100ms, que es el valor recomendado)

Ejemplo de respuesta:

{
   "error": false,
   "message": "SendDTMF [###444*12345#] executed"
}


4 Instalación de mdpay en versiones anteriores de VIVAit Call

Documentar como instalar mdpay

Documentar que va en el dialplan