Vous êtes ici Forums
  |  Connexion
 Forums
HomeHomeForums DNNForums DNNUtilisation - f...Utilisation - f...Faire profiter dFaire profiter d'une periode gratuite (30 jours par ex.) avant un abonnement payant
Précédente
 
Suivante
Nouveau message
02/11/2009 13:45
 

Bonjour à tous !

Heureux que le site DNN retrouve un peu de vie et de MàJ, bravo !

J'ai une requête à faire à tous les génies DNN de la place ;-) ... et y en a...

Connaissez-vous, ou peut-on imaginer une solution pour qu'un futur abonné de notre site, profite d'une période d'essai (30 jours ) avant de décider de s'abonner de façon payante...sans que nous soyons obliger de développer un module spécifique... de façon automatique (gestion des roles par exemple...)...ou peut-être y a-t-il déjà une application qui existe... ou que sais-je ?

L'idée :

Un futur abonné profite de 30 jours gratuit sur notre site, puis atteind ce délai, il est redirigé sur le "shop" pour s'abonner (moyennant finance, of course)... ou pas !

Je teste actuellement (en local) sur une version DNN 5.1.4

Un grand merci pour vos idées et vos aides

Je reste à disposition plus de plus amples informations

Bien à vous

Thierry

 
Nouveau message
02/11/2009 15:08
 

Bonjour Thierry,

Tu as tout ce qu'il te faut dans dnn. En revanche, cela ne peut ce faire qu'avec un compte PayPal. Il faut d'abord définir tes informations de compte PayPal dans Admin > Site Settings (désolé je n'ai pas installé de pack de langue fr-FR sur mon instance de test 5.1.4). Ensuite, ouvre la section Advanced Settings > Payement Settings. Tu sélectionne la monnaie, le provider PayPal (il n'y en a qu'un, d'où la limitation à PayPal), tu renseigne les valeurs avec celle de ton compte PayPal et tu sauvegarde. Après, il faut définir un rôle payant avec une période d'essai. Tu vas dans Admin > Security Roles et tu clique sur Add New Role (en bas à droite). Tu coche Public Role (pour que tout le monde puisse le voir) et tu ouvre la section Advanced Settings, tu saisis un montant dans Service Fee et une période de validité dans Billing Period. Ces deux premier paramètres définissent le coût de l'abonnement à ton site et la périodicité de ce service. Dans Trial Fee tu saisis un montant ou 0 si la période d'essai est gratuite, dans Trial Period tu saisis la durée de la période d'essai. Enfin, tu sauvegarde le tout !

Maintenant, tu as tout ce qu'il te faut. Le seul truc, c'est que l'utilisateur qui veut souscrire un abonnement ou tester ton service doit aller sur son profil d'utilisateur en cliquant sur son nom après s'être connecté. Ensute, il doit cliquer sur Manage Service et sélectionner Use Trial sur la ligne du service qu'il veut tester. Il sera alors ajouté au rôle et pourra accéder aux pages dont tu auras pris soin de limiter l'accès à ce rôle et ce pendant toute la période d'essai. A la fin de la période, il pourra retourner sur son profil pour souscrire un abonnement payant cette fois-ci en cliquant sur Renew.

Gilles

 
Nouveau message
02/11/2009 19:55
 

Bonjour Gilles !

Merci pour cette aide... je teste tout cela et fairais un éventuel retour au cas ou..... (si ca peut servir la communauté...)

Bien à toi

Thierry

 
Nouveau message
05/11/2009 16:33
 

Bonjour le forum

J'arrive avec mes questions...Tout c'est bien passé pour la config des périodes etc... pour la période d'essai, j'ai mis (évidement ) 1 jour et je m'attendais à un "renew" + transfert vers paypal suite à cela..euh! nothing ! alors j'ai fais un paramétrage sans période d'essai (cad paiement direct) et encore nothing!... lorsque je clique sur "suscribe", il me renvoie sur ma page d'acceuil, alors question : peut-on tester cela lorsque l'on est en local ? ou sinon j'ai peut-être pas bien compris les informations de Gilles (qui me paraissaient pourtant très claires...)...

D'avance merci pour toutes les précisions que vous pourriez m'apporter

J'ajoute la log (à laquelle je n'avais pas pensé de regarder...c'est ballot !)

AssemblyVersion: 5.1.4
PortalID: 0
PortalName: xxxxxxx
UserID: 9
UserName: test5
ActiveTabID: 39
ActiveTabName: Home
RawURL: /xxxxxx/admin/Sales/PayPalSubscription.aspx?tabid=39&RoleID=5
AbsoluteURL: /xxxxxx/admin/Sales/PayPalSubscription.aspx
AbsoluteURLReferrer: http://localhost/altidia/Home/tabid/39/ctl/Profile/UserID/9/Default.aspx
UserAgent: Mozilla/5.0 (Windows; U; Windows NT 5.1; fr; rv:1.9.1.4) Gecko/20091016 Firefox/3.5.4 (.NET CLR 3.5.30729)
DefaultDataProvider: DotNetNuke.Data.SqlDataProvider, DotNetNuke.SqlDataProvider
ExceptionGUID: aa53bf7f-90c5-4d45-b520-a44ad475fe92
InnerException: The given key was not present in the dictionary.
FileName:
FileLineNumber: 0
FileColumnNumber: 0
Method: System.ThrowHelper.ThrowKeyNotFoundException
StackTrace:
Message: DotNetNuke.Services.Exceptions.PageLoadException: The given key was not present in the dictionary. ---> System.Collections.Generic.KeyNotFoundException: The given key was not present in the dictionary. at System.ThrowHelper.ThrowKeyNotFoundException() at System.Collections.Generic.Dictionary`2.get_Item(TKey key) at DotNetNuke.Modules.Admin.Sales.PayPalSubscription.Page_Load(Object sender, EventArgs e) --- End of inner exception stack trace ---
Source:
Server Name: xxxxxxxx-GR001

Bien à vous

Thierry

 
Nouveau message
06/11/2009 17:40
 

Bonjour Thierry,

J'ai trouvé la raison de cette erreur ! En fait, si tu regarde le code de la page ...\admin\Sales\PayPalSubscription.aspx.vb il y est fait référence à trois variables du portail : paypalsubscriptionreturn, paypalsubscriptionnotifyurl et paypalsubscriptioncancelreturn. Manque de bol, ces variables ne sont pas définies par défaut ! Comme un objet Dictionary est utilisé pour stocker les paramètres du portail et que le test ne prend pas en  compte l'absence de ces variables, le code plante tout simplement. De plus, après inspection du code, je te précise que le mot de passe PayPal de ton compte n'est absolument pas utile car il n'est jamais utilié. Donc, autant mettre un mot de passe bidon ! Cela évitera que tu te fasse pirater ton compte PayPal si jamais ta base de données venait à être piratée.

Pour que la souscription fonctionne, il faut te connecter en tant que Host (SuperUser) puis aller dans Host > SQL. Coller le code suivant (avec les modifications requises, voir ci-après mes explications) dans la boîte de texte, cocher 'Run as Script' et cliquer sur 'Execute'.

CODE DU SCRIPT :

insert into {databaseOwner}{objectQualifier}PortalSettings ( PortalID, SettingName, SettingValue )
values (n, 'paypalsubscriptionreturn', 'url_de_retour_apres_payement');

insert into {databaseOwner}{objectQualifier}PortalSettings ( PortalID, SettingName, SettingValue )
values (n, 'paypalsubscriptioncancelreturn', 'url_de_retour_sur_annulation');

insert into {databaseOwner}{objectQualifier}PortalSettings ( PortalID, SettingName, SettingValue )
values (n, 'paypalsubscriptionnotifyurl', '');

IL FAUT REMPLACER les parties en rouge AVANT de coller ce script dans la boîte de texte ! Ci-dessous les explications :

  • n : Numéro du portail concerné
  • url_de_retour_apres_payement : URL de la page sur laquelle l'utilisateur doit être redirigé après payement.
  • url_de_retour_sur_annulation : URL de la page sur laquelle l'utilisateur doit être redirigé s'il a cliqué sur annulation sur le site PayPal.

Idéalement, l'url de retour après payement devrait être celle de la page d'acces à tes services. Tandis que l'url de retour sur annulation devrait être une page sur laquelle tu auras pris soin de placer un module Text/HTML avec un blabla expliquant qu'en raison de l'annulation tes services ne sont pas accessibles. Dernière précision, il ne faut PAS spécifier d'url pour le paramètre 'paypalsubscriptionnotifyurl', a moins que tu écrive ta propre page de traitement PayPal IPN. Voir le code de la page d'origine dans ...\admin\Sales\paypalipn.aspx. Enfin, tu ne peux pas utiliser la sandbox PayPal sans modifier le code des pages du dossier ...\admin\Sales. Car l'url de la page PayPal est codé en dur dans leur code.

Voilà, tu me dois bien un verre sur ce coup ! ;-)

Gilles

P.S. : Evidement tu ne peux pas tester complètement (surtout le retour) si ton site n'est pas accessible depuis l'Internet. Si tu bosse en local il te faut un nom de domaine volatile tel que no-ip.com ou encore DynDNS ! N'oublie pas de configurer ton routeur, IIS et ton instance dnn pour qu'il prennent en compte ce domaine.

 
Nouveau message
07/11/2009 10:34
 

Salut Gilles ! Salut le forum !

Tout d'abord, un grand merci pour ta dispo et ton analyse... je teste et fais un retour...cela dit t'as bien mérité ta coupette ;- )

(Remarque : je trouve un peu dommage d'avoir investi dans les "bouquins" DNN (j'en ai 3 !) et que je ne trouve pas de références concernant ce sujet... une raison de plus pour apprécier les forums et toutes les bonnes volontés qui s'y activent.. Merci)

Au fait, si je me trompe dans les arguments SQL comment je peux modifier (en utilisant une requete, plutôt que de me ballader dans la DB), car pour ne rien cacher SQL et moi pas d'accointance... Concernant l'URL qui se trouve dans la requete dois-je insérer le http:// ou non ?

et pas bien compris la modif à appliquer dans /admin/sales est-ce dans "PayPalSubscription.aspx.vb" ?

Merci !

Bon WE

Bien à toi

Thierry

 
Nouveau message
10/11/2009 14:22
 

Salut Thierry,

En général, les bouquins ne font pas la lste des bugs ! ;-) Ils sont quand même bien utile pour débuter.

Si tu te trompe et qu'il s'agit d'une erreur SQL le script ne sera pas exécuté tout simplement et tu auras un message d'erreur. Il suffit de remplacer le texte en rouge sans retirer les guillemets simples ('). Pour les url, il faut toujours mettre http:, une url doit être totalement qualifiée.

Pour tester avec PayPal sandbox, il faut modifier l'url d'appel à PayPal dans le fichier PayPalSubscription.aspx.vb, Remplace strPayPalURL = "https://www.paypal.com/cgi-bin/webscr?" par strPayPalURL = https://www.sandbox.paypal.com/cgi-bin/webscr/.

Gilles

 
Nouveau message
14/12/2009 16:20
 

Bonjour the forum !

I'm back !

J'ai donc testé les solutions "trial period" puis inscription payante suite à cela... En fait, je suis assez satisfait du fonctionnement de "trial period" (quoique qu'il faille faire des manip pour y acceder...) mais je dois dire que le renew ne me convient pas du tout.... J'explique,  en fait, je me mets à la place de mes clients qui vont tenter de se réabonner (moyennnant finance...)...et là je vois bien la galère de l'incompréhention... style "comment qu'on fait ?",  "p'tain c'est compliqué tout ça !", "maudite informatique!", "webmaster de malheur", "#@- (( "...  et j'en passe... je les connais, je les pratique déjà... et comme j'ai pas l'intention de changer de clients.... je vais tâcher de les satisfaire !

En fait, ce que j'imagine :

Le client complete les éléments nécessaire à son inscription, ensuite je fais un mode inscription vérification (envoi email vers client avec code de vérif)

Le client se connecte avec son code de vérif et il est automatiquement abonné en "free trial period" avec le role qui va bien, etc...

Fin de sa période, il est redirigé vers un store (ou page) avec plusieurs possiblité d'abonnement (trimestriel, annuel)...

Pensez-vous que quelque chose existe dans ce sens là...

Encore un grand merci

Bien à vous

Thierry

 
Nouveau message
14/12/2009 18:47
 

Bonjour Thierry,

Comme je dis toujours : "Les informaticiens seraient les plus heureux des Hommes si les utilisateurs n'existaient pas !" ;-) Il faut touours qu'ils nous pourrissent la vie ceux là.

Pour ton problème, je ne vois plus que deux solutions. Trouver un module qui fasse ce que tu veux ou le faire toi même ! J'apprécie DotNetNuke pour cela, soit tu as ce que tu veux dans le core, soit tu achète un module, soit tu le créé. Mais tu n'es jamais réellement bloqué par DNN. Satisfaire tout le monde est une mission impossible. Je le vois bien avec le module Store, a un moment il faut faire des choix qui ne sont pas toujours ceux des utilisateurs. Parfois une simple page de faq ou un module affiché uniquement pour les utilsateurs n'ayant pas les droits requis avec des explications claire pour renouveller leur abonnement permet d'éviter pas mal de galères.

Gilles

Gilles

 
Nouveau message
15/12/2009 07:44
 

Pour résumer : donner à un utilisateur qui s'inscrit la possibilité d'utiliser toutes les fonctionnalités du site pendant 30 jours (donc lui attribuer à l'inscription un rôle limiter dans le temps) puis, a l'issue des 30 jours, lui donner un rôle limité à 1 an, par exemple (donc lui attribuer un nouveau rôle).
Et en allant voir du côté de chez Ventrian ?
http://www.ventrian.com/Products/Modules/SubscriptionTools.aspx

David.


"Qui ne connait pas l'Histoire ne connait rien".
 
Nouveau message
15/12/2009 08:41
 

Bonjour, bonjour !

Merci M. Ploum! c'est vrai que l'on voudrait que tout soit perfect et adapté à ses besoins (ch'ui un grand rêveur ;-)  )...mais je préfère poser les questions quand même, étant donné l'expérience et l'expertise que l'on trouve sur le forum, ce serait gâcher de ne pas utiliser ces ressources... quelqu'un a peut-être (voir surement!) déjà mis cela en place...

Et merci M. David! c'est ce genre d'info dont j'ai besoin...je vais juste vérifier la compatibilité du module avec la version DNN 5.2 et puis fouiller chez swnowcovered

Si au demeurant d'autre personne ont des idées..you're welcome !

Mon objectif est d'optimiser (et surtout de le passer en v5 rapidement) le site que je gère (presque) à la place de mon développeur qui pour des raisons personnelles ne peut plus assurer une assistance... En attendant de trouver une autre personne qui saura satisfaire les besoins du site.

Bien à vous

Bonne journée

Thierry

 
Précédente
 
Suivante
HomeHomeForums DNNForums DNNUtilisation - f...Utilisation - f...Faire profiter dFaire profiter d'une periode gratuite (30 jours par ex.) avant un abonnement payant