OneSpan Sign Developer: Notification d'événement de rappel - Partie 3

Duo Liang, avril 24, 2019

Dans les deux premières parties de cette série de blog, nous avons passé en revue les avantages de l'utilisation des notifications d'événements ainsi que le flux de travail recommandé pour les transactions de sondage et les informations relatives aux signataires dans la partie 1. De là, nous avons parcouru les détails techniques liés à l'auditeur de rappel dans la partie 2.

Pour la troisième partie de cette série de blog, nous allons utiliser un simple projet de démarrage de printemps pour montrer comment mettre en place un auditeur de rappel en action. Combiné avec la partie 2, vous verrez comment nous suivons ces flux pour faciliter votre intégration d'écoute d'événements.

Notification d'événement de rappel en action

Avant de commencer le projet de démarrage printanier, assurez-vous de terminer les éléments suivants :

Inscrivez-vous aux notifications d'événements

Avant que le système OneSpan Sign puisse vous informer d'un événement, vous devez activer les notifications. Suivez ce guide de fonctionnalités pour apprendre à vous inscrire.

Dans notre exemple, nous nous inscrirons simplement à partir du portail Web.

Télécharger Java SDK de OneSpan Sign

Vous aurez également besoin de Java SDK de OneSpan Sign. Téléchargez et dézez le SDK à l'emplacement de votre choix.

Ou alternativement, vous pouvez importer OneSpan Sign Java SDK de Maven Repository par:

com.silanis.esl (en)Sdk11.21

Installer JDK et IDE

Télécharger Ngrok

Bottes de printemps de base et connaissances Maven

Dans ce guide, nous allons construire un projet de démarrage de printemps en utilisant des méthodes asynchrones de printemps. Le code source complet peut être trouvé ici.

N'hésitez pas à importer directement le code source en tant que projet maven existant ou copier et coller tous les fichiers/codes nécessaires à votre projet existant.

N'oubliez pas de vous référer également aux tutoriels officiels sur la construction d'un service Web RESTful avec Spring Boot et la création de méthodes asynchrones.

Le code

Nous aurons besoin d'un contrôleur pour traiter les demandes de rappel envoyées par OneSpan Sign. Vous trouverez ci-dessous le code pour le CallbackController pour traiter la notification d'événement.

@RestController
classe publique CallbackController (en)

	@Autowired
	privé OssCallbackService ossCallbackService;

	@PostMapping("/rappel")
	@ResponseStatus(httpStatus.OK)
	rappel public nul@RequestBody ( OssCallbackVo ossCallbackVo, @RequestHeader("Authorization") String callbackKey)
		System.out.println ("recevoir une notification de rappel!");

		Le 1. vérifier la clé de rappel
		si (callbackKey ! ' nul)
			System.out.println ("clé de rappel: " - callbackKey);
			si!ossCallbackService( .validateCallbackKey (callbackKey))
				lancer la nouvelle RuntimeException ("La clé de rappel n'est pas valide: " - callbackKey);
			}
		}
		System.out.println ("corps de rappel: " ossCallbackVo);

		2. manipuler le rappel asynchronement
		essayer  {
			ossCallbackService.handleCallback(ossCallbackVo);
		- capture (Exception e)
			e.printStackTrace();
		}
	}
}

Dans le code ci-dessus, toute demande POST frappant "/callback" itinéraire sera traitée par notre application.

Une fois que tous les documents d'un paquet ont été signés et le paquet complété, OneSpan Sign fera une demande POST à l'URL enregistrée avec l'exemple suivant Charge utile JSON: 

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

Note:

Le "sessionUser" ci-dessus se réfère à l'Id de signataire, il est donc recommandé de définir l'Id personnalisé (dans SDK) ou signion Id (dans REST) lors de la création du signataire et le stocker dans votre base de données locale.

Ensuite, nous distribuerons à différentes fonctions de service en fonction de l'événement de rappel. Une classe de service avec méthode asynchrone a été utilisée pour gérer cette logique métier.

@Service
classe publique OssCallbackService (en)

	@Autowired
	ossConfiguration privé;

	public boolean validateCallbackKey (String callbackKey)
		si (callbackKey ! ' nul)
			Base de cordes64Credentials - callbackKey.substring("Basic".length()).trim();
			retour ossConfiguration.CALLBACK_KEY.equals(base64Credentials);
		} else {
			retour faux ;
		}
	}

	@Async("asyncExecutor")
	public vide handleCallback(OssCallbackVo ossCallbackVo)
		commutateur (OssCallbackEvents.valueOf(ossCallbackVo.getName)))
		cas PACKAGE_COMPLETE:
			process_PACKAGE_COMPLETE(ossCallbackVo);
			pause;
		cas PACKAGE_CREATE:

			pause;
		cas PACKAGE_DEACTIVATE:

			pause;
		......

		Par défaut:
			pause;
		}

	}

	process_PACKAGE_COMPLETE de vide privé(OssCallbackVo ossCallbackVo)
		EslClient eslClient - nouveau EslClient(ossConfiguration.API_KEY, ossConfiguration.API_URL);
		Forfait à cordesId - ossCallbackVo.getPackageId();
		documents d'octet[] eslClient.downloadZippedDocuments (nouveau PackageId(packageId));

		FilePath de chaîne - ossConfiguration.FILE_SAVE_PATH ' ' ' ' documents_ ' ' ' ' ' ' ' ' ' ' ' ' ' ' ' ' ' ' ' ' ' ' ' ' ' ' ' ' ' ' ' ' ' ' ' ' ' ' ' ' ' ' ' ' ' ' ' ' ' ' ' ' ' ' ' ' '
				- nouveau SimpleDateFormat ("yyyy_MM_dd").

		Files.saveTo (documents, filePath);
	}
	
	vide privé process_DOCUMENT_SIGNED(OssCallbackVo ossCallbackVo)
	}
	privé vide process_SIGNER_COMPLETE(OssCallbackVo ossCallbackVo)
	}
	......
}

Nous avons déclaré toutes les fonctions de talon possibles traitant des événements de rappel dans notre code. Dans cet exemple, l'événement « PACKAGE_COMPLETE » a été surveillé et a déclenché la fonction de service correspondante. Puis eslClient a été utilisé pour télécharger les documents signés.

Enfin, toutes vos configurations liées au signe OneSpan sont stockées dans le fichier oss.properties. Il vous suffit de s'adapter à vos propres informations avant d'exécuter le code :

OSS_API_KEY-api_key
OSS_API_URLapi_url
OSS_FILE_SAVE_PATH file_save_path
OSS_CALLBACK_KEY callback_key

Effectuer un test

Exécutez la fonction principale dans votre classe Application.java. Ensuite, ouvrez une invite de commande et changez le répertoire à l'endroit où vous avez enregistré votre ngrok exécutable. Entrez la commande suivante :

ngrok http [port] -host-header"localhost:[port]"

Ensuite, connectez-vous à votre compte OneSpan Sign, naviguez sur la page Admin et modifiez le domaine de votre URL de rappel. 

Enfin, créez, envoyez et remplissez un package de test. Vous devriez être en mesure de voir les documents signés comme un fichier zippé dans le fichier oss.properties. Dès que OneSpan Sign envoie une notification de rappel à votre auditeur, vous verrez le message ci-dessous sur votre console IDE. Si vous pouvez les voir tous les deux, cela signifie que votre auditeur de rappel fonctionne correctement.4-24-1

Si vous avez des questions concernant ce blog ou toute autre chose concernant l'intégration de OneSpan Sign dans votre application, visitez les Forums communautairesdes développeurs . Vos commentaires sont importants pour nous!

OneSpan Sign Developer Community

OneSpan Sign Developer Community

Rejoignez la communauté OneSpan Sign Developer! Forums, blogs, documentation, téléchargements SDK, et plus encore.

Joignez-vous aujourd'hui