crypto = new ETransactionsEncrypt(); $this->signature = 'Etransactions_differe|Etransactions_differe|1.0|2.2'; $this->code = 'Etransactions_differe'; $this->title = MODULE_PAYMENT_Etransactions_DIFFERE_TEXT_TITLE; $this->public_title = MODULE_PAYMENT_Etransactions_DIFFERE_TEXT_PUBLIC_TITLE; $this->description = MODULE_PAYMENT_Etransactions_DIFFERE_TEXT_DESCRIPTION; $this->sort_order = MODULE_PAYMENT_Etransactions_DIFFERE_SORT_ORDER; $this->enabled = ((MODULE_PAYMENT_Etransactions_DIFFERE_STATUS == 'True') ? true : false); $this->enabled_3d = ((MODULE_PAYMENT_Etransactions_DIFFERE_3DSECURE == 'True') ? true : false); $this->Etransactions = new Etransactions($this); if(MODULE_PAYMENT_Etransactions_DIFFERE_ENVIRONMENT == "Production") { $this->form_action_url = 'https://tpeweb.e-transactions.fr/cgi/MYchoix_pagepaiement.cgi'; } else { $this->form_action_url = 'https://preprod-tpeweb.e-transactions.fr/cgi/MYchoix_pagepaiement.cgi'; } if (is_object($order)) { $this->update_status(); } } /** * Install payment module Etransactions with default configuration */ public function install() { $this->_getConfLang(); //Activation 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 ('" . tep_db_input(MODULE_PAYMENT_Etransactions_DIFFERE_LABEL_ENABLE) . "', 'MODULE_PAYMENT_Etransactions_DIFFERE_STATUS', '', '" . tep_db_input(MODULE_PAYMENT_Etransactions_DIFFERE_TEXT_ENABLE) . "', '6', '0','tep_cfg_select_option(array(\'True\', \'False\'), ', now())"); //Environment 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 ('" . tep_db_input(MODULE_PAYMENT_Etransactions_DIFFERE_LABEL_ENVIRONMENT) . "', 'MODULE_PAYMENT_Etransactions_DIFFERE_ENVIRONMENT', '', '" . tep_db_input(MODULE_PAYMENT_Etransactions_DIFFERE_TEXT_ENVIRONMENT) . "', '6', '0', 'tep_cfg_select_option(array(\'Test\', \'Production\'), ', now())"); //ID site tep_db_query("INSERT INTO " . TABLE_CONFIGURATION . " (configuration_title, configuration_key, configuration_value, configuration_description, configuration_group_id, sort_order, date_added) " . " VALUES ('" . tep_db_input(MODULE_PAYMENT_Etransactions_DIFFERE_LABEL_IDSITE) . "', 'MODULE_PAYMENT_Etransactions_DIFFERE_IDSITE', '1999888', '" . tep_db_input(MODULE_PAYMENT_Etransactions_DIFFERE_TEXT_IDSITE) . "', '6', '0', now())"); //Rank site tep_db_query("INSERT INTO " . TABLE_CONFIGURATION . " (configuration_title, configuration_key, configuration_value, configuration_description, configuration_group_id, sort_order, date_added) " . " VALUES ('" . tep_db_input(MODULE_PAYMENT_Etransactions_DIFFERE_LABEL_RANK) . "', 'MODULE_PAYMENT_Etransactions_DIFFERE_RANK', '77', '" . tep_db_input(MODULE_PAYMENT_Etransactions_DIFFERE_TEXT_RANK) . "', '6', '0', now())"); //Etransactions ID tep_db_query("INSERT INTO " . TABLE_CONFIGURATION . " (configuration_title, configuration_key, configuration_value, configuration_description, configuration_group_id, sort_order, date_added) " . " VALUES ('" . tep_db_input(MODULE_PAYMENT_Etransactions_DIFFERE_LABEL_IDPROFIL) . "', 'MODULE_PAYMENT_Etransactions_DIFFERE_IDPROFIL', '3262411', '" . tep_db_input(MODULE_PAYMENT_Etransactions_DIFFERE_TEXT_IDPROFIL) . "', '6', '0', now())"); //Days delayed tep_db_query("INSERT INTO " . TABLE_CONFIGURATION . " (configuration_title, configuration_key, configuration_value, configuration_description, configuration_group_id, sort_order, date_added) " . " VALUES ('" . tep_db_input(MODULE_PAYMENT_Etransactions_DIFFERE_LABEL_DAYS_DELAYED) . "', 'MODULE_PAYMENT_Etransactions_DIFFERE_DAYS_DELAYED', '', '" . tep_db_input(MODULE_PAYMENT_Etransactions_DIFFERE_TEXT_DAYS_DELAYED) . "', '6', '0', now())"); //Secret Key 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 ('" . tep_db_input( MODULE_PAYMENT_Etransactions_LABEL_HMACKEY ) . "', 'MODULE_PAYMENT_Etransactions_HMACKEY', '". $this->crypto->encrypt('4642EDBBDFF9790734E673A9974FC9DD4EF40AA2929925C40B3A95170FF5A578E7D2579D6074E28A78BD07D633C0E72A378AD83D4428B0F3741102B69AD1DBB0') . "', '" . tep_db_input( MODULE_PAYMENT_Etransactions_TEXT_HMACKEY ) . "', '6', '0','this->encryptKey','this->decryptKey', now())" ); //Enable 3D Secure 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 ('" . tep_db_input(MODULE_PAYMENT_Etransactions_DIFFERE_LABEL_3DSECURE) . "', 'MODULE_PAYMENT_Etransactions_DIFFERE_3DSECURE', 'True', '" . tep_db_input(MODULE_PAYMENT_Etransactions_DIFFERE_TEXT_3DSECURE) . "', '6', '0', 'tep_cfg_select_option(array(\'True\', \'False\'), ', now())"); //Minimum amount 3d secure tep_db_query("INSERT INTO " . TABLE_CONFIGURATION . " (configuration_title, configuration_key, configuration_value, configuration_description, configuration_group_id, sort_order, date_added) " . " VALUES ('" . tep_db_input(MODULE_PAYMENT_Etransactions_DIFFERE_LABEL_MIN_AMOUNT_3D) . "', 'MODULE_PAYMENT_Etransactions_DIFFERE_MIN_AMOUNT_3D', '', '" . tep_db_input(MODULE_PAYMENT_Etransactions_DIFFERE_TEXT_MIN_AMOUNT_3D) . "', '6', '0', now())"); //Order status 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 ('" . tep_db_input(MODULE_PAYMENT_Etransactions_DIFFERE_LABEL_ORDER_STATUS) . "', 'MODULE_PAYMENT_Etransactions_DIFFERE_ORDER_STATUS', '', '" . tep_db_input(MODULE_PAYMENT_Etransactions_DIFFERE_TEXT_ORDER_STATUS) . "', '6', '0', 'tep_cfg_pull_down_order_statuses(', 'tep_get_order_status_name', now())"); } /** * functions for encrypting and decrypting from this class **/ public function encryptKey(){ return $this->crypto->encrypt(MODULE_PAYMENT_Etransactions_HMACKEY); } public function decryptKey(){ return $this->crypto->decrypt(MODULE_PAYMENT_Etransactions_HMACKEY); } /** * Include the file with translation */ private function _getConfLang() { //test current lang for I18N $defaultPathLang = realpath(dirname(__FILE__)) . "/../../languages/english/modules/payment/Etransactions_differe.php"; if (isset($_SESSION["language"]) && $_SESSION["language"] != "") { $currentPathLang = realpath(dirname(__FILE__)) . "/../../languages/" . trim(strtolower($_SESSION["language"]) . "/modules/payment/Etransactions_differe.php"); if (file_exists($currentPathLang)) { require_once $currentPathLang; } else { require_once $defaultPathLang; } } else { require_once $defaultPathLang; } } /** * Delete the module and all configurations */ public function remove() { tep_db_query("DELETE FROM " . TABLE_CONFIGURATION . " WHERE configuration_key IN ('" . implode("', '", $this->keys()) . "')"); } /** * Update status for the current order * @global order $order */ public function update_status() { global $order; if (($this->enabled == true) && ((int) MODULE_PAYMENT_Etransactions_DIFFERE_EXPRESS_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_Etransactions_DIFFERE_EXPRESS_ZONE . "' and zone_country_id = '" . $order->delivery['country']['id'] . "' order by zone_id"); while ($check = tep_db_fetch_array($check_query)) { if ($check['zone_id'] < 1) { $check_flag = true; break; } else if ($check['zone_id'] == $order->delivery['zone_id']) { $check_flag = true; break; } } if ($check_flag == false) { $this->enabled = false; } } } /** * Keys enable for module Etransactions * @return array */ public function keys() { return array('MODULE_PAYMENT_Etransactions_DIFFERE_STATUS', 'MODULE_PAYMENT_Etransactions_DIFFERE_IDSITE', 'MODULE_PAYMENT_Etransactions_DIFFERE_RANK', 'MODULE_PAYMENT_Etransactions_DIFFERE_IDPROFIL', 'MODULE_PAYMENT_Etransactions_HMACKEY', 'MODULE_PAYMENT_Etransactions_DIFFERE_ENVIRONMENT', 'MODULE_PAYMENT_Etransactions_DIFFERE_ORDER_STATUS', 'MODULE_PAYMENT_Etransactions_DIFFERE_DAYS_DELAYED', 'MODULE_PAYMENT_Etransactions_DIFFERE_3DSECURE'); } /**, 'MODULE_PAYMENT_Etransactions_DIFFERE_MIN_AMOUNT_3D'*/ public function process_button() { return false; } public function before_process() { return false; } public function after_process() { return false; } public function check() { if (!isset($this->_check)) { $check_query = tep_db_query("select configuration_value from " . TABLE_CONFIGURATION . " where configuration_key = 'MODULE_PAYMENT_Etransactions_DIFFERE_STATUS'"); $this->_check = tep_db_num_rows($check_query); } return $this->_check; } public function javascript_validation() { return false; } public function selection() { return array('id' => $this->code, 'module' => $this->public_title . (strlen(MODULE_PAYMENT_Etransactions_DIFFERE_TEXT_PUBLIC_DESCRIPTION) > 0 ? ' (' . MODULE_PAYMENT_Etransactions_DIFFERE_TEXT_PUBLIC_DESCRIPTION . ')' : '')); } public function pre_confirmation_check() { return null; /*jc 1.6 15/03/2017*/ } public function confirmation() { global $language, $order, $currency; require_once DIR_WS_CLASSES. 'currencies.php'; $currency_object = new currencies(); $precision = $currency_object->get_decimal_places($currency); $thousands_point = $currency_object->currencies[$currency]['thousands_point']; $decimal_point = $currency_object->currencies[$currency]['decimal_point']; //Detect mobile if ($this->Etransactions->is_mobile()) { if (MODULE_PAYMENT_Etransactions_DIFFERE_ENVIRONMENT == "Production") { $this->form_action_url = "https://tpeweb.e-transactions.fr/cgi/ChoixPaiementMobile.cgi"; } else { $this->form_action_url = "https://preprod-tpeweb.e-transactions.fr/cgi/ChoixPaiementMobile.cgi"; } } //Create command $orderid = $this->Etransactions->checkout_process(); $order = new order( $orderid ); //Define language $langue_pbx = Etransactions::getLang( $language ); //Define currency $currencyPbx = Etransactions::getCurrency( $currency ); define( 'PBX_Etransactions_EFFECTUE', tep_href_link( FILENAME_CHECKOUT_SUCCESS ) ); //define date $dateTime = date( "c" ); $secure3d = ""; $deffered = ""; $deffered_value = ""; //3d secure test if (!$this->enabled_3d || (MODULE_PAYMENT_Etransactions_DIFFERE_MIN_AMOUNT_3D != "" && $order->info['total'] < MODULE_PAYMENT_Etransactions_DIFFERE_MIN_AMOUNT_3D)) { $secure3d = "&PBX_3DS=N"; } //Number of days delayed if(MODULE_PAYMENT_Etransactions_DIFFERE_DAYS_DELAYED != "") { if(MODULE_PAYMENT_Etransactions_DIFFERE_DAYS_DELAYED < 100) { $deffered_value = str_pad(MODULE_PAYMENT_Etransactions_DIFFERE_DAYS_DELAYED, 2, "0", STR_PAD_LEFT); } else { $deffered_value = MODULE_PAYMENT_Etransactions_DIFFERE_DAYS_DELAYED; } $deffered = "&PBX_DIFF=".$deffered_value; } //define total $tmp_total = str_replace($thousands_point,'',$order->info['total']); $tmp_total = str_replace(',','\.',$order->info['total']); $tmp_total = preg_replace('/[^0-9\.]/','',$tmp_total); if($precision>0)$tmp_total = money_format('%'.$precision.'n',$tmp_total); $total = Etransactions::getTotal( $tmp_total ); $msg = "PBX_SITE=" .MODULE_PAYMENT_Etransactions_DIFFERE_IDSITE. "&PBX_RANG=" .MODULE_PAYMENT_Etransactions_DIFFERE_RANK. "&PBX_IDENTIFIANT=" .MODULE_PAYMENT_Etransactions_DIFFERE_IDPROFIL. "&PBX_TOTAL=" . $total . "&PBX_DEVISE=$currencyPbx" . "&PBX_LANGUE=".$langue_pbx. "&PBX_CMD=" . $orderid . "&PBX_PORTEUR=" . $order->customer['email_address'] . "&PBX_RETOUR=" . Etransactions::getPbxRetour(). "&PBX_HASH=" . 'SHA512' . "&PBX_ANNULE=" . tep_href_link(FILENAME_CHECKOUT_PAYMENT, 'payment_error=' . $this->code, 'NONSSL', true). "&PBX_REFUSE=" . tep_href_link(FILENAME_CHECKOUT_PAYMENT, 'payment_error=' . $this->code, 'NONSSL', true). "&PBX_TIME=" . $dateTime. $secure3d. $deffered. "&PBX_EFFECTUE=".PBX_Etransactions_EFFECTUE. "&PBX_REPONDRE_A=".tep_href_link( "Etransactions_ipn.php" ); //Define hash string $hmac = Etransactions::getHashKey( $msg, $this->crypto->decrypt(MODULE_PAYMENT_Etransactions_HMACKEY)) ; ?>
' : ""; ?> ' : ""; ?> " />
0) && constant("MODULE_PAYMENT_Etransactions_DIFERRE_CODE_ERROR_".$_GET['erreur']) != NULL) { $error = constant("MODULE_PAYMENT_Etransactions_DIFFERE_CODE_ERROR_".$_GET['erreur']); } else { $error = MODULE_PAYMENT_Etransactions_DIFERRE_TEXT_ERROR_MESSAGE; } return array('title' => MODULE_PAYMENT_Etransactions_DIFERRE_TEXT_ERROR, 'error' => $error); } }