OneSpan Sign How To: Création d'un auditeur de notification d'événement de rappel dans PHP

Haris Haidary, décembre 21, 2016

Dans un blog précédent, je vous ai montré comment créer un simple auditeur de notification d'événement de rappel dans C et écouter pour le "PACKAGE_COMPLETE" événement afin de télécharger des documents signés. Dans ce blog, je vais vous montrer comment faire la même chose dans PHP. Allons-y.

Exigences

Inscrivez-vous aux notifications d'événements

Avant que le système OneSpan Sign puisse vous informer d'un événement, vous devez d'abord vous inscrire pour être informé en cas d'événement. Vous pouvez suivre ce guide de fonctionnalités sur la façon de vous inscrire aux notifications d'événements.

SublimeTexte

Pour ce blog, je vais utiliser l'éditeur de texte SublimeText. Si vous ne l'avez pas déjà, vous pouvez le télécharger gratuitement, ici.

Ngrok

Pour recevoir des notifications d'événements de rappel, vous aurez besoin d'une URL accessible au public pour frapper et travailler. Votre serveur localhost à lui seul ne fonctionnera pas. Ngrok est un outil très simple et facile à utiliser qui crée un tunnel sécurisé sur votre machine locale avec une URL publique que vous pouvez utiliser pour naviguer sur votre site local. Cela vous évite la peine de déployer votre application web.

Xampp

Je vais également utiliser XAMPP, qui est un serveur web open-source libre avec des interprètes PHP et PERL. Il est simple, léger et vous permet de tester vos scripts localement. Vous pouvez le télécharger gratuitement à partir de leur site officiel.

Le code

Vous pouvez télécharger le code d'exemple à partir du Developer Community Code Share. Allez-y et créez un nouveau fichier dans SublimeText nommé "callback.php". Copiez le code ci-dessous. J'y reviendrai bien tôt.

 CURL_HTTP_VERSION_1_1,
	  CURLOPT_CUSTOMREQUEST "GET",
	  CURLOPT_HTTPHEADER tableau de réseau(mD) (
	    "autorisation: api_key de base"
	  ),
	));

	$response curl_exec ($curl);
	$err curl_error ($curl);

	curl_close ($curl);

	si ($err)
	  écho "Erreur cURL":" . $err;
	} else {
	  file_put_contents ("C:/Users/hhaidary/Desktop/documents_".$packageId.". zip », $response);
	}

L'emballage php://input est un flux de lecture uniquement qui vous permet de lire les données brutes de l'organisme de demande. Dans le cas des demandes post, il est préférable d'utiliser php://input au lieu de $HTTP-RAW-POST-DATA car il ne dépend pas de directives spéciales php.ini.

$data ' file_get_contents('php://input');

Ensuite, nous json_decode la chaîne codée JSON envoyée à partir de OneSpan Sign et la convertir en un tableau.

$json json_decode ($data, vrai);

Dans mon exemple, je ne suis intéressé par l'id paquet car c'est la seule information dont j'ai besoin pour télécharger des documents signés.

$packageId - print_r ($json['packageId'], vrai);

Ensuite, il s'agit simplement d'utiliser la bibliothèque cURL afin d'envoyer votre demande HTTP à l'API de OneSpan Sign et de télécharger les documents signés.

$curl curl_init();

curl_setopt_array ($curl, tableau de réseau(
CURLOPT_URL "https://sandbox.esignlive.com/api/packages/".$packageId." /documents/zip",
CURLOPT_RETURNTRANSFER vrai,
CURLOPT_ENCODING "",
CURLOPT_MAXREDIRS 10,
CURLOPT_TIMEOUT 30 euros,
CURLOPT_SSL_VERIFYHOST faux,
CURLOPT_SSL_VERIFYPEER faux,
CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
CURLOPT_CUSTOMREQUEST "GET",
CURLOPT_HTTPHEADER tableau de réseau(mD) (
     "autorisation: api_key de base"),
));

$response curl_exec ($curl);
$err curl_error ($curl);

curl_close ($curl);

si ($err)
      écho "Erreur cURL":" . $err;
} else {
      file_put_contents ("C:/Users/hhaidary/Desktop/documents_".$packageId.". zip », $response);
}

Exécution de votre code

Allez-y et exécutez votre serveur local avec XAMPP. 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]"

Voici une capture d'écran de ce à quoi vous pouvez vous attendre après l'exécution de la commande:1-2

Ensuite, connectez-vous à votre compte OneSpan Sign et naviguez vers la page Admin. Entrez dans le champ « URL de rappel » l'URL à votre auditeur de rappel (c'est-à-dire http://f3e93555.ngrok.io/callback.php) et inscrivez-vous à l'événement « transaction complète ». 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é à l'endroit où vous avez choisi de l'enregistrer.

Si vous avez des questions concernant ce blog ou toute autre chose concernant l'intégration oneSpan Sign dans votre application, visitez les forums de la communauté des développeurs: https://developer.OneSpanSign.com/. C'est moi qui l'ai fait. Merci de lire! Si vous avez trouvé ce message utile, s'il vous plaît le partager sur Facebook, Twitter, ou LinkedIn.

Haris Haidary

Évangéliste technique junior

LinkedIn - France Twitter (en) 

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