34 messaggi dal 29 gennaio 2011
www.incante.135.it
Salve!

Devo creare un carrello elettronico con pagamento online tramite postpay, visa, etc. Data la mia inesperienza in questo campo, necessito di alcune informazioni che credo fondamentali.

Da un punto di vista legale, bisogna pagare qualcosa per permettere il pagamento tramite internet? È richeista una registrazione in un qualche sistema?

Da un punto di vista informatico, invece, ho bisogno di sapere, come prima cosa, come poter fare. Il programma dovrà colelgarsi obbligatoriamente ad un account paypal? Oppure può essere collegato anche tramite conto corrente? In entrambi i casi, come è possibile tutto ciò?
Che tipo di database è meglio utilizzare? Io, di solito, usavo un database .mdf creato tramite Visual Studio. È valido, o è meglio utilizzarne un altro?
Per la protezione dei dati, invece, è meglio far uso di un certo tipo di criptazione dei dati?

Dal punto di vista dell'hosting, su quale è meglio puntare per questi casi? Non vorrei ritrovarmi a puntare sul classico e poi scoprire che non mi è possibile eseguire certe cose!

Ringraziamenti anticipati,
Lollinos
11.886 messaggi dal 09 febbraio 2002
Contributi
ciao,

Lollinos ha scritto:

Da un punto di vista legale, bisogna pagare qualcosa per permettere il pagamento tramite internet?

No, chiunque disponga di un Pos virtuale può accettare pagamenti da internet. Non c'è una tassa d'ingresso o un albo a cui doversi iscrivere.

Tutto ciò che devi fare è procurarti un Pos virtuale e integrarlo col tuo sito. Si tratta di un servizio che puoi richiedere alla tua banca, che ti informerà sui costi (solitamente chiedono una commissione intorno al 2% sul venduto). Vuol dire che se vendi un prodotto per 100 euro, loro ne trattengono 2 e a te ne versano 98 sul conto corrente.

Ovviamente ogni banca pratica le sue commissioni. E' possibile che alcune chiedano un piccolo costo d'attivazione o un canone mensile.

Lollinos ha scritto:

Il programma dovrà colelgarsi obbligatoriamente ad un account paypal?

No. Paypal è solo uno degli operatori che ti permettono di accettare pagamenti con carta di credito. Averlo non è un requisito ma dato che è molto diffuso tra gli utenti privati e dato che offre la possibilità di pagare senza dover digitrare sempre il numero di carta, è preferibile che il tuo ecommerce lo supporti.

Lollinos ha scritto:

Oppure può essere collegato anche tramite conto corrente?

Il tuo conto corrente sarà la destinazione dei soldi che vengono pagati dall'acquirente mediante pos virtuale o mediante paypal.
Nel primo caso, sarà la tua banca a "legare" il tuo conto al servizio di pos virtuale e farci finire dentro i proventi delle tue vendite.
Nel secondo caso sarai tu, accedendo al tuo conto Paypal, a dover inserire le informazioni del tuo conto e, periodicamente, a trasferirvi i fondi. Qui è scritto come fare (è molto semplice)
http://pages.ebay.it/paypal/guide_withdraw.html

Lollinos ha scritto:

Che tipo di database è meglio utilizzare? Io, di solito, usavo un database .mdf creato tramite Visual Studio. È valido, o è meglio utilizzarne un altro?

Quello che preferisci o che reputi valido. Le scelte architetturali spettano solo a te.
Paypal, ad esempio, per facilitare la sua adozione, offre anche dei bottoni "Paga adesso" e un servizio di carrello che puoi posizionare in pagine html. Quindi, grazie a quegli strumenti, sarebbe possibile ricevere pagamenti anche da un sito statico che non dispone affatto di database.

Lollinos ha scritto:

Per la protezione dei dati, invece, è meglio far uso di un certo tipo di criptazione dei dati?

Nah... considera che tu non entrerai mai in possesso dei numeri di carta di credito degli acquirenti, quindi non sono richiesti accorgimenti particolari. Il pagamento avverrà sui server dell'operatore che ti sta offrendo il servizio di pos virtuale (o di paypal), quindi tu non devi preoccupartene.
Dopo che l'utente ha inserito i dati della sua carta, verrà reindirizzato verso il tuo sito. In quel contesto ti verranno passati dei dati codificati, che tu dovrai decodificare con una chiave segreta per accertarti che non siano stati manomessi. Questo ti consentirà di sapere se la transazione è andata a buon fine o meno, così potrai mostrare all'utente un messaggio idoneo (es. "Grazie per aver acquistato" oppure "Spiacenti, si è verificato un errore nel pagamento e non ti è stato addebitato alcun importo").

A livello tecnico si tratta di preparare dei dati da inviare all'operatore (il totale dell'ordine, la valuta, il codice dell'ordine, ecc...) e poi di rileggerne la risposta (transazione completata o fallita).
Questo è il protocollo di comunicazione a cui devi conformarti affinché la procedura di pagamento inizi e si concluda correttamente. Gli operatori ti forniscono sempre una documentazione che comprende esempi e codice sorgente in vari linguaggi.

Lollinos ha scritto:
Dal punto di vista dell'hosting, su quale è meglio puntare per questi casi?

Non mi pare che ci siano problemi; il codice che ti verrà fornito funzionerà anche in medium trust.
L'unico mio consiglio in merito è quello di sceglierne uno che ti permetta di scalare facilmente. Se prevedi che il tuo ecommerce crescerà velocemente, dovrai migrare verso un piano di hosting più performante per accomodare tutti gli utenti che vogliono acquistare dal tuo sito. Ricorda che, nell'ecommerce in particolar modo, meno ostacoli poni all'utente, più alto sarà il tasso di conversione. Una pagina che si carica lentamente o un'interfaccia utente confusa possono ridurre in modo significativo le tue vendite.


Fai in modo che almeno il server sia idoneo a sostenere un certo carico di utenti. Solo tu, ovviamente, puoi stimare quale sia questo carico.

ciao
Modificato da BrightSoul il 07 dicembre 2012 21.31 -

Enjoy learning and just keep making
34 messaggi dal 29 gennaio 2011
www.incante.135.it
Innanzi tutto grazie per la risposta.
Mi ha sicuramente aiutato a capire di più.
Ho, però, ancora delle domande.

Ho controllato la pagina del pulsante "Paga adesso" di paypal.
Da quel che ho capito, comunque, con quello è possibile comprare un solo prodotto alla volta.
Sia per una migliore esperienza, da parte dell'utente, sia per interessamento personale, come potrei fare in C# a realizzare la il prelevamento dei soldi?

Sin dal selezionare uno o più prodotti in qualche modo dovrei asserne in grado, basta solo generare del codice html dal code-behind. Non so, però, quando l'utente darà il via alla spesa, tramite un pulsante, come posso realizzare il collegamento tramite il suo conto, indicato alla registrazione, ed il mio?
In più, hai detto che io non dovrò salvare mai i dati delle carte di credito, perciò alla registrzione l'utente non dovrà specificare un conto?

Detto ciò, in mente ho relizzato questi semplici passaggi:
1) Login
2) Selezione dei prodotti da comprare/ordinare
3) Fase di prelevamento dei soldi.
- L'utente digiterà un numero di carta che io non dovrò mai salvare
- Invierò i dati ad un banca che otterrò in base al numero della
carta?
4) Se i soldi sono stati prelevati con successo stampo il messaggio di pagamento avvenuto, altrimenti messaggio di errore. Può succedere che tramite un errore di linea, o del mio codice, il mio programma prelevi i soldi ma dica all'utente che il pagamento non è avvenuto? Oppure può avvenire che non riesca a prelevare i soldi, ma sul mio database risulti che ha pagato?

Un ultima cosa, durante la connessione tra il conto suo ed il mio, i dati devo criptarli in qualche modo, oppure in qualche modo sono già nascosti? Non vorrei che per una mia mancanza, qualcuno riesca ad inserirsi e rubare soldi di altre persone!

Grazie ancora!
11.886 messaggi dal 09 febbraio 2002
Contributi
ciao, prego!

Lollinos ha scritto:

Non vorrei che per una mia mancanza, qualcuno riesca ad inserirsi e rubare soldi di altre persone!

E' proprio per questo motivo che l'utente, nel tuo sito, non dovrà mai digitare né i dati del suo conto né i dati della sua carta di credito.

All'atto della registrazione chiedigli solo: l'email, la password, l'indirizzo di spedizione ed opzionalmente un recapito telefonico. Se vuoi emettere fattura, chiedigli anche un indirizzo di fatturazione in cui dovrà inserire il nominativo (o la ragione sociale), la via, la città, la provincia e il codice fiscale (o la partita iva).

Lollinos ha scritto:

1) Login
2) Selezione dei prodotti da comprare/ordinare
3) Fase di prelevamento dei soldi.
- L'utente digiterà un numero di carta che io non dovrò mai salvare
- Invierò i dati ad un banca che otterrò in base al numero della
carta?

Il punto 3 non è esatto. L'acquirente non dovrà digitare il numero di carta di credito sul tuo sito, proprio per evitarti responsabilità nel caso di furto di dati.

Devi solo realizzare i punti 1 e 2. Nel momento in cui l'acquirente vuole finalizzare l'ordine, tu dovrai inviare all'operatore che ti offre il servizio di pos virtuale (o a paypal), una richiesta di avvio transazione. Questi dati, di solito, devono essere inviati via POST ad una pagina web sul sito dell'operatore. I dati che devi inviargli comprendono: totale dell'ordine, codice dell'ordine, valuta, codice esercente (è un ID che ti viene assegnato dall'operatore) e una stringa crittografata (serve all'operatore per avere la garanzia che sei stato proprio tu a richiedere quella transazione. Nel manuale che ti forniranno troverai tutte le indicazioni su come produrla).

A questo punto l'utente si troverà a navigare sul sito dell'operatore ed è lì che inserirà il numero della sua carta di credito.
Quindi, il numero della carta non viene mai digitato nel tuo sito, ma solo nel sito dell'operatore che ti offre il servizio di pos virtuale (o paypal).

Al termine della transazione, avviene un reindirizzamento al tuo sito e contestualmente ti vengono passate delle informazioni come: esito della transazione, codice dell'ordine e una stringa crittografata che decodificherai per esser sicuro che i dati non sono stati manomessi.

Lollinos ha scritto:

Può succedere che tramite un errore di linea, o del mio codice, il mio programma prelevi i soldi ma dica all'utente che il pagamento non è avvenuto?

Sì, questo può capitare. E' importante che quando ricevi un esito positivo per la transazione, tu vada ad impostare l'ordine come "pagato", in modo che la merce possa essere spedita. Se si dovesse verificare un errore nel tuo codice C#, l'ordine si troverà in uno stato inconsistente per cui l'importo è stato pagato ma l'acquirente vedrà che l'ordine è ancora in attesa di pagamento.
Per evitare questo genere di problemi, chi ti fornisce il pos virtuale ti chiederà obbligatoriamente di fare delle prove in un loro ambiente di test che simula il caso reale. Lì potrai pagare con una carta di credito fittizia che non produrrà alcun movimento di denaro. Solo quando avrai risolto tutti i problemi di codice, allora dovrai dichiarare all'operatore che l'integrazione del tuo sito con il pos virtuale è stata completata, e che sei pronto a ricevere pagamenti reali. A quel punto ti forniranno dei codici per l'accesso all'ambiente di produzione.

Lollinos ha scritto:

Ho controllato la pagina del pulsante "Paga adesso" di paypal.
Da quel che ho capito, comunque, con quello è possibile comprare un solo prodotto alla volta.

Sì, quello è un punto d'ingresso per chi vuol iniziare a vendere subito o per chi non ha la possibilità o le compentenze per realizzare un ecommerce completo.

Nel tuo caso puoi implementare il protocollo di comunicazione di Paypal similmente a quanto faresti con un qualsiasi pos virtuale.

ciao
Modificato da BrightSoul il 09 dicembre 2012 16.11 -

Enjoy learning and just keep making
34 messaggi dal 29 gennaio 2011
www.incante.135.it
Ora incomincio ad avere un quadro più completo della situazione.

Questa realizzazione, quindi, si può dire che viene realizzata non solo da me, ma anche dai servizi offerti dal mio operatore, ad esempio una banca, o da paypal. Nel caso in cui vorrei utilizzare paypal, basta una registrazione e dopodiché il sito stesso mi offrirà i dati "speciali" che hai citato?

In quanto al passaggio delle informazioni; io, sino ad ora, ho sempre passatto le informazioni, tra le mie pagine, tramite le Session di C#, e non ho mai guardato il metodo POST.
Ho trovato questo link dell'MSDN http://msdn.microsoft.com/it-it/library/debx8sh9%28v=vs.80%29.aspx, però non ho ben capito il suo funzionamento. In quale Proprietà dovrò passare le informazioni? Ed ovviamente il mio operatore mi dovrebbe rendere una pagina personae a cui inviare i dati, giusto?

Le informazioni che mi verranno passate dopo la transazione, verranno inviate tramite POST alla mia pagina, giusto? Se sì, mi dovrei utilizzare il metodo GET per ottenerle?

Scusami se ti pongo tante domande, ma mi sono accorto di aver sottovalutato il problema, e quindi vorrei prepararmi il meglio possibile!
11.886 messaggi dal 09 febbraio 2002
Contributi
ciao,

Lollinos ha scritto:

Questa realizzazione, quindi, si può dire che viene realizzata non solo da me, ma anche dai servizi offerti dal mio operatore, ad esempio una banca, o da paypal

Si loro svolgono un ruolo da mediatori, se così si può dire. Si occupano si addebitare un importo sul conto dell'acquirente e accreditarlo sul tuo conto, ovviamente al netto della commissione.
A proposito della commissione, essa si giustifica col fatto che essi si fanno carico del ruolo più spinoso, che è quello di rendere sicura l'immissione della carta di credito dell'acquirente e, contestualmente, di contattare i servizi interbancari affinché dispongano il trasferimento di denaro.

Lollinos ha scritto:

basta una registrazione e dopodiché il sito stesso mi offrirà i dati "speciali" che hai citato?

No, ti serve almeno un contro Premier, che è per le aziende che vogliono ricevere pagamenti dal loro sito ecommerce. Poi dovrai collegare il tuo conto bancario affinché tu possa trasferirvi i proventi delle vendite.
Mi pare che il conto Paypal abbia dei limiti, a meno che non lo "verifichi". Cioè, se non ricordo male, la procedura prevede un addebito di 1 euro che troverai nell'estratto conto con una causale contenente un codice alfanumerico. Quello ti servirà per completare la verifica dell'account e rimuovere i limit. Ecco, ti rimando alla documentazione perché quello che ricordo a memoria è un po' datato.
https://cms.paypal.com/it/cgi-bin/marketingweb?cmd=_render-content&content_ID=marketing_it/RimozioneLimiti

Per poter iniziare l'integrazione, creati un account nella Sandbox di Paypal, che è il loro "ambiente di test". Qui è spiegato come fare:
https://cms.paypal.com/it/cgi-bin/?cmd=_render-content&content_ID=developer/howto_testing_sandbox

Lollinos ha scritto:

Ho trovato questo link dell'MSDN, però non ho ben capito il suo funzionamento.

Hai trovato la documentazione della classe WebRequest, che serve ad inviare richieste POST dal server.
Può darsi che ti serva o no, dipende da quale modalità di integrazione sceglierai.
Tipicamente la richiesta POST parte dal client, quando l'acquirente clicca il tasto "Paga ora" che gli metterai a disposizione.
Far partire una richiesta POST è facile, basta un form con method="POST"
<form action="UrlCheTiForniràPaypalOLaBanca" method="POST">
   <!-- qui andranno vari campi hidden contenenti le informazioni sull'ordine (li troverai nella documentazione) -->

  <input type="submit" value="Paga ora" />
</form>

Se apri la documentazione di Paypal puoi proprio vedere quali campi hidden vanno inclusi in quel form. Ecco qui, vedi al capitolo 11:
https://cms.paypal.com/cms_content/IT/it_IT/files/developer/PP_WebsitePaymentsStandard_IntegrationGuide.pdf
Nonostante le indicazioni che trovi lì funzionano ancora, quella documentazione che ti ho linkato è un po' datata e quindi forse ti conviene registrarti alla Sandbox di Paypal e seguire le indicazioni che troverai lì.

Lollinos ha scritto:

Le informazioni che mi verranno passate dopo la transazione, verranno inviate tramite POST alla mia pagina, giusto? Se sì, mi dovrei utilizzare il metodo GET per ottenerle?

Dipende, alcuni le mandano in POST mentre altri in GET. Questo è specificato nella documentazione e negli esempi che ti forniranno.
In un modo o nell'altro, sarà facile recuperare quelle informazioni con Request.Form (se era una richiesta POST) o con Request.QueryString (se era una richiesta GET).

Lollinos ha scritto:

Scusami se ti pongo tante domande, ma mi sono accorto di aver sottovalutato il problema, e quindi vorrei prepararmi il meglio possibile!

Prego! Vedrai che una volta capito il meccanismo non sarà difficile. Ci vorrà sicuramente qualche giorno e svariati tentativi prima di far funzionare il tutto ma questo è normale.

ciao

Enjoy learning and just keep making

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.