Jump to content
Johann974

Script PHP de mis à jour d’une commande client après validation d’un paiement

Recommended Posts

Bonjour à tous,

 

Je suis en train de créer un module de paiement prestashop  1.5 et je me retrouve bloqué  car je ne sais pas comment mettre à jour la commande  du client  dans le BO de Prestashop  après que son paiement soit validé :unsure: .

Je souhaiterais avoir un peu d’aide concernant un script php permettant de faire cette mise à jour.

Dans mon cas, pour que mon paiement soit validé je dois avoir ma variable $vadorder== « 00 ». La mise à jour de cette variable s’effectue grâce à la méthode POST.

 

Ce qui me donne :

 

< ?php

$vadorder=$_POST[« vads_order »] ;

If($vadorder== « 00 »)

{

Script de mis à jour de la commande client dans le BO de prestashop ;

}

 

?>

 

N’hésitez pas à me demander plus d’infos si je n’ai pas été très clair.

 

D’avance merci pour votre aide :) ,

Share this post


Link to post
Share on other sites

Ben faut lancer une requete en base de données ^^ ou j'ai mal compris la question ...

Share this post


Link to post
Share on other sites

En faite il me faut juste un moyen d'enregistrer la  commande de mon client et de mettre le status de celle -ci "en attente de paiment" dans le BO après que le paiement est été initié.

Share this post


Link to post
Share on other sites

Pourquoi tu t'inspires pas des nombreux modules de paiement gratuits? La solution est dedans, c'est sure.

  • Like 1

Share this post


Link to post
Share on other sites

Pour la version 1.4 voici le code qui valide un panier en commande si la validation return un OK ou en pas:

	if ($response[0] == 1)
		$authorizeaim->validateOrder((int)$cart->id, Configuration::get('PS_OS_PAYMENT'), (float)$response[9], $authorizeaim->displayName, $message, NULL, NULL, false, $customer->secure_key);
	else
		$authorizeaim->validateOrder((int)$cart->id, Configuration::get('PS_OS_ERROR'), (float)$response[9], $authorizeaim->displayName, $message, NULL, NULL, false, $customer->secure_key);

C'est le code du module Authorizeaim à modifier suivant votre code.

Ckarone

Edited by ckarone (see edit history)
  • Like 1

Share this post


Link to post
Share on other sites

Bonjour ckarone,

 

Je te remercie pour ta réponse,

 

je vais tester tout ça et je reviens dès que c'est ok pour moi.

Share this post


Link to post
Share on other sites

Bonjour,

 

J'ai un fichier qui s'appel paymentmerch3.php, indépendant du module de paiment prestashop.

Après vérification de mon cartId  dans la base de donnée => 16 et du montant de la commande => 162 , j’exécute le code ci dessous et pourtant rien ne fonctionne.

 

Ai je oublié de déclarer quelque chose?

 

<?php

 require_once dirname(dirname(dirname(__FILE__))) . '/config/config.inc.php';
 require_once dirname(dirname(dirname(__FILE__))) . '/init.php';

 

$id_cart=16;

$id_state=2;

$amount=162;

$type="carte bleue";

$message="test";

 

PaymentModule::validateOrder($id_cart,$id_state,$amount,$type,$message);

 

?>

 

J'ai un module qui permet de valider les panier après paiement  et qui fonctionne avec ces même paramètre.

Peut être le fait que le script soit executer de le module même, ce qui n'est pas mon cas pour mon problème ci dessus.

 

D'avance merci

Share this post


Link to post
Share on other sites

Non, Lorsque tu appels la méthode validateOrder de la classe PayementModule.php, tu dois lui donner dans un ordre précis les paramètres suivant:

validateOrder($id_cart, $id_order_state, $amountPaid, $paymentMethod = 'Unknown', $message = NULL, $extraVars = array(), $currency_special = NULL, $dont_touch_amount = false, $secure_key = false) 

De plus il faudra aussi pensez au cas d'un retour négatif et conditionner la validation

<?php
 require_once dirname(dirname(dirname(__FILE__))) . '/config/config.inc.php';
 require_once dirname(dirname(dirname(__FILE__))) . '/init.php';

$id_cart=16;
$id_state=2;
$amount=162;
$type="carte bleue";
$message="test";


if ($response== 1)
		$tonmodule->validateOrder((int)$id_cart, Configuration::get('PS_OS_PAYMENT'), (float)$response[9], $type, $message, NULL, NULL, false, $customer->secure_key);
	else
		$tonmodule->validateOrder((int)$id_cart, Configuration::get('PS_OS_ERROR'), (float)$response[9], $type, $message, NULL, NULL, false, $customer->secure_key);

?>

Un peu de lecture pour comprendre le principe de la POO et l'appliquer

 

 http://jcrozier.developpez.com/tutoriels/web/php/programmation-orientee-objet/

 

http://fr.scribd.com/doc/3774696/PHP-POO-fr-avec-exemples

 

Pardon mais faire un module comme celui-ci n'est pas simple et demande pas mal de précautions/sécurité le mieux et de s'inspirer d'un module fonctionnel dans le pire des cas et d'acheter le module fini pour ne pas perdre trop de temps en dev dans le meilleur des cas.

 

Bon courage!

 

Ckarone

Edited by ckarone (see edit history)
  • Like 1

Share this post


Link to post
Share on other sites

 

Ckarone

 

J'espère surtout que c'est pour lui et pas pour un autre client, parce qu'une erreur de sécurité pourrait quand même être lourde de conséquence...

 

Si je peux me permettre, fais toi la main sur d'autres modules ou d'autres développements avant ou pendant et n'hésite pas à demander quand tu as besoin de précision. :)

  • Like 1

Share this post


Link to post
Share on other sites

En tout cas merci à tous!!!

 

ça fait plaisir d'avoir autant d'aide...

 

Je vais tester tout ça après la fête du nouvel an.

 

A l'Ile de la Réunion ça commence déjà donc je vous souhaite une excellent réveillons et un bonne année 2014

et je vous tiens au courant concernant mon avancement sur ce module de paiement!!

 

A++

Share this post


Link to post
Share on other sites

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

Important Information

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