8 messaggi dal 28 gennaio 2002
Ho utilizzato il vostro script per le transazioni con banca sella; c'è però un problema ovvero quando Banca Sella mi reinvia le informazioni (nella comunicazione server to server) non riesco a prelevare la variabile "PAY1_OTP" che mi consentirebbe tramite la sub RimuoviOTP( OTP) di eliminare la corrispondente password nel file .ris.

il codice che uso è molto semplice ovvero:
<!--#include file="otp.asp"-->
<%
Dim OTP
OTP = request.querystring("PAY1_OTP")
RimuoviOTP( OTP)
%>

Il problema sta prorprio nella concatenazione di variabili che effettua la banca utilizzando, invece di & , *P1*
Dunque l'unica variabile che posso prelevare è b (ovvero una stringa molto lunga, contenete tutte le info della transazione).

Come posso risolvere questo problema?

Grazie
francesco

quel file si riferisce alla vecchia architettura, non a quella attuale basata su OTP, che seppure non consigliabile per ragioni di sicurezza, è disponibile in una variante differente.

Daniele Bochicchio | ASPItalia.com | Libri
Chief Operating Officer@iCubed
Microsoft Regional Director & MVP
8 messaggi dal 28 gennaio 2002
Grazie ma il problema l'ho risolto, splittando le diverse variabili. In particolare il codice che ho utilizzato è il seguente (si riferisce alla pagina ricevuta nel rapporto server to server):


<!--#include file="otp.asp"-->
<%
Dim b, bnew, transaction_id, totale, descrizione, OTP_ris, OTP, email, nome
b = request.querystring("b")
'splitto la stringa utilizzando come parametro *P1*
bnew =split(b,"*P1*")
' i valori che ottengo sono nell'ordine:
'bnew(0) equivalente a PAY1_TRANSACTIONRESULT (ok o ko)
'bnew(1) equivalente a PAY1_SHOPTRANSACTIONID (numero transazione effettuata dall'esercente)
'bnew(2) equivalente a PAY1_BANKTRANSACTIONID (numero transazione effettuata dalla banca)
'bnew(3) equivalente a PAY1_UICCODE (divisa per la diversa unità di moneta, 242 per euro)
'bnew(4) equivalente a PAY1_AMOUNT (totale transato)
'bnew(5) equivalente a PAY1_AUTHORIZATIONCODE (codice autorizzazione assegnato dalla banca per la transazione)
'bnew(6) equivalente a PAY1_ERRORCODE (codice errore; "0" per transazione ok)
'bnew(7) equivalente a PAY1_ERRORDESCRIPTION (decrizione errore ; se il precedente è "0" allora "Transazione correttamente effettuata")
'bnew(8) equivalente a PAY1_OTP (la OTP da cancellare dal file .ris)
'bnew(9) equivalente a PAY1_CHEMAIL (indirizzo email dell'acquirente)
'bnew(10) equivalente a PAY1_CHNAME (nome dell'acquirente)

'ora splitto ulteriormente i valori dell'array
'per recuperare la OTP
OTP_ris = split(bnew(8),"=")
OTP = OTP_ris(1)
RimuoviOTP( OTP)
' analoga cosa posso fare per recuperare altri parametri
transaction_id = split(bnew(1),"=")
totale = split(bnew(4),"=")
descrizione = split(bnew(7),"=")
email = split(bnew(9),"=")
nome = split(bnew(10),"=")

%>
'riporto i risultati a video
<html>
<head>
<title>recezione parametri</title>
</head>
<body bgcolor="#FFFFFF" text="#000000">
<table width="400" border="0" cellspacing="0" cellpadding="0" align="center">
<tr>
<td>transazione numero:</td>
<td>
<% response.write transaction_id(1) %>
</td>
</tr>
<tr>
<td>totale transato</td>
<td><% response.write totale(1) %></td>
</tr>
<tr>
<td>risultato transazione</td>
<td><% response.write descrizione(1) %></td>
</tr>
<tr>
<td>email</td>
<td><% response.write email(1) %></td>
</tr>
<tr>
<td>nome</td>
<td><% response.write nome(1) %></td>
</tr>
</table>

</body>
</html>

Ora comunque vedo di utilizzare anche il metodo con crittografia che , come lei mi ha detto, risulta essere più sicuro. Purtroppo non l'avevo fatto prima perchè il mio dominio dovrebbe essere su aruba che non ha un componenete necessario per effettuare la transazione con crittografia.

Se cortesemente potesse indicarmi un hosting con tali caratteristiche mi farebbe una cortesia.

La ringrazio
Modificato da formics il 14 ottobre 2002 10.55 -

Modificato da formics il 14 ottobre 2002 10.59 -
tempo qualche giorno e rilascerò una versione .net che non usa nessun oggetto COM, ma che fa tutte le chiamate a manina, cosa che fa il componente.
può essere uno spunto per implementare qualcosa di analogo con ASP sempre manualmente

Daniele Bochicchio | ASPItalia.com | Libri
Chief Operating Officer@iCubed
Microsoft Regional Director & MVP
2 messaggi dal 28 dicembre 2004
ehm scusate se mi intrometto, ma anche io non so dove sbattere la testa.
Mi spiego meglio...attualmente ho attivato il conto di ecommerce da BancaSella, tipo Basic, modalità Compatibile.
Ho questa esigenza:

lo faccio per un'associazione onlus...vorrebbero una pagina dove poter fare inserire ai loro soci o nuovi membri, una donazione in euro a loro scelta.
In poche parole basterebbe un campo dove l'utente mette per es. 100 euro e poi cliccando su "DONA ORA" passo tutti i dati all'interfaccia di banca sella...ora, dopo aver chiamato il supporto tecnico mi hanno detto di basarmi su un .pdf di specifiche di cui riporto l'unico esempio essenziale dove sono riportate le richieste minime per poter passare i dati al gestpay in modalità compatibile:

Il form di esempio che c'è nella guida scaricata è questo:

<form action="https://ecomm.sella.it/gestpay/pagam.asp">
<input type="hidden" name="a" value="9000001">
<input type="hidden" name="b" value="1403768700000">
<input type="hidden" name="c" value="rgkyDFG554TdgWW1FR5eeTy6ohH34Ij3">
<input type="hidden" name="d" value="003">
</form>

ora...i valori di "a" "b" li conosco ma di "c" non sparei come inserirli in ogni transazione, perchè mi hanno spiegato al supporto tecnico che io dovrei sapere come poter estrapolare la password dentro il file .ric per poi cancellarla a transazione avvenuta con successo....oltretutto nel "b" come faccio a stabilire l'importo (che sceglie il donatore) da moltiplicare poi con il TID ?(TerminalID)...sfortunatamente non sono in grado di farlo, non capisco come poterlo fare...anche perchè mi piacerebbe farlo per una giusta causa.

Qualcuno gentilmente mi può indicare un codice asp o html dove poi posso modificarlo con i miei dati?

Grazie per tutto l'aiuto che potrete darmi.

Luca

Torna al forum | Feed RSS

ASPItalia.com non è responsabile per il contenuto dei messaggi presenti su questo servizio, non avendo nessun controllo sui messaggi postati nei propri forum, che rappresentano l'espressione del pensiero degli autori.