Jump to content

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

)

Link to comment
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
Link to comment
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

Link to comment
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

Link to comment
Share on other sites

  • 4 weeks later...

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 ???

Link to comment
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
Link to comment
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

Link to comment
Share on other sites

Guest
This topic is now closed to further replies.
×
×
  • Create New...