Accueil du site > Wiki > osCSS 2.xxx > Developpeurs > Tuto > Gestion des paiement, interfacage avec solution de paiement

Gestion des paiement, interfacage avec solution de paiement

samedi 30 octobre 2010, par oscim

Ce Tuto, à pour but de vous aider a mettre en oeuvre les solutions de paiement avec l’osCSS 2.

Les dernières évolutions du moteur apportent quelques modifications notables quant au process des validations de commandes.

Approche logique

Le moteur d’osCSS, lors du processus de commande, enregistre une pre-commande sur la page checkout_confirmation ; Cette pre-commande, si elle n’est pas validé, sera visible dans les pages de l’admin, dans la section commande abandonné.

cette pre commande, si l’étape et validé, sera transformé en commande, et la pre-commande supprimé.

Dans le cas d’un paiement par cheque, le visiteur ne quitte pas la boutique, dans ce cas, la page checkout_process ce chargera de la validation de commande. Dans le cas d’un paiement bancaire, ou autre solution qui impose à l’utilisateur de quitter temporairement la boutique, la commande sera validé par la page de réponse de cette solution. (en general, response.php). Si l’utilisateur, revient ensuite sur la boutique, la page checkout_process n’effectuera aucune action.

Approche fonctionnelle

la class checkout_process prend en charge les enregistrement de commande, de pre-commande, de validation, de conversion precommande en commande. Elle apporte en plus la génération de clef de securité, et d’id unique a fournir au solution de paiement.

cette class et instancié dans toutes les page devant gerer l’enregistrement ou la modification des commande dans l’espace public.

Approche technique

méthode pour générer, et valider une chaine de securité garantissant l’ensemble des infos.

function generat_string() Cette methode genere la chaine string, qui sera controlé au retour. Il s’agit d’une méthode static .

Ex d’appel

 checkout_process::generat_string();

Ex d’utilisation avec paypal, elle sera transmise dans la variable custom

$parameters['custom'] = checkout_process::generat_string();

function check_string_return() Assure le control de la chaine, renvoi false ou l’id de la precommande Cette méthode est static, elle sera contrôlé sur la page response.php.

Ex d’appel

checkout_process::check_string_return()

Ex d’utilisation avec paypal, elle sera récupéré dans la variable custom

$pre_order_id=(isset($_POST['custom'])) ? checkout_process::check_string_return($_POST['custom']) : false ;

function generat_uniq_id() Cette méthode static, permet de générer un numéro d’ordre unique

checkout_process::generat_uniq_id()

function preventDuplicate()

Cette fonction, est celle qui assure soit, l’enregistrement de la commande, soit la transformation d’une pre-commande en commande. Elle prend en argument un tableau.

Ce tableau , si il contient le n° de pre-commande, vérifiera qu’aucune commande n’existe avec cette pre-commande, et que la pre-commande existe. Dans le cas des 2 conditions réunis, elle transformera la pre-commande en commande.

Si le tableau contient l’object order, et celui de order_total, alors seul une commande sera enregistré, sans référence a une pre-commande.

Usage

$aca_modules = new checkout_process();
    $res=$aca_modules->preventDuplicate(array('pre_order_id'=>$pre_order_id));

function update_status_order() Fonction qui assure la modification du statut de la commande. Le nouveau statut est passé en argument,

$aca_modules->update_status_order($order_status_id);

function insert_status_history() Ce charge d’ajouter une entrée dans l’historique de cette commande.

Ex avec paypal

        $sql_data_array = array('orders_status_id' => $order_status_id,
                                'customer_notified' => $customer_notified,
                                'comments' => 'PayPal IPN Verified [' . $comment_status . ']');
        $aca_modules->insert_status_history($sql_data_array);