Problème installation SIPS d'atos: réponse automatique ne fonctionne pas

Réduire
X
 
  • Filtrer
  • Heure
  • Afficher
Tout effacer
nouveaux messages

  • Problème installation SIPS d'atos: réponse automatique ne fonctionne pas

    Bonjour,

    J'essais d'installer SIPS d'atos sur mon site avec virtuemart et je dois dire que je suis bien coincée, et ce pour plusieurs raisons.
    J'ai correctement installé SIPS d'alatak et j'ai aussi installé le kit que j'ai reçu de la banque. Mais le kit d'alatak ne me correspond pas vraiment car j'ai un kit d'abonnement. J'ai donc mis les mains dans le code afin de l'adapter. et la le cauchemar commence.

    *J'ai changé les champs à mettre dans la base de données, j'ai également changé le paramètre à envoyer .....
    Jusque là ça va. Dans l'url de la réponse automatique, pour sips abonnement c'est

    $parm .=" sub_automatic_response_url=" . JURI::base() . "index.php?option=com_virtuemart&view=pluginrespon se&task=pluginnotification&tmpl=component&pm=" . $order['details']['BT']->virtuemart_paymentmethod_id;


    Le gros souci c'est ça. La réponse automatique ne marche pas, j'ai une page blanche. De plus les champs ne s'enregistrent pas dans la base de données.

    J'ai trouvé une parade à ça néanmoins comme c'est tordu j'ai vraiment envie de faire "du code propre".

    Dans le kit d'alatak, dans la fonction qui récupère les données, j'ai ajouté du code afin de qu'en plus, les données soient stockés dans la base avec cette methode: même si le client ne clique pas sur le bouton "retour à la boutique", les données sont tout de même stockés dans la base.


    Ma question est : y'a t'il quelquechose à activer pour le "pluginnotification" fonctionne?

    et y'a t'il quelqu'un qui a mis en place l'abonnement d'atos ?

    Merci d'avance pour votre aide.

  • #2
    Re : Problème installation SIPS d'atos: réponse automatique ne fonctionne pas

    j'ai virtuemart 2.0.6 et Joomla 2.5.5 et je mon hébergeur c'est OVH

    Commentaire


    • #3
      Re : Problème installation SIPS d'atos: réponse automatique ne fonctionne pas

      regarde le tutoriel que j'ai rédigé sur atos: http://www.blog.manit4c.com/2009/12/...emiere-partie/

      et la faq aussi: http://www.blog.manit4c.com/2011/04/...ent-atos-sips/

      pour ton problème, je te conseil déjà de faire marcher la réponse manuelle. Si tu y arrive et que malgré tout tu n'arrive pas a faire marcher la réponse auto, la petite astuce est d'utiliser le fichier de la réponse auto en manuel, tu pourra checker les erreurs. une fois debugguer tu le repasse en auto.

      fait également un echo de $parm pour vérifier que tout est correcte et qu'il n'y a pas d'espace dedans.
      Dernière édition par maniT4c à 29/06/2012, 07h07
      Je suis webmaster indépendant et j'ai un petit blog perso qui traite de joomla et de programmation en général. Vous pouvez suivre mon actu sur mon twitter.

      Commentaire


      • #4
        Re : Problème installation SIPS d'atos: réponse automatique ne fonctionne pas

        Envoyé par maniT4c Voir le message
        regarde le tutoriel que j'ai rédigé sur atos: http://www.blog.manit4c.com/2009/12/...emiere-partie/

        et la faq aussi: http://www.blog.manit4c.com/2011/04/...ent-atos-sips/

        pour ton problème, je te conseil déjà de faire marcher la réponse manuelle. Si tu y arrive et que malgré tout tu n'arrive pas a faire marcher la réponse auto, la petite astuce est d'utiliser le fichier de la réponse auto en manuel, tu pourra checker les erreurs. une fois debugguer tu le repasse en auto.

        fait également un echo de $parm pour vérifier que tout est correcte et qu'il n'y a pas d'espace dedans.

        Salut!
        J'ai déjà fais tout cela et j'ai regardé ton tutoriel(bien expliqué d'ailleurs ).

        La réponse manuelle marche très bien. En fait, dans la nouvelle version de virtuemart, il n'y a pas de fichiers differents selon le type de réponse, je m'explique:

        Dans l'ancienne version (1.*), il y a avait des fichiers tels que autoreponse.php (ou quellequechose comme ça). Dans la nouvelle, se sont des fonctions. et la fonction qui s'occupe de la réponse automatique est celle ci:


        /*
        * plgVmOnPaymentOfflineNotification() - This event is fired after Offline Payment. It can be used to validate the payment data as entered by the user.
        * Return:
        * Plugins that were not selected must return null, otherwise True of False must be returned indicating Success or Failure.
        * Parameters:
        * None
        * @author Valerie Isaksen
        */

        function plgVmOnPaymentNotification() {
        if (!class_exists('VirtueMartModelOrders'))
        require( JPATH_VM_ADMINISTRATOR . DS . 'models' . DS . 'orders.php' );
        $virtuemart_paymentmethod_id = JRequest::getInt('pm', 0);

        $this->_debug=true;
        if (!($method = $this->getVmPluginMethod($virtuemart_paymentmethod_id) )) {
        return null; // Another method was selected, do nothing
        }
        //TEST!
        foreach ($method as $key=>$value) {
        echo "$key============>$value<br/>";
        }
        //FIN TEST
        if (!$this->selectedThisElement($method->payment_element)) {
        return false;
        }

        if (!($sips_response = $this->_getPaymentSipsResponse($method))) {
        return null;
        }
        //Test
        print_r($sips_response);
        //
        if ($sips_response['code'] != 0) {
        $this->logInfo('plgVmOnPaymentNotification code' . $sips_response['code'], 'message');
        return false;
        }
        $vendorId = 1;
        $this->_debug = $method->debug;
        $this->logInfo('plgVmOnPaymentNotification order_number' . $sips_response['order_id'], 'message');

        // get all know columns of the table
        $db = JFactory::getDBO();
        $query = 'SHOW COLUMNS FROM `' . $this->_tablename . '` ';
        $db->setQuery($query);
        $columns = $db->loadResultArray(0);

        $virtuemart_order_id = VirtueMartModelOrders::getOrderIdByOrderNumber($si ps_response['order_id']);

        if (!class_exists('VirtueMartModelOrders'))
        require( JPATH_VM_ADMINISTRATOR . DS . 'models' . DS . 'orders.php' );

        foreach ($sips_response as $key => $value) {
        $post_msg .= $key . "=" . $value . "<br />";
        $table_key = 'sips_payment_' . $key;
        if (in_array($table_key, $columns)) {
        $response_fields[$table_key] = $value;
        $this->logInfo('Notification, sentOrderConfirmedEmail $sips_response' . $table_key . ' ' . $value, 'message');
        }
        }
        $response_fields['payment_name'] = $this->renderPluginName($method);
        $response_fields['sipsresponse_raw'] = JRequest::getVar('DATA', '', 'post');
        $return_context = $sips_response['return_context'];
        $response_fields['order_number'] = $order_number;
        $response_fields['virtuemart_order_id'] = $virtuemart_order_id;

        $this->storePSPluginInternalData($response_fields, 'virtuemart_order_id', true);
        $order = array();
        $modelOrder = VmModel::getModel('orders');
        if ($sips_response['response_code'] == 0) {
        $new_status = $method->payment_confirmed_order_state;
        $order['order_status'] = $new_status;
        $order['customer_notified'] = 1;
        $order['comments'] = JText::sprintf('VMPAYMENT_ALATAK_SIPS_PAYMENT_STAT US_CONFIRMED', $order_number);
        $modelOrder->updateStatusForOneOrder($virtuemart_order_id, $order, true);
        $this->emptyCart($return_context);
        } else {
        $this->handlePaymentUserCancel($virtuemart_order_id);
        }


        $this->logInfo('Notification, sentOrderConfirmedEmail on=' . $order_number . ' new status' . $new_status . ' rrc=' . $return_context, 'message');



        die();
        }


        le code qui est entre "//TEST" et "//FIN TEST" c'est moi qui les a ajouté pour tester.

        lorsque j'appelle cette fonction en réponse manuelle elle marche. Mais en réponse automatique j'ai rien. c'est pour ça que je me suis demandé est ce que dans cette nouvelle version il ne faut pas "l'activer" (d'après ce que j'ai compris du commentaire d'alatak à ce sujet) .

        honnetement j'ai tout essayé et je n'ai plus d'idées

        Commentaire


        • #5
          Re : Problème installation SIPS d'atos: réponse automatique ne fonctionne pas

          Ah lala... virtuemart je trouve le code vraiment ... bof. Ca fait longtemps que j'ai pas bosser avec et je sais pourquoi
          Bon il faut que tu arrive à isoler le problème.
          Tu devrais te créer un fichier de log que tu nomme comme tu veux "debug.txt" par exemple.
          Et à chaque étape de ton code tu écrit "etape1, etape2, etc.." dans ton fichier.
          Déjà dans un premier temps lance la fonction avec l'appel manuel et tu devrais avoir dans ton fichier log toute les étapes.
          Ensuite tu lance la fonction en auto et tu vois à qu'elle étape sa plante.
          Je te conseille d'écrire une première étape en tout premier dans ton fonction pour déjà voir si en auto ta fonction est belle et bien appelée.

          Dans ton fichier debug.txt tu peux aussi faire un print_r du POST qui est envoyé
          Je suis webmaster indépendant et j'ai un petit blog perso qui traite de joomla et de programmation en général. Vous pouvez suivre mon actu sur mon twitter.

          Commentaire


          • #6
            Re : Problème installation SIPS d'atos: réponse automatique ne fonctionne pas

            Envoyé par maniT4c Voir le message
            Ah lala... virtuemart je trouve le code vraiment ... bof. Ca fait longtemps que j'ai pas bosser avec et je sais pourquoi
            Bon il faut que tu arrive à isoler le problème.
            Tu devrais te créer un fichier de log que tu nomme comme tu veux "debug.txt" par exemple.
            Et à chaque étape de ton code tu écrit "etape1, etape2, etc.." dans ton fichier.
            Déjà dans un premier temps lance la fonction avec l'appel manuel et tu devrais avoir dans ton fichier log toute les étapes.
            Ensuite tu lance la fonction en auto et tu vois à qu'elle étape sa plante.
            Je te conseille d'écrire une première étape en tout premier dans ton fonction pour déjà voir si en auto ta fonction est belle et bien appelée.

            Dans ton fichier debug.txt tu peux aussi faire un print_r du POST qui est envoyé
            J'ai fais ça. J'ai lancé la fonction avec l'appel manuel et j'ai mis les infos dans un fichier log. La fonction de déroule normalement et tout est exécuté. Donc je ne pense pas que le probleme vient du script de la fonction.

            Soit il vient de chez atos, soit le plugin ne s'active pas. J'avoue que je suis perdu.

            Commentaire


            • #7
              Re : Problème installation SIPS d'atos: réponse automatique ne fonctionne pas

              Oui mais si tu lance en auto est ce que tu retrouve tout ce que tu attends dans ton fichier log ?
              Je suis webmaster indépendant et j'ai un petit blog perso qui traite de joomla et de programmation en général. Vous pouvez suivre mon actu sur mon twitter.

              Commentaire


              • #8
                Re : Problème installation SIPS d'atos: réponse automatique ne fonctionne pas

                Envoyé par maniT4c Voir le message
                Oui mais si tu lance en auto est ce que tu retrouve tout ce que tu attends dans ton fichier log ?

                En testant avec l'url du retour manuelle, je retrouve tout. j'ai fais un affichage de toute les données reçu et je reçois tout.
                Parcoontre l'url de la réponse automatique n'est même pas appelée.

                Voici comment j'ai renseignée les url dans les paramètres a envoyer dans la requête:

                $parm .=" sub_normal_return_url=" . JURI::base() . "index.php?option=com_virtuemart&view=pluginrespon se&task=pluginresponsereceived&pm=" . $order['details']['BT']->virtuemart_paymentmethod_id . '&on=' . $order['details']['BT']->order_number;


                $parm .=" sub_cancel_return_url=" . JURI::base() . "index.php?option=com_virtuemart&view=pluginrespon se&task=pluginUserPaymentCancel&pm=" . $order['details']['BT']->virtuemart_paymentmethod_id . '&on=' . $order['details']['BT']->order_number;

                $parm .=" sub_automatic_response_url=" . JURI::base() . "index.php?option=com_virtuemart&view=pluginrespon se&task=pluginnotification&tmpl=component&pm=" . $order['details']['BT']->virtuemart_paymentmethod_id;


                sub_automatic_response_url n'est jamais appelée c'est sub_normal_return_url qui appelée.

                Commentaire


                • #9
                  Re : Problème installation SIPS d'atos: réponse automatique ne fonctionne pas

                  Après de nombreuses tentatives, la réponse automatique a fini par marcher
                  Merci maniT4c pour ton ide et tes conseils

                  Commentaire


                  • #10
                    Re : Problème installation SIPS d'atos: réponse automatique ne fonctionne pas

                    Envoyé par roseOops Voir le message
                    Après de nombreuses tentatives, la réponse automatique a fini par marcher
                    Merci maniT4c pour ton ide et tes conseils
                    Serait il possible de savoir comment tu as réussit à résoudre ton problème ?
                    LeBoiiT
                    Portfolio http://www.axycom.fr

                    Commentaire

                    Annonce

                    Réduire
                    Aucune annonce pour le moment.

                    Partenaire de l'association

                    Réduire

                    Hébergeur Web PlanetHoster
                    Travaille ...
                    X