Semplice pagamento, cambio ruolo e gestione paganti

14 contenuti / 0 new
Ultimo contenuto
Semplice pagamento, cambio ruolo e gestione paganti

Salve a tutti.
Vi spiego in breve ciò di cui avrei bisogno. Praticamente vorrei vendere una versione "premium" delle funzionalità del mio progetto, che permette sostanzialmente ad un utente (già iscritto) di creare un tipo di contenuto esclusivo. Per fare questo ho pensato di cambiare il ruolo a pagamento effettuato. Quello che sto cercando di capire, è quale possa essere la soluzione più adatta per integrare Paypal nel mio sito. Ho letto un bel po' di discussioni in rete e su questo forum, ma non essendo molto pratico con Paypal e pagamenti vari mi rimangono ancora dei dubbi.
Premetto che il pagamento è annuale e che mi serve un solo bottone Paypal. Se l'utente non rinnova, oltre a cambiargli ruolo, devo pure cancellare il tipo di contenuto.

Le soluzioni, da quanto mi sembra di aver capito, posso essere:
- Incollare direttamente il codice fornito da Paypal in un blocco
- Utilizzare Ubercart
- Utilizzare lm_paypal

Da ignorante la soluzione che prediligo è la prima, perché (sempre da quel che ho capito googlando) Ubercart è un po' pesante e, considerando che devo vendere un solo prodotto, mi sembra uno spreco installare un'architettura così complessa (in termini di risorse e di studio). lm_paypal invece non mi ispira fiducia per le numerose issues, frase letta proprio qui su drupalitalia in un post :) In più non so neppure se mi permette di fare quello che cerco.

Che voi sappiate, è possibile con il solo codice fornitomi da Paypal, creare una regola in Rules per fare in modo di avanzare di ruolo un utente una volta effettuato il pagamento?
Se sì, potreste darmi una "spintarella" aiutandomi a capirne di più?

Per quanto riguarda la gestione degli utenti premium e non. Potrei anche fare tutto a mano. Quindi farmi un bel foglio Excel (o altro, accetto consigli) e controllare ogni settimana la situazione, per poi cancellare il contenuto esclusivo di chi non è più "premium". Esiste però qualcosa di più professionale?
E possibilmente leggero e non troppo complesso? (forse chiedo troppo!)

Piccolo OT
Devo dire che ho un bel casino in testa perché sono 6 mesi che lavoro su questo progetto da solo e non ci voleva pure la grana Paypal! Voglio finire!

ubercart, oppure avevo letto di qualche modulo per un tot di contenuti a pagamento, issue significa richiesta, devi vedere i bug, di che genere sono e se sono chiusi e cosa riguardano, è un'analisi delicata da fare e non a occhio.
Se cerchi qualche modulo lo trovi di sicuro, devi gestire utenti premium, quando uno paga cambia ruolo con i permessi di creare il contenuto.

@ealmuno
Sì lo so, il ragionamento l'ho capito. E anche il significato di issue :) Appunto per questo, avendo letto qui in una discussione questo commento da una persona che ritengo valida, ho pensato "male" su questo modulo..
Hai ragione però quando dici che è un'analisi delicata. Proprio per questo preferisco chiedere quale secondo i più esperti sia la soluzione migliore. Così almeno concentrerò i miei sforzi (di studio) nella scelta migliore.
In ogni caso, tu dici ubercart. Lo tengo in considerazione.
Ma cavoli io penso che ci possa essere una soluzione più semplice e leggera.
Ho anche letto di questo modulo, Membership Suite, che costa 55€. Ho visto qualche video, e sembrerebbe soddisfare tutte le mie necessità. Mi sono dato un termine: se entro 20gg non trovo una soluzione alternativa, lo compro.
Tu/voi che dite?

Che con i tanti moduli che ci sono gratis non conviene pagare per uno del genere, il mio consiglio è mettiti a provarli tutti e poi vedi quale si adatta a te.

Non so come facciate i conti voi, ma se benipulp ragiona 20gg su un problema invece di spendere 55€ per un modulo che a quanto pare il problema lo risolve, benipulp alla fine non sarà molto felice… (a meno che per questo progetto non lo paghino a consuntivo :))

Se si ha il tempo forse conviene, perché prima ti fai una carrellata di moduli che prima o poi ti serviranno e fai esperienza, se poi contiao che adotterai 20 volte nella tua carriera quella soluzione 55x20=1100, allora i 20 giorni (che poi penso sia mezzoretta a sera) convengono. Poi dipende anche dalla fretta ed altri fattori.

Vi do ragione ad entrambi. Premetto che il mio è un progetto personale: ci stiamo investendo soldi ma nessuno ci paga. Ho deciso di aspettare appunto perché preferirei trovare altre vie e studiare cose nuove per fare esperienza. Quindi il discorso che fai tu, ealmuno, lo capisco perfettamente (ed è il motivo che mi ha spinto ad aspettare). Però capita a volte, che una persona arrivi stremata alla fine di un progetto e non abbia assolutamente voglia di buttarsi su nuovi "studi" (considerando che ha ancora molte cose da fare!). E' umano. Inoltre, 55€ al posto di 1-2 mesi di studio per come la vedo io è un affare, in certe circostanze. Per questo mi sono dato il limite simbolico di 20gg. Tra parentesi, per 20gg intendo 4-5 ore al giorno per 20 giorni, non mezz'oretta a sera. E 20gg è il limite: se non me lo fossi dato, avrei potuto pure metterci 1-2 mesi.

Comunque dai, con Ubercart ho risolto la questione pagamenti. Noto solo ora che non si è salvato il messaggio che ho scritto ieri in cui dicevo questa cosa!

L'unica cosa che rimane da sistemare è la gestione degli utenti. Vorrei una pagina in cui vedere gli utenti premium, le scadenze, ecc. Le mail vengono già mandate in automatico con le conditional actions di ubercart. Le soluzioni sono due:
- Uso views e mi creo una vista ad hoc visibile solo agli amministratori
- Mi costruisco a mano un simil gestionale con php e mysql esternamente al sito, ed inserisco manualmente i dati.
Le mie domande sono:
1. Al di là delle mie proposte, voi come gestireste la gestione?
2. Meglio avere un sistema "nel" sito (quindi rischiare di rallentare con query varie) o averne uno esterno?
Considerate che speriamo in un volume alto di utenti iscritti.

Io andrei con la gestione "interna" tramite Views ed eventuali integrazioni dei campi, se c'è bisogno. Ne guadagni in coerenza e in portabilità della soluzione (se devi migrare i dati, devi migrare una struttura coerente). Se è un'area admin, non dovrebbero verificarsi terribili colli di bottiglia nelle prestazioni.

In effetti Ubercart implementa una specie di view in Users, che si chiama Role expiration. Da questa si possono benissimo vedere le scadenze. Inoltre se si devono fare delle operazioni (ad esempio aggiungere un ruolo a mano), si resta sempre nello stesso ambiente. Era più la voglia di provare a costruire un sistema da me, visto che non l'avevo mai fatto!
Comunque tornando ai pagamenti, vi spiego per ora le mie impressioni.
Ho prima provato con lm_paypal. Le transazioni erano fatte con Paypal usando Sandbox come ambiente. Funzionava benissimo, molto intuitivo ma c'era un "piccolissimo" problema. Una volta effettuato il pagamento il ruolo veniva aggiunto all'utente ma una volta fatto il logout e rientrato non mi manteneva il ruolo acquistato!!! Non sono riuscito a capire il motivo.
Allora mi sono buttato su Ubercart. Ho letto qualche tutorial e capito il funzionamento. Ma dopo un giorno, tra le mille prove che ho fatto con gli utenti (per personalizzare le notifiche), togliendo il ruolo - riacquistandolo, ecc., il sistema non funzionava più. Praticamente facevo il pagamento con Paypal ma il ruolo non veniva aggiunto all'utente. E quindi niente notifiche. Tutto senza aver fatto qualcosa di particolare. L'unica cosa di "strana" che avevo fatto era stato quello di installare un modulo che integrava Role expiration con Views. Ho provato quindi a disinstallarlo ma niente. Perciò ho reinstallato Drupal da zero e tutto è tornato alla normalità. Per cercare di togliermi ogni dubbio, ho installato ancora quel modulo, tanto per capire se fosse effettivamente quello il problema. Non lo era, tutto funziona perfettamente.
Ora mi chiedo cosa possa aver causato questa cosa. Ed è inutile dire che questo anomalo problema mi lascia dei seri dubbi su Ubercart + Paypal. Non posso rischiare di ritrovarmi con questa grana quando il sito sarà operativo... E vivere con l'ansia sperando che non succeda di nuovo non è che sia proprio il massimo.
Inoltre c'è un'altra cosa che non mi piace. Se un utente acquista un ruolo il 18 agosto 2011 per un anno, questo scadrà il 18 agosto 2012. Ma se il 6 giugno 2012 questi volesse rinnovare il suo abbonamento, pagando nuovamente, il ruolo gli scadrà il 6 giugno 2013, non il 18 agosto 2013!

Hai controllato se funziona il sistema IPN che collega "machine-to-machine" PayPal al tuo Drupal? Guarda lo stato degli ordini in Ubercart: se vedi "pagamento in sospeso", probabilmente UC non ha ricevuto la notifica di pagamento eseguito da PayPal.

Purtroppo non posso più controllare perché come già detto ho reinstallato Drupal. Sono andato a controllare per curiosità lo stato degli ordini della mia nuova installazione: ho notato che, pur funzionando, in ogni ordine c'è "Paypal pending" nello Status. Perché?
E' un problema del Sandbox?
Ho anche cambiato la valuta di default in Euro (i conti in Sandbox sono in Euro) ma nulla è cambiato.
Quando entro nell'ordine c'è scritto:

19/08//2011
12:46:55 PM - Order created by the PayPal Buttons module.
19/08//2011
12:47:55 PM - Customer granted user role premium.
19/08//2011
12:47:55 PM - Payment is pending at PayPal: Reason unknown; contact PayPal Customer Service for more information.

Nel Sandbox di Paypal ho due utenti buyer: uno con il Payment Review abilitato e uno no. Ho fatto la transazione con entrambi ma non è cambiato nulla.

Sul funzionamento del Sandbox non metto la mano sul fuoco. I test probanti li faccio con l'account vero. Controlla che non ci siano dei problemi di firewall, in quanto il server web deve RICEVERE una chiamata da PayPal.

Nota: ho editato il msg precedente perché citavo un sito che NON funziona con PayPal, ma con un altro gateway.

Guarda, non so come ma ora tutto funziona. Ho fatto due cose e purtroppo non ho fatto una prova nel mezzo per capire quale fosse la causa:
1. Ho ricreato gli account su Paypal e lasciato da subito disabilitato il Payment Review
2. Aggiunto il path (mi ero dimenticato di farlo nella nuova installazione di Drupal) in "Card number encryption key filepath" (store/settings/payment/edit/methods) in "Credit card settings". Però io uso PayPal Website Payments Standard come metodo di pagamento quindi non saprei.

Per quanto riguarda il discorso dei rinnovi invece? Hai/avete qualche idea?

Per il discorso dei rinnovi, ho sbagliato io. Funziona correttamente. Non ho idea di come abbia potuto aver visto il contrario, ma con le tante prove è facile che mi sia confuso.