Paiement en ligne avec Ogone Alias Gateway et Drupal

Qu'est ce que Alias Gateway

C'est une interface qui permet aux commerçants de traiter des transactions sur la plate-forme Ogone en utilisant une page de paiement propre aux commerçants.
Le processus de paiement via Alias Gateway se déroule en 2 étapes :

  • la phase de création d'alias
  • la phase de paiement avec Directlink

Principe de fonctionnement :

  1. Le marchand soumet le formulaire contenant les informations de la carte directement à Ogone (Alias Gateway).
  2. Un alias est donc créé pour ce numéro de carte dans la base d'Ogone et il renvoie ensuite cet alias vers le commerçant.
  3. Le commerçant enregistre l'alias et passe à la soumission du paiement via Directlink à Ogone.
  4. Traitement des données entre Ogone et l'acquéreur.
  5. Retour de résultat final au commerçant.

Première étape : Alias Gateway

Comme on a dit au début, le commerçant doit créer un formulaire qui ne doit pas soumis à son propre site mais directement à Ogone. C'est pour une raison de sécurité des informations importantes des cartes crédits.

Voici l'url de l'Alias Gateway :

    TEST : https://secure.ogone.com/ncol/test/alias_gateway.asp
    PROD : https://secure.ogone.com/ncol/prod/alias_gateway.asp

Les informations qui devront être soumis à Ogone sont :

  • PSPID : Compte id d'Ogone
  • CN : Titulaire de la carte
  • CARDNO : Numéro de la carte
  • CVC : Code de vérification de la carte
  • ED : Date d'expiration de la carte
  • ACCEPTURL : URL de redirection dans le cas où il n'y a pas d'erreur
  • EXCEPTIONURL : URL de redirection en cas d'erreur
  • SHASIGN : Chaine de caractère correspondant à l"encodage des donées à poster
  • ORDERID : Id de la commande

Après validation du formulaire, Ogone fait son traitement et envoi les retours sur l'url ACCEPTURL ou EXCEPTIONURL. Un Alias est donc créé en Ogone pour cette trasaction avec un statut 'en attente' s'il n'y a pas d'erreur.
Voici un example de réponse venant d'Ogone :

http://www.pspshop.com/accept.html?OrderID=193114421241&CN=monNom&NCErrorCN=0&CardNo=XXXXXXXXXXXX9999&Brand=MasterCard&NCErrorCardNo=0&CVC=XXXX&NCErrorCVC=0&ED=1215&NCErrorED=0&NCError=0&Alias=28313482-64D1-4B30-9451-D7662506F625&status=0&SHASign=91B28B4E759870FE8EB1A4BC1B8DF8C4A78684F9
  • OrderID: numéro de l'engistrement
  • CN : titulaire de la carte
  • NCErrorCN : indique le code d'erreur pour le titulaire de la carte. L'état 0 c'est OK.
  • CardNo : numéro de la carte (caché)
  • Brand : type de la carte
  • NCErrorCardNo : indique l'erreur qui peut être présente pour le numéro de la carte, l'état 0 est de bon signe.
  • CVC : code de vérification de la carte (complétement caché)
  • NCErrorCVC : indique l'erreur relative au code de vérification de la carte
  • ED : date d'expiration de la carte
  • NCErrorED : indique l'erreur relative à la date d'expiration de la carte
  • NCError : indique l'erreur relative à la globalité des paramètres
  • Alias : l'alias généré par Ogone
  • status : statut sous forme de code
  • SHASign : encodage de ces paramètres avec le passphrase SHA-OUT dans le BO d'ogone

Remarque: Aucune opération n'est exécutée sur la carte au cours de la première étape. Le système d'Ogone opère uniquement une validation de format de base, et ne peut pas garantir que la carte est encore valide ou que le compte associé dispose de fonds suffisants pour réaliser l'opération.

Mais c'est quoi exactement le SHASIGN ?

L'utilisation de SHASIGN permet la sécurisation des données et évite la falsification des données. Un système de hashage de données est obligatoire quand on parle d'Alias Gateway. C'est pour valider l'intégrité des données. Ogone exige que toutes les demandes soient accompagnées d'une signature SHA calculé à partir des données postées et un passpahrase configuré dans le BO d'Ogone, appelé SHA-IN. C'est un genre de mot de passe, à insérer lors de l'hashage des informations.

Example de hashage de données :

ACCEPTURL=http://www.pspshop.com/accept.html
EXCEPTIONURL=http://www.pspshop.com/exception.html
PSPID=monpspid
BRAND=Mastercard
Mon clé secret SHA-IN = MonSecrettest124!?

Donc la chaine à hasher est

ACCEPTURL=http://www.pspshop.com/accept.htmlMonSecrettest124!?BRAND=MastercardMonSecrettest124!?EXCEPTIONURL=http://www.pspshop.com/exception.htmlMonSecrettest124!?PSPID=monpspidMonSecrettest124!?

Remarques :

  • Tous les noms de paramètres doivent être en MAJUSCULES
  • Tous les paramètres doivent être classés en ordre alphabétique
  • Les paramètres qui n'ont pas de valeur ne doivent PAS être inclus dans la chaîne à hasher
  • Une vérification est aussi jugée nécessaire du côté commerçant ( pour cela on utilise le clé SHA-OUT en BO )

Voici un example de code php pour la création d'un shasign :

function ogone_hash_parameters_in($algorithm = 'sha1', $parameters = array(), $secretkey = 'monphrasesecretein') {	 
  $str = '';
  $param = array();

  /* On s'assure que toutes les clés sont en majuscules et rangées par ordre alphabétique*/
  if ( !empty($parameters) ) {
    foreach ($parameters as $i => $j) {	 
      $param[strtoupper($i)] = $j;	 
    }
  }

  /* Trier par ordre alphabetique */
  ksort($param);
  if ( !empty($param) ) {
    foreach($param as $i=> $j) {
      $str .= $i. '=' . $j. $secretkey;		
    }
  }

  /* Encoder un utf8 */
  $str = utf8_encode ($str);
  return call_user_func($algorithm, $str);	 
}

Deuxième étape : Directlink (Nouveau paiement)

Enfin, on passe au paiement ! C'est la phase de création de la commande, le programme du marchand interagit directement avec l'API d'Ogone à distance sans intervention humaine.

L'URL utilisé pour cette étape est :

   TEST : https://secure.ogone.com/ncol/test/orderdirect.asp
   PROD : https://secure.ogone.com/ncol/prod/orderdirect.asp

Si aucune erreur n'est retournée de la précédente étape, le processus continu sur l'étape de paiement. Un autre formulaire est donc à envoyer à Ogone, composé de plusieurs paramètres, présenté sous forme de page de confirmation avec des input hidden. Ogone retourne le résultat de paiement sous forme de fichier XML.

Voici la liste des paramètres à envoyer à Ogone pour cette étape (seulement les paramètres obligatoires qui sont listés en-dessous, d'autre paramètre sont possible mais suivant le besoin du comerçant):

  • AMOUNT : totale à payer
  • PSPID
  • OPERATION
  • CURRENCY
  • ORDERID : Le numéro de commande obtenu de l'appel précedent
  • PSWD  : Mot de passe de l'utilisateur API
  • USERID : Utilisateur API créé en BO Ogone
  • ALIAS : L'alias obtenu de l'appel alias gateway
  • SHASIGN : Créé à partir de ces paramètres et la clé secrète en BO Ogone

Quand on valide le formulaire, si aucune erreur n'est retournée, la commande est créée en Ogone et en base de drupal, avec l'utilisation des modules Ogone et Payment, avec un statut 'Activé', en attente de validation manuelle de la part d'un administrateur du commerçant.

Configuration nécesaire d'Ogone et de Drupal

Drupal : Ajout des méthodes de paiement ( configuration carte de crédit, sha-in, sha-out, currency ).
Ogone :

  • Configuration des pays de la carte autorisé (configuration par type de la carte).
  • Configuration des utilisateurs (création d'un utilisateur API).
  • Configuration des IP autorisé lors de la demande à Ogone.
  • Configuration des adresses mail sur les avis de paiement.
  • Configuration des clés secrètes (type de l'encodage, sha-in et sha-out).

Outil d'implémentation

  • Drupal 7 : module Ogone et payment
  • Ogone

Laisser un commentaire

Votre adresse de messagerie ne sera pas publiée. Les champs obligatoires sont indiqués avec *

Captcha *

Ce site utilise Akismet pour réduire les indésirables. En savoir plus sur comment les données de vos commentaires sont utilisées.