e-book, plus de mail automatique

13 messages dans ce sujet

Posté(e) · Signaler ce message

Bonjour.

J'ai une boutique de e-book, mais depuis quelques jours mes clients ne reçoivent plus le mail automatique lorsqu'il commande en payant via paypal.

J'ai constaté que dans le statut des vente restait toujours en "Attente de paiement" alors que le paiement avait bien été effectué. Normlament il bascule en "réglée".

Il y a un petit problème mais je ne sais quel fichier pose problème : (version 6.01). Je n'ai pas fait de modif sur cette boutique ces dernier temps, je ne comprend pas.

Pouvez me dire quel fichier faut il que je vous envoie pour vérification des script pour que cela re fonctionne correctement ?

Merci.

Partager ce message


Lien à poster
Partager sur d’autres sites

Posté(e) · Signaler ce message

Bonjour coach,

le fichier qui est appelé par le serveur paypal est modules/paypal/ipn.php. Vous pouvez placer la fonction mail() de php correctement paramétré pour suivre l'activité de votre module paypal. Par exemple, vous pouvez placer un départ d'email en tête du fichier pour savoir si il est effectivement appelé par le serveur de paypal, un autre dans le test

					if ($payment_status == "Completed") {
$peel_status = 3;
}
[/code]

pour savoir si le paiement qui a eu lieu est effectivement réglé.

Autre chose, avez vous reçu un email dont le titre commence par

Alerte : Montant de la transaction Paypal

Cela donnera des informations nécessaire au débogage.

Merci.

Partager ce message


Lien à poster
Partager sur d’autres sites

Posté(e) · Signaler ce message

Bonjour.

Je met une copie du fichier en question dans le post suivant, (pas pu le mettre en pièce jointe)

Je reçois toujours les mail automatique venant de paypal qui m'indique par exemple : Objet nº 106 - Avis de réception.

Par contre, sur mon admin dans "vente de produit numérique", les mails de partent plus et le statut reste invariablement en "attente de paiement." Du coup je dois intervenir pour activer l'envoi du mail, ce qui ralentie la vitesse des livraisons.

Merci

Partager ce message


Lien à poster
Partager sur d’autres sites

Posté(e) · Signaler ce message

<?php

// This file should be in UTF8 without BOM - Accents examples : éèê

// +----------------------------------------------------------------------+

// | Copyright © 2004-2011 Advisto SAS, service PEEL - contact@peel.fr |

// +----------------------------------------------------------------------+

// | This file is part of PEEL Shopping 6.0, which is subject to an |

// | opensource GPL license: you are allowed to customize the code |

// | for your own needs, but must keep your changes under GPL |

// | More information: http://www.peel.fr/lire/licence-gpl-70.html'>http://www.peel.fr/lire/licence-gpl-70.html |

// +----------------------------------------------------------------------+

// | Author: Advisto SAS, RCS 479 205 452, France, http://www.peel.fr/ |

// +----------------------------------------------------------------------+

// $Id: ipn.php 14603 2011-02-18 16:00:21Z sdelaporte $

include("../../configuration.inc.php");

// Ce fichier est appelé directement pas Paypal après chaque transaction, échouée ou fructueuse

$req = 'cmd=_notify-validate';

foreach ($_POST as $key => $value) {

$req .= "&" . $key . "=" . urlencode($value);

}

// post back to PayPal system to validate

$header = "POST /cgi-bin/webscr HTTP/1.0\r\n";

$header .= "Content-Type: application/x-www-form-urlencoded\r\n";

$header .= "Content-Length: " . String::strlen($req) . "\r\n\r\n";

$fp = fsockopen ('www.paypal.com', 80, $errno, $errstr, 30);

$item_name = $_POST['item_name'];

$item_number = intval($_POST['item_number']);

$payment_status = $_POST['payment_status'];

$payment_amount = $_POST['mc_gross'];

$payment_currency = $_POST['mc_currency'];

// $txn_id = $_POST['txn_id'];

// $receiver_email = $_POST['receiver_email'];

// $payer_email = $_POST['payer_email'];

// $pending_reason = $_POST['pending_reason'];

// $txn_type = $_POST['txn_type'];

if (!$fp) {

// HTTP ERROR

mail($support, 'Problème d\'échange de données Paypal IPN', 'Un paiement n\'a pas pu être pris en compte pour des raisons techniques. L\'IP du serveur qui a voulu confirmer une transaction est : ' . $_SERVER['REMOTE_ADDR']);

} else {

fputs ($fp, $header . $req);

while (!feof($fp)) {

$res = fgets ($fp, 1024);

if (strcmp ($res, "VERIFIED") == 0) {

if ($payment_status == "Completed") {

$peel_status = 3;

send_mail_product_download($item_number);

} elseif ($payment_status == "Pending") {

$peel_status = 2;

} elseif ($payment_status == "Failed") {

$peel_status = 6;

} elseif ($payment_status == "Denied") {

$peel_status = 6;

} elseif ($payment_status == "Refunded") {

$peel_status = 9;

}

} elseif (strcmp ($res, "INVALID") == 0) {

$peel_status = 6;

}

if (!empty($peel_status)) {

update_order_payment_status($item_number, $peel_status);

unset($peel_status);

}

}

fclose ($fp);

}

?>

Partager ce message


Lien à poster
Partager sur d’autres sites

Posté(e) · Signaler ce message

Bonjour Coach,

Le fichier que vous m'avez transmis n'a pas de problème. Je vous propose d'ajouter des départs d'email à différents endroits du fichier, en plus de ceux reçu par paypal. Pour cela, il faut utiliser la fonction PHP mail() de cette façon :

mail ( 'votre_adresse_email' , 'EMAIL DE SUIVI MODULE PAYPAL - ipn.php' , 'ligne XXXX atteinte.');

Vous pouvez consulter cette page pour plus d'informations sur la fonction : http://www.php.net/manual/fr/function.mail.php

Simon.

Partager ce message


Lien à poster
Partager sur d’autres sites

Posté(e) · Signaler ce message

Bonjour Simon

J'ai oublier de préciser que j'avais fait faire par vos services une modification de ma boutique. En effet j'avais demander une prestation technique qui consistait à ce que les mail avec le lien vers le e-book soit envoyer automatiquement dès que le statut de la commande est réglée.

Dans ce cas est ce que l'erreur ne viendrait pas plutot du fichier qui pilote le statut de la commande ?

En effet, les commande réglé reste affiché avec le statut "en attente de paiement". Chose qui ne se produisait pas auparavant.

Je pense que si le statut se met à jour cela va résoudre le problème.

Quel est le fichier en question ?

Merci d'avance

Partager ce message


Lien à poster
Partager sur d’autres sites

Posté(e) · Signaler ce message

Bonjour coach,

Il y a plusieurs cause possible à votre problème. L'idée est de collecter des informations pour déterminé la cause du problème. Je souhaite donc procéder par étape, et par le début. Ajouter des emails de suivi dans le fichier ipn.php sert à savoir si ce fichier est appelé, et en mettant des emails différent à différents endroit du code permet de savoir si la fonction de mise à jour de statut est atteinte. Dans le cas contraire, il faut résoudre d'abord ce premier problème.

Ensuite, si la fonction est correctement appelé, nous continuerons l'investigation jusqu’à savoir ce qui pose problème. Il n'y aura plus qu'a corriger le problème.

Vous pouvez tester la fonction de mise à jour de statut depuis le back office, puisque cette fonction est la même qui est utilisé dans le fichier ipn.php.

Cette fonction s'appel update_order_payment_status() et est défini dans le fichier lib/fonctions/order.php

Simon.

Partager ce message


Lien à poster
Partager sur d’autres sites

Posté(e) · Signaler ce message

Bonjour.

J'ai ajouté les fonction que vous m'avez recommandé au début du fichier (voir ci dessous en gras et en bleu les fonction ajoué). Est ce que c'est comme ça qu'il faut faire ? et Que dois je faire, attendre une commande ?

<?php

// This file should be in UTF8 without BOM - Accents examples : éèê

// +----------------------------------------------------------------------+

// | Copyright © 2004-2011 Advisto SAS, service PEEL - contact@peel.fr |

// +----------------------------------------------------------------------+

// | This file is part of PEEL Shopping 6.0, which is subject to an |

// | opensource GPL license: you are allowed to customize the code |

// | for your own needs, but must keep your changes under GPL |

// | More information: http://www.peel.fr/lire/licence-gpl-70.html'>http://www.peel.fr/lire/licence-gpl-70.html |

// +----------------------------------------------------------------------+

// | Author: Advisto SAS, RCS 479 205 452, France, http://www.peel.fr/ |

// +----------------------------------------------------------------------+

// $Id: ipn.php 13366 2011-01-01 18:54:18Z gboussin $

include("../../configuration.inc.php");

// Ce fichier est appelé directement pas Paypal après chaque transaction, échouée ou fructueuse

if ($payment_status == "Completed") {

$peel_status = 3;

}

mail ( 'contact@velo2max.com' , 'EMAIL DE SUIVI MODULE PAYPAL - ipn.php' , 'ligne XXXX atteinte.');

$req = 'cmd=_notify-validate';

foreach ($_POST as $key => $value) {

$req .= "&" . $key . "=" . urlencode($value);

}

// post back to PayPal system to validate

$header = "POST /cgi-bin/webscr HTTP/1.0\r\n";

$header .= "Content-Type: application/x-www-form-urlencoded\r\n";

$header .= "Content-Length: " . String::strlen($req) . "\r\n\r\n";

$fp = fsockopen ('www.paypal.com', 80, $errno, $errstr, 30);

$item_name = $_POST['item_name'];

$item_number = intval($_POST['item_number']);

$payment_status = $_POST['payment_status'];

$payment_amount = $_POST['mc_gross'];

$payment_currency = $_POST['mc_currency'];

// $txn_id = $_POST['txn_id'];

// $receiver_email = $_POST['receiver_email'];

// $payer_email = $_POST['payer_email'];

// $pending_reason = $_POST['pending_reason'];

// $txn_type = $_POST['txn_type'];

if (!$fp) {

// HTTP ERROR

mail($support, 'Problème d\'échange de données Paypal IPN', 'Un paiement n\'a pas pu être pris en compte pour des raisons techniques. L\'IP du serveur qui a voulu confirmer une transaction est : ' . $_SERVER['REMOTE_ADDR']);

} else {

fputs ($fp, $header . $req);

while (!feof($fp)) {

$res = fgets ($fp, 1024);

if (strcmp ($res, "VERIFIED") == 0) {

if ($payment_status == "Completed") {

$peel_status = 3;

} elseif ($payment_status == "Pending") {

$peel_status = 2;

} elseif ($payment_status == "Failed") {

$peel_status = 6;

} elseif ($payment_status == "Denied") {

$peel_status = 6;

} elseif ($payment_status == "Refunded") {

$peel_status = 9;

}

} elseif (strcmp ($res, "INVALID") == 0) {

$peel_status = 6;

}

if (!empty($peel_status)) {

update_order_payment_status($item_number, $peel_status);

unset($peel_status);

}

}

fclose ($fp);

}

?>

Partager ce message


Lien à poster
Partager sur d’autres sites

Posté(e) · Signaler ce message

Bonjour coach,

Je vous propose plutôt ceci :

<?php

// This file should be in UTF8 without BOM - Accents examples : éèê

// +----------------------------------------------------------------------+

// | Copyright © 2004-2011 Advisto SAS, service PEEL - contact@peel.fr |

// +----------------------------------------------------------------------+

// | This file is part of PEEL Shopping 6.0, which is subject to an |

// | opensource GPL license: you are allowed to customize the code |

// | for your own needs, but must keep your changes under GPL |

// | More information: http://www.peel.fr/l...nce-gpl-70.html'>http://www.peel.fr/l...nce-gpl-70.html |

// +----------------------------------------------------------------------+

// | Author: Advisto SAS, RCS 479 205 452, France, http://www.peel.fr/ |

// +----------------------------------------------------------------------+

// $Id: ipn.php 13366 2011-01-01 18:54:18Z gboussin $

include("../../configuration.inc.php");

// Ce fichier est appelé directement pas Paypal après chaque transaction, échouée ou fructueuse

$req = 'cmd=_notify-validate';

foreach ($_POST as $key => $value) {

$req .= "&" . $key . "=" . urlencode($value);

}

// post back to PayPal system to validate

$header = "POST /cgi-bin/webscr HTTP/1.0\r\n";

$header .= "Content-Type: application/x-www-form-urlencoded\r\n";

$header .= "Content-Length: " . String::strlen($req) . "\r\n\r\n";

$fp = fsockopen ('www.paypal.com', 80, $errno, $errstr, 30);

$item_name = $_POST['item_name'];

$item_number = intval($_POST['item_number']);

$payment_status = $_POST['payment_status'];

$payment_amount = $_POST['mc_gross'];

$payment_currency = $_POST['mc_currency'];

// $txn_id = $_POST['txn_id'];

// $receiver_email = $_POST['receiver_email'];

// $payer_email = $_POST['payer_email'];

// $pending_reason = $_POST['pending_reason'];

// $txn_type = $_POST['txn_type'];

if (!$fp) {

// HTTP ERROR

mail($support, 'Problème d\'échange de données Paypal IPN', 'Un paiement n\'a pas pu être pris en compte pour des raisons techniques. L\'IP du serveur qui a voulu confirmer une transaction est : ' . $_SERVER['REMOTE_ADDR']);

} else {

fputs ($fp, $header . $req);

while (!feof($fp)) {

$res = fgets ($fp, 1024);

if (strcmp ($res, "VERIFIED") == 0) {

if ($payment_status == "Completed") {

mail ( 'contact@velo2max.com' , 'EMAIL DE SUIVI MODULE PAYPAL - ipn.php' , 'ligne 46 atteinte.');

$peel_status = 3;

} elseif ($payment_status == "Pending") {

$peel_status = 2;

} elseif ($payment_status == "Failed") {

$peel_status = 6;

} elseif ($payment_status == "Denied") {

$peel_status = 6;

} elseif ($payment_status == "Refunded") {

$peel_status = 9;

}

} elseif (strcmp ($res, "INVALID") == 0) {

$peel_status = 6;

}

if (!empty($peel_status)) {

update_order_payment_status($item_number, $peel_status);

unset($peel_status);

}

}

fclose ($fp);

}

?>

La différence avec votre version est que le mail se situe à un endroit où l'on est sur que la commande est réglé. J'ai également mis le numéro de ligne dans le corp de l'email.

Simon.

Partager ce message


Lien à poster
Partager sur d’autres sites

Posté(e) · Signaler ce message

J'ai donc intégrer le fichier après avoir fait la modification suggéré sur le fichier modules/paypal/ipn.php

Mais lors des nouvelles commande, je rencontre le même problème *

Pas d'envoi du mail automatique avec le lien de téléchargement

Le statut de commande reste : En attente de paiement, même si le paiement est effectué, et même si je valide l'envoi du Ebook.

Je me demande si ce n'est pas sur le statut de commande que cela bug ?

merci de vos futur conseil

Partager ce message


Lien à poster
Partager sur d’autres sites

Posté(e) · Signaler ce message

Bonjour,

avez-vous reçu le mail que vous avez intégré au fichier ipn.php ? Le but est de savoir si ce fichier à correctement été appeler par le serveur paypal.

Partager ce message


Lien à poster
Partager sur d’autres sites

Posté(e) · Signaler ce message

Bonjour,

avez-vous reçu le mail que vous avez intégré au fichier ipn.php ? Le but est de savoir si ce fichier à correctement été appeler par le serveur paypal.

Bonjour.

Non je n'ai pas reçu de mail.

Partager ce message


Lien à poster
Partager sur d’autres sites

Posté(e) · Signaler ce message

Bonjour,

Le problème est déjà que votre fichier ipn.php n'est pas appelé par le serveur paypal.

pouvez-vous regarder si la ligne


<input type="hidden" name="notify_url" value="' . String::str_form_value($GLOBALS['wwwroot'] . '/modules/paypal/ipn.php') . '" />
[/CODE]

est bien présente dans le fichier modules\paypal\fonctions.php ?

Partager ce message


Lien à poster
Partager sur d’autres sites

Créer un compte ou se connecter pour commenter

Vous devez être membre afin de pouvoir déposer un commentaire

Créer un compte

Créez un compte sur notre communauté. C’est facile !


Créer un nouveau compte

Se connecter

Vous avez déjà un compte ? Connectez-vous ici.


Connectez-vous maintenant

Twitter Advisto ecommerce

Facebook PEEL Shopping