osCommerce France : Accueil Forum Portail osCommerce France Réponses aux questions Foire aux contributions

Bienvenue invité ( Connexion | Inscription )

 
Reply to this topicStart new topic
> bugs entre paypal IPN et Atos
bigos
posté 11 Apr 2009, 09:38
Message #1


Ceinture orange OSC
Icône de groupe

Groupe : Membres
Messages : 203
Inscrit : 7-April 06
Membre no 9828



Depuis que j'ai installé la contribution de paiement de Pericles
http://www.oscommerce-fr.info/forum/index....owtopic=6938.Le paiement en paypal est ok mais j'ai pas de commande dans l'admin d'OS Commerce.
En gros la table orders_total n'est pas mise à jour alors que la table orders est bien mise à jour
Du coup dans l'admin de'oscommerce j'ai pas le montant total de la commande avec les frais de port
le fichier en cause est checkout_confirmation.php .
Car en remettant checkout_confirmation.php avant l'install de la contribution Atos .Ca remarche .
j'ai mis en rouge les modifications qui sont à l'origine du bug suite à l'install de Atos
Si vous avez une idée ca m'aiderait vraiment
merci d'avance
[code supprimé]
je pense que c'est le tuto de Pericles qui est en cause
Citation
A la ligne 324, remplacer la ligne

echo tep_image_submit('button_confirm_order.gif', IMAGE_BUTTON_CONFIRM_ORDER) . '</form>' . "\n";

par

if (isset($$payment->form_submit)) {
$form_submit = $$payment->form_submit;
} else {
$form_submit = tep_image_submit('button_confirm_order.gif', IMAGE_BUTTON_CONFIRM_ORDER);
}

echo $form_submit . '</form>' . "\n";

A la ligne 249, remplacer les lignes

if (is_array($payment_modules->modules))
$confirmation = $payment_modules->confirmation();

par

if (is_array($payment_modules->modules)) {
if ($confirmation) {

A la ligne 87, remplacer les lignes

$breadcrumb->add(NAVBAR_TITLE_1, tep_href_link(FILENAME_CHECKOUT_SHIPPING, '', 'SSL'));
$breadcrumb->add(NAVBAR_TITLE_2);

par

$breadcrumb->add(NAVBAR_TITLE_1, tep_href_link(FILENAME_CHECKOUT_SHIPPING, '', 'SSL'));
$breadcrumb->add(NAVBAR_TITLE_2);

if (is_array($payment_modules->modules))
$confirmation = $payment_modules->confirmation();


Ce message a été modifié par bigos - 12 Apr 2009, 11:50.
Raison de l'édition : [code supprimé] trop long et non mis en forme
Go to the top of the page
 
Havock
posté 10 Jun 2013, 16:28
Message #2


Ceinture bleue OSC
Icône de groupe

Groupe : Membres
Messages : 912
Inscrit : 4-February 04
Membre no 1926



Bonjour,

Je me permet de remonter le sujet car je suis confronté au même problème.

Quelqu'un a-t'il trouvé la correction ?



--------------------
L'indispensable est en cours de traitement,
L'urgent sera traité demain,
Le normal sera traité plus tard,
Le reste on vera ...
En conclusion : les journées sont trop courtes.
Utilisateur de MS2.2 Max 1.5 - OSC-Affiliate 1.09 - Admin With Access Levels 2.1 - Meta Tag Controller/ Generator - Credit/Gift Voucher/Coupons 5.05 - Download Controller v5.3 - X-Sell MS2 - WYSIWYG HTML Editor for Admin 1.7 - Dynamic Mo Pics - Loginbox Best - Order logging before payment processing - User Tracking - Faster Page Loads, Less DB queries - Plus plein de modifs perso :-)
Go to the top of the page
 
FoxP2
posté 10 Jun 2013, 17:03
Message #3


Ceinture marron OSC
Icône de groupe

Groupe : Membres
Messages : 1665
Inscrit : 3-June 09
Membre no 25501



sans doute des conflits dans les conditionnelles if else elseif ... vive la programmation procédurale !
bref, comparateur de fichiers pour voir où les instructions se chevauchent.
Go to the top of the page
 
Havock
posté 10 Jun 2013, 18:12
Message #4


Ceinture bleue OSC
Icône de groupe

Groupe : Membres
Messages : 912
Inscrit : 4-February 04
Membre no 1926



Ce que je ne capte pas c'est que seule les infos de la table orders_total ne sont pas enregistrées.

Les tables orders sont mises à jours via la fonction confirmation de paypal_ipn.php

On met à jour la table orders (et on récupère un valeur pour $insert_id) et juste après on traite la table orders_total

Code
for ($i=0, $n=sizeof($order_totals); $i<$n; $i++) {
                $sql_data_array = array('orders_id' => $insert_id,
                                    'title' => $order_totals[$i]['title'],
                                    'text' => $order_totals[$i]['text'],
                                    'value' => $order_totals[$i]['value'],
                                    'class' => $order_totals[$i]['code'],
                                    'sort_order' => $order_totals[$i]['sort_order']);

                tep_db_perform(TABLE_ORDERS_TOTAL, $sql_data_array);
            }


L'explication logique serait que la boucle ne se fasse pas ; donc que l'array $order_totals ne soit pas défini.

$order_totals est défini dans la fonction process_button de paypal_ipn.php

Code
$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);
                        }
                    }
                }
            }
        }



C'est probablement la condition :

Code
if (is_array($order_total_modules->modules)) {


qui n'est plus remplie ; mais je ne vois pas en quoi les modifs faites sur checkout_confirmation interviennent


--------------------
L'indispensable est en cours de traitement,
L'urgent sera traité demain,
Le normal sera traité plus tard,
Le reste on vera ...
En conclusion : les journées sont trop courtes.
Utilisateur de MS2.2 Max 1.5 - OSC-Affiliate 1.09 - Admin With Access Levels 2.1 - Meta Tag Controller/ Generator - Credit/Gift Voucher/Coupons 5.05 - Download Controller v5.3 - X-Sell MS2 - WYSIWYG HTML Editor for Admin 1.7 - Dynamic Mo Pics - Loginbox Best - Order logging before payment processing - User Tracking - Faster Page Loads, Less DB queries - Plus plein de modifs perso :-)
Go to the top of the page
 
FoxP2
posté 11 Jun 2013, 06:38
Message #5


Ceinture marron OSC
Icône de groupe

Groupe : Membres
Messages : 1665
Inscrit : 3-June 09
Membre no 25501



sans aucune certitude, mais ne manquerait il pas quelque part la globale $order_totals dans une fonction ?
Go to the top of the page
 
Havock
posté 11 Jun 2013, 17:55
Message #6


Ceinture bleue OSC
Icône de groupe

Groupe : Membres
Messages : 912
Inscrit : 4-February 04
Membre no 1926



Pour l'instant je n'ai pas trouvé oû $order_totals serait absente. huh.gif

Paypal_IPN marche sans soucis sans les modifs faites sur checkout_confirmation, donc logiquement rien ne manque blink.gif blink.gif

Et je ne vois pas comment les modifs faites sur checkout_confirmation peuvent provoquer ce genre de soucis wacko.gif wacko.gif wacko.gif


--------------------
L'indispensable est en cours de traitement,
L'urgent sera traité demain,
Le normal sera traité plus tard,
Le reste on vera ...
En conclusion : les journées sont trop courtes.
Utilisateur de MS2.2 Max 1.5 - OSC-Affiliate 1.09 - Admin With Access Levels 2.1 - Meta Tag Controller/ Generator - Credit/Gift Voucher/Coupons 5.05 - Download Controller v5.3 - X-Sell MS2 - WYSIWYG HTML Editor for Admin 1.7 - Dynamic Mo Pics - Loginbox Best - Order logging before payment processing - User Tracking - Faster Page Loads, Less DB queries - Plus plein de modifs perso :-)
Go to the top of the page
 
Havock
posté 12 Jun 2013, 15:05
Message #7


Ceinture bleue OSC
Icône de groupe

Groupe : Membres
Messages : 912
Inscrit : 4-February 04
Membre no 1926



Bon je n'ai pas encore compris le pourquoi de la chose, mais si je ne fais pas la manip suivante

Code
A la ligne 249, remplacer les lignes

if (is_array($payment_modules->modules))
$confirmation = $payment_modules->confirmation();

par

if (is_array($payment_modules->modules)) {
if ($confirmation) {

A la ligne 87, remplacer les lignes

$breadcrumb->add(NAVBAR_TITLE_1, tep_href_link(FILENAME_CHECKOUT_SHIPPING, '', 'SSL'));
$breadcrumb->add(NAVBAR_TITLE_2);

par

$breadcrumb->add(NAVBAR_TITLE_1, tep_href_link(FILENAME_CHECKOUT_SHIPPING, '', 'SSL'));
$breadcrumb->add(NAVBAR_TITLE_2);

if (is_array($payment_modules->modules))
$confirmation = $payment_modules->confirmation();


Tout semble fonctionner sans problème atos, paypal etc ... smile.gif

C'est donc l'ordre des instructions qui pose problème.


--------------------
L'indispensable est en cours de traitement,
L'urgent sera traité demain,
Le normal sera traité plus tard,
Le reste on vera ...
En conclusion : les journées sont trop courtes.
Utilisateur de MS2.2 Max 1.5 - OSC-Affiliate 1.09 - Admin With Access Levels 2.1 - Meta Tag Controller/ Generator - Credit/Gift Voucher/Coupons 5.05 - Download Controller v5.3 - X-Sell MS2 - WYSIWYG HTML Editor for Admin 1.7 - Dynamic Mo Pics - Loginbox Best - Order logging before payment processing - User Tracking - Faster Page Loads, Less DB queries - Plus plein de modifs perso :-)
Go to the top of the page
 
Havock
posté 13 Jun 2013, 13:57
Message #8


Ceinture bleue OSC
Icône de groupe

Groupe : Membres
Messages : 912
Inscrit : 4-February 04
Membre no 1926



La solution semble être de déplacer la commande

Code
if (MODULE_ORDER_TOTAL_INSTALLED) {
$order_total_modules->process();
}


avant

Code
if (is_array($payment_modules->modules))
$confirmation = $payment_modules->confirmation();


Avec cette manip tout fonctionne ; mais je ne comprend pas la logique de la chose. blink.gif blink.gif

Si quelqu'un pouvait m'expliquer je serais moins bête biggrin.gif smile.gif

Merci


--------------------
L'indispensable est en cours de traitement,
L'urgent sera traité demain,
Le normal sera traité plus tard,
Le reste on vera ...
En conclusion : les journées sont trop courtes.
Utilisateur de MS2.2 Max 1.5 - OSC-Affiliate 1.09 - Admin With Access Levels 2.1 - Meta Tag Controller/ Generator - Credit/Gift Voucher/Coupons 5.05 - Download Controller v5.3 - X-Sell MS2 - WYSIWYG HTML Editor for Admin 1.7 - Dynamic Mo Pics - Loginbox Best - Order logging before payment processing - User Tracking - Faster Page Loads, Less DB queries - Plus plein de modifs perso :-)
Go to the top of the page
 

Reply to this topicStart new topic
1 utilisateur(s) sur ce sujet (1 invité(s) et 0 utilisateur(s) anonyme(s))
0 membre(s) :

 



RSS Version bas débit Nous sommes le : 28th March 2024 - 14:57
Ce site est déclaré auprès de la commision Nationale
de l'Informatique et des Libertés (déclaration n°: 1043896)