Manual para crear y utilizar un Webwook en QPayBilling

Manual para crear y utilizar un Webwook en QPayBilling

Un webhook es, por decirlo de la manera más sencilla, es un sistema de comunicación automático entre apps.  Lo que hacen es aportar una solución sencilla para el intercambio de datos entre aplicaciones  web, o incluso entre nuestro sitio web y esas aplicaciones.

Pasos para crear un webhook

  1. Después de ingresar al sistema de QPayBilling puedes hacer click en el menú "Webhook", asimismo puedes ingresar por esta url a continuación:   QPayBilling- Webhook (qpaypro.com)  



  2. Aquí podemos visualizar el listado de los webhooks creados y también configurar uno nuevo, a continuación hacemos click en "Nuevo" para configurar nuestro primer webhook.



  3. A continuación ingresamos la información de los dos primeros campos marcados en azul: Nombre del webhook y descripción del webhook, este último es opcional. 



  4. Ahora seleccionamos uno o más servicios, esos servicios son: Nueva suscripción, Reactivación de suscripción, Renovación de suscripción, Cancelación de suscripción y Pago Manual de suscripción. Estos servicios nos ayudarán a ejecutar el Webhook de manera automática, es decir que si creamos un webhook con el servicio  Nueva suscripción,  dicho webhook se habrá ejecutado cuando un usuario del comercio realice una nueva suscripción. 



  5. A continuación ingresamos la URL (ENDPOINT) , esta URL es ejecutada por el sistema QPayBilling (Ver paso 4). Hacemos click en "POST" y veremos las opciones: POST, PUT y  DELETE. Podrás elegir uno de esas tres opciones dependiendo del  método que acepta la URL que has ingresado.



  6. En la opción de "Parámetros" nos permite agregar uno o más variables de tipo GET a la url, a estos se les denomina los Query params , y podemos ver una previsualización de como quedaría dicha url en "URL Preview" que está sombreado en azul. Si queremos agregar más variables o query params podemos hacer click en "Agregar nuevo parámetro".



  7. A continuación agregaremos los "Headers", esto más que todo para seguridad de la URL (ENDPOINT) ya que son recibidos por la misma Si queremos agregar más headers podemos hacer click en  "Agregar nuevo header". 


  8. Como último paso para tener listo nuestro primer webhook definimos que queremos que se envíe en el cuerpo del endpoint (Paso 5, 6 y 7), 
    Cómo primera opción tenemos: "Payload por defecto",
    esta opción permite el envío de información dependiendo del servicio seleccionado.  (Consultar  " Formato de respuesta: Payload por defecto" al final del documento)



    Cómo segunda opción tenemos: "x-www-form-urlencoded", esta opción permite el envío de información mediante variables predefinidas.



    Cómo tercera opción tenemos: "Raw",
    esta opción es similar a la segunda opción , pero permite el envío de información mediante variables predefinidas en formato JSON .



  9. Ahora que tenemos configurado el webhook hacemos click en "Guardar"

Pasos para editar un webhook

En el listado de webhooks hacemos click en "Acciones" este nos mostrará la opción de editar y hacemos click, nos mostrará el formulario y modificamos los valores pertinentes, si todo correcto hacemos click en "Modificar" que se encuentra al final del formulario.   

         

Pasos para eliminar un webhook

En el listado de webhooks hacemos click en  "Acciones"  este nos mostrará la opción de eliminar y hacemos click, nos mostrará una confirmación, hacemos click en "Eliminar"





Formato de respuesta: Payload por defecto

A continuación se muestra la información en una estructura de tipo JSON, dicha información es la que se va a enviar a la URL (ENDPOINT) en caso hayamos elegido la opción "Payload por defecto" en el "Body" del webhook (paso 8).
Es importante tener en cuenta que la información puede variar dependiendo de la suscripción que está siendo manipulada al momento de ejecutar el webhook (paso 4).
 
{
    "created_at": "2020-09-30T19:38:49.000000Z",
    "start_date": "2020-09-30T06:00:00.000000Z",
    "code": "SUB-00001",
    "status": 0,
    "last_billing_date": null,
    "next_billing_date": "2020-09-30T06:00:00.000000Z",
    "subscription_charge_total": 100,
    "notification_email": " test@gmail.com ",
    "product_id": 52,
    "plan_id": 74,
    "addon_id": null,
    "coupon_id": null,
    "customer_id": 59,
    "product": {
        "id": 52,
        "hash": "41cfc0d1f2d127b04555b7246d84019b4d27710a3f3aff6e7764375b1e06e05d",
        "business_id": 133,
        "name": "Clase Virtual",
        "description": "Clase Virtual Ejercicio",
        "currency": "GTQ",
        "notification_emails": " test@qpaypro.com ",
        "redirect_after_purchase_url": null,
        "status": "activo"
    },
    "plan": {
        "id": 74,
        "product_id": 52,
        "name": "Clase 1 vez por semana",
        "code": "clase1",
        "unit_name": null,
        "price": 100,
        "billing_cycle_interval_number": 1,
        "billing_cycle_interval": 2,
        "currency": null,
        "billing_cycle_invoices_type": 1,
        "billing_cycle_exp_number": null,
        "trial_days": 0,
        "setup_fee": 0,
        "description": "clase virtual 1 vez por semana con especialista",
        "features": "Clase virtual,acceso zoom,dieta",
        "status": 1
    },
    "addon": null,
    "coupon": null,
    "customer": {
        "id": 59,
        "billing_address": "1calle 2da avenida",
        "billing_country": "88",
        "billing_city": "Guatemala",
        "billing_postal_code": "01001",
        "billing_state": "Guatemala",
        "shipping_address": "1calle 2da avenida",
        "shipping_country": "88",
        "shipping_city": "Guatemala",
        "shipping_postal_code": "01001",
        "shipping_state": "Guatemala"
    }
}