Une collègue n'a pas verrouillé son ordinateur portable lorsqu'elle s'est absentée de la réunion. Nous en avons profité pour écrire une niaiserie dans son document électronique.
À son retour, elle demanda qui avait écrit ça. Nous avons fait mine de ne pas savoir.
Un autre collègue répondit que de toute façon, ça ne ressemblait pas à son écriture.
À mon tour, j'ai ajouté que ça ne pouvait pas être moi car la mienne ressemble davantage à du Verdana.
On est con comme ça en fin de journée :-)
Je viens de terminer l'intégration d'une solution de paiement en ligne pour un client. Comme celui-ci possédait déjà un compte à la Banque Nationale du Canada, la solution retenue fût celle du fournisseur Global Payments auquel elle est affiliée.
Avant d'amorcer le travail, j'ai eu à communiquer avec Global pour ouvrir un compte sandbox afin de faire des tests de programmation et simuler les transactions. Pour obtenir des renseignements et la documentation technique, j'ai eu à laisser un message à trois personnes dont seule la dernière retourna mon appel.
Le vendeur qui m'a rappelé n'avait aucune notion technique et se préoccupait davantage me promouvoir les différents services plutôt que de répondre à mon besoin. Au bureau
de Global Payments au Québec, je me suis fait dire par une autre employé que le seul technicien qui pouvait m'aider était en vacances et que je devais attendre son retour(!). Lui non plus n'a pas donné suite à ma requête.
C'est si difficile d'obtenir une réponse facilement ? J'ai donc poussé ma chance plus loin et je crois m'être retrouvé à parler à quelqu'un au bureau régional en Ontario qui m'a dit d'envoyer un courriel au support technique, puis j'ai échangé des communications avec des gens de l'entité GlobalPay (selon l'adresse courriel) pour enfin obtenir l'accès par
l'intermédiaire d'une autre entité nommée CRESecure située à Atlanta aux États-Unis... C'est vrai que c'est la période de l'année où débute la série Mondiale de baseball mais ce n'est pas une raison pour que tout le monde se relance la balle.
Je croyais que mes ennuis s'arrêteraient là mais non. Lors de la phase de développement, j'intégrais la solution nommée SecureForm qui permet à un hébergeur qui n'a pas de certification PCI (Payment Card Industry) de déléguer la responsabilité de saisir les informations de la carte de crédit à une passerelle hébergée chez un fournisseur accrédité comme Global Payments, sans jamais que le site marchand ne manipule le numéro de la carte de crédit sur ses serveurs.
Or la documentation m'a fait rager car elle comporte son lot d'erreurs. Par exemple, à la page 36 de 55 du document PDF Global Transport Secure Form Implementation Guide v.1.pdf, sous la section intitulée Global Transport Secure Direct Services, j'ai compté trois erreurs techniques. La dernière révision date pourtant de juillet 2013...
À titre de référence, voyez la capture ci-dessous.
Cliquez pour agrandir |
Erreur # 1 : URL de l'environnement de développement (sandbox)
Cliquez pour agrandir |
Pour valider une transaction auprès de Global, on prend la peine d'indiquer explicitement une note comme quoi l'URL à appeler ne doit pas se terminer par une barre oblique lorsqu'on est en mode test. Jusqu'à ce que je me rende compte par Fiddler que Global a eu la brillante idée de faire une redirection 301 vers la nouvelle URL qui comprend le slash...
Erreur # 2 : GET ou POST ?
Cliquez pour agrandir |
La validation doit se faire par une requête POST. Est-ce que je rêve ou l'exemple montre une requête GET ? Après tests, je confirme que la méthode à utiliser est bien un POST.
Erreur # 3 : Paramètre de validation
Cliquez pour agrandir |
Celle-ci est la pire de toutes car elle n'est pas évidente à trouver mais j'ai pu la déduire. Alors que la requête de validation ne fonctionnait pas, j'avais remarqué que les noms des paramètres ne suivaient aucun standard de nommage, passant du camelCase (CRESecureId) à l'underscore (total_amt). Après avoir bidouillé un peu et essayé de comprendre pourquoi le paramètre orderId n'était pas pris en considération (validation échouée), je me suis risqué à renommer le paramètre passé à order_id pour voir, juste au cas-où. Et ça s'est mis à fonctionner à merveille.
Une fois tout le processus fonctionnel, je me suis dit que j'allais leur rendre service en leur adressant un courriel pour communiquer les erratums du document. La réponse que j'ai reçu m'invita à m'adresser à un autre département.
Come on Global Payments, c'est quoi ce niaisage ?
Making-of de ma 2ème guitare électrique (galerie photos)
Lorsque j'ai complété l'assemblage de ma toute première guitare artisanale, j'annonçais déjà que j'en entamais une deuxième. Toujours de type Les Paul, car c'est le modèle le plus prestigieux à mes yeux et que j'apprécie l'élégance de son architecture.
Je vous propose donc de suivre l'évolution de sa finition par cet album photos dont les étapes s’échelonnent sur 6 semaines de travail. Croyez-moi, le résultat dépasse largement celui de la précédente.
Aussi, contrairement à la première où j'utilisais un fini protecteur à base d'huile d'abrasin (tung oil), j'ai opté cette fois pour la lacque, ce qui donne un résultat beaucoup plus professionnel mais comportant plus de risques à l'application.