Only uses autoload to require validation classes.
[platal.git] / modules / payment.php
index 3685e78..d24ebcf 100644 (file)
 /* sort en affichant une erreur */
 function cb_erreur($text) {
     global $globals;
+    echo "Error.\n";
     $mymail = new PlMailer();
     $mymail->addTo($globals->money->email);
     $mymail->setFrom("webmaster@" . $globals->mail->domain);
     $mymail->setSubject("erreur lors d'un télépaiement (CyberPaiement)");
     $mymail->setTxtBody("\n\n".var_export($_REQUEST,true));
     $mymail->send();
+    echo "Notification sent.\n";
     exit;
 }
 
@@ -54,7 +56,7 @@ function luhn($nombre) {
     $s = strrev($nombre);
     $sum = 0;
     for ($i = 0; $i < strlen($s); $i++) {
-       $dgt = $s{$i};
+    $dgt = $s{$i};
         $sum += ($i % 2) ? (2*$dgt) % 9 : $dgt;
     }
     return $sum % 10;
@@ -88,7 +90,7 @@ class PaymentModule extends PLModule
     function handlers()
     {
         return array(
-            'payment'                    => $this->make_hook('payment',       AUTH_MDP),
+            'payment'                    => $this->make_hook('payment',       AUTH_MDP,    'payment'),
             'payment/cyber_return'       => $this->make_hook('cyber_return',  AUTH_PUBLIC, 'user', NO_HTTPS),
             'payment/cyber2_return'      => $this->make_hook('cyber2_return', AUTH_PUBLIC, 'user', NO_HTTPS),
             'payment/paypal_return'      => $this->make_hook('paypal_return', AUTH_PUBLIC, 'user', NO_HTTPS),
@@ -106,7 +108,6 @@ class PaymentModule extends PLModule
     {
         global $globals;
 
-        require_once 'profil.func.inc.php' ;
         $this->load('money.inc.php');
 
         if (!empty($GLOBALS['IS_XNET_SITE'])) {
@@ -159,8 +160,6 @@ class PaymentModule extends PLModule
         $page->assign('meth', $meth);
         $page->assign('pay',  $pay);
         $page->assign('evtlink', $pay->event());
-
-        $page->assign('prefix', $globals->money->mpay_tprefix);
     }
 
     function handler_cyber_return(&$page, $uid = null)
@@ -226,7 +225,7 @@ class PaymentModule extends PLModule
         if ($eid = $res->fetchOneCell()) {
             require_once dirname(__FILE__) . '/xnetevents/xnetevents.inc.php';
             $evt = get_event_detail($eid);
-            subscribe_lists_event(0, $uid, $evt, $montant, true);
+            subscribe_lists_event($uid, $evt, 1, $montant, true);
         }
 
         /* on genere le mail de confirmation */
@@ -264,18 +263,18 @@ class PaymentModule extends PLModule
     function handler_cyber2_return(&$page, $uid = null)
     {
         global $globals, $platal;
-        
+
         /* on vérifie la signature */
         $vads_params = array();
         foreach($_REQUEST as $key => $value)
-               if(substr($key,0,5) == "vads_")
-                       $vads_params[$key] = $value;
+            if(substr($key,0,5) == "vads_")
+                $vads_params[$key] = $value;
         ksort($vads_params);
         $signature = sha1(join('+',$vads_params).'+'.$globals->money->cyperplus_key);
         //if($signature != Env::v('signature')) {
         //    cb_erreur("signature invalide");
         //}
-        
+
         /* on extrait les informations sur l'utilisateur */
         $user = User::get(Env::v('vads_cust_id'));
         if (!$user) {
@@ -287,14 +286,14 @@ class PaymentModule extends PLModule
             cb_erreur("référence de commande invalide");
         }
 
-        echo ($ref = $matches[1]);
+        $ref = $matches[1];
         $res = XDB::query("SELECT  mail, text, confirmation
                              FROM  payments
                             WHERE  id={?}", $ref);
         if (!list($conf_mail, $conf_title, $conf_text) = $res->fetchOneRow()) {
             cb_erreur("référence de commande inconnue");
         }
-        
+
         /* on extrait le montant */
         if (Env::v('vads_currency') != "978") {
             cb_erreur("monnaie autre que l'euro");
@@ -305,11 +304,12 @@ class PaymentModule extends PLModule
         if (Env::v('vads_result') != "00") {
             cb_erreur("erreur lors du paiement : ?? (".Env::v('vads_result').")");
         }
-               
+
         /* on fait l'insertion en base de donnees */
         XDB::execute("INSERT INTO  payment_transactions (id, uid, ref, fullref, amount, pkey, comment)
                            VALUES  ({?}, {?}, {?}, {?}, {?}, {?}, {?})",
                      Env::v('vads_trans_date'), $user->id(), $ref, Env::v('vads_order_id'), $montant, "", Env::v('vads_order_info'));
+        echo "Paiement stored.\n";
 
         // We check if it is an Xnet payment and then update the related ML.
         $res = XDB::query('SELECT  eid
@@ -318,7 +318,7 @@ class PaymentModule extends PLModule
         if ($eid = $res->fetchOneCell()) {
             require_once dirname(__FILE__) . '/xnetevents/xnetevents.inc.php';
             $evt = get_event_detail($eid);
-            subscribe_lists_event(0, $uid, $evt, $montant, true);
+            subscribe_lists_event($user->id(), $evt, 1, $montant, true);
         }
 
         /* on genere le mail de confirmation */
@@ -344,12 +344,13 @@ class PaymentModule extends PLModule
         $msg = 'utilisateur : ' . $user->login() . ' (' . $user->id() . ')' . "\n" .
                'mail : ' . $user->forlifeEmail() . "\n\n" .
                "paiement : $conf_title ($conf_mail)\n".
-               "reference : $champ200\n".
+               "reference : " . Env::v('vads_order_id') . "\n".
                "montant : $montant\n\n".
                "dump de REQUEST:\n".
                var_export($_REQUEST,true);
         $mymail->setTxtBody($msg);
         $mymail->send();
+        echo "Notifications sent.\n";
         exit;
     }
 
@@ -412,7 +413,7 @@ class PaymentModule extends PLModule
         if ($eid = $res->fetchOneCell()) {
             require_once dirname(__FILE__) . '/xnetevents/xnetevents.inc.php';
             $evt = get_event_detail($eid);
-            subscribe_lists_event(0, $uid, $evt, $montant, true);
+            subscribe_lists_event($user->id(), $evt, 1, $montant, true);
         }
 
         /* on genere le mail de confirmation */
@@ -487,17 +488,17 @@ class PaymentModule extends PLModule
         foreach($tit as $foo) {
             $pid = $foo['id'];
             if (may_update()) {
-                $res = XDB::query('SELECT  t.uid, timestamp AS `date`, t.comment, montant
+                $res = XDB::query('SELECT  t.uid, timestamp AS `date`, t.comment, amount
                                      FROM  payment_transactions AS t
                                     WHERE  t.ref = {?}', $pid);
                 $trans[$pid] = User::getBulkUsersWithUIDs($res->fetchAllAssoc(), 'uid', 'user');
                 $sum = 0;
                 foreach ($trans[$pid] as $i => $t) {
-                    $sum += strtr(substr($t['montant'], 0, strpos($t['montant'], 'EUR')), ',', '.');
-                    $trans[$pid][$i]['montant'] = str_replace('EUR', '€', $t['montant']);
+                    $sum += strtr(substr($t['amount'], 0, strpos($t['amount'], 'EUR')), ',', '.');
+                    $trans[$pid][$i]['amount'] = str_replace('EUR', '€', $t['amount']);
                 }
                 $trans[$pid][] = array('nom' => 'somme totale',
-                                       'montant' => strtr($sum, '.', ',').' €');
+                                       'amount' => strtr($sum, '.', ',').' €');
             }
             $res = XDB::iterRow("SELECT e.eid, e.short_name, e.intitule, ep.nb, ei.montant, ep.paid
                                    FROM group_events AS e
@@ -518,7 +519,7 @@ class PaymentModule extends PLModule
                     $event[$pid]['paid']      = $paid;
                 }
             }
-            $res = XDB::query("SELECT montant
+            $res = XDB::query("SELECT amount
                                  FROM payment_transactions AS t
                                 WHERE ref = {?} AND uid = {?}", $pid, S::v('uid'));
             $montants = $res->fetchColumn();