X-Git-Url: http://git.polytechnique.org/?a=blobdiff_plain;ds=sidebyside;f=modules%2Fpayment.php;h=d24ebcfb8a724aa9af43cac4460794a8ad5c4eb0;hb=56cd7aeef7f34f7dec76564821330be5d587b72c;hp=3685e784ba7f8a39ded111826e14d180e444d73a;hpb=a690a74c8389295c62278665e1acf27107673c28;p=platal.git diff --git a/modules/payment.php b/modules/payment.php index 3685e78..d24ebcf 100644 --- a/modules/payment.php +++ b/modules/payment.php @@ -22,12 +22,14 @@ /* 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();