Jump to content
Sign in to follow this  
leheuzey

Cherche Prestation Debug / Erreur "Order Creation Failed"

Recommended Posts

Bonjour,

 

Sur 1.4.4 avec le dernier module Paypal 2.8,j'ai un problème de création de commande une fois le payement effectué : page blanche avec "La création de la commande a échoué"

 

- Le moyen de payement "a la livraison" fonctionne (la commande est crée sans probleme)

- J'ai desinstallé le module paypal 2.6 et reinstallé le 2.8

- mon install est depuis le début en 1.4.4

- J'ai essayé avec le template de base

- J'ai CHMODé validation.php en 777

- Les API, renvoi de paypal etc sont ok, et je suis en sandbox

 

Et j'ai généré un débug...que je n'arrive pas à interpreter (cf plus bas).

 

Dernier "détail", je suis hebergé sur online.net (une personne de passage sur le forum a eu le meme probleme que moi, mais impossible de comprendre comment il a resolu la 1ere étape : http://www.prestashop.com/forums/topic/119593-resolu-probleme-creation-commande-suite-paiement-paypal/ )

 

--> Je cherche donc quelqu'un qui sait comment debloquer la situation. Faites moi des propositions :)

 

La boutique est visible ici : http://www.lapieuvrealunettes.com

 

Merci beaucoup

 

Guillaume

 

 

 

Order Object

(

[id_address_delivery] => 14

[id_address_invoice] => 14

[id_cart] => 38

[id_currency] => 1

[id_lang] => 2

[id_customer] => 13

[id_carrier] => 30

[secure_key] => /edité/

[payment] => PayPal

[module] => paypal

[conversion_rate] => 1.000000

[recyclable] => 0

[gift] => 0

[gift_message] =>

[shipping_number] =>

[total_discounts] => 0

[total_paid] => 0

[total_paid_real] => 29

[total_products] => 0

[total_products_wt] => 0

[total_shipping] => 0

[carrier_tax_rate] => 0

[total_wrapping] => 0

[invoice_number] =>

[delivery_number] =>

[invoice_date] => 0000-00-00 00:00:00

[delivery_date] => 0000-00-00 00:00:00

[valid] =>

[date_add] => 2011-08-30 22:09:49

[da te_upd] => 2011-08-30 22:09:49

[tables:protected] => Array

(

[0] => orders

)

 

[fieldsRequired:protected] => Array

(

[0] => conversion_rate

[1] => id_address_delivery

[2] => id_address_invoice

[3] => id_cart

[4] => id_currency

[5] => id_lang

[6] => id_customer

[7] => id_carrier

[8] => payment

[9] => total_paid

[10] => total_paid_real

[11] => total_products

[12] => total_products_wt

)

 

[fieldsValidate:protected] => Array

(

[id_address_delivery] => isUnsignedId

[id_address_invoice] => isUnsignedId

[id_cart] => isUnsignedId

[id_currency] => isUnsignedId

[id_lang] => isUnsignedId

[id_customer] => isUnsignedId

[id_carrier] => isUnsignedId

[secure_key] => isMd5

[payment] => isGenericName

[recyclable] => isBool

[gift] => isBool

[gift_message] => isMessage

[total_discounts] => isPrice

[total_paid] => isPrice

[total_paid_real] => isPrice

[total_products] => isPrice

[total_products_wt] => isPrice

[total_shipping] => isPrice

[carrier_tax_rate] => isFloat

[total_wrapping] => isPrice

[shipping_number] => isUrl

[conversion_rate] => isFloat

)

 

[webserviceParameters:protected] => Array

(

[objectMethods] => Array

(

[add] => addWs

)

 

[objectNodeName] => order

[objectsNodeName] => orders

[fields] => Array

(

[id_address_delivery] => Array

(

[xlink_resource] => addresses

)

 

[id_address_invoice] => Array

(

[xlink_resource] => addresses

)

 

[id_cart] => Array

(

[xlink_resource] => carts

)

 

[id_currency] => Array

(

[xlink_resource] => currencies )

 

[id_lang] => Array

(

[xlink_resource] => languages

)

 

[id_customer] => Array

(

[xlink_resource] => customers

)

 

[id_carrier] => Array

(

[xlink_resource] => carriers

)

 

[module] => Array

(

[required] => 1

)

 

[invoice_number] => Array

(

)

 

[invoice_date] => Array

(

)

 

[delivery_number] => Array

(

)

 

[delivery_date] => Array

(

)

 

[valid] => Array

(

)

 

[current_state] => Array

(

[getter] => getCurrentState

[setter] => setCurrentState

[xlink_resource] => order_states

)

 

[date_add] => Array

(

)

 

[date_upd] => Array

(

)

 

)

 

[associations] => Array

(

[order_rows] => Array

(

[resource] => order_row

[setter] =>

[virtual_entity] => 1

[fields] => Array

(

[id] => Array

(

)

 

[product_id] => Array

(

[required] => 1

)

 

[product_attribute_id] => Array

(

[required] => 1

)

 

[product_quantity] => Array

(

[required] => 1

)

 

[product_name] => Array

(

[setter] =>

)

 

[product_price] => Array

(

[setter] =>

)

 

)

 

)

 

)

 

)

 

[table:protected] => orders

[identifier:protected] => id_order

[_taxCalculationMethod:protected] => 0

[id] =>

[fieldsSize:prot ected] => Array

(

)

 

[fieldsRequiredLang:protected] => Array

(

)

 

[fieldsSizeLang:protected] => Array

(

)

 

[fieldsValidateLang:protected] => Array

(

)

 

[image_dir:protected] =>

[image_format:protected] => jpg

)

Share this post


Link to post
Share on other sites

Bonsoir,

 

Il me semble que tout est là :

 

- Le premier symptome c'etait le bug décrit sur le forum : page blanche + “La création de la commande a échoué” + mail d'erreur envoyé au client alors que le paiement a bien eu lieu

- Après correction de celui-ci on tombe sur : "UNE ERREUR EST SURVENUE LORS DU PAIEMENT DE VOTRE COMMANDE." + aucun produit dans le panier + commande en statut "erreur de paiement" + total_paid = 0 alors que total_paid_real = montant du paiment paypal

 

Solution :

J'ai modifié la classe d'accès à la base de données MySQL (MySQL.php) pour vérifier avant chaque appel à la base si la connexion est encore active. Sinon on déclenche une déconnection/reconnection avant d'effectuer la requête SQL.

Concrètement j'ai remplacé les tests

if ($this->_link)

par un appel à une nouvelle méthode

if ($this->checkLink())

qui fait :

/* Check DB link and reconnect after a timeout. (eg Paypal) */

public function checkLink()

{

if ($this->_link)

{

if (!mysql_ping ($this->_link))

{

$this->disconnect();

$this->connect();

}

}

return $this->_link;

 

Editez le fichier MySQL.php dans classes et suivez ce qu'à fait l'auteur. Pour être plus "propre", faites une surcharge de la classe.

  • Like 1

Share this post


Link to post
Share on other sites

Merci pour ta réponse. ce post semble en effet correspondre exactement à mon probleme (je l'avais mis en lien plus haut),

 

mais je n'ai pas retrouvé comment corriger le 1er bug (il indique "Après correction de celui-ci on tombe sur")

et concernant la mise à jour de MySQL.php, j'ai tenté de le faire mais cela m'a generé uniquement des erreurs 500.

 

Avec mon faible niveau de php... j'ai tenté de comprendre/deviner :

 

- Doit je remplacer "if ($this->_link)" uniquement dans le fichier MySQL.php ?

- Doit je remplacer aussi les "$this->_link" par la fonction ?

- Mais au fait, que signifie $this->_link ? ;-)

- (sans parler de la surchage de classe)

 

-> En clair, j'ai besoin d'aide, d'où ma demande de prestation.

Je n'ai pas reussi à contacter l'utilisateur qui avait le meme probleme

 

Bonne journée

Share this post


Link to post
Share on other sites

Déjà :

  • Je ne pense pas que ce soit une bonne idée de poster ta 'secure_key'
  • J'ai CHMODé validation.php en 777 : non, non :

  1. dir : 755
  2. php : 644
  3. fichiers : 644

Share this post


Link to post
Share on other sites

Merci pour ta réponse. ce post semble en effet correspondre exactement à mon probleme (je l'avais mis en lien plus haut),

 

mais je n'ai pas retrouvé comment corriger le 1er bug (il indique "Après correction de celui-ci on tombe sur")

et concernant la mise à jour de MySQL.php, j'ai tenté de le faire mais cela m'a generé uniquement des erreurs 500.

 

Avec mon faible niveau de php... j'ai tenté de comprendre/deviner :

 

- Doit je remplacer "if ($this->_link)" uniquement dans le fichier MySQL.php ?

- Doit je remplacer aussi les "$this->_link" par la fonction ?

- Mais au fait, que signifie $this->_link ? ;-)

- (sans parler de la surchage de classe)

 

-> En clair, j'ai besoin d'aide, d'où ma demande de prestation.

Je n'ai pas reussi à contacter l'utilisateur qui avait le meme probleme

 

Bonne journée

 

Je vous envoie un MP

Share this post


Link to post
Share on other sites

j'ai reussi à corriger mon bug en modifiant MySQL.php (cf les indications sur post plus haut)

Share this post


Link to post
Share on other sites

Pouvez-vous indiquer ce que vous avez corrigé dans mySQL.php : toutes les lignes "$this->_link" sont-elles à remplacer par "$this->checkLink()" ? Ou bien on ne touche pas à ce qui existe et on ajoute seulement la fonction checkLink ???

Share this post


Link to post
Share on other sites

bonjour,

j'ai le même problème et la réponse m'intéresse donc aussi - que faire dans ce fichier "MySQL.php" ?

Share this post


Link to post
Share on other sites

Merci à PrestaTer pour sa réponse. Cependant le problème persiste. Il doit s'agir de lignes de codes pas tout à fait correctes dans MySQL.php Un initié pourrait-il nous dire comment on modifie ce fichier exactement ?merci

  • Like 1

Share this post


Link to post
Share on other sites

RiSteve,

 

Envoyez moi le fichier, je vais vérifier.

  • Like 1

Share this post


Link to post
Share on other sites

Bonjour,

 

ce qui me choque dans ton objet order,

 

[total_paid] => 0

[total_paid_real] => 29

[total_products] => 0

[total_products_wt] => 0

 

Cela dit que ta commande n'a pas de montant à payer... et pourtant tu as bien payé 29...

 

C'est très bizarre.

 

Cdlt

Share this post


Link to post
Share on other sites
Guest
This topic is now closed to further replies.
Sign in to follow this  

×
×
  • Create New...

Important Information

Cookies ensure the smooth running of our services. Using these, you accept the use of cookies. Learn More