Back to top

Autore Topic: Banca Sella  (Letto 8237 volte)

Offline Spike1

  • Appassionato
  • ***
  • Post: 297
    • Mostra profilo
Banca Sella
« il: 12 Ott 2007, 13:33:56 »
Buondì, il modulo per Banca Sella disponibile in download sul sito ufficiale deve essere modificato se si vuole fare dei test, quindi con l'ambiente di test (e relativi codici di test).

Questo perchè da luglio Banca Sella ha modificato gli indirizzi di chiamata della pagina sui server di Banca Sella, differenziando l'url di test da quello di produzione.

Poichè nel modulo l'url è scritto direttamente, senza essere un opzione di configurazione, se si vogliono eseguire dei test è necessario modificare manualmente il codice php.

Non ho assolutamente tempo di modificare il modulo per trasformare l'indirizzo in un parametro della configurazione (anche perchè devo andare a modificare i miei di moduli Banca Sella per Zen Cart ;)

Da un occhiata veloce, non ho ancora provato, il file da modificare dovrebbe essere solo ps_sellapay.php (poi da ri-modificare quando si va in produzione)

Saluti
Paolo De Dionigi
Responsabile tecnico Zen Cart Italia

Offline Spike1

  • Appassionato
  • ***
  • Post: 297
    • Mostra profilo
Re: Banca Sella
« Risposta #1 il: 15 Ott 2007, 12:19:35 »
Ehm... non solo quel file, anche il file con le classi di crittografia di Banca sella.  ;)
Paolo De Dionigi
Responsabile tecnico Zen Cart Italia

Offline k0nan

  • Appassionato
  • ***
  • Post: 307
    • Mostra profilo
Re: Banca Sella
« Risposta #2 il: 15 Ott 2007, 12:33:36 »
Ehm... non solo quel file, anche il file con le classi di crittografia di Banca sella.  ;)

puoi allegare o indicare le modifiche per la versione da utilizzare con l'area test di gestpay ? sarebbe molto utile ai più

piccolo inciso: utilizzo gestpay nell'area non-test e lo script necessità cmq di alcune piccole modifiche per funzionare correttamente. non è semplicemente plug in :P ne abbiamo discusso in un altro thread
VM Italia - Supporto italiano a virtuemart - http://www.vmitalia.net

VirtueMart Dev Team Member - User Interface - http://www.virtuemart.net

Offline k0nan

  • Appassionato
  • ***
  • Post: 307
    • Mostra profilo
Re: Banca Sella
« Risposta #3 il: 15 Ott 2007, 15:28:41 »
piccolo inciso: utilizzo gestpay nell'area non-test e lo script necessità cmq di al
cune piccole modifiche per funzionare correttamente. non è semplicemente plug in :P ne abbiamo discusso in un altro thread

errata corrige con j!13 e VM13 ho qualche problema piuttosto serio.

il pagamento funziona, però, contrariamente a quanto accadeva con vm12:
1) non viene inviato il codice d'ordine corretto: viene sempre inviato codice di transazione = 1
2) non viene aggiornato lo stato dell'ordine a "C" dopo il pagamento ma rimane in stato di "P"

problema 1)
il codice d'ordine in VM è corretto ed è presente nel DB.
il codice d'ordine ShopTransactionID dovrebbe venire letto da inc_sella.php dal DB di VM. questo php legge il prefisso della trsanzione e ci appende il numero d'ordine (e passa tutto al server sella) tramite le seguenti linee di codice

Codice: [Seleziona]
[b]$auth = $_SESSION['auth'];
$db = new ps_DB;
$q  = "SELECT order_id FROM #__{vm}_orders WHERE user_id='" . $auth["user_id"] . "' ";
$q .= "ORDER BY cdate DESC";

$db->query($q);
$db->next_record();
$order_id = $db->f("order_id");
if ($order_id=="")
 $order_id=1;
else
 $order_id++; [/b]
require_once "GestPayCrypt.inc.php";
...  CUT ...
$crypt = new GestPayCrypt();
$crypt->SetShopLogin(SELLA_USERID);
[b]$crypt->SetShopTransactionID(SELLA_PREFIX."-".$order_id);[/b]
$crypt->SetAmount($order_total);
$crypt->SetCurrency("242");
if (SELLA_SSL_128==1)
 {
  $crypt->SetCardNumber($mycreditcard);
  $crypt->SetExpMonth($myexpirymonth);
  $crypt->SetExpYear($myexpiryyear);
 }
...  CUT ...
}

ora, la query è corretta, il codice mah..
questa parte che riguarda la sessione è corretta?
Codice: [Seleziona]
$auth = $_SESSION['auth']

l' if che imposta l'ordine=1 se lo trova vuoto è corretto ?
Codice: [Seleziona]
if ($order_id=="") ...
nessun campor order_id è vuoto ma inc_sella.php imposta lo stesso l'ordine a uno.

quindi è l'if sbagliato o non riesce proprio a leggere il db per il problema il fase di auth ?



Problema 2)
analogo discorso, per il file checkout.resultsella.php
la query è corretta ma mi preoccupa il WHERE con l'auth user_id o comunque tutti i parametri richiesti dalla sessione



Codice: [Seleziona]
if( !isset( $_REQUEST["order_id"] ) || empty( $_REQUEST["order_id"] ))
  echo "Order ID is not set or emtpy!";
else {
  include( CLASSPATH. "payment/ps_sellapay.cfg.php" );
  $order_id = mosgetparam( $_REQUEST, "order_id" );
  $sella_reply = mosgetparam( $_REQUEST, "sella_reply" );
 
  $q = "update #__{vm}_orders set order_status='C' WHERE ";
  $q .= "#__{vm}_orders.user_id='" . $auth["user_id"] . "' ";
  $q .= "AND #__{vm}_orders.order_id='$order_id'";
      if ($sella_reply == "OK") { 
       $db->query($q);

avete una idea ?
a voi funziona ?

P.S.
questo codice sql
user_id='" . $auth["user_id"] . "'
non dovrebbe essere
user_id=" . $auth["user_id"] . " 

?
senza apici insomma
« Ultima modifica: 15 Ott 2007, 16:05:56 da k0nan »
VM Italia - Supporto italiano a virtuemart - http://www.vmitalia.net

VirtueMart Dev Team Member - User Interface - http://www.virtuemart.net

 



Web Design Bolzano Kreatif