Skip to main content

Qué hace

Podés insertar el calendario de una agenda dentro de otro sitio web. Quien lo inserta puede dejar el nombre, el email y el teléfono del cliente ya completos, y guardar información propia en cada reserva (por ejemplo un número de orden interno). El cliente reserva sin salir del sitio donde estaba.

Cuándo usarlo

Cuando trabajás con una plataforma o un partner que quiere que sus usuarios reserven sin salir de su sitio: un marketplace, un portal de pacientes, una app propia, etc. Si solo compartís el link o el QR, no necesitás esto: alcanza con Compartir tu link de reserva o Códigos QR.

Dónde encontrarlo

Agenda → Configuración → Calendario embebido. Ahí encontrás:
  • El código para copiar e insertar en tu sitio.
  • El interruptor para exigir que los datos del enlace vengan firmados.
  • El secreto de firma (aparece difuminado hasta que lo revelás), con opción de regenerarlo.

Datos ya completos

El sitio que inserta el calendario puede dejar el nombre, el email y el teléfono cargados. Esos campos aparecen en gris y no se pueden editar en Turnito, para que coincidan con los datos del otro sistema. Si algún dato viene mal formado, ese campo queda editable y el resto sigue bloqueado.

Información propia en la reserva

El sitio que inserta el calendario puede mandar información suya junto con la reserva (un ID interno, el origen del tráfico, etc.). Cuando la reserva la tiene, la ves:
  • En el detalle de la reserva, bajo Datos externos.
  • En la exportación de reservas, como columnas Dato externo: ….
Si la reserva no trae esa información, no aparece nada nuevo en la pantalla ni en el Excel.

Seguridad

El secreto de firma sirve para que quien programa tu sitio firme los datos del enlace desde su servidor. Así un visitante no puede cambiar la URL del calendario y alterar nombre, email o esa información propia. Conviene activar Exigir firma cuando la integración ya esté andando: con eso activo, Turnito rechaza los enlaces con datos sin firma válida.
Regenerar el secreto invalida todos los enlaces firmados que ya estén publicados. Después tenés que pasarle el secreto nuevo a quien programa tu sitio.

Cómo se genera la firma

Esta parte es para quien programa tu sitio. Pasale este enlace. La firma se calcula en el servidor, nunca en el navegador: si el secreto viaja al navegador, cualquiera lo puede leer y la firma deja de servir.
1

Armá el texto a firmar

Tomá los parámetros prefill_* y metadata_* que vayas a mandar, más exp si usás vencimiento. Ordenalos por nombre alfabéticamente, escapá nombre y valor por separado, y unilos con &.El escapado es percent-encoding RFC 3986: se codifica todo salvo A-Za-z0-9-._~, en hexadecimal mayúscula. Es rawurlencode() en PHP y quote(s, safe='') en Python. En JavaScript, encodeURIComponent deja sin escapar !'()* y hay que completarlo — el ejemplo de abajo ya lo hace.
No incluyas embed ni ningún otro parámetro que no sea prefill_*, metadata_* o exp.
2

Calculá el HMAC

sig = HMAC-SHA256(secreto, texto) en hexadecimal minúscula. Agregá el resultado a la URL como &sig=....
Con el secreto mi-secreto y los parámetros del paso anterior, el resultado tiene que ser exactamente:
Si te da otra cosa, revisá el paso 1: casi siempre es orden de claves, valores sin escapar, o parámetros de más metidos en el texto.
3

Opcional: hacé que el enlace venza

Agregá exp con un timestamp Unix. Pasada esa hora, Turnito rechaza el enlace. Conviene usar ventanas cortas, de minutos u horas, no de días.
Escapar los valores no es un detalle cosmético. Si mandás un valor sin escapar que contenga &clave= —por ejemplo una URL de retorno—, alguien puede partirlo e inyectar un dato firmado que vos nunca pusiste, como el email del cliente.

Probalo acá

Armá el enlace con tus propios datos y mirá cómo queda el calendario antes de pasárselo a quien programa tu sitio.

Páginas relacionadas