¿Qué es un webhooks?
Los webhooks también conocidos como eventos son una herramienta para recuperar y almacenar datos de un evento determinado.
Te permiten registrar una URL https:// donde los datos del evento se pueden almacenar en formatos JSON.
Los webhooks se usan comúnmente para:
- Recopilar datos para almacenamiento de datos.
- Integrar tu software de contabilidad.
- Filtrar los artículos del pedido e informar a los distintos transportistas sobre el pedido.
- Eliminar datos de clientes de tu base de datos cuando desinstalan tu app.
Esta guía proporciona una introducción rápida sobre como crear un webhooks, así como la terminología y los comportamientos clave específicos de los webhooks de Pardux.
PASO 1.
Dar clic en Menú principal: Configuraciones > Webhooks.
Enseguida se muestra la pantalla de todos nuestros webhooks o eventos registrados.
PASO 2.
Haz clic en el botón "Nuevo evento".
Se nos muestra una ventana nueva.
PASO 3.
Al hacer clic en Evento * se nos despliega la lista y seleccionamos un evento a crear.
- Checkout actualizado: se enviará un webhook cada vez que se actualice un carrito.
- Checkout creado: se enviará un webhook cada vez que se crea un carrito.
- Cliente actualizado: se enviará un webhook cada vez que se actualice un cliente.
- Cliente creado: se enviará un webhook cada vez que cree un nuevo cliente.
- Orden actualizada: se enviará un webhook cada vez que se actualice una orden preliminar.
- Orden cancelada: se enviará un webhook cada vez que se cancele una orden preliminar.
- Orden creada: se enviará un webhook cada vez que se cree una nueva orden preliminar.
- Orden despachada: se enviará un webhook cada vez que se cree un proceso de envío de un pedido.
- Orden despacho anulado: se enviará un webhook cada vez que se cancele o anule un pedido.
- Orden pagada: se enviará un webhook cada vez que se pague una orden.
- Orden pago anulado: se enviará un webhook cada vez que se anule el pago de una orden.
- Producto actualizado: se enviará un webhook cada vez que se haya actualizado un producto.
- Producto creado: se enviará un webhook cada vez que se cree un nuevo producto.
- Producto eliminado: se enviará un webhook cada vez que se elimine un producto.
PASO 4.
Se selecciona el Formato *: JSON
PASO 5.
En URL, ingresa la URL donde quieres que se envíen los datos. Debes tener en cuenta que los webhooks no se pueden devolver a las siguientes URL:
- Localhost.
- Cualquier URL que termine en la palabra "internal" (p. ej.,, thisshop.com/internal).
- Cualquier URL de cualquier dominio personalizado conectado a la tienda.
- Dominios "falsos" como www.example.com.
PASO 6.
Dar clic en Guardar caso contrario Cerrar.
PASO 7.
También puedes probar tu webhook, para asegurarte de que la información se envía al URL correcto. Para hacer esto, haz clic en el enlace Enviar evento de prueba. Verifica que funciona en la URL que especificaste.
Todo evento enviado cuenta con dos partes: Cabecera y Payload.
Para ver el detalle del evento.
CABECERA:
- "Accept": La aplicación del JSON.
- "Content-Type": El tipo de contenido.
- "X-Pardux-Topic": El nombre del tema. Utilice las referencias de webhooks para que coincida con el valor de enumeración al configurar las suscripciones de webhooks mediante la API de administración.
- "X-Pardux-Origin": El metodo de envio.
- "X-Pardux-Hmac-Sha256": Verificación, cuando se utiliza la entrega HTTPS.
- "X-Pardux-Shop-Domain": Identificación de la tienda asociada. Especialmente útil al configurar suscripciones de webhook mediante la API de administración.
- "X-Pardux-API-Version": La version del API.
- "X-Pardux-Webhook-Id": Identificación de webhooks únicos.
PAYLOAD:
Ejemplo
Ejemplo de interfaz para recibir un webhook de PARDUX.Cabecera con sus encabezamientos.
Payload, en este ejemplo se muestra parte del cuerpo del evento con su respectivo evento ejecutado.
Ejemplo de como consumir el wehooks desde tu plataforma usando php.
/**
* @Rest\Post("/webhook")
*/
public function webhookTest(Request $request): View
{
$data = $request->getContent();
$hmacSha256 = $request->headers->get('X-Pardux-Hmac-Sha256');
//El SecretKey se obtiene desde el modulo de webhooks en panel de PARDUX
$secretKey = ‘2a97516c354b68848cdbd8f54a226a0a55b21ed138e207ad6c5cbb9c00aa5aea';
$verified = $this->verify_webhook($data, $secretKey, $hmacSha256);
$response = [
'received'=>true,
'verified'=>($verified) ? 'verificado' : 'no verificado'
];
return View::create($response, Response::HTTP_OK);
}
private function verify_webhook($data, $secretKey, $hmac_header)
{
$calculated_hmac = base64_encode(hash_hmac('sha256', $data, $secretKey, true));
return hash_equals($hmac_header, $calculated_hmac);
}