Envío de invitaciones con Business Generated Links (para desarrolladores)

Esta guía está dirigida a aquellos desarrolladores que deseen crear Business Generated Links. Aquí aprenderás a generar enlaces encriptados utilizando tu lenguaje de programación preferido.

IMPORTANTE

El método de invitación 'Business Generated Links' solo está accesible para los nuevos clientes Business de Trustpilot de ciertos sectores.

Nota: Trustpilot ha creado recursos sobre el Cifrado autenticado (Authenticated Encryption) en Github para ayudarte a empezar. Puedes consultarlos aquí.

Guía para todos los lenguajes de programación

Los Business Generated Links utilizan Cifrado Autenticado con Datos Asociados (AEAD por sus siglas en inglés) y un enfoque llamado Encrypt then MAC (EtM). Trustpilot utiliza una clave para cifrar el payload (encryptkey) y otra clave para el MAC part (authkey) con el fin de asegurar la integridad de los datos.

Desde tu Cuenta Business de Trustpilot, ve a Recolectar opiniones > Invitar clientes > Business Generated Links para encontrar las dos claves.

Creación de Business Generated Links

  1. Las claves copiadas desde tu Cuenta Business de Trustpilot se muestran en un formato codificado en Base64. Por lo tanto, lo primero que debe hacer tu aplicación es una decodificación Base64 de las claves.
  2. Crea el objeto payload en formato JSON e inserta la información del cliente. Los siguientes campos son obligatorios: email, nombre y ref (número de referencia). Aquí tienes un ejemplo:
{
  "email":"xyz@dominio.com",
  "name":"Juan Pérez",
  "ref":"1234",
  "skus":["sku1","sku2","sku3"],
  "tags":["tag1","tag2","tag3"]
}
Nota: Las etiquetas no deben contener espacios.
  1. Encripta el payload para asegúrarte de que no pueda ser leído por terceros. Realiza el cifrado con AES-CBC usando una longitud de clave de 256 bits, un tamaño de bloque de 128 bits y el modo de relleno PKCS7
  • Genera un Vector de Inicialización (IV) acorde con el tamaño de bloque (128 bits)
  • Cifra el JSON con el encryptkey y el IV
  • Crea una firma para el ciphertext.
  • Para ello utilizamos HMAC-SHA256 y la authkey. Determina el HMAC mediante el hashing del IV, seguido del ciphertext. Aquí tienes un ejemplo: HMAC = HMAC-SHA256( IV + ciphertext )
  1. Ahora, codifica en base64 el IV + ciphertext + HMAC. De esta forma: base64_payload = base64( IV + ciphertext + HMAC )
  2. Finalmente, dado que base64 incluye la barra obliqua (/) y el signo más (+), es necesario hacer una codificación URL del playload de arriba, antes de incluirlo en el enlace final.
  3. El enlace final debe ser como este:
  payload = urlencode( base64_payload )
  https://www.trustpilot.com/evaluate-bgl/<domain>?p=<payload>
  1. Reemplaza el dominio con el nombre de tu dominio y el payload con el payload que generaste en el paso 5.

El siguiente diagrama de flujo muestra los pasos que hay que dar para formatear, encriptar y preparar correctamente los datos del payload antes de su distribución:

Image_1.png

Cómo verificar un Business Generated Link

Hay dos maneras de verificar que un Business Generated Link ha sido creado correctamente:

Prueba tu enlace en un navegador

Pega el enlace en un navegador y realiza la búsqueda. Después, crea una opinión de prueba. Selecciona una valoración de estrellas, añade un título y escribe una opinión. Si el botón Publica tu opinión ahora está activo, el proceso de cifrado se ha realizado correctamente. Si se te pide que inicies sesión con Facebook, Google o el email, significa que el proceso de cifrado ha fallado. No publiques la opinión de prueba. Aquí tienes un ejemplo:

Image_2.png

Prueba tu enlace con nuestra Command Line Interface (CLI)

Puedes instalar nuestra Command Line Interface (CLI) en tu ordenador para labores de desarrollo. Si puedes descifrar tu payload con el CLI, entonces lo has encriptado correctamente.

Codificación de los Business Generated Links para las Opiniones del Producto

Para recolectar Opiniones del Producto con los Business Generated Links, añade los SKU de los productos a tu payload. Aquí puedes ver un ejemplo de un payload que incluye los SKU de los productos. Se trata de una sencilla matriz JSON:

{
  "email":"xyz@dominio.com",
  "name":"Juan Pérez",
  "ref":"1234",
  "skus":["sku1","sku2","sku3"]
}

¿Cómo puedo determinar la localización de un Business Generated Link para un país en concreto?

Para determinar la localización del enlace, retira el inicio "www." y pon en su lugar el código correspondiente al país en cuestión. Por ejemplo:

https://de.trustpilot.com/evaluate-bgl/?p= https://es.trustpilot.com/evaluate-bgl/?p=

Envío de invitaciones para Opiniones locales con Business Generated Links

Si quieres utilizar Business Generated Links para invitar a tus clientes a escribir opiniones sobre tus establecimientos locales, tienes que incluir el campo de la localización cuando añadas los datos del cliente en el objeto 'payload'. Utiliza el mismo identificador (Id) de localización que el asignado al establecimiento.

Aquí tienes un ejemplo:

{
  "email":"xyz@domain.com",
  "name":"Juan Pérez",
  "ref":"1234",
  "locationId": "id1",
  "skus":["sku1","sku2","sku3"],
  "tags":["tag1","tag2","tag3"]
}

Nota: El identificador de la localización es sensible a mayúsculas y minúsculas.