LogoLogo
API ReferenceChangelog
  • Comenzar
    • Guía de implementación
    • Flujos de trabajo
    • Clientes y personas
    • Migración
    • Glosario Piriod Tech
  • Suscripciones
    • Trabajando con suscripciones
    • Productos
    • Planes
    • Complementos
    • Cupones de descuento
  • Facturación
    • Facturas
    • Notas de crédito
    • Órdenes
  • Ingresos
    • Pagos
    • Tarjetas
    • Pagos externos / offline
    • Transferencias
    • Cuentas por cobrar
  • Reportes
    • Trabajando con los dashboards
    • Colección de métricas
  • Integraciones
    • Procesadores de facturación
      • 🇨🇱Bsale
      • 🇨🇱Defontana
      • 🇨🇱Facturación incorporada
        • Administrar folios
        • Administrar certificado digital
        • Administrador de Compras
        • Importación de facturas históricas
      • 🇲🇽FacturAPI
      • 🇧🇷NFE.io
    • Procesadores de pagos
      • Stripe
      • PayPal
      • 2checkout
      • Webpay (Transbank)
      • OneClick (Transbank)
      • Getnet Click
      • Getnet Checkout
      • Mercado Pago
      • Khipu
      • Pagos por transferencia
    • Banca como servicio
      • Santander Brasil
    • Zapier
  • Componentes
    • Customer Base
    • Signup Forms
    • Links
  • Configuración de la organización
    • Cuenta
    • Branding
    • Facturación
    • Banco
    • Correos electrónicos
    • Importación
      • Clientes
    • Exportación
    • Cuenta de usuario
  • Desarrolladores
    • Webhooks
      • Crear un webhook
      • Registrar un webhook
      • Verificar firma
  • Colecciones
    • Países
    • Estados
    • Monedas
    • Tipos de documentos
  • Condiciones de uso
Con tecnología de GitBook
En esta página

¿Te fue útil?

  1. Desarrolladores
  2. Webhooks

Verificar firma

Verifica los eventos que Piriod envía a tus endpoints de webhooks.

Opcionalmente puedes verificar que sea Piriod y no un tercero el que envía los eventos a tu endpoint de webhook. Esto lo haces haciendo una comparativa entre Piriod Signature enviado con el encabezado x-piriod-signature de la solicitud HTTP

Antes de verificar la firma, debes recuperar el secreto desde tu Webhook registrado en Piriod. Seleccione un webhook y obtén el secreto desde la sección Secreto, luego haz clic en Copiar secreto. Cada webhook registrado posee un secreto distinto, por lo que, si utilizas varios endpoints de webhooks y deseas verificar la firma, debes obtener un secreto para cada uno.

Ejemplo de código para verificar la firma

La verificación se realiza proporcionando el payload del evento enviado por Piriod a tu endpoint, el encabezado x-piriod-signature y el secreto del endpoint de webhook. Si la verificación falla, debes levantar una excepción.

import hashlib
import hmac

from flask import Flask

app = Flask(__name__)

WH_SECRET = 'whsecret_g9En7rfNBZBYFr968pLqPDQ6O302Q1DAI3TXi3aky1eAcUqgJg3EjBP'

# using Flask
@app.route('/webhooks', methods=['POST'])
def webhooks():
    payload = request.json
    piriod_signature = request.headers.get('x-piriod-signature')
    if not _signature_is_valid(payload, piriod_signature):
        abort(400)
    if not payload:
        abort(400)
    if payload.get('event') == 'payment.created':
        ##
        # do anything with your new payment
        ##
    return True

def _signature_is_valid(payload, piriod_signature):
    signature = hmac.new(
        WH_SECRET.encode(),
        msg=(''.join(map(str, payload.values()))).encode('UTF-8'),
        digestmod=hashlib.sha256
    ).hexdigest()
    if not signature == piriod_signature:
        return False
    return True

if __name__ == '__main__':
    app.run(debug=True)
No content yet
No content yet
No content yet
No content yet
No content yet

AnteriorRegistrar un webhookSiguientePaíses

Última actualización hace 4 años

¿Te fue útil?