Utiliser Atos SIPS sur windows 2008 R2 64 bits

J’ai eu à mettre en place le systeme de paiement par carte bleue basé sur Atos SIPS de la société générale pour ERPStore sur un serveur Microsoft Windows 2008 R2 en 64 bits.

Autant dire tout suite que le setup téléchargeable sur le site de la banque est ecrit en 16bits et donc ne peut pas se lancer sur une machine recente en 64 bits, j’ai donc téléchargé uniquement les binaires et installé ceux-ci dans un répertoire dedié comme préconisé par la documentation.

La documentation préconise d’installer le composant COM “SIPSExec.dll” via regsvr32.exe , comme indiqué plus haut, le setup ne fonctionnant pas sur une machine 64bits.

L’installation se deroule sans pb j’ai un message d’installation positif, mais lors du test de la sandbox j’ai un message plutot succinct ou je deduis via quelques requetes google que j’ai un pb de securité ou autre. (Au passage la meme procedure sur mon serveur de préprod en 32bits ne m’a posé aucun pb).

En regardant bien ce composant COM, j’en deduit qu’il s’agit finalement d’un wrapper qui permet de lancer les 2 executables founis avec l’API SIPS request.exe et response.exe.

Voici comment j’ai procedé pour me passer du composant COM et lancer directement les executables.

		public string ExecuteSips(string path, string parameters)
{
var psi = new System.Diagnostics.ProcessStartInfo(path, parameters);
psi.RedirectStandardOutput = true;
psi.ErrorDialog = false;
psi.UseShellExecute = false;
psi.CreateNoWindow = true;
psi.WindowStyle = System.Diagnostics.ProcessWindowStyle.Hidden;
string result = null;
try
{
var p = System.Diagnostics.Process.Start(psi);
var reader = p.StandardOutput;
result = reader.ReadToEnd();
reader.Close();
}
catch (Exception ex)
{
// TODO : Log de l’erreur


				throw;
}
return result;
}


Je passe en parametre “path” le chemin vers request.exe ou response.exe et les differents paramètres “parameters” comme indiqué dans la documentation, cette methode me retourne alors soit le code HTML du formulaire avec les paramètres encryptés pour se diriger vers la banque. Soit me retourne le code décrypté lors de l’appel du serveur par la banque.


Il n’y a finalement pas besoin d’installer de composant , simplement si le site web tourne avec le compte “NetworkService”, il faut donner les droits d’execution à ce compte sur les fichiers Request.exe et Response.exe.

4 commentaires:

Da Scritch a dit…

Je vois que tout le monde est d'accord pour écrire que les systèmes bancaires fournis par Atos Origin sont risibles d'obsolescences....

De mon côté, les codes d'exemples fournis en Perl et en PHP fourmillaient d'erreurs affligeantes de sécurité.

Mention spéciale pour la doc qui se contredit, et les "certificat commerçants envoyés en sécurisé", dans un .rar, avec un .exe qui est filtré par les antivirus.
Évidemment, aucune solution pour les gens sur mac ou linux, qui se font finalement envoyer ledit certificat... par email, en clair.

Ils peuvent pas utiliser des paires SSL ? C'est standard, fiable et nettement plus à jour.

Anonyme a dit…

bonjour et bravo pour ce billet.
Est-ce que votrefonction ExecuteSips() est-elle utilisable telle quelle en ASP 3.

Auriez-vous un exemple complet utilisant ASP 3 avec passage des attributs dans la fonction ExecuteSips()

merci bcp j'ai exactement le même PB que vous ! merci pour votre aide.

Patrick Flamant a dit…

Bonjour,

pour éviter des soucis de compatibilité sur des architectures de ce type, il vaut mieux privilégier des solutions SaaS qui évitent l'installation de composants. Chez Ogone, on ne rencontre pas ces problématiques chez nos clients.

cordialement

Marc Chouteau a dit…

Pour Ogone il faut quand meme utiliser un composant qui permet de crypter en SHA1, effectivement c'est natif avec .Net, mais pour les autres plateformes (asp classique ou php), il faut utiliser discuter avec un composant COM.
Effectivement Ogone est plus façile a mettre en place dans un site de eCommerce, voir sur http://erpstorecontrib.codeplex.com section payments pour voir comment cette solution de paiement est implémentée dans ERPStore.