code = 'paybox'; if (MODULE_PAYMENT_PAYBOX_NAME_BANK != 'MODULE_PAYMENT_PAYBOX_NAME_BANK') { $this->title = MODULE_PAYMENT_PAYBOX_NAME_BANK; } else { $this->title = MODULE_PAYMENT_PAYBOX_TEXT_TITLE; } $this->description = MODULE_PAYMENT_PAYBOX_TEXT_DESCRIPTION; $this->sort_order = MODULE_PAYMENT_PAYBOX_SORT_ORDER; $this->enabled = ((MODULE_PAYMENT_PAYBOX_STATUS == 'True') ? true : false); if ((int)MODULE_PAYMENT_PAYBOX_ORDER_STATUS_ID > 0 ) { $this->order_status = MODULE_PAYMENT_PAYBOX_ORDER_STATUS_ID; } if (is_object($order)) $this->update_status(); $this->form_action_url = MODULE_PAYMENT_PAYBOX_CGI; } // class methods function update_status() { global $order; if ( ($this->enabled == true) && ((int)MODULE_PAYMENT_PAYBOX_ZONE > 0) ) { $check_flag = false; $check_query = tep_db_query("select zone_id from " . TABLE_ZONES_TO_GEO_ZONES . " where geo_zone_id = '" . MODULE_PAYMENT_PAYBOX_ZONE . "' and zone_country_id = '" . $order->billing['country']['id'] . "' order by zone_id"); while ($check = tep_db_fetch_array($check_query)) { if ($check['zone_id'] < 1) { $check_flag = true; break; } elseif ($check['zone_id'] == $order->billing['zone_id']) { $check_flag = true; break; } } // Les trois lignes ci-dessous doivent être commentées si le module ne s'affiche pas dans la page de paiement if ($check_flag == false) { $this->enabled = false; } } } function javascript_validation() { return false; } function selection() { if (MODULE_PAYMENT_PAYBOX_IMAGE_BANK) { $this->title_selection = tep_image(DIR_WS_ICONS . MODULE_PAYMENT_PAYBOX_IMAGE_BANK, '', '', '', 'align="left" style="margin-right:7px;"') . $this->title; } else { $this->title_selection = $this->title; } return array('id' => $this->code, 'module' => $this->title_selection); } function pre_confirmation_check() { return false; } function confirmation() { return false; } function process_button() { global $order, $language; switch ($language) { case french: $langue_pbx='FRA'; break; case english: $langue_pbx='GBR'; break; case german: $langue_pbx='DEU'; break; case espanol: $langue_pbx='ESP'; break; } if (MODULE_PAYMENT_PAYBOX_PRODUCTION == 'Production') { define('PBX_PAYBOX_EFFECTUE', tep_href_link(FILENAME_CHECKOUT_SUCCESS, 'pbx=1&' . tep_session_name().'='. tep_session_id(), 'SSL', false)); } else { define('PBX_PAYBOX_EFFECTUE', tep_href_link(FILENAME_CHECKOUT_PROCESS, 'pbx=1&' . tep_session_name().'='. tep_session_id(), 'SSL', false)); } $process_button_string = tep_draw_hidden_field('PBX_MODE', '1') . tep_draw_hidden_field('PBX_SITE', MODULE_PAYMENT_PAYBOX_PBX_SITE) . tep_draw_hidden_field('PBX_RANG', MODULE_PAYMENT_PAYBOX_PBX_RANG) . tep_draw_hidden_field('PBX_IDENTIFIANT', MODULE_PAYMENT_PAYBOX_PBX_IDENTIFIANT) . tep_draw_hidden_field('PBX_TOTAL', (round($order->info['total'],2)) * 100) . tep_draw_hidden_field('PBX_DEVISE', '978') . tep_draw_hidden_field('PBX_LANGUE', $langue_pbx) . tep_draw_hidden_field('PBX_CMD', tep_session_id()) . tep_draw_hidden_field('PBX_PORTEUR', $order->customer['email_address']) . tep_draw_hidden_field('PBX_RETOUR', tep_session_name() . ':R;PBX_TOTAL:M;auto:A;erreur:E;trans:T') . tep_draw_hidden_field('PBX_ANNULE', tep_href_link(FILENAME_CHECKOUT_PAYMENT, 'payment_error=' . $this->code, 'NONSSL', true)) . tep_draw_hidden_field('PBX_REFUSE', tep_href_link(FILENAME_CHECKOUT_PAYMENT, 'payment_error=' . $this->code, 'NONSSL', true)) . tep_draw_hidden_field('PBX_EFFECTUE', PBX_PAYBOX_EFFECTUE) . tep_draw_hidden_field(tep_session_name(), tep_session_id()) . tep_draw_hidden_field('options', 'test_status=' . $test_status . ',dups=false,cb_post=true,cb_flds=' . tep_session_name()); return $process_button_string; } function before_process() { global $HTTP_POST_VARS; if ($HTTP_POST_VARS['valid'] == 'true') { if ($remote_host = getenv('REMOTE_HOST')) { if ($remote_host != 'paybox.com') { $remote_host = gethostbyaddr($remote_host); } if ($remote_host != 'paybox.com') { tep_redirect(tep_href_link(FILENAME_CHECKOUT_PAYMENT, tep_session_name() . '=' . $HTTP_POST_VARS[tep_session_name()] . '&payment_error=' . $this->code, 'SSL', false, false)); } } else { tep_redirect(tep_href_link(FILENAME_CHECKOUT_PAYMENT, tep_session_name() . '=' . $HTTP_POST_VARS[tep_session_name()] . '&payment_error=' . $this->code, 'SSL', false, false)); } } } function after_process() { return false; } function get_error() { global $HTTP_GET_VARS; if (isset($HTTP_GET_VARS['message']) && (strlen($HTTP_GET_VARS['message']) > 0)) { $error = stripslashes(urldecode($HTTP_GET_VARS['message'])); } else { $error = MODULE_PAYMENT_PAYBOX_TEXT_ERROR_MESSAGE; } return array('title' => MODULE_PAYMENT_PAYBOX_TEXT_ERROR, 'error' => $error); } function check() { if (!isset($this->_check)) { $check_query = tep_db_query("select configuration_value from " . TABLE_CONFIGURATION . " where configuration_key = 'MODULE_PAYMENT_PAYBOX_STATUS'"); $this->_check = tep_db_num_rows($check_query); } return $this->_check; } function install() { tep_db_query("insert into " . TABLE_CONFIGURATION . " (configuration_title, configuration_key, configuration_value, configuration_description, configuration_group_id, sort_order, set_function, date_added) values ('Carte bancaire Paybox', 'MODULE_PAYMENT_PAYBOX_STATUS', 'False', 'Voulez-vous accepter le paiement par carte via le système Paybox ?', '6', '1', 'tep_cfg_select_option(array(\'True\', \'False\'), ', now())"); tep_db_query("insert into " . TABLE_CONFIGURATION . " (configuration_title, configuration_key, configuration_value, configuration_description, configuration_group_id, sort_order, set_function, date_added) values ('Mode Production ou Test', 'MODULE_PAYMENT_PAYBOX_PRODUCTION', 'Test', 'Vous pouvez activer le mode production seulement si vous avez fournit à la banque l\'URL de retour qui permettra de valider les commandes.

Exemple d\'URL retour : http://www.maboutique.com/response_paybox.php', '6', '2', 'tep_cfg_select_option(array(\'Test\', \'Production\'), ', now())"); tep_db_query("insert into " . TABLE_CONFIGURATION . " (configuration_title, configuration_key, configuration_value, configuration_description, configuration_group_id, sort_order, date_added) values ('Numéro d\'IP autorisé à donner la confirmation d\'achat.', 'MODULE_PAYMENT_PAYBOX_IP', '195.101.99.76,195.101.99.77,62.39.109.166,194.50.38.6', 'Numéro d\'IP du serveur de la banque qui fera appel à votre boutique pour confirmer la commande.

Note : Vous pouvez ajouter plusieurs numéro d\'IP, pour cela il vous suffit de les séparer par une virgule.', '6', '3', now())"); tep_db_query("insert into " . TABLE_CONFIGURATION . " (configuration_title, configuration_key, configuration_value, configuration_description, configuration_group_id, sort_order, date_added) values ('Numéro de site', 'MODULE_PAYMENT_PAYBOX_PBX_SITE', '1999888', 'Numéro de site fournit par la banque.', '6', '4', now())"); tep_db_query("insert into " . TABLE_CONFIGURATION . " (configuration_title, configuration_key, configuration_value, configuration_description, configuration_group_id, sort_order, date_added) values ('Numéro de rang', 'MODULE_PAYMENT_PAYBOX_PBX_RANG', '99', 'Numéro de rang (machine) fournit par la banque.', '6', '5', now())"); tep_db_query("insert into " . TABLE_CONFIGURATION . " (configuration_title, configuration_key, configuration_value, configuration_description, configuration_group_id, sort_order, date_added) values ('Numéro d\'identifiant', 'MODULE_PAYMENT_PAYBOX_PBX_IDENTIFIANT', '2', 'Numéro d\'identifiant fournit par la banque.', '6', '6', now())"); tep_db_query("insert into " . TABLE_CONFIGURATION . " (configuration_title, configuration_key, configuration_value, configuration_description, configuration_group_id, sort_order, date_added) values ('Lien sur le CGI', 'MODULE_PAYMENT_PAYBOX_CGI', 'http://www.maboutique.com/cgi-bin/modulev2.cgi', 'Chemin de votre module CGI fournit par la banque

ATTENTION : Veuillez noter que le transfert du fichier CGI doit ce faire via FTP en mode binaire et y affecter les droits d\'exécution en CHMOD 755.', '6', '7', now())"); tep_db_query("insert into " . TABLE_CONFIGURATION . " (configuration_title, configuration_key, configuration_value, configuration_description, configuration_group_id, sort_order, use_function, set_function, date_added) values ('Zone de paiment', 'MODULE_PAYMENT_PAYBOX_ZONE', '0', 'Permettre seulement cette méthode de paiement pour la zone choisie.', '6', '8', 'tep_get_zone_class_title', 'tep_cfg_pull_down_zone_classes(', now())"); tep_db_query("insert into " . TABLE_CONFIGURATION . " (configuration_title, configuration_key, configuration_value, configuration_description, configuration_group_id, sort_order, set_function, use_function, date_added) values ('Etat de la commande', 'MODULE_PAYMENT_PAYBOX_ORDER_STATUS_ID', '0', 'Sélectionner l\'état de la commande que vous voulez par défault.', '6', '9', 'tep_cfg_pull_down_order_statuses(', 'tep_get_order_status_name', now())"); tep_db_query("insert into " . TABLE_CONFIGURATION . " (configuration_title, configuration_key, configuration_value, configuration_description, configuration_group_id, sort_order, set_function, date_added) values ('Recevoir des états d\'alertes par e-mail', 'MODULE_PAYMENT_PAYBOX_MAIL', 'True', 'Voulez-vous recevoir les états d\'alerte par e-mail ?', '6', '10', 'tep_cfg_select_option(array(\'True\', \'False\'), ', now())"); tep_db_query("insert into " . TABLE_CONFIGURATION . " (configuration_title, configuration_key, configuration_value, configuration_description, configuration_group_id, sort_order, date_added) values ('Nom de la banque et titre du module', 'MODULE_PAYMENT_PAYBOX_NAME_BANK', 'Paiement par CB avec le crédit agricole', 'Permet de modifier le texte sur la page de paiement de la boutique et que vous puissiez identifier plus facilement les d\'états d\'alerte reçue par e-mail.', '6', '11', now())"); tep_db_query("insert into " . TABLE_CONFIGURATION . " (configuration_title, configuration_key, configuration_value, configuration_description, configuration_group_id, sort_order, date_added) values ('Logo de la banque', 'MODULE_PAYMENT_PAYBOX_IMAGE_BANK', 'e_transaction.jpg', 'Veuillez indiquer le nom de son image avec son extension (.gif, .jpg, etc...). Toutes les images sont à mettre dans le dossier images/icons/.', '6', '12', now())"); tep_db_query("insert into " . TABLE_CONFIGURATION . " (configuration_title, configuration_key, configuration_value, configuration_description, configuration_group_id, sort_order, date_added) values ('Ordre de tri', 'MODULE_PAYMENT_PAYBOX_SORT_ORDER', '0', 'Ordre de tri pour l\'affichage (Le plus petit nombre est montré en premier).', '6', '13', now())"); } function remove() { tep_db_query("delete from " . TABLE_CONFIGURATION . " where configuration_key in ('" . implode("', '", $this->keys()) . "')"); } function keys() { return array('MODULE_PAYMENT_PAYBOX_STATUS', 'MODULE_PAYMENT_PAYBOX_PRODUCTION', 'MODULE_PAYMENT_PAYBOX_IP', 'MODULE_PAYMENT_PAYBOX_PBX_SITE', 'MODULE_PAYMENT_PAYBOX_PBX_RANG','MODULE_PAYMENT_PAYBOX_PBX_IDENTIFIANT', 'MODULE_PAYMENT_PAYBOX_CGI', 'MODULE_PAYMENT_PAYBOX_ZONE', 'MODULE_PAYMENT_PAYBOX_ORDER_STATUS_ID', 'MODULE_PAYMENT_PAYBOX_MAIL', 'MODULE_PAYMENT_PAYBOX_NAME_BANK', 'MODULE_PAYMENT_PAYBOX_IMAGE_BANK', 'MODULE_PAYMENT_PAYBOX_SORT_ORDER'); } } ?>