da Paolo De Dionigi aka Spike00 » lun nov 07, 2005 4:14 pm
Segnalo che, dopo qualche peripezia e circa una quarantina di test sul Gateway di Setefi, ora il modulo è pronto.
Note:
1) Viene gestita anche l'eventualità che il cliente completi la transazione sul server di Setefi, ma chiuda il browser (o cada la connessione) prima di rientrare in Zen-Cart. In questo caso l'ordine non viene chiuso (infatti il cliente se si ricollega troverà nuovamente i prodotti nel proprio carrello), tuttavia nella sezione di admin, nella home, c'è una nuova tabella che riepiloga tutte le transazioni andate a buon fine ma non corrispondenti ad un ordine chiuso.
2) Poichè questo modulo utilizza per la cifratura dei dati alcune funzioni contenenti anche dati specifici relativi al merchant, Setefi ci ha espressamente chiesto di non rilasciare quella porzione di codice (in realtà un file separato, posizionato nella directory functions), pur consentendoci di rilasciare quanto da noi realizzato con licenza GPL.
3) Il modulo aggiunge (in automatico, sempre che il vosto utente MySql abbia il permesso di creare tabelle) 2 tabelle e alcuni record alla tabella di configurazione di Zen Cart. Una tabella serve per memorizzare i dati relativi alla transazione (visibili nella home di amministrazione se il cliente non è tornato a Zen-cart dopo la transazione (come spiegato prima), oppure nel dettaglio ordini (cliccando su modifica per ciascun ordine)); la seconda tabella serve per memorizzare temporaneamente gli ordini con questo tipo di pagamento, poichè Setefi necessità che a ciascun ordine sia associato un progressivo numerico giornaliero. Non essendo presente questa feature in Zen cart, è stata creata questa tabella e relativa gestione. Tuttavia, poichè deve essere giornaliero, questa tabella deve essere svuotata quotidianamente e la chiave primaria azzerata.
Per fare ciò abbiamo usato (dopo verifica sulle date) il comando truncate, che a quanto pare, funziona nel modo voluto solo dalla versione 4.0.x di MySql. Mentre il canonico delete senza clausola where che assolveva allo scopo, non azzera più il contatore della chiave primaria (probabilmente proprio dalla versione 4.0 di MySql).
In sintesi bisogna accertarsi della propria versione di MySql (sembra che il recupero della versione via php non sia completamente affidabile).
Chiunque fosse interessato mi può contattare via PM o rispondendo a questo post.