Advertisement
Guest User

Untitled

a guest
Feb 17th, 2017
137
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
PHP 11.78 KB | None | 0 0
  1. <?php
  2. /*
  3.   $Id: dotpay.php,v 6.0.6 2012/03/12 13:14:00 hpdl Exp $
  4.  
  5.   osCommerce, Open Source E-Commerce Solutions
  6.   http://www.oscommerce.com
  7.  
  8.   Copyright (c) 2003 osCommerce
  9.   Copyright (c) 2012 Dotpay.pl
  10.  
  11.   Released under the GNU General Public License
  12.   Autor: Dotpay.pl
  13.   http://www.dotpay.pl
  14. */
  15.  
  16.   class dotpay {
  17.     var $code, $title, $description, $enabled;
  18.  
  19. // class constructor
  20.     function dotpay() {
  21.       global $order;
  22.  
  23.       $this->code = 'dotpay';
  24.       $this->title = MODULE_PAYMENT_DOTPAY_TEXT_TITLE;
  25.       $this->description = MODULE_PAYMENT_DOTPAY_TEXT_DESCRIPTION;
  26.       $this->sort_order = MODULE_PAYMENT_DOTPAY_SORT_ORDER;
  27.       $this->enabled = ((MODULE_PAYMENT_DOTPAY_STATUS == 'True') ? true : false);
  28.  
  29.       if ((int)MODULE_PAYMENT_DOTPAY_ORDER_STATUS_ID > 0) {
  30.         $this->order_status = MODULE_PAYMENT_DOTPAY_ORDER_STATUS_ID;
  31.       }
  32.  
  33.       if (is_object($order)) $this->update_status();
  34.  
  35.       $this->form_action_url = 'https://ssl.dotpay.pl/';
  36.     }
  37.  
  38. // class methods
  39.     function update_status() {
  40.       global $order;
  41.  
  42.       if ( ($this->enabled == true) && ((int)MODULE_PAYMENT_DOTPAY_ZONE > 0) ) {
  43.         $check_flag = false;
  44.         $check_query = tep_db_query("select zone_id from " . TABLE_ZONES_TO_GEO_ZONES . " where geo_zone_id = '" . MODULE_PAYMENT_DOTPAY_ZONE .
  45.                         "' and zone_country_id = '" . $order->billing['country']['id'] . "' order by zone_id");
  46.         while ($check = tep_db_fetch_array($check_query)) {
  47.           if ($check['zone_id'] < 1) {
  48.             $check_flag = true;
  49.             break;
  50.           } elseif ($check['zone_id'] == $order->billing['zone_id']) {
  51.             $check_flag = true;
  52.             break;
  53.           }
  54.         }
  55.  
  56.         if ($check_flag == false) {
  57.           $this->enabled = false;
  58.         }
  59.       }
  60.     }
  61.  
  62.     function javascript_validation() {
  63.       return false;
  64.     }
  65.  
  66.     function selection() {
  67.       return array('id' => $this->code,
  68.                    'module' => $this->title);
  69.     }
  70.  
  71.     function pre_confirmation_check() {
  72.       return false;
  73.     }
  74.  
  75.     function confirmation() {
  76.     return array('title' => MODULE_PAYMENT_DOTPAY_TEXT_CONFIRMATION
  77.                  );
  78.     }
  79.  
  80.     function process_button() {
  81.       global $order, $currencies, $currency, $languages_id, $customer_id;               // $osCsid - removed from globals for compatibility with 2.2rc2
  82.  
  83.     $my_order = STORE_NAME . " - " . $customer_id."\n";
  84.         if (is_array($order->products)) {
  85.           foreach ($order->products as $pr => $ar) {
  86.             if (is_array($ar)) { $my_order .= $ar['qty']."x - ".$ar['name']." => ".$ar['model'].": ".$ar['final_price']." ".$order->info['currency']."\n"; }
  87.           }
  88.           $my_order .= "+".$order->info['shipping_method'].": ".$order->info['shipping_cost']." ".$order->info['currency']."\n";
  89.         }
  90.         $delivery_name = $order->delivery['firstname']." ".$order->delivery['lastname'];
  91.         $delivery_addr = "";
  92.         if ($order->delivery['company']) $delivery_addr = $order->delivery['company']."\n";#ap
  93.        $delivery_addr .= $order->delivery['street_address']." ".$order->delivery['suburb']."\n".
  94.                           $order->delivery['city'].", ".$order->delivery['postcode']." ".$order->delivery['state']."\n".
  95.                           $order->delivery['country']['title'];
  96.  
  97.         $kwota = number_format($order->info['total']*$order->info['currency_value'], 2);
  98.         $control = $kwota;
  99.  
  100.       $my_lang = tep_db_fetch_array(tep_db_query("select code from " . TABLE_LANGUAGES . " where languages_id = '" . (int)$languages_id . "'"));
  101.       if ($my_lang['code'] == "pl") $mytitle = "Zamowienie";
  102.       else $mytitle = "Order";
  103.  
  104.       $process_button_string = tep_draw_hidden_field('session_id', tep_session_id() ) .     // $osCsid - changed to tep_session_id() for compatybility with 2.2rc2
  105.                                tep_draw_hidden_field('lang', strtolower($my_lang['code'])) .
  106.                                # tep_draw_hidden_field('pay', 'yes') .                      // $pay - no more supported
  107.                               tep_draw_hidden_field('waluta', $order->info['currency']) .
  108.                                tep_draw_hidden_field('osC', '1') .
  109.                                tep_draw_hidden_field('id', MODULE_PAYMENT_DOTPAY_ID) .
  110.                                tep_draw_hidden_field('kanal', '0') .
  111.                                tep_draw_hidden_field('kwota', $kwota) .
  112.                                tep_draw_hidden_field('opis', STORE_NAME." - ".$mytitle.' ' . $customer_id . '-' . date('Ymdhis') ) .
  113.                                tep_draw_hidden_field('forename', $order->billing['firstname']) .
  114.                                tep_draw_hidden_field('surname', $order->billing['lastname']) .
  115.                                tep_draw_hidden_field('oscdesc', $my_order) .
  116.                                tep_draw_hidden_field('oscname', $delivery_name) .
  117.                                tep_draw_hidden_field('deladdr', $delivery_addr) .
  118.                                tep_draw_hidden_field('street', $order->billing['street_address']) .
  119.                                tep_draw_hidden_field('street_n1', $order->billing['suburb']) .
  120.                                tep_draw_hidden_field('city', $order->billing['city']) .
  121.                                tep_draw_hidden_field('bill_state', $order->billing['state']) .
  122.                                tep_draw_hidden_field('postcode', $order->billing['postcode']) .
  123.                                tep_draw_hidden_field('country', $order->billing['country']['title']) .
  124.                                tep_draw_hidden_field('comments', $order->info['comments']) .
  125.                                tep_draw_hidden_field('phone', $order->customer['telephone']) .
  126.                                tep_draw_hidden_field('email', $order->customer['email_address']) .
  127.                                tep_draw_hidden_field('control', $control) .
  128.                                tep_draw_hidden_field('vmodule', '6.0.5') .
  129.                    tep_draw_hidden_field('URLC', tep_href_link('dotpay.php','','SSL')) .
  130.                                tep_draw_hidden_field('return_url', tep_href_link(FILENAME_CHECKOUT_SUCCESS, '', 'SSL')) .
  131.                    tep_draw_hidden_field('cancel_return_url', tep_href_link(FILENAME_CHECKOUT_PAYMENT, '', 'SSL'));
  132.       return $process_button_string;
  133.  
  134.     }
  135.  
  136.     function before_process(){
  137.       return false;
  138.     }
  139.  
  140.     function after_process() {
  141.         global $insert_id, $aptid;
  142.         $myoid=tep_db_fetch_array(tep_db_query("select orders_status_history_id from " . TABLE_ORDERS_STATUS_HISTORY . " where orders_id='$insert_id' limit 1"));
  143.         tep_db_query("update " . TABLE_ORDERS_STATUS_HISTORY . " set orders_status_id='2',comments=concat(comments,'\n" .$aptid . "') where orders_status_history_id='".$myoid['orders_status_history_id']."' limit 1");
  144.         tep_db_query("update " . TABLE_ORDERS . " set orders_status = '2', last_modified = now() where orders_id = '" . (int)$insert_id . "'");
  145.     return true;
  146.     }
  147.  
  148.     function output_error() {
  149.       return false;
  150.     }
  151.  
  152.     function check() {
  153.       if (!isset($this->_check)) {
  154.         $check_query = tep_db_query("select configuration_value from " . TABLE_CONFIGURATION . " where configuration_key = 'MODULE_PAYMENT_DOTPAY_STATUS'");
  155.         $this->_check = tep_db_num_rows($check_query);
  156.       }
  157.       return $this->_check;
  158.     }
  159.  
  160.     function install() {
  161.         global $languages_id;
  162.         $my_lang = tep_db_fetch_array(tep_db_query("select code from " . TABLE_LANGUAGES . " where languages_id = '" . (int)$languages_id . "'"));
  163.         switch ($my_lang['code']) {
  164.             case "pl":
  165.                 define('MODULE_PAYMENT_DOTPAY_INSTALL_TEXT_0_DOTPAYEN','Wlacz modul Dotpay');
  166.                 define('MODULE_PAYMENT_DOTPAY_INSTALL_TEXT_1_DOTPAYENINFO','Czy chcesz przyjmowac platnosci za pomoca serwisu Dotpay?');
  167.                 define('MODULE_PAYMENT_DOTPAY_INSTALL_TEXT_2_DOTPAYID','Numer ID w Dotpay.pl');
  168.                 define('MODULE_PAYMENT_DOTPAY_INSTALL_TEXT_3_DOTPAYINFO','Podaj swoj numer ID w serwisie Dotpay:');
  169.                 define('MODULE_PAYMENT_DOTPAY_INSTALL_TEXT_4_URLCPIN','Potwierdzenia URLC - PIN');
  170.                 define('MODULE_PAYMENT_DOTPAY_INSTALL_TEXT_5_URLCPININFO','Wprowadz swoj numer PIN do potwierdzen URLC.');
  171.                 break;
  172.             default:
  173.                 define('MODULE_PAYMENT_DOTPAY_INSTALL_TEXT_0_DOTPAYEN','Enable Dotpay Module');
  174.                 define('MODULE_PAYMENT_DOTPAY_INSTALL_TEXT_1_DOTPAYENINFO','Do you want to accept Dotpay payments?');
  175.                 define('MODULE_PAYMENT_DOTPAY_INSTALL_TEXT_2_DOTPAYID','Dotpay ID number');
  176.                 define('MODULE_PAYMENT_DOTPAY_INSTALL_TEXT_3_DOTPAYINFO','Your Dotpay ID number:');
  177.                 define('MODULE_PAYMENT_DOTPAY_INSTALL_TEXT_4_URLCPIN','URLC PIN value');
  178.                 define('MODULE_PAYMENT_DOTPAY_INSTALL_TEXT_5_URLCPININFO',
  179.                             "Put your PIN value for Dotpay URLC confirmation service. Empty value means you are not using URLC PIN.");
  180.                 break;
  181.         }
  182.  
  183.         tep_db_query("insert into " . TABLE_CONFIGURATION . " (configuration_title, configuration_key, configuration_value, configuration_description, " .
  184.                         "configuration_group_id, sort_order, set_function, date_added) values ('" . MODULE_PAYMENT_DOTPAY_INSTALL_TEXT_0_DOTPAYEN .
  185.                         "', 'MODULE_PAYMENT_DOTPAY_STATUS', 'True', '" . MODULE_PAYMENT_DOTPAY_INSTALL_TEXT_1_DOTPAYENINFO .
  186.                         "', '6', '3', 'tep_cfg_select_option(array(\'True\', \'False\'), ', now())");
  187.         tep_db_query("insert into " . TABLE_CONFIGURATION . " (configuration_title, configuration_key, configuration_value, configuration_description, " .
  188.                         "configuration_group_id, sort_order, date_added) values ('" . MODULE_PAYMENT_DOTPAY_INSTALL_TEXT_2_DOTPAYID .
  189.                         "', 'MODULE_PAYMENT_DOTPAY_ID', '00000', '" . MODULE_PAYMENT_DOTPAY_INSTALL_TEXT_3_DOTPAYINFO .
  190.                         "', '6', '4', now())");
  191.         tep_db_query("insert into " . TABLE_CONFIGURATION . " (configuration_title, configuration_key, configuration_value, configuration_description, " .
  192.                         "configuration_group_id, sort_order, date_added) values ('" . MODULE_PAYMENT_DOTPAY_INSTALL_TEXT_4_URLCPIN .
  193.                         "', 'MODULE_PAYMENT_DOTPAY_URLCPIN', '', '" . MODULE_PAYMENT_DOTPAY_INSTALL_TEXT_5_URLCPININFO .
  194.                         "', '6', '1', now())");
  195.         tep_db_query("insert into " . TABLE_CONFIGURATION . " (configuration_title, configuration_key, configuration_value, configuration_description, " .
  196.                         "configuration_group_id, sort_order, date_added) values ('Sort order of display.', 'MODULE_PAYMENT_DOTPAY_SORT_ORDER', '0', " .
  197.                         "'Sort order of display. Lowest is displayed first.', '6', '0', now())");
  198.         tep_db_query("insert into " . TABLE_CONFIGURATION . " (configuration_title, configuration_key, configuration_value, configuration_description, " .
  199.                         "configuration_group_id, sort_order, use_function, set_function, date_added) values ('Payment Zone', " .
  200.                         "'MODULE_PAYMENT_DOTPAY_ZONE', '0', 'If a zone is selected, only enable this payment method for that zone.', '6', '2', " .
  201.                         "'tep_get_zone_class_title', 'tep_cfg_pull_down_zone_classes(', now())");
  202.         tep_db_query("insert into " . TABLE_CONFIGURATION . " (configuration_title, configuration_key, configuration_value, configuration_description, " .
  203.                         "configuration_group_id, sort_order, set_function, use_function, date_added) values ('Set Order Status', " .
  204.                         "'MODULE_PAYMENT_DOTPAY_ORDER_STATUS_ID', '0', 'Set the status of orders made with this payment module to this value', '6', '0', " .
  205.                         "'tep_cfg_pull_down_order_statuses(', 'tep_get_order_status_name', now())");
  206.     }// install
  207.  
  208.     function remove() {
  209.       tep_db_query("delete from " . TABLE_CONFIGURATION . " where configuration_key in ('" . implode("', '", $this->keys()) . "')");
  210.     }// remove
  211.  
  212.     function keys() {
  213.       return array('MODULE_PAYMENT_DOTPAY_STATUS', 'MODULE_PAYMENT_DOTPAY_ID', 'MODULE_PAYMENT_DOTPAY_URLCPIN', 'MODULE_PAYMENT_DOTPAY_ZONE', 'MODULE_PAYMENT_DOTPAY_ORDER_STATUS_ID', 'MODULE_PAYMENT_DOTPAY_SORT_ORDER');
  214.     }// keys
  215.   }
  216. ?>
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement