Commande non prise en compte après paiement

Archive

Messagepar max_fly » Mer 06 Juin 2007, 12:30

Bonjour,
J'utilise le module ATOS v6 (BNP Mercanet) qui a l'air de bien marcher, et me valide mes paiements.
Mais quand je reviens sur la boutique, le panier ne se vide pas, la commande n'est pas enregistré dans la base et aucun mail de confirmation n'est envoyé...
auriez-vous une idée sur l'origine du pb ??
merci d'avance pour votre aide !
Max
max_fly
Membre inactif
 
Messages: 2
Inscription: Mer 06 Juin 2007, 12:25

Messagepar max_fly » Mer 06 Juin 2007, 12:39

Après des heures de recherches, c'est juste après avoir fait ce post que je trouve ma solution !! :P

Pour info, si ça arrive à qqn d'autre, il fallait mettre sur FALSE l'utilisation de force des cookies (Admin > Configuration > Session)

Si vous avez des problèmes similaires, je vous conseille de lire attentivement ce post :
http://www.oscommerce-fr.info/forum/index.php?showtopic=6938&st=0&p=150089&#entry150089
A+
Dernière édition par max_fly le Mer 06 Juin 2007, 12:43, édité 1 fois.
max_fly
Membre inactif
 
Messages: 2
Inscription: Mer 06 Juin 2007, 12:25

Messagepar meth » Lun 01 Mar 2010, 18:10

J'ai le même problème que tu avais, mais même avec ta solution ça ne marche pas, j'utilise paybox.
meth
Membre très actif
 
Messages: 124
Inscription: Mar 26 Jan 2010, 22:36

Messagepar oscim » Lun 01 Mar 2010, 22:01

Bonjour, dans le cas de paybox, Peut être le pbs vient il de l'utilisation des cookies.

Cela dis, ne l'utilisant pas je ne peut en dire beaucoup plus sans des detail suppl.

De plus il s'agit peut être d'un nouveau post ?

Enfin le modules de paiement externe, cad lors de la validation, on quitte le shop, on gere le paiement et ensuite on revient vers le shop.
Cela dis, en general 2 mecanismes sont en oeuvre le "ipn" qui ce charge de faire communiquer les paiments sans revenir sur le shop, pour le client, ou la procedure ou le client revient sur le shop.

De plus, SSL ou pas?

Enfin, donc quelques elements supp pour t'aider.
Pour un web au normes du W3C, pour un web plus propre !

- Download osCSS Toutes versions
- stable osCSS 2.1.0 (help|info|new dev) Official help|wiki|Tuto for osCSS 2 | doc doxygen
- Utiliser le tracker pour suivre les évolutions et développements
- Inscrivez vos sites sur oscss pour présenter vos réalisations
Avatar de l’utilisateur
oscim
Site Admin
 
Messages: 1643
Inscription: Mar 25 Sep 2007, 11:33

Messagepar meth » Mar 02 Mar 2010, 12:37

ALors il y a bien un retour sur le shop après le paiement. Normalement le retour se fait sur la page checkout_success.php et apparemment c'est la page checkout_process.php qui envoi le traitement de la commande, et c'est ainsi que la commande aparait dans l'admin.

Ensuite oui SSL
meth
Membre très actif
 
Messages: 124
Inscription: Mar 26 Jan 2010, 22:36

Messagepar oscim » Mar 02 Mar 2010, 13:08

La page process prend en charge les traitement en interne si les solution de paiement ne necessite pas des focntionnalité particluere.

Regarde les moduel de payement ipn_paypal, il est dans ce cas necessaire d'enregsitreter al commande, au click sur le bouton qui envoi vers ton module de paiement.

Dans ca cas, tu squiz la page process
Pour un web au normes du W3C, pour un web plus propre !

- Download osCSS Toutes versions
- stable osCSS 2.1.0 (help|info|new dev) Official help|wiki|Tuto for osCSS 2 | doc doxygen
- Utiliser le tracker pour suivre les évolutions et développements
- Inscrivez vos sites sur oscss pour présenter vos réalisations
Avatar de l’utilisateur
oscim
Site Admin
 
Messages: 1643
Inscription: Mar 25 Sep 2007, 11:33

Messagepar meth » Mar 02 Mar 2010, 13:48

ipm_paypal ? Paypal c'est la même chose j'imagine ?
meth
Membre très actif
 
Messages: 124
Inscription: Mar 26 Jan 2010, 22:36

Messagepar oscim » Mar 02 Mar 2010, 14:14

Pas tout a fait, justement , le module paypal ne fonctionne pas correctement a cause des même probleme dont tu parle .

Concretement, dans le moduel de paiement qu tu utilise, tu devrais avoir une fonction confirmation().

Ces cette derniere qui est censé enregistrer la commande. au click suivant , tu quitte le shop, et les elements present dans le formulaire (celui du bouton confirmer) sont destiné au service de paiement paybox


Ci-joint un extrait d'un module payal, pas tout a fait coherant vis à vis de ta vesrion, puisque les energsitrement des order passe par une class tiers.
Cependant le principe et la, tu enregsitre ta facture a ce moment

En general, tu ajoute un status de commande par ex; payapl en attente de paiement.
Code: Tout sélectionner
// extrait module ipn_paypal
    function confirmation() {
      global $cartID, $cart_PayPal_IPN_ID, $customer_id, $languages_id, $order, $order_total_modules, $coupon;

      require('includes/classes/checkout_process.php');
      $aca_modules = new checkout_process();

     if (array_key_exists('cartID', $_SESSION)) {

        if ($this->insert_order == true) {
          $order_totals = array();
          if (is_array($order_total_modules->modules)) {
            reset($order_total_modules->modules);
            while (list(, $value) = each($order_total_modules->modules)) {
              $class = substr($value, 0, strrpos($value, '.'));
              if ($GLOBALS[$class]->enabled) {
                for ($i=0, $n=sizeof($GLOBALS[$class]->output); $i<$n; $i++) {
                  if (tep_not_null($GLOBALS[$class]->output[$i]['title']) && tep_not_null($GLOBALS[$class]->output[$i]['text'])) {
                    $order_totals[] = array('code' => $GLOBALS[$class]->code,
                                            'title' => $GLOBALS[$class]->output[$i]['title'],
                                            'text' => $GLOBALS[$class]->output[$i]['text'],
                                            'value' => $GLOBALS[$class]->output[$i]['value'],
                                            'sort_order' => $GLOBALS[$class]->sort_order);
                  }
                }
              }
            }
          }

          $date_purchased=date("Y-m-d H:i:s");
          if ( isset($this->update_order) && $this->update_order ){

            /**
              Process class
            */
            $insert_id=$aca_modules->insert_order($customer_id, $order, 'orders_id = "' . (int)$this->order_id . '"');

          } else {
            tep_db_perform(TABLE_ORDERS, $sql_data_array);
            $cs_s=tep_db_query("select orders_id from " . TABLE_ORDERS . "  where customers_id='".$customer_id."' and date_purchased='".$date_purchased."'");
            $cs=tep_db_fetch_array($cs_s);
            $insert_id=$cs['orders_id'];

            $cart_PayPal_IPN_ID=$cartID . '-' . $insert_id;
            tep_session_register('cart_PayPal_IPN_ID');
          }

            /**
              Process class
            */
            $aca_modules->insert_order_total($order_totals);


            /**
              Process class
            */
            $customer_notification =$aca_modules->insert_status_history($order);


          /**
            Suvi gestion coupons
          */
//           if( tep_session_is_registered( 'coupon' ) && is_object( $order->coupon ) ) {
//             $sql_data_array = array( 'coupons_id' => $order->coupon->coupon['coupons_id'],
//                                     'orders_id' => $insert_id );
//             tep_db_perform( TABLE_DISCOUNT_COUPONS_TO_ORDERS, $sql_data_array );
// //             $sql_data_array = array( 'coupons_id' => $order->coupon->coupon['coupons_id'],
// //                                     'coupons_max_use' => 2 );
// //             tep_db_perform( TABLE_DISCOUNT_COUPONS, $sql_data_array );
//           }

            /**
              Before process module ACA
            */
            $aca_modules->in_process_order();


          for ($i=0, $n=sizeof($order->products); $i<$n; $i++) {

            $attributes_exist = '0';
            if (isset($order->products[$i]['attributes'])) {
              $attributes_exist = '1';
              for ($j=0, $n2=sizeof($order->products[$i]['attributes']); $j<$n2; $j++) {
                /**
                  Process class
                */
                $attributes_values=$aca_modules->load_db_attribut_product($i, $j, $order);
                /**
                  Process class
                */
                $aca_modules->insert_order_product_attribut($order_products_id,$attributes_values);

              }
            }
          }

          /**
            Before process module ACA
          */
          $aca_modules->in_process_products();

       } // EOF insert=true

      }// EOF cart

      $confirmation = array('title' => MODULE_PAYMENT_PAYPAL_IPN_TEXT_LAST_CONFIRM, 'fields' => array());
      return $confirmation;
    }
Pour un web au normes du W3C, pour un web plus propre !

- Download osCSS Toutes versions
- stable osCSS 2.1.0 (help|info|new dev) Official help|wiki|Tuto for osCSS 2 | doc doxygen
- Utiliser le tracker pour suivre les évolutions et développements
- Inscrivez vos sites sur oscss pour présenter vos réalisations
Avatar de l’utilisateur
oscim
Site Admin
 
Messages: 1643
Inscription: Mar 25 Sep 2007, 11:33

Messagepar meth » Mar 02 Mar 2010, 14:43

Dans le module paybox la fonction confirmation est celle la:

function confirmation() {
return false;
}

Donc je dois remplacer cette fonction par le code que tu m'as donné et l'adapté c'est cela ?
meth
Membre très actif
 
Messages: 124
Inscription: Mar 26 Jan 2010, 22:36

Messagepar oscim » Mar 02 Mar 2010, 15:54

En gros , oui, tu enregistre la commande a cette etape , de manière a ce que quand tu clik sur confirmation et que tu quitte la shop, ta command est déjà enregistré .

Pour le code que je t'ai fournis, en gros, oui, mais il s'agit de celui de la version oscss-2, donc, pas tout a fait.

globalement, il s'agit de reprendre le gros du traitement de la page process, pour qu'il est lieux dans la function.
Donc grosse repetion de code.

d'ou l'evolution dans la version 2, qui centralise ce traitement
Pour un web au normes du W3C, pour un web plus propre !

- Download osCSS Toutes versions
- stable osCSS 2.1.0 (help|info|new dev) Official help|wiki|Tuto for osCSS 2 | doc doxygen
- Utiliser le tracker pour suivre les évolutions et développements
- Inscrivez vos sites sur oscss pour présenter vos réalisations
Avatar de l’utilisateur
oscim
Site Admin
 
Messages: 1643
Inscription: Mar 25 Sep 2007, 11:33

Messagepar meth » Mar 02 Mar 2010, 19:35

J'ai essayé avec la fonction que tu m'a donnée, mais c'est la page checkout confirmation qui deconne maintenant..
J'ai essayé en mettant la page process dans la fonction confirmation mais pareil la page checkout confirmation deconne..

Je suis le seul à avoir ce problème ?
Je comprends pas, personne n'a installé un module de paiement carte de credit sur sa boutique ??
Tout le monde arrive donc sur la page checkout success apres le paiement, et la commande est bien prise en compte dans l'admin ??

SI ça vient de oscss tout le monde de avoir ce problème non ?
meth
Membre très actif
 
Messages: 124
Inscription: Mar 26 Jan 2010, 22:36

Messagepar oscim » Mar 02 Mar 2010, 21:04

meth a écrit:J'ai essayé avec la fonction que tu m'a donnée, mais c'est la page checkout confirmation qui deconne maintenant..
J'ai essayé en mettant la page process dans la fonction confirmation mais pareil la page checkout confirmation deconne..

SI ça vient de oscss tout le monde de avoir ce problème non ?

Les modules, particulièrement ce de paiement , sont divers , et fonction des besoins, et des moyens.

Non, il ne s'agit pas d'un pbrs specifique à oscss

D'autre part, je t'ai donné une methodologie et non pas une fonction à copier coller, j'ai insisté surle fait que le morceau de code fournis appartient à oscss2 et non pas oscss1.xx

Idem pour la page_process, il ne s'agit pas de faire un simple copier coller, les variables utilisé ne sont pas directement accessible a l'intérieur d'une methode d'une class.

Pour finir sur les module de paiement, il n'est pas rare de voire des intégrateur de shop confier ce travail tres particulier à des developpeurs ou specialistes.

L'inter-connexion entre des systeme n'est pas tout a fais aussi simple que la customisation d'un shop


Donc, la methode consiste donc à enregister les elements de la commande à l'etape confirmation.

Si tu recupere un module ipn_payal, tu auras une bonne base de travail.
Pour un web au normes du W3C, pour un web plus propre !

- Download osCSS Toutes versions
- stable osCSS 2.1.0 (help|info|new dev) Official help|wiki|Tuto for osCSS 2 | doc doxygen
- Utiliser le tracker pour suivre les évolutions et développements
- Inscrivez vos sites sur oscss pour présenter vos réalisations
Avatar de l’utilisateur
oscim
Site Admin
 
Messages: 1643
Inscription: Mar 25 Sep 2007, 11:33

Messagepar meth » Mar 02 Mar 2010, 21:17

Ok je vais recuperer le module inp paypal si je le trouve.

Merci pour ces infos, c cool
meth
Membre très actif
 
Messages: 124
Inscription: Mar 26 Jan 2010, 22:36

Messagepar oscim » Mar 02 Mar 2010, 23:11

pas de quoi , regarde les contrib oscommerce...

Bon courage
Pour un web au normes du W3C, pour un web plus propre !

- Download osCSS Toutes versions
- stable osCSS 2.1.0 (help|info|new dev) Official help|wiki|Tuto for osCSS 2 | doc doxygen
- Utiliser le tracker pour suivre les évolutions et développements
- Inscrivez vos sites sur oscss pour présenter vos réalisations
Avatar de l’utilisateur
oscim
Site Admin
 
Messages: 1643
Inscription: Mar 25 Sep 2007, 11:33

Messagepar oscim » Mer 03 Mar 2010, 18:30

J'avais oublié, mais il me semble que tes problemes ont déjà été resolu :
http://forums.oscss.org/viewtopic.php?id=1586
Pour un web au normes du W3C, pour un web plus propre !

- Download osCSS Toutes versions
- stable osCSS 2.1.0 (help|info|new dev) Official help|wiki|Tuto for osCSS 2 | doc doxygen
- Utiliser le tracker pour suivre les évolutions et développements
- Inscrivez vos sites sur oscss pour présenter vos réalisations
Avatar de l’utilisateur
oscim
Site Admin
 
Messages: 1643
Inscription: Mar 25 Sep 2007, 11:33


Retourner vers osCSS 1.1

 


  • Articles en relation
    Réponses
    Vus
    Dernier message

Qui est en ligne

Utilisateurs parcourant ce forum: Aucun utilisateur enregistré et 3 invités

cron