Envío de invitaciones con Business Generated Links
Esta guía es para desarrolladores que desean crear Business Generated Links. Aquí explicamos cómo generar enlaces encriptados utilizando tu lenguaje de programación preferido.
El método de invitación por 'Business Generated Links' solo está accesible para los nuevos clientes Business de Trustpilot de ciertos sectores.
Para ayudarte a empezar, Trustpilot ha creado una serie de recursos sobre el Cifrado autenticado (Authenticated Encryption) en Github. 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 modelo llamado Encrypt then MAC (EtM). Con el fin de asegurar la integridad de los datos, Trustpilot utiliza una clave para cifrar el payload (encryptkey)
y otra clave para el MAC part (authkey)
.
Desde tu cuenta Business de Trustpilot, ve a Recolectar > Métodos de invitación > Business Generated Links para encontrar las dos claves.
Crear Business Generated Links
-
Las claves que has copiado en 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 unadecodificación Base64
de las claves. -
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"] }
Las etiquetas no deben contener espacios.
-
Encripta el
payload
para asegurarte de que no pueda ser leído por terceros. Realiza el cifrado conAES-CBC
usando una longitud de clave de256 bits
, un tamaño de bloque de128 bits
y elmodo 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 elhashing
del IV, seguido delciphertext
. Aquí tienes un ejemplo:HMAC = HMAC-SHA256( IV + ciphertext )
.
- Genera un
-
Ahora, codifica en
base64
el IV +ciphertext
+ HMAC. De esta forma:base64_payload = base64( IV + ciphertext + HMAC )
. -
Finalmente, dado que
base64
incluye la barra obliqua (/) y el signo más (+), es necesario hacer unacodificación URL
delplayload
de arriba, antes de incluirlo en el enlace final. -
El enlace final debe ser como este:
payload = urlencode( base64_payload ) https://www.trustpilot.com/evaluate-bgl/<domain>?p=<payload>
-
Reemplaza el
dominio
con el nombre de tu dominio y elpayload
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:
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 en 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 con tu email, significa que el proceso de cifrado ha fallado. No publiques la opinión de prueba.
Este es un ejemplo de un proceso de cifrado exitoso a la izquierda y uno fallido a la derecha:
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.
Evita el uso de emails de prueba genéricos (p.ej. test@gmail.com). Utiliza una dirección de email única.
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=
Invitar a escribir 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@dominio.com", "name":"Juan Pérez", "ref":"1234", "locationId": "id1", "skus":["sku1","sku2","sku3"], "tags":["tag1","tag2","tag3"] }
El identificador de la localización (LocationId) tienen en cuenta las mayúsculas y minúsculas.