[contribution] BankPass

Questo forum è dedicato alle discussioni riguardanti le contribution per osCommerce

Moderatore: mod Generali

manetta
membro Junior
membro Junior
Messaggi: 9
Iscritto il: 23/12/2004, 1:00
Località: ITALIA
Contatta:

Messaggio da manetta »

lo hai installato sulla versione base MS2 o ti sei spinto verso una versione CVS?
radioemma
membro Junior
membro Junior
Messaggi: 8
Iscritto il: 12/10/2004, 0:00
Località: Italia

configurare bankpass

Messaggio da radioemma »

A breve attiverò il mio e-commerce, creato grazie all'applicativo free di Oscommerce; le mie modalità di pagamento saranno il bonifico bancario, ed il pagamento con la carta di credito; la mia banca di appoggio sarà la Unicredit Banca.
Ho già scaricato dal link www.starfarm.it/oscommerce/bankpass-1.1.zip i nuovi moduli php da aggiungere. In test funziona.
A breve la banca mi darà il mio codice e la password per gestire il backoffice del bankPass.
Volevo sapere da voi, che cosa devo modificare nelle pagine php nuove? Ho visto che nel modulo --> bankpass/bankpass-1.1/catalog/includes/modules/payement/bankpass.php, vi sono scritti dentro i codici di test.
In specifico le seguenti righe:

if ((int)MODULE_PAYMENT_BANKPASS_ORDER_STATUS_ID > 0) {
$this->order_status = MODULE_PAYMENT_BANKPASS_ORDER_STATUS_ID;
}

if (is_object($order)) $this->update_status();

if($this->production) {
$this->form_action_url = 'https://sis-bankpass.ssb.it/bankpass/ma ... AGE=MASTER';
} else {
$this->crn = '010500000000001';
$this->chiave_avvio = 'rAPu5Nto2kv76B2cPJjWhADuwjACYLELtAo3AEAYUymbkqADjA';
$this->chiave_esito = 'EAAYYXC3LcEj8D3uq7kREiAE9vxgFaCbpSLZqjAzA8Dx7iJrVP';
$this->form_action_url = 'http://sis-test-bankpass.ssb.it/bankpas ... AGE=MASTER';
}
}


Devo cancellare o commentare quelle righe oppure devo modificare quei codici con i miei nuovi?
Grazie mille


Emma
Emma
manetta
membro Junior
membro Junior
Messaggi: 9
Iscritto il: 23/12/2004, 1:00
Località: ITALIA
Contatta:

Messaggio da manetta »

No non è necessario cancellarli.
Dal pannello di amministrazione del modulo puo selezionare l'utilizzo del modulo in modalità test o in modalità produzione.
quando selezioni test vengono usati i codici da te citati (che tra l'altro coincidono con quelli che ti avrà inviato SSB, sono uguali per tutti). Quando selezioni modalità produzione vengono invece usati i codici ti fornirà la banca e che dovrai inserire nel pannello di amministrazione.

Ciao.
Manetta.
http://ww.paddocknetwork.com
radioemma
membro Junior
membro Junior
Messaggi: 8
Iscritto il: 12/10/2004, 0:00
Località: Italia

Configurazione Bankpass

Messaggio da radioemma »

Scusate la mia insistenza, ma sono nelle canne; allora come ho già scritto il modulo di bankpass di test funziona sia dal lato esercente che dal lato acquirente. Vorrei sapere che cosa devo mettere o modificare quando configurerò con i dati veri della Unicredit, quando vado nell'amministrazione del'Oscommerce e seleziono "Modulo di pagamento"--> banpass--> e clicco sul link del "PANNELLO DI CONTROLLO BANKPASS".
Non so se è cambia di molto da quello della Banca Sella. Infatti nell'altro mio negozio di e - commerce creato grazie all'osccomerce, quando sono entrata nel pannello di controllo della Banca Sella, ho duvuto inserire 2 link, il link per indirizzarmi quando è andato tutto ok e qando è andato male.
Nono ho trovato un manuale sul back office di bank pass. QUALCUNO DI VOI HA GIA' CONFIGURATO IL BANKPASS WEB? Mi sa aiutare? O dove trovare un manuale.Da quello di test non si campisce molto e poi non si possono cambiare i dati del negozio di test.
GRAZIE MILLE
Emma
manetta
membro Junior
membro Junior
Messaggi: 9
Iscritto il: 23/12/2004, 1:00
Località: ITALIA
Contatta:

Messaggio da manetta »

I link sono già a posto così nel modulo.
Devi inserire nel pannello di controllo i 3 codici che la banca ti invierà.
CRN: Codice Riconoscimento negozio
Chiave avvio: codice che serve a creare il MAC in andata
Chiave esito: codice che serve a decifrare il MAC in rientro.
That's it.
Non devi fare altro.
Anzi no, scusa. Devi scegliere la modalità di autorizzazione e contabilizzazione....ma questo dipende da te e da ciò che vendi (pag 22 del documento tecnico per l'integrazione del servizio).

Ciao.
manetta
http://www.paddocknetwork.com
kk2000
membro Junior
membro Junior
Messaggi: 16
Iscritto il: 13/06/2005, 12:44

Testate modifiche di max8 al modulo bankpass

Messaggio da kk2000 »

max8 ha scritto:Inutile dire PROVIAMOLO PRIMA !!!!
Provato, e trovati alcuni problemi.

Dopo la conferma di ordine il carrello non viene svuotato, cosa abbastanza noiosa.

Non ricevo nessuna mail di conferma d'ordine dal negozio, solo bankpass mi invia una mail.

Per il resto vedo l'ordine dalla parte admin.
alexprod
membro Baby
membro Baby
Messaggi: 50
Iscritto il: 01/08/2005, 17:58
Località: L'Aquila
Contatta:

Messaggio da alexprod »

Salve a tutti...

sono un nuovo membro del forum ed avevo alcune domande da provi in merito alla contribution bankpass v1.1.

Premetto che ho attivato il sistema BankPassWeb con la Seceti e mi hanno inviato tutto il materiale per fare i test...
..e adesso ... cosa devo fare???
La seceti mi ha inviato le chiavi per i test nelle 3 modalità disponibili ( integrazione di tipo "full", "offline" e "light").
Da come mi sembra di capire (MA CORREGGETEMI SE SBAGLIO) io dovrei usare con questa contribution la versione "light"???
E se si il "Codice Riconoscimento Negozio (CRN)" chiesto a cosa corrisponde???
Scusate se pongo troppe domande tutte insieme ma vorrei testare il tutto senza tralasciare niente...

:roll:

grazie per la disponibilità e... cordiali saluti a tutti :wink:
alexprod
membro Baby
membro Baby
Messaggi: 50
Iscritto il: 01/08/2005, 17:58
Località: L'Aquila
Contatta:

Messaggio da alexprod »

alexprod ha scritto:Salve a tutti...

sono un nuovo membro del forum ed avevo alcune domande da provi in merito alla contribution bankpass v1.1.

Premetto che ho attivato il sistema BankPassWeb con la Seceti e mi hanno inviato tutto il materiale per fare i test...
..e adesso ... cosa devo fare???
La seceti mi ha inviato le chiavi per i test nelle 3 modalità disponibili ( integrazione di tipo "full", "offline" e "light").
Da come mi sembra di capire (MA CORREGGETEMI SE SBAGLIO) io dovrei usare con questa contribution la versione "light"???
E se si il "Codice Riconoscimento Negozio (CRN)" chiesto a cosa corrisponde???
Scusate se pongo troppe domande tutte insieme ma vorrei testare il tutto senza tralasciare niente...

:roll:

grazie per la disponibilità e... cordiali saluti a tutti :wink:
scusate ma nessuno può aiutarmi su questo argomento???
PLEASE HELP!!! :wink:
pippo010
membro Regular
membro Regular
Messaggi: 134
Iscritto il: 26/01/2004, 1:00
Località: Italia
Contatta:

Messaggio da pippo010 »

Ciao,
sinceramente non saprei dirti che cosa sia la versione light,
io ho attivato il bakpass travite la popolare di verona - Sna geminiano e San prospero, ma di codici ne hanno consegnati solo due:

1) codi per i test
2) codici esercente

Ciauz
alexprod
membro Baby
membro Baby
Messaggi: 50
Iscritto il: 01/08/2005, 17:58
Località: L'Aquila
Contatta:

Messaggio da alexprod »

pippo010 ha scritto:Ciao,
sinceramente non saprei dirti che cosa sia la versione light,
io ho attivato il bakpass travite la popolare di verona - Sna geminiano e San prospero, ma di codici ne hanno consegnati solo due:

1) codi per i test
2) codici esercente

Ciauz
Ciao Pippo..
innanzitutto grazie per la risposta...

poi volevo sapere che, sempre se è possibile, che codici ti hanno dato per i test. Li ho ricevuti anch'io... e mi piacerebbe confrontarli con i tuoi...

grazie 1000 in anticipo ...
alexprod
membro Baby
membro Baby
Messaggi: 50
Iscritto il: 01/08/2005, 17:58
Località: L'Aquila
Contatta:

Messaggio da alexprod »

max8 ha scritto:Come promesso ecco il codice...

Codice: Seleziona tutto

<?php
/*

  osCommerce, Open Source E-Commerce Solutions
  http://www.oscommerce.com

  Copyright (c) 2003 osCommerce

  Released under the GNU General Public License
  Credits to:
  Marco Spizzichino
  Starfarm Internet Communications srl
  <marco@starfarm.it>
  
  Modificato da Massimo Ottolini Otz
  ufotto@tin.it
  Max8 membro di www.oscommerceitalia.com
  Versione BETA 0.1
  
*/

  class bankpass {
    var $code, $title, $description, $enabled;

// class constructor
    function bankpass() {
      global $order;
      
      $this->code = 'bankpass';
      $this->title = MODULE_PAYMENT_BANKPASS_TEXT_TITLE;
      $this->description = MODULE_PAYMENT_BANKPASS_TEXT_DESCRIPTION;
      $this->sort_order = MODULE_PAYMENT_BANKPASS_SORT_ORDER;
      $this->enabled = ((MODULE_PAYMENT_BANKPASS_STATUS == 'Si') ? true : false);
      $this->production = ((MODULE_PAYMENT_BANKPASS_PRODUCTION == 'Si') ? true : false);
	  $this->crn = MODULE_PAYMENT_BANKPASS_ID;
      $this->tcontab = ((MODULE_PAYMENT_BANKPASS_TCONTAB == 'Immediata') ? 'I' : 'D');
      $this->tautor = ((MODULE_PAYMENT_BANKPASS_TAUTOR == 'Immediata') ? 'I' : 'D');
	  $this->chiave_avvio = MODULE_PAYMENT_BANKPASS_AVVIO;
	  $this->chiave_esito = MODULE_PAYMENT_BANKPASS_ESITO;
	  
      if ((int)MODULE_PAYMENT_BANKPASS_ORDER_STATUS_ID > 0) {
        $this->order_status = MODULE_PAYMENT_BANKPASS_ORDER_STATUS_ID;
      }

      if (is_object($order)) $this->update_status();
	  
	  if($this->production) {
		$this->form_action_url = 'https://sis-bankpass.ssb.it/bankpass/master/main?PAGE=MASTER';
	  } else {
	  	$this->crn = '010500000000001';
	  	$this->chiave_avvio = 'rAPu5Nto2kv76B2cPJjWhADuwjACYLELtAo3AEAYUymbkqADjA';
		$this->chiave_esito = 'EAAYYXC3LcEj8D3uq7kREiAE9vxgFaCbpSLZqjAzA8Dx7iJrVP';
	  	$this->form_action_url = 'http://sis-test-bankpass.ssb.it/bankpass/master/main?PAGE=MASTER';
	  }
    }

// class methods
    function update_status() {
      global $order, $shipping ; //modifica

      if ( ($this->enabled == true) && ((int)MODULE_PAYMENT_BANKPASS_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_BANKPASS_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;
          }
        }

        if ($check_flag == false) {
          $this->enabled = false;
        }
      }

    }
    
    function javascript_validation() {
      return false;
    }

    function selection() {
      return array('id' => $this->code,
                   'module' => $this->title);
    }

    function pre_confirmation_check() {
      return false;
    }

    function confirmation() {
	/*modifica OTZ
	Aggiunge l'ordine nella tabella ORDERS prima di passarlo a BANKPASS
	Per il suo funzionamento AGGIUNGETE all'interno della Tabella  orders_status del vostro DATABASE
	una voce per specificare lo stato n4  naturalmente per tutte le lingue 
	Potrebbe essere AttesaBankPass o simile.
	Se è già presente una voce 4 e non volete usare quella create una nuova voce sempre per tutte le lingue
	e modificate 
	la riga 190 da 'orders_status' => '4' in 'orders_status' => 'numero nuova voce'
	
	*/
	   global $cartID, $Bankpass_TEMP, $customer_id, $languages_id, $order, $order_total_modules;
      $myshoptransactionID =  $customer_id . '-' . date("YmdHis"); //nomesito . '-' . tolto
      if (tep_session_is_registered('cartID')) {
        $insert_order = false;

        if (tep_session_is_registered('Bankpass_TEMP')) {
          $order_id = substr($Bankpass_TEMP, strpos($Bankpass_TEMP, '-')+1);

          $curr_check = tep_db_query("select currency from " . TABLE_ORDERS . " where orders_id = '" . (int)$order_id . "'");
          $curr = tep_db_fetch_array($curr_check);

          if ( ($curr['currency'] != $order->info['currency']) || ($cartID != substr($Bankpass_TEMP, 0, strlen($cartID))) ) {
            $check_query = tep_db_query('select orders_id from ' . TABLE_ORDERS_STATUS_HISTORY . ' where orders_id = "' . (int)$order_id . '" limit 1');

            if (tep_db_num_rows($check_query) < 1) {
              tep_db_query('delete from ' . TABLE_ORDERS . ' where orders_id = "' . (int)$order_id . '"');
              tep_db_query('delete from ' . TABLE_ORDERS_TOTAL . ' where orders_id = "' . (int)$order_id . '"');
              tep_db_query('delete from ' . TABLE_ORDERS_STATUS_HISTORY . ' where orders_id = "' . (int)$order_id . '"');
              tep_db_query('delete from ' . TABLE_ORDERS_PRODUCTS . ' where orders_id = "' . (int)$order_id . '"');
              tep_db_query('delete from ' . TABLE_ORDERS_PRODUCTS_ATTRIBUTES . ' where orders_id = "' . (int)$order_id . '"');
              tep_db_query('delete from ' . TABLE_ORDERS_PRODUCTS_DOWNLOAD . ' where orders_id = "' . (int)$order_id . '"');
            }

            $insert_order = true;
          }
        } else {
          $insert_order = true;
        }

        if ($insert_order == true) {
          $order_totals = array();
          if (is_array($order_total_modules->modules)) {
            reset($order_total_modules->modules);
            while (list(, $value) = each($order_total_modules->modules)) {
              $class = substr($value, 0, strrpos($value, '.'));
              if ($GLOBALS[$class]->enabled) {
                for ($i=0, $n=sizeof($GLOBALS[$class]->output); $i<$n; $i++) {
                  if (tep_not_null($GLOBALS[$class]->output[$i]['title']) && tep_not_null($GLOBALS[$class]->output[$i]['text'])) {
                    $order_totals[] = array('code' => $GLOBALS[$class]->code,
                                            'title' => $GLOBALS[$class]->output[$i]['title'],
                                            'text' => $GLOBALS[$class]->output[$i]['text'],
                                            'value' => $GLOBALS[$class]->output[$i]['value'],
                                            'sort_order' => $GLOBALS[$class]->sort_order);
                  }
                }
              }
            }
          }

          $sql_data_array = array('customers_id' => $customer_id,
                                  'customers_name' => $order->customer['firstname'] . ' ' . $order->customer['lastname'],
                                  'customers_company' => $order->customer['company'],
                                  'customers_street_address' => $order->customer['street_address'],
                                  'customers_suburb' => $order->customer['suburb'],
                                  'customers_city' => $order->customer['city'],
                                  'customers_postcode' => $order->customer['postcode'],
                                  'customers_state' => $order->customer['state'],
                                  'customers_country' => $order->customer['country']['title'],
                                  'customers_telephone' => $order->customer['telephone'],
                                  'customers_email_address' => $order->customer['email_address'],
                                  'customers_address_format_id' => $order->customer['format_id'],
                                  'delivery_name' => $order->delivery['firstname'] . ' ' . $order->delivery['lastname'],
                                  'delivery_company' => $order->delivery['company'],
                                  'delivery_street_address' => $order->delivery['street_address'],
                                  'delivery_suburb' => $order->delivery['suburb'],
                                  'delivery_city' => $order->delivery['city'],
                                  'delivery_postcode' => $order->delivery['postcode'],
                                  'delivery_state' => $order->delivery['state'],
                                  'delivery_country' => $order->delivery['country']['title'],
                                  'delivery_address_format_id' => $order->delivery['format_id'],
                                  'billing_name' => $order->billing['firstname'] . ' ' . $order->billing['lastname'],
                                  'billing_company' => $order->billing['company'],
                                  'billing_street_address' => $order->billing['street_address'],
                                  'billing_suburb' => $order->billing['suburb'],
                                  'billing_city' => $order->billing['city'],
                                  'billing_postcode' => $order->billing['postcode'],
                                  'billing_state' => $order->billing['state'],
                                  'billing_country' => $order->billing['country']['title'],
                                  'billing_address_format_id' => $order->billing['format_id'],
                                  'payment_method' => $order->info['payment_method'],
                                  'cc_type' => $order->info['cc_type'],
                                  'cc_owner' => $order->info['cc_owner'],
                                  'cc_number' => $order->info['cc_number'],
                                  'cc_expires' => $order->info['cc_expires'],
                                  'date_purchased' => 'now()',
                                  'orders_status' => '4',
                                  'currency' => $order->info['currency'],
                                  'currency_value' => $order->info['currency_value']);

          tep_db_perform(TABLE_ORDERS, $sql_data_array);

          $insert_id = tep_db_insert_id();

          for ($i=0, $n=sizeof($order_totals); $i<$n; $i++) {
            $sql_data_array = array('orders_id' => $insert_id,
                                    'title' => $order_totals[$i]['title'],
                                    'text' => $order_totals[$i]['text'],
                                    'value' => $order_totals[$i]['value'],
                                    'class' => $order_totals[$i]['code'],
                                    'sort_order' => $order_totals[$i]['sort_order']);
             
            tep_db_perform(TABLE_ORDERS_TOTAL, $sql_data_array);
          $totaleordine=$order_totals[$i]['value'];
		  }

          for ($i=0, $n=sizeof($order->products); $i<$n; $i++) {
            $sql_data_array = array('orders_id' => $insert_id,
                                    'products_id' => tep_get_prid($order->products[$i]['id']),
                                    'products_model' => $order->products[$i]['model'],
                                    'products_name' => $order->products[$i]['name'],
                                    'products_price' => $order->products[$i]['price'],
                                    'final_price' => $order->products[$i]['final_price'],
                                    'products_tax' => $order->products[$i]['tax'],
                                    'products_quantity' => $order->products[$i]['qty']);

            tep_db_perform(TABLE_ORDERS_PRODUCTS, $sql_data_array);

            $order_products_id = tep_db_insert_id();

            $attributes_exist = '0';
            if (isset($order->products[$i]['attributes'])) {
              $attributes_exist = '1';
              for ($j=0, $n2=sizeof($order->products[$i]['attributes']); $j<$n2; $j++) {
                if (DOWNLOAD_ENABLED == 'true') {
                  $attributes_query = "select popt.products_options_name, poval.products_options_values_name, pa.options_values_price, pa.price_prefix, pad.products_attributes_maxdays, pad.products_attributes_maxcount , pad.products_attributes_filename
                                       from " . TABLE_PRODUCTS_OPTIONS . " popt, " . TABLE_PRODUCTS_OPTIONS_VALUES . " poval, " . TABLE_PRODUCTS_ATTRIBUTES . " pa
                                       left join " . TABLE_PRODUCTS_ATTRIBUTES_DOWNLOAD . " pad
                                       on pa.products_attributes_id=pad.products_attributes_id
                                       where pa.products_id = '" . $order->products[$i]['id'] . "'
                                       and pa.options_id = '" . $order->products[$i]['attributes'][$j]['option_id'] . "'
                                       and pa.options_id = popt.products_options_id
                                       and pa.options_values_id = '" . $order->products[$i]['attributes'][$j]['value_id'] . "'
                                       and pa.options_values_id = poval.products_options_values_id
                                       and popt.language_id = '" . $languages_id . "'
                                       and poval.language_id = '" . $languages_id . "'";
                  $attributes = tep_db_query($attributes_query);
                } else {
                  $attributes = tep_db_query("select popt.products_options_name, poval.products_options_values_name, pa.options_values_price, pa.price_prefix from " . TABLE_PRODUCTS_OPTIONS . " popt, " . TABLE_PRODUCTS_OPTIONS_VALUES . " poval, " . TABLE_PRODUCTS_ATTRIBUTES . " pa where pa.products_id = '" . $order->products[$i]['id'] . "' and pa.options_id = '" . $order->products[$i]['attributes'][$j]['option_id'] . "' and pa.options_id = popt.products_options_id and pa.options_values_id = '" . $order->products[$i]['attributes'][$j]['value_id'] . "' and pa.options_values_id = poval.products_options_values_id and popt.language_id = '" . $languages_id . "' and poval.language_id = '" . $languages_id . "'");
                }
                $attributes_values = tep_db_fetch_array($attributes);

                $sql_data_array = array('orders_id' => $insert_id,
                                        'orders_products_id' => $order_products_id,
                                        'products_options' => $attributes_values['products_options_name'],
                                        'products_options_values' => $attributes_values['products_options_values_name'],
                                        'options_values_price' => $attributes_values['options_values_price'],
                                        'price_prefix' => $attributes_values['price_prefix']);

                tep_db_perform(TABLE_ORDERS_PRODUCTS_ATTRIBUTES, $sql_data_array);

                if ((DOWNLOAD_ENABLED == 'true') && isset($attributes_values['products_attributes_filename']) && tep_not_null($attributes_values['products_attributes_filename'])) {
                  $sql_data_array = array('orders_id' => $insert_id,
                                          'orders_products_id' => $order_products_id,
                                          'orders_products_filename' => $attributes_values['products_attributes_filename'],
                                          'download_maxdays' => $attributes_values['products_attributes_maxdays'],
                                          'download_count' => $attributes_values['products_attributes_maxcount']);

                  tep_db_perform(TABLE_ORDERS_PRODUCTS_DOWNLOAD, $sql_data_array);
                }
              }
            }
          }

          tep_session_register('Bankpass_TEMP');
          $Bankpass_TEMP = $cartID . '-' . $insert_id;
        }
      }
	//fine modifica OTZ
      return false;
    }

    function process_button() {
      global $order, $currencies, $currency, $customer_id, $languages_id;
      
      // Definizione dei campi per il form di Bankpass
      $myshoplogin = $this->crn;
      
      if (MODULE_PAYMENT_BANKPASS_CURRENCY == 'Valuta Selezionata') {
        $osc_currency = $currency;
      } else {
        $osc_currency = substr(MODULE_PAYMENT_BANKPASS_CURRENCY, 5);
      }
      if (!in_array($osc_currency, array('EUR', 'GBP', 'USD'))) {
        $osc_currency = 'EUR';
      }
      
      // Conversion of currencies in ISO codes
      // EUR -> 978, GBP -> 2, USD -> 1
      
      switch ($osc_currency) {
	case 'EUR':
	  $mycurrency =  '978';
	break;
	case 'GBP':
	  $mycurrency =  '2';
	break;
	case 'USD':
	  $mycurrency =  '1';
	break;
	default:
	  $mycurrency =  '978';
	}
      
      // verificare che la valuta predefinita siano euro		
      $myamount = round($order->info['total'] * $currencies->get_value($osc_currency) * 100);

      //id da dare alla transazione... serve per tenere traccia della transazione e verrà scritto sul db	
      $myshoptransactionID =  $customer_id . '-' . date("YmdHis"); //nomesito . '-' . tolto
	  //$myshoptransactionID = $customer_id . '-' . time();      
		          
      // Dati utente
      $mybuyername = $order->customer['firstname'] . ' ' . $order->customer['lastname'];
      $mybuyeremail = trim($order->customer['email_address']);
     
      // Lingua di risposta del gateway 
      
      if(isset($languages_id) && !empty($languages_id))
      {
        $lang_query = tep_db_query("SELECT code FROM " . TABLE_LANGUAGES . " WHERE languages_id = " . $languages_id);
        $lang = tep_db_fetch_array($lang_query);
      
        switch ($lang['code']) {
	  case "it":
	    $mylanguage= "ITA";
	  break;
	  case "en":
	    $mylanguage= "EN";
	  break;
	  default:
	    $mylanguage= "ITA";
        }
      }
      else
      {
        $mylanguage= "ITA";
      }
      
      // viene passata l'id di sessione che consente poi di recuperare i valori sotto:	
      $mycustominfo = '?' . tep_session_name() . '=' . tep_session_id();
	
	// Calcola il MAC per i dati che saranno spediti
  	  $str = 'NUMORD=' . $myshoptransactionID . '&' .
			 'IDNEGOZIO=' . $myshoplogin . '&' .
			 'IMPORTO=' . $myamount . '&' .
			 'VALUTA=' . $mycurrency . '&' .
			 'TCONTAB=' . $this->tcontab . '&' .
			 'TAUTOR=' . $this->tautor . '&' .
			 $this->chiave_avvio;
	  $MAC = md5($str);
	
      $process_button_string = 
	  	tep_draw_hidden_field('IMPORTO', $myamount) .
		tep_draw_hidden_field('VALUTA', $mycurrency) .
		tep_draw_hidden_field('NUMORD', $myshoptransactionID) .
		tep_draw_hidden_field('IDNEGOZIO', $myshoplogin) .
		tep_draw_hidden_field('URLBACK', HTTP_SERVER . DIR_WS_HTTP_CATALOG . 'checkout_process.php' . $mycustominfo) . 
		tep_draw_hidden_field('URLDONE', HTTP_SERVER . DIR_WS_HTTP_CATALOG . 'checkout_success.php' . $mycustominfo) .
		tep_draw_hidden_field('URLMS', HTTP_SERVER . DIR_WS_HTTP_CATALOG . 'checkout_process.php'. $mycustominfo) .
		tep_draw_hidden_field('TCONTAB', $this->tcontab) .
		tep_draw_hidden_field('TAUTOR', $this->tautor) .
		tep_draw_hidden_field('MAC', $MAC) .
		tep_draw_hidden_field('LINGUA', $mylanguage) .
		tep_draw_hidden_field('EMAIL', $mybuyeremail);
/*
righe 361 e 362 ora puntano a file diversi  :
esito positivo (premendo il famoso bottone OK) ora punta checkout_success.php
Esito transazione positiva ora punta a checkout_process.php e non più a Bankpass_ms.php
*/
      return $process_button_string;
    }

    function before_process() {
	/*
	Inserisco l'esito della transazione di bankPass all'interno della tabella Orders_bankpass,
	modifico lo stato dell'ordine dal precedente 4 (da AttesaBankPass) a quello specificato
	nel modulo Bankpass nel pannello amminstrativo del sito
	*/
	// Controlla che il MAC per i dati ricevuti sia corretto
		$str = 'NUMORD=' . $_GET['NUMORD'] . '&' .
			'IDNEGOZIO=' . $_GET['IDNEGOZIO'] . '&' .
			'AUT=' . $_GET['AUT'] . '&' .
			'IMPORTO=' . $_GET['IMPORTO'] . '&' .
			'VALUTA=' . $_GET['VALUTA'] . '&' .
			'IDTRANS=' . $_GET['IDTRANS'] . '&' .
			'TCONTAB=' . $_GET['TCONTAB'] . '&' .
			'TAUTOR=' . $_GET['TAUTOR'] . '&' .
			'ESITO=' . $_GET['ESITO'] . '&' .
			$this->chiave_esito;
		$checkMAC = md5($str);
		// Il MAC non e' corretto. Torniamo alla pagina per il pagamento
		if(strtolower($_GET['MAC']) != strtolower($checkMAC)) {
			Header('Location: checkout_payment.php');
			tep_exit();
		}
	
	  global $customer_id, $order, $sendto, $billto, $payment, $currencies, $cart, $Bankpass_TEMP;
      global $$payment;
		

      include(DIR_WS_CLASSES . 'order_total.php');
      $order_total_modules = new order_total;

      $order_totals = $order_total_modules->process();

      $order_id = substr($Bankpass_TEMP, strpos($Bankpass_TEMP, '-')+1);
     //modifico lo stato dell'ordine
	 tep_db_query("UPDATE orders SET orders_status  = ".$this->sort_order." WHERE orders_id  = '" . $order_id . "'");
     //aggiorno la tabella orders_bankpass
	 		$check_query = tep_db_query("select * FROM orders_bankpass WHERE shop_transaction_id= '" . $myshoptransactionID . "'");
		$check = tep_db_num_rows($check_query);
		if($check > 0) {
			tep_db_query("UPDATE orders_bankpass SET client_status = 1, customer_id = " . $customer_id . ", orders_id = " . $insert_id . " WHERE shop_transaction_id = '" . $myshoptransactionID ."'");
		} else {
			tep_db_query("INSERT INTO orders_bankpass (bank_transaction_id, shop_transaction_id, authorization_code, customer_id, orders_id, amount, client_status, date) VALUES ('" . $_GET['IDTRANS'] . "', '" .  $_GET['NUMORD'] . "','" . $_GET['AUT'] . "', " . $customer_id . "," .  $order_id . ", " . $_GET['IMPORTO']/100  . ",1," . time() . ")");
			                                                                                                                                                            //VALUES ('" . $_GET['IDTRANS'] . "', '" . $_GET['NUMORD'] . "','" . $_GET['AUT'] . "', " . $_GET['IMPORTO']/100 . ",1," . time() . ")");
		}
	 //otz

      $sql_data_array = array('orders_id' => $order_id,
                              'orders_status_id' => $order->info['order_status'],
                              'date_added' => 'now()',
                              'customer_notified' => (SEND_EMAILS == 'true') ? '1' : '0',
                              'comments' => $order->info['comments']);

      tep_db_perform(TABLE_ORDERS_STATUS_HISTORY, $sql_data_array);

// initialized for the email confirmation
      $products_ordered = '';
      $subtotal = 0;
      $total_tax = 0;

      for ($i=0, $n=sizeof($order->products); $i<$n; $i++) {
// Stock Update - Joao Correia
        if (STOCK_LIMITED == 'true') {
          if (DOWNLOAD_ENABLED == 'true') {
            $stock_query_raw = "SELECT products_quantity, pad.products_attributes_filename
                                FROM " . TABLE_PRODUCTS . " p
                                LEFT JOIN " . TABLE_PRODUCTS_ATTRIBUTES . " pa
                                ON p.products_id=pa.products_id
                                LEFT JOIN " . TABLE_PRODUCTS_ATTRIBUTES_DOWNLOAD . " pad
                                ON pa.products_attributes_id=pad.products_attributes_id
                                WHERE p.products_id = '" . tep_get_prid($order->products[$i]['id']) . "'";
// Will work with only one option for downloadable products
// otherwise, we have to build the query dynamically with a loop
            $products_attributes = $order->products[$i]['attributes'];
            if (is_array($products_attributes)) {
              $stock_query_raw .= " AND pa.options_id = '" . $products_attributes[0]['option_id'] . "' AND pa.options_values_id = '" . $products_attributes[0]['value_id'] . "'";
            }
            $stock_query = tep_db_query($stock_query_raw);
          } else {
            $stock_query = tep_db_query("select products_quantity from " . TABLE_PRODUCTS . " where products_id = '" . tep_get_prid($order->products[$i]['id']) . "'");
          }
          if (tep_db_num_rows($stock_query) > 0) {
            $stock_values = tep_db_fetch_array($stock_query);
// do not decrement quantities if products_attributes_filename exists
            if ((DOWNLOAD_ENABLED != 'true') || (!$stock_values['products_attributes_filename'])) {
              $stock_left = $stock_values['products_quantity'] - $order->products[$i]['qty'];
            } else {
              $stock_left = $stock_values['products_quantity'];
            }
            tep_db_query("update " . TABLE_PRODUCTS . " set products_quantity = '" . $stock_left . "' where products_id = '" . tep_get_prid($order->products[$i]['id']) . "'");
            if ( ($stock_left < 1) && (STOCK_ALLOW_CHECKOUT == 'false') ) {
              tep_db_query("update " . TABLE_PRODUCTS . " set products_status = '0' where products_id = '" . tep_get_prid($order->products[$i]['id']) . "'");
            }
          }
        }

// Update products_ordered (for bestsellers list)
        tep_db_query("update " . TABLE_PRODUCTS . " set products_ordered = products_ordered + " . sprintf('%d', $order->products[$i]['qty']) . " where products_id = '" . tep_get_prid($order->products[$i]['id']) . "'");

//------insert customer choosen option to order--------
        $attributes_exist = '0';
        $products_ordered_attributes = '';
        if (isset($order->products[$i]['attributes'])) {
          $attributes_exist = '1';
          for ($j=0, $n2=sizeof($order->products[$i]['attributes']); $j<$n2; $j++) {
            if (DOWNLOAD_ENABLED == 'true') {
              $attributes_query = "select popt.products_options_name, poval.products_options_values_name, pa.options_values_price, pa.price_prefix, pad.products_attributes_maxdays, pad.products_attributes_maxcount , pad.products_attributes_filename
                                   from " . TABLE_PRODUCTS_OPTIONS . " popt, " . TABLE_PRODUCTS_OPTIONS_VALUES . " poval, " . TABLE_PRODUCTS_ATTRIBUTES . " pa
                                   left join " . TABLE_PRODUCTS_ATTRIBUTES_DOWNLOAD . " pad
                                   on pa.products_attributes_id=pad.products_attributes_id
                                   where pa.products_id = '" . $order->products[$i]['id'] . "'
                                   and pa.options_id = '" . $order->products[$i]['attributes'][$j]['option_id'] . "'
                                   and pa.options_id = popt.products_options_id
                                   and pa.options_values_id = '" . $order->products[$i]['attributes'][$j]['value_id'] . "'
                                   and pa.options_values_id = poval.products_options_values_id
                                   and popt.language_id = '" . $languages_id . "'
                                   and poval.language_id = '" . $languages_id . "'";
              $attributes = tep_db_query($attributes_query);
            } else {
              $attributes = tep_db_query("select popt.products_options_name, poval.products_options_values_name, pa.options_values_price, pa.price_prefix from " . TABLE_PRODUCTS_OPTIONS . " popt, " . TABLE_PRODUCTS_OPTIONS_VALUES . " poval, " . TABLE_PRODUCTS_ATTRIBUTES . " pa where pa.products_id = '" . $order->products[$i]['id'] . "' and pa.options_id = '" . $order->products[$i]['attributes'][$j]['option_id'] . "' and pa.options_id = popt.products_options_id and pa.options_values_id = '" . $order->products[$i]['attributes'][$j]['value_id'] . "' and pa.options_values_id = poval.products_options_values_id and popt.language_id = '" . $languages_id . "' and poval.language_id = '" . $languages_id . "'");
            }
            $attributes_values = tep_db_fetch_array($attributes);

            $products_ordered_attributes .= "\n\t" . $attributes_values['products_options_name'] . ' ' . $attributes_values['products_options_values_name'];
          }
        }
//------insert customer choosen option eof ----
        $total_weight += ($order->products[$i]['qty'] * $order->products[$i]['weight']);
        $total_tax += tep_calculate_tax($total_products_price, $products_tax) * $order->products[$i]['qty'];
        $total_cost += $total_products_price;

        $products_ordered .= $order->products[$i]['qty'] . ' x ' . $order->products[$i]['name'] . ' (' . $order->products[$i]['model'] . ') = ' . $currencies->display_price($order->products[$i]['final_price'], $order->products[$i]['tax'], $order->products[$i]['qty']) . $products_ordered_attributes . "\n";
      }

// lets start with the email confirmation
      $email_order = STORE_NAME . "\n" .
                     EMAIL_SEPARATOR . "\n" .
                     EMAIL_TEXT_ORDER_NUMBER . ' ' . $order_id . "\n" .
                     EMAIL_TEXT_INVOICE_URL . ' ' . tep_href_link(FILENAME_ACCOUNT_HISTORY_INFO, 'order_id=' . $order_id, 'SSL', false) . "\n" .
                     EMAIL_TEXT_DATE_ORDERED . ' ' . strftime(DATE_FORMAT_LONG) . "\n\n";
      if ($order->info['comments']) {
        $email_order .= tep_db_output($order->info['comments']) . "\n\n";
      }
      $email_order .= EMAIL_TEXT_PRODUCTS . "\n" .
                      EMAIL_SEPARATOR . "\n" .
                      $products_ordered .
                      EMAIL_SEPARATOR . "\n";

      for ($i=0, $n=sizeof($order_totals); $i<$n; $i++) {
        $email_order .= strip_tags($order_totals[$i]['title']) . ' ' . strip_tags($order_totals[$i]['text']) . "\n";
      }

      if ($order->content_type != 'virtual') {
        $email_order .= "\n" . EMAIL_TEXT_DELIVERY_ADDRESS . "\n" .
                        EMAIL_SEPARATOR . "\n" .
                        tep_address_label($customer_id, $sendto, 0, '', "\n") . "\n";
      }

      $email_order .= "\n" . EMAIL_TEXT_BILLING_ADDRESS . "\n" .
                      EMAIL_SEPARATOR . "\n" .
                      tep_address_label($customer_id, $billto, 0, '', "\n") . "\n\n";

      if (is_object($$payment)) {
        $email_order .= EMAIL_TEXT_PAYMENT_METHOD . "\n" .
                        EMAIL_SEPARATOR . "\n";
        $payment_class = $$payment;
        $email_order .= $payment_class->title . "\n\n";
        if ($payment_class->email_footer) {
          $email_order .= $payment_class->email_footer . "\n\n";
        }
      }

      tep_mail($order->customer['firstname'] . ' ' . $order->customer['lastname'], $order->customer['email_address'], EMAIL_TEXT_SUBJECT, $email_order, STORE_OWNER, STORE_OWNER_EMAIL_ADDRESS);

// send emails to other people
      if (SEND_EXTRA_ORDER_EMAILS_TO != '') {
        tep_mail('', SEND_EXTRA_ORDER_EMAILS_TO, EMAIL_TEXT_SUBJECT, $email_order, STORE_OWNER, STORE_OWNER_EMAIL_ADDRESS);
      }

// load the after_process function from the payment modules
      $this->after_process();

      $cart->reset(true);

// unregister session variables used during checkout
      tep_session_unregister('sendto');
      tep_session_unregister('billto');
      tep_session_unregister('shipping');
      tep_session_unregister('payment');
      tep_session_unregister('comments');

      tep_session_unregister('Bankpass_TEMP');

      tep_redirect(tep_href_link(FILENAME_CHECKOUT_SUCCESS, '', 'SSL'));
	//fine modifica OTZ
    }

    function after_process() {
		/* modifica OTZ non serve più perchè già fatto
		global $order, $insert_id, $customer_id;   
		// Salvo nel database i parametri della transazione
		$check_query = tep_db_query("select * FROM orders_bankpass WHERE bank_transaction_id = '" . $_GET['IDTRANS'] . "'");
		$check = tep_db_num_rows($check_query);
		if($check > 0) {
			tep_db_query("UPDATE orders_bankpass SET client_status = 1, customer_id = " . $customer_id . ", orders_id = " . $insert_id . " WHERE bank_transaction_id = '" . $_GET['IDTRANS'] ."'");
		} else {
			tep_db_query("INSERT INTO orders_bankpass (bank_transaction_id, shop_transaction_id, authorization_code, customer_id, orders_id, amount, client_status, date) VALUES ('" . $_GET['IDTRANS'] . "', '" . $_GET['NUMORD'] . "','" . $_GET['AUT'] . "', " . $customer_id . "," . $insert_id . ", " . $_GET['IMPORTO']/100 . ",1," . time() . ")");
		}
		*/
		return false;
   }

    function output_error() {
      return false;
    }

    function check() {
      if (!isset($this->_check)) {
        $check_query = tep_db_query("select configuration_value from " . TABLE_CONFIGURATION . " where configuration_key = 'MODULE_PAYMENT_BANKPASS_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, use_function, set_function, date_added) values ('Valid Shipping Methods', 'MODULE_PAYMENT_BANKPASS_SHIPPING_METHODS', '', 'Select valid shipping methods for this payment module.', '6', '0', 'tep_get_shipping_modules_title', 'tep_cfg_valid_shipping_modules(', now())");    
      tep_db_query("CREATE TABLE IF NOT EXISTS orders_bankpass (
	  		bank_transaction_id varchar(50) NOT NULL default '', 
			shop_transaction_id varchar(50) NOT NULL default '', 
			authorization_code varchar(6) NOT NULL default '', 
			customer_id int(9) NOT NULL default '0', 
			orders_id int(9) NOT NULL default '0', 
			amount decimal(15,4) NOT NULL default '0.0000', 
			server_status int(1) NOT NULL default '0', 
			client_status int(1) NOT NULL default '0', 
			date int(12) NOT NULL default '0', 
			PRIMARY KEY (bank_transaction_id))");
			
       
      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 ('Abilita Modulo Bankpass', 'MODULE_PAYMENT_BANKPASS_STATUS', 'Si', 'Attivare il sistema di pagamento tramite il gateway bancario di Bankpass?', '6', '1', 'tep_cfg_select_option(array(\'Si\', \'No\'), ', 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 ('Modalita\' Produzione', 'MODULE_PAYMENT_BANKPASS_PRODUCTION', 'No', 'Attivare la modalita\' Produzione (Si) o Test (No)? In modalita\' Test il sistema utilizzera\' un CRN e delle chiavi di prova, le informazioni salvate nella configurazione del negozio non verranno utilizzate', '6', '2', 'tep_cfg_select_option(array(\'Si\', \'No\'), ', now())");
      tep_db_query("insert into " . TABLE_CONFIGURATION . " (configuration_title, configuration_key, configuration_value, configuration_description, configuration_group_id, sort_order, date_added) values ('Codice Riconoscimento Negozio (CRN)', 'MODULE_PAYMENT_BANKPASS_ID', '010500000000001', 'Identificatore del negozio del merchant assegnato dalla BANCA', '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 ('Chiave segreta Avvio', 'MODULE_PAYMENT_BANKPASS_AVVIO', 'rAPu5Nto2kv76B2cPJjWhADuwjACYLELtAo3AEAYUymbkqADjA', 'Chiave segreta Avvio per calcolo MAC', '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 ('Chiave segreta Esito', 'MODULE_PAYMENT_BANKPASS_ESITO', 'EAAYYXC3LcEj8D3uq7kREiAE9vxgFaCbpSLZqjAzA8Dx7iJrVP', 'Chiave segreta Esito per calcolo MAC', '6', '5', 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 ('Tipo di contabilizzazione', 'MODULE_PAYMENT_BANKPASS_TCONTAB', 'Immediata', 'Tipo di contabilizzazione da utilizzare per questo ordine: Differita o Immediata?', '6', '6', 'tep_cfg_select_option(array(\'Immediata\', \'Differita\'), ', 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 ('Tipo di autorizzazione', 'MODULE_PAYMENT_BANKPASS_TAUTOR', 'Immediata', 'Tipo di autorizzazione da utilizzare per questo ordine: Differita o Immediata?', '6', '7', 'tep_cfg_select_option(array(\'Immediata\', \'Differita\'), ', 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 ('Valuta transazione', 'MODULE_PAYMENT_BANKPASS_CURRENCY', 'Solo EUR', 'La valuta da utilizzare nella transazione. E\' possibile forzare l\'uso della valuta base EUR.', '6', '8', 'tep_cfg_select_option(array(\'Valuta Selezionata\',\'Solo EUR\',\'Solo USD\',\'Solo GBP\'), ', now())");
      tep_db_query("insert into " . TABLE_CONFIGURATION . " (configuration_title, configuration_key, configuration_value, configuration_description, configuration_group_id, sort_order, date_added) values ('Ordine visualizzazione.', 'MODULE_PAYMENT_BANKPASS_SORT_ORDER', '0', 'Indicare l\'ordine con il quale questa modalità di pagamento viene proposta all\'utente. 0 è il valore visualizzato per primo.', '6', '9', 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 ('Stato ordine dopo pagamento', 'MODULE_PAYMENT_BANKPASS_ORDER_STATUS_ID', '0', 'Definisce quale stato ordine attribuire all\'ordine una volta completato il pagamento.', '6', '10', 'tep_cfg_pull_down_order_statuses(', 'tep_get_order_status_name', now())");
    }

    function remove() {
      tep_db_query("delete from " . TABLE_CONFIGURATION . " where configuration_key in ('" . implode("', '", $this->keys()) . "')");
    }

    function keys() {
      return array(
	  	'MODULE_PAYMENT_BANKPASS_STATUS', 
		'MODULE_PAYMENT_BANKPASS_ID',
		'MODULE_PAYMENT_BANKPASS_AVVIO',
		'MODULE_PAYMENT_BANKPASS_ESITO',
		'MODULE_PAYMENT_BANKPASS_PRODUCTION', 
		'MODULE_PAYMENT_BANKPASS_CURRENCY', 
		'MODULE_PAYMENT_BANKPASS_TCONTAB', 
		'MODULE_PAYMENT_BANKPASS_TAUTOR',
		'MODULE_PAYMENT_BANKPASS_ORDER_STATUS_ID',
		'MODULE_PAYMENT_YOURPAYMENTMODULE_SHIPPING_METHODS',
		'MODULE_PAYMENT_BANKPASS_SORT_ORDER'
	  );
    }
	
	// Questa funzione calcola il MAC per la procedura di invio
	function AvvioMAC() {
	}
  }
?>
Ciao a tutti,

ecco un piccolo bug trovato nel codice su riportato:

quando viene aggiornato lo stato dell'ordine dopo l'OK di BPW, la variabile orders_status va aggiornata con il valore $this->order_status e non il valore $this->sort_order.
Quindi potete modificare la riga come segue:

tep_db_query("UPDATE orders SET orders_status = ".$this->order_status." WHERE orders_id = '" . $order_id . "'");

a prestooooo 8)
Avatar utente
max8
membro Baby
membro Baby
Messaggi: 57
Iscritto il: 28/12/2004, 1:00
Località: ITA

Messaggio da max8 »

scusate l'assenza...

vedo finalmente che qualcuno ha iniziato il test!
appena possibile cercherò di eliminare i problemi che sono emersi durante questi test!
rainafarai
membro Junior
membro Junior
Messaggi: 11
Iscritto il: 21/09/2005, 18:24

Operazione negata per carta errata.

Messaggio da rainafarai »

salve a tutti/e Ho provato la contrib.. bankapass
ho un problema... non riesco sulla pagina test della banka a concludere
il pagamento .... "Operazione negata per carta errata."
Con sella test la Ccard mi funziona.... con altri siti dove acquisto regolarmente
funziona.., sulla pagina test di bankpass ZERO...


qualche ideea?

Rispetto alle sessioni c'e' un legame tra la perdita del carrelo dopo la transazione e il tipo di session che si usa? file o Db?

ma perche' bankpass non chiede il nome del proprietario della CCard?
lo passa criptato prendendo il nome del cliente OS che acquista?
questo succede solo nell'ambito test?

come interfaccia di inserimento DATI CCard mi sembra troppo scarna e poco chiara e macchinosa
rispetto a sella...

Saluti
Raina
Bass
membro Master
membro Master
Messaggi: 3593
Iscritto il: 18/04/2004, 0:00
Località: Varese
Contatta:

Re: Operazione negata per carta errata.

Messaggio da Bass »

rainafarai ha scritto: non riesco sulla pagina test della banka a concludere
il pagamento .... "Operazione negata per carta errata."
Funziona con i codici della carta di test che ti da Bankpass, con carte normali non va...
come interfaccia di inserimento DATI CCard mi sembra troppo scarna e poco chiara e macchinosa
rispetto a sella...
Pero' costa una valanga in meno :)

'iao

Sergio
http://www.oscomtemplate.com - E' disponibile il nuovo pacchetto free con forum di supporto

http://www.semilandia.it
rainafarai
membro Junior
membro Junior
Messaggi: 11
Iscritto il: 21/09/2005, 18:24

Re: Operazione negata per carta errata.

Messaggio da rainafarai »

Grazie della risposta Bass ! almeno la smetto di provare a raffica.
Bass ha scritto:

Funziona con i codici della carta di test che ti da Bankpass, con carte normali non va...

si puo' avere uno di questi codici test carta ? o li rilascia BP univoci per ogni esercente che apre un contratto BP?
ce una url sul sito Bp dove prenderli?

Grazie

Raina
Rispondi