Desarrolladores de OneSpan Sign: Notificación de eventos OAuth para Salesforce - Parte 3

Duo Liang, 21 de Abril de 2021

En los dos últimos blogs para desarrolladores, hemos recorrido los aspectos básicos del registro de una aplicación conectada en Salesforce con la configuración de OAuth activada en la Parte 1 y, a continuación, nos hemos centrado en la gestión de un token de actualización y en la actualización del servicio de devolución de llamadas de OneSpan Sign en la Parte 2.

Esta tercera entrega de nuestra serie de blogs en curso incluirá un proyecto de demostración que muestra cómo implementar un servicio web en Salesforce que funciona como un receptor de llamadas. Dividiremos el código en secciones y probaremos todo el flujo de trabajo, desde la creación de la transacción hasta la recepción y el procesamiento de las notificaciones

Requisitos previos

Para completar estos procedimientos, asegúrese de haber leído los blogs anteriores de la serie y de haber completado las siguientes tareas:

  • Registre una Salesforce Connected App y active la autenticación Oauth2
  • Recuperar un token de actualización para esta aplicación
  • Actualizar el servicio de devolución de llamadas de OneSpan Sign

Además, necesitarás:

  • Descargue el código de ejemplo en este Code Share
  • (opcional) Instale OneSpan Sign APEX SDK y familiarícese con su uso básico.

Configurar un receptor de llamadas

En esta sección, desglosaremos el código de ejemplo sección por sección. Siga las explicaciones siguientes y ajuste el código en consecuencia.

Esencialmente, expusimos una clase Apex como un servicio web REST. La definición de la clase tiene el siguiente aspecto:

@RestResource(urlMapping='/oss/callback') global con compartición class OssCallbackResource{ @HttpPostglobal static void callback() { ...... }

Expusimos un servicio web que maneja las solicitudes HTTP Post en "https://yourdomain.salesforce.com/services/apexrest/oss/callback". Esta URL también se conoce como la URL de devolución de llamada

Una vez que un callback de OneSpan Sign llega a nuestro método, lo primero es analizar la carga útil JSON entrante y convertirla a nuestro propio modelado.

        OssCallback ossCallback = (OssCallback)JSON.deserialize(RestContext.request.requestbody.tostring(),OssCallback.class); System.debug('Received callback: ' + RestContext.request.requestbody.tostring());

Un ejemplo de carga útil de entrada aparece como tal:

{ "@class": "com.silanis.esl.packages.event.ESLProcessEvent", "name": "PACKAGE_COMPLETE", "sessionUser": "0787be84-f095-44c7-ba00-787093df86fc", "packageId": "KHiRfOXgKK0gpVwwpFOSNy6o34=", "message": null, "documentId": null }

Si el nombre del evento es igual a "PACKAGE_COMPLETE", la transacción se ha completado, puede manejarla según su lógica de negocio:

        if(ossCallback.name.equals('PACKAGE_COMPLETE')){ downloadSignedDocuments(ossCallback); }   

En nuestro caso, descargaríamos todos los documentos firmados y el resumen de pruebas en una carpeta de documentos llamada "onespan". Asegúrese de que ha creado esta carpeta, o simplemente puede ajustar el código y almacenar los archivos en cualquier lugar que le parezca

Aquí utilizamos las funciones del SDK de OneSpan APEX para facilitar la integración. Si no ha instalado el SDK de APEX o si no está familiarizado con su configuración o uso básico, consulte esta guía

    private static void downloadSignedDocuments(OssCallback ossCallback){ OneSpanSDK sdk= new OneSpanSDK(); OneSpanAPIObjects.Package_x pack = sdk.getPackage(ossCallback.packageId); List docs = new List(); Folder folder = [select id from Folder where name='onespan' LIMIT 1]; for(OneSpanAPIObjects.Document document: pack.documents){ Blob response = sdk.downloadDocument(ossCallback.packageId, document.id); Document doc = new Document(); doc.Body = response; doc.FolderId = folder.id; doc.Name = pack.name + ' - ' + document.name; doc.Type = 'pdf'; docs.add(doc); } //download evidence summary String auditString= sdk.getAudit(ossCallback.packageId); Document auditDoc= new Document(); auditDoc.Body = EncodingUtil.base64Decode(auditString); auditDoc.F

¡Eso es! Ahora está listo para desplegar en su propio entorno de Salesforce.

Probar el código

Antes de nuestra prueba final, actualice el servicio de devolución de llamadas de OneSpan Sign y asegúrese:

  • su URL de devolución de llamada está correctamente configurada
  • al menos has disparado el evento "PACKAGE_COMPLETE"

Para verificar si nuestro callback listener funciona como se espera, podemos simplemente crear una transacción desde el portal del remitente o desde cualquier punto de integración siempre y cuando haya llevado "data" > "origin" : "OSS" en el JSON de la transacción:

4-21-1

Antes del siguiente paso, abra la consola de desarrolladores de Salesforce (En Salesforce > Haga clic en su nombre o en el icono del engranaje> Haga clic en la consola de desarrolladores) y supervise las llamadas entrantes en tiempo real

Ahora puede terminar de firmar esta transacción. En su consola de desarrollador de Salesforce, observará que los nuevos registros llegan casi al mismo tiempo. Haz doble clic en uno de ellos y busca "DEBUG". Esto filtra los registros y sólo muestra los mensajes de nivel de depuración que imprimimos con la función System.debug().

4-21-2

Acceda a su carpeta de documentos de Salesforce y allí encontrará los documentos firmados y el resumen de pruebas.

4-21-3

Con esto concluye el blog de hoy. A estas alturas, debería ser capaz de implementar y desplegar una escucha de devolución de llamada en Salesforce, configurar adecuadamente el servicio de devolución de llamada de OneSpan Sign y probar el código

Si tiene alguna pregunta sobre este blog o cualquier otra cosa relacionada con la integración de OneSpan Sign en su aplicación, visite los foros de la comunidad de desarrolladores. Su opinión nos importa

Comunidad de desarrolladores de OneSpan Sign

Comunidad de desarrolladores de OneSpan Sign

¡Únase a la comunidad de desarrolladores de OneSpan Sign! Foros, blogs, documentación, descargas de SDK y más.

Únete hoy