Jump to content

[Résolu] Y a t'il un module Ogone qui fonctionne avec la 1.4 ?


flysurfing

Recommended Posts

Bonjour a vous tous,

Je souhaiterais savoir si il y a un module Ogone compatible avec la 1.4 de Prestashop.

Le module étant livre de base ne fonctionnant pas resultant en un echec de la transaction:
unknown order/1/s/

Merci pour votre réponse.

Cordialement

Link to comment
Share on other sites

As tu bien configuré Ogone des deux cotés (sur ton site ET dans les informations technique chez ogone) ?

ce code d'erreur (unknown order/1/s ) indique que la phrase secrète sha1 n'est pas la même des deux cotés.

Link to comment
Share on other sites

En fait il suffit de mettre le mot "paramplus" en majuscule à la ligne 161 du fichier modules/ogone/ogone.php, ce qui donne:

$ogoneParams['PARAMPLUS'] = 'secure_key='.$params['cart']->secure_key;

Et c'est tout ? Oui c'est tout !

Link to comment
Share on other sites

  • 2 months later...

Bonjour,

Quelqu'un sait si les captures d'écran servies avec le module, dans l'admin sont valables ?

Je continue à rencontrer le même souci (unknown order/1/s/), malgré le passage à PARAMPLUS dans ogone.php, et je me dit qu'il y a peut-être un souci au niveau des infos que je renseigne dans le compte TEST d'Ogone...

Merci

Link to comment
Share on other sites

Je pense aussi robwill, comme je disais plus haut le "unknow order/1/s" vient de la construction du hash que tu envoies à ogone "SHA1". Cela vient donc soit de la "phrase secrète" mal écrite (un espace en trop suffit) soit chez ogone soit sur ton site, soit le nom du compte.

Exemple concret :
nom du compte = Robwill
id_order = 2,
currency = EUR,
total = 300,
phrase sha1 = "Y'a des cigales dans la fourmilliere et vous n'pouvez rien y faire !"

et sha1 = le hash est construit en concaténant toutes les informations ci dessus (et quelques autres) dans un ordre précis + en utilisant la fonction sha1().

Tous ces paramètres (+ le hash) sont envoyés au serveur ogone qui recalcule le paramètre "sha1" (il reçoit toutes les données en clair sauf la phrase secrète, mais il l'a déjà), et si ça ne correspond pas alors l'erreur s'affiche "unknown order/1/s".

si c'est en mode test, les infos sont envoyés à l'url d'ogone avec /test/ au lieu de /prod/ , et je crois qu'une des nouvelles mises à jour Ogone à rendu obligatoire que la phrase en prod et en test soit différente.

Si ça peut aider ...


en ce qui concerne les captures d'écran, je vais me renseigner au cas où mais c'était toujours valable il y a pas longtemps.

Link to comment
Share on other sites

Salut,

J'ai procédé minutieusement à toutes les vérifications possibles : nom de compte (PSPID) et sha-in/sha-out identiques des deux côtés, les URL vers confirmation.php et validation.php conformes à celle indiquées dans les screenshots, et malgré tout l'erreur persiste... J'y ai épuisé ma science...

J'ai tout de même appelé Ogone, qui m'ont parlé d'un hypothétique fichier qui s'appellerait confirmation-order.php à la place de confirmation.php, mais ça m'a pas convaincu, par le fait qu'il n'y a pas un tel fichier dans le module...

Je reste en carafe...

Autre point : mon id_order sur PS est à 21, or la pade de confirmation de paiement d'Ogone indique un N° de commande à 67... Y'a t-il qqchose à creuser de ce côté ?

Toute aide serait la bienvenue, et récompensée d'un merci géant ;)

Link to comment
Share on other sites

Oui, il subsiste un problème à ce niveau, car finalement, avec l'aide de Ogone, j'ai réussi à avancer...

Il m'ont expliqué qu'il recevaient de leur côté http://www.monsite.com/fr/order.php et non http://www.monsite.com/order.php comme spécifié dans l'un des screenshots. Il m'ont donc demandé d'ajouter une autre URL : http://www.monsite.com/fr/commande

Et là, tout a fonctionné : saisie de N° de carte > confirmation de paiement > retour sur le site PS et là souci car les N° de commande ne correspondent pas !

En fait, j'en suis à la commande n°24 sur Prestashop, alors que de leur côté ils en sont au N°72 (il faut dire que mon client à refondu son site via prestashop, et avait probablement procédé à des tests avec son ancien site..)

Du coup, l'order Id de retour n'est pas celui attendu par PS, et donc la commande ne se valide pas côté PS... Pour couronner le tout, la fonction de réinitialisation des commande ne semble pas fonctionner sur PS...

Deux question donc :

- est-il pertinent de remettre le compteur des commandes à zéro sur Prestashop ? si oui, comment ?
- dois-je également demander une remise à zéro côté Ogone ?

Merci

Link to comment
Share on other sites

Bon, au final le N° de commande n'a rien à voir => c'est le paramètre id_cart qui est envoyé à Ogone et tout est ok de ce côté là.

Un problème persiste néanmoins, puisque après confirmation du paiement chez ogone, il y a un retour automatique sur la boutique qui appelle la page confirmation.php (http://www.monsite.com/modules/ogone/confirmation.php)

=> ça mouline dans le vide sans que la commande soit validée dans le back-office...

Quelqu'un à une idée pour fixer cet ultime souci ?

Merci

Link to comment
Share on other sites

- a mon avis il n'est pas pertinent de remettre les compteurs à zéro. Il vaudrait mieux utiliser un préfixe (si c'est possible) si tu veux repartir de zéro

- Je ne sais pas si c'est possible de remettre à zéro Ogone. Si ce n'est pas possible, ne surtout pas remettre à zéro coté prestashop car sinon vous aurez une erreur "order already exists"

Link to comment
Share on other sites

la remise à zéro des commandes n'a pas d'incidence, c'est le paramètre id_cart qui est envoyé à Ogone, et une remise à zéro des commandes ne remet pas à zéro cet id...

Conclusion : une remise à zéro des commandes ne sert à rien, et Ogone de son côté ne remet pas à zéro ses transactions (test ou prod)

Link to comment
Share on other sites

  • 5 weeks later...

Bon, au final le N° de commande n'a rien à voir => c'est le paramètre id_cart qui est envoyé à Ogone et tout est ok de ce côté là.<br/><br/>Un problème persiste néanmoins, puisque après confirmation du paiement chez ogone, il y a un retour automatique sur la boutique qui appelle la page confirmation.php (http://www.monsite.com/modules/ogone/confirmation.php)<br/><br/>=> ça mouline dans le vide sans que la commande soit validée dans le back-office...<br/><br/>Quelqu'un à une idée pour fixer cet ultime souci ?<br/><br/>Merci

 

As-tu trouvé la réponse pour l'ultime souci. J'ai exactement le même problème. Ca mouline dans le vide sans que la commande soit validée dans le back-office. Et c'est assez frustrant car il manque plus que ça :D

Link to comment
Share on other sites

J'ai commencé à trouver une piste, je m'explique :

le .tpl qui mouline c'est waiting.tpl qui appel en ajax checkwaitingorder.php

checkwaitingorder.php fait une requête en base de donnée et renvoit "ok" ou "ko"

Mon problème c'est que cette requête renvoie toujours "ko"

voici la requête :

SELECT id_order FROM '._DB_PREFIX_.'orders WHERE id_cart = '.(int)Tools::getValue('id_cart').' AND secure_key = "'.pSQL(Tools::getValue('key')).'"'

 

Mon problème c'est que id_cart n'existe pas dans la table orders ainsi que secure_key. Ma question c'est :

A quel moment il y a un ajout dans la base orders?

Lorsque je paye par chèque tout fonctionne correctement. L'ajout dans la table orders est-il effectué dans le module en lui même (cheque ou ici ogone) ?

Link to comment
Share on other sites

Petit up par rapport à ma question!

Pour info je suis en mode test.

J'imagine que c'est à ce moment la qu'il faut regarder mais c'est pas facile à débugger. (voir ci dessous)

case 9:
   /* Payment OK */
   $ogone->validate((int)$_GET['orderID'], Configuration::get('PS_OS_PAYMENT'), (float)($_GET['amount']), $ogone->l('Payment authorized / OK').$params, $_GET['secure_key']);
   break;

Link to comment
Share on other sites

Bonjour à tous,

 

Alors en faite si la page de confirmation mouline autant c'est juste qu'Ogone n'a pas fait sa requête permettant de mettre l'entrée en base concernant la commande.

 

Ceci arrive lorsque le panel partie Ogone n'a pas été configuré correctement.

 

Pouvez vous vérifier dans la partie "Technical information" onglet "transaction feedback" (le 5eme onglet) si vous avez bien cocher la case demande à ogone de faire une requête après le paiement ?

 

De mon coter c'est celle la: Always deferred (not immediately after the payment).

 

En l'attente de votre réponse :)

 

Cordialement

Link to comment
Share on other sites

Merci de venir à notre aide.

Le problème de mon côté c'est que oui, cette case est bien coché. J'ai vérifié une vingtaine de fois avant de faire une demande et j'ai bien entendu décortiqué le forum.

Je me suis mis en quête de prendre directement contact avec Ogone. Je vous tiendrai au courant.

Link to comment
Share on other sites

Bonjour,

 

J'ai bien pris contact avec Ogone et voila ce qu'ils m'ont répondu :

Pourriez-vous modifier les 4 champs de redirection HTTP dans le navigateur par ceci : http://XXXX/order-confirmation.php

Pour rappel, ces champs étaient remplis par ceci : http: //XXXX/modules/ogone/confirmation.php

 

Puis ils me demandent de :

Plus bas sur la même page, pourriez-vous modifier le type de requête et mettre « pas de requête » :

 

Lorsque j'effectue un paiement avec cette configuration, le paiement est bien enregistré mais au retour sur la boutique je me situe sur la page history.php et la commande se situe toujours dans le panier (aucun enregistrement en BDD ni dans le Back-Office)

 

J'ai à mon tour fais plusieurs test en changeant « pas de requête » par « Toujours en background/différé (pas tout de suite après le paiement). » mais aucun changement.

 

Je travail avec la version 1.4.1 de Prestashop et la version 2.1 d'Ogone. Est-ce qu'une surcharge pourrait empêcher cet enregistrement? (au passage, je n'ai pas touché à la classe PaymentCC, je crois que c'est celle-ci qui est utilisée...)

 

Il semblerait que le compte Ogone soit correctement configuré. Me voici bien embêté.

 

ps: J'ai fais des tests avec le thème par défaut et rien à faire non plus :(

Link to comment
Share on other sites

Note à moi-même, tout fonctionnait correctement depuis le début, et j'y ai pensé hier soir tranquillement, mais j'avais un htpasswd qui empêchait le bon déroulement.

Je me sens un poil bête mais si ça peut aider certaines personnes...

je l'oubliais presque vu que lorsque je m'y rendais, je n'entrais aucun code puisque déjà "loggué"

 

Bref, encore merci à tout le monde!

Link to comment
Share on other sites

Note à moi-même, tout fonctionnait correctement depuis le début, et j'y ai pensé hier soir tranquillement, mais j'avais un htpasswd qui empêchait le bon déroulement.

Je me sens un poil bête mais si ça peut aider certaines personnes...

je l'oubliais presque vu que lorsque je m'y rendais, je n'entrais aucun code puisque déjà "loggué"

 

Bref, encore merci à tout le monde!

 

 

Bonjour,

 

Je rencontre les même problèmes, et j'ai suivi toutes vos explications.

Résultat, ça mouline aussi à la confirmation.

 

Peux tu m'expliquer ce que tu entends pas Htpassword?

 

Je ne vois pas ce que tu veux dire :(

  • Like 1
Link to comment
Share on other sites

Salut!

 

Je pense que si tu ne perçois pas le terme htpasswd c'est que le problème ne se situe pas du tout la. Pour t'expliquer brièvement, lorsque l'on se rendait sur mon site, un login et un mot de passe était obligatoire afin d'accéder au site. Je l'avais presque oublié puisqu'il ne me le demandait plus puisque dans les cookies.

Je te laisse aller jeter un coup d’œil sur la documentation de htpasswd ce sera plus compréhensible ;)

 

Relis tout ce post, et vérifie chaque étape, la solution est ici. Si tu ne trouves pas, expliques moi exactement ce que tu as fais (côté Presta et côté Ogone) et la je pourrai t'aider. Hésites pas à donner les versions d'Ogone et de Presta.

 

Bon courage, t'es proche du but!

  • Like 1
Link to comment
Share on other sites

  • 1 month later...

Salut peux tu me confirmer que le probleme de la page qui mouline pendant des heures sans qu'il se passe rien a été résolu par ceci :

 

changement dans BO OGONE de la page de retour apres paiement :

- modules/ogone/confirmation.php

 

remplacé par

 

- prestashop/order-confirmation.php

 

???

 

Merci

 

 

Cordialement

  • Like 1
Link to comment
Share on other sites

  • 3 months later...
  • 4 months later...
  • 2 months later...

bonjour,

 

je dépoussière le post, j'ai suivi tt les indications ci-dessus et même problème pour moi ça mouline et quand je change l'url de retour le panier reste valide et pas de commande. Rien dans la database non plus.

 

J'ai parcouru tt le forum et je n'ai trouvé aucune solution, ogone me dit que tout est ok chez eux :(

 

à part une erreur dans l'url de retour je ne vois rien mais je ne sais pas comment verifier.

 

merci à vous

 

prestashop 1.4.8.2

ogone 2.3.2

Link to comment
Share on other sites

  • 2 weeks later...

Bonjour,

 

Sur la version 2.3.3 du module Ogone, il y a bien une erreur : le fichier validation.php appelle la méthode safeOuput de la classe Tools.

 

Cette methode est mal orthographiée elle s'appelle safeOutput, avec un "t" entre "Ou" et "put" (il faut remplacer les 13 occurrences dans le fichier)

 

Sinon petit conseil : j'ai appelé l'assistance de Prestashop, ils me disent que 95% des problèmes sur le module Ogone vient de la config sur le BO d'Ogone... D'experience c'est ce que j'ai constaté aussi...

 

Bon courage à tous

Edited by JulienZ (see edit history)
  • Like 1
Link to comment
Share on other sites

  • 3 weeks later...

Bonjour, pour tout ceux ayant le problème de la petite roue qui tourne à l'infini après le payement (verification de la commande) je viens de trouver une solution qui a marché pour moi en tout cas.

En effet, la page waiting.tpl appelée après le paiement lançe un script php en ajax (checkwaitingorder.php) censé verifier que la commande est bien dans la BDD.

Ce script renvois 'ko' tant que la commande n'est pas en BDD puis 'ok' une fois trouvée.

 

Ce resultat est renvoyé sous forme de chaine de caractères, et le script dans waiting.tpl attends que la chaine soit égale à 'ok' pour rediriger.

 

Le problème dans mon cas est que la chaine retournée était bien 'ok' mais precédée d'un retour à la ligne. Et en code bien sûr la chaîne 'ok' est différente de la chaîne 'ok' avac un retour à la ligne avant.

 

Solution : rajouter simplement cette petite fonction ajax permettant de supprimer espaces blancs et retours à la ligne en début et fin de chaîne : $.trim()

 

voici ddonc le nouveau code ajax obtenu dans le fichier waiting.tpl :

 

<script type="text/javascript">

function checkwaitingorder()

{ldelim}

$.ajax({ldelim}

type:"POST",

async:true,

url:'{$base_dir}modules/ogone/checkwaitingorder.php',

data:'id_cart={$id_cart|intval}&id_module={$id_module|intval}&key={$key|escape}',

success:function ( r ) {ldelim}

r = $.trim( r ); //La fonction ajoutée

if (r == 'ok')

window.location.href = '{$ogone_link}?id_cart={$id_cart|intval}&id_module={$id_module|intval}&key={$key|escape}';

{rdelim}

{rdelim});

setTimeout('checkwaitingorder()', 5000);

{rdelim}

setTimeout('checkwaitingorder()', 5000);

</script>

 

Voilà, n'oubliez pas d'enlever le commentaire (// dans le code ajax) et c'est tout bon. Si jamais ça ne fonctionne toujours pas, vérifiez la valeur de la variable 'r' retournée par le script php (rajouter alert('--' + r +'--'); en dessous du $.trim() pour afficher la variable r entourée de tirets. Si les tirets ne sont pas colés de chaque coté de votre 'ok' ou si vous n'obtenez jamais 'ok' en réponse le problème est ailleurs)

 

En esperant en avoir aidé quelques uns qui galéraient comme moi ;)

 

Bonne journée à tous

 

PS : n'oubliez pas non plus de changer le fichier validation.php avec la méthode safeOutput mal orthographiée (écrite safeOuput dans le module de base, 13 occurences à changer dans le fichier)

Edited by nox13000 (see edit history)
Link to comment
Share on other sites

  • 3 months later...

Bonjour,

 

Pour compléter ce que Nox13000 disait car pour moi cela ne marchait toujours pas, j'avais toujours ce problème de boucle infinie, voici ce que j'ai fait sur une version du module Ogone 2.4 :

 

<script type="text/javascript">
function checkwaitingorder()
{ldelim}
$.ajax({ldelim}
 type:"POST",
 async:true,
 url:'{$base_dir}modules/ogone/checkwaitingorder.php',
 data:'id_cart={$id_cart|intval}&id_module={$id_module|intval}&key={$key|escape}',
 success:function (r) {ldelim}
  r = $.trim( r );
  if (r == 'ok') {
   window.location.href = '{$ogone_link}?id_cart={$id_cart|intval}&id_module={$id_module|intval}&key={$key|escape}';
   clearTimeout(t);
  }
 {rdelim}
{rdelim});
t = setTimeout('checkwaitingorder()', 5000);
{rdelim}
t = setTimeout('checkwaitingorder()', 5000);
</script>

 

J'ai finalement mis le setTimeout dans une variable que je remets à zéro quand le retour est ok, pour moi cela a corrigé le problème !

 

Bon We à tous !!

Link to comment
Share on other sites

  • 4 months later...

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now
×
×
  • Create New...