Recently Viewed...
DNN Modules
SnowCovered Top Sellers

Edit documents directly on your server. The premier document management solution for DotNetNuke (DNN). Index contents of documents. Share documents across your portal and avoid duplicates. Revised and flexible UI. Extensible architecture.

'Relationship Building' and 'Communication' are two essential nuts and bolts for a business to prosper. This module allows you to bridge both of these and easily generate continuous awareness of your web site, products and services. Your prospects and customers will greatly appreciate this featur

Live Content uses Web 2.0 approach to provide a Rich User Interface and streamlines content presentation by overlaying content on current page. Overlay images, videos, audio, text/html content, flash, dotnetnuke modules, and external content. Experience the demo...

The Catalyst skins are professionally designed, coded and packaged by a team of DotNetNuke experts. The skins are available in 12 great colours. This skin is easily customisable with our unique DrNuke EasyMod technology. Try our demo!

In this day and age, knowing as much detailed information as possible about your customer, prospect or web site user is essential. Thankfully, the new 'Dynamics Forms' module from Data Springs, makes it easier than ever to segment your data collection efforts.

Ultra Video Gallery is a brother product of Ultra Media Gallery, UVG allows you to add videos in various format and automatically convert them to flv format, you also can add videos from embed code and play them in our integrated flash video player.

Ultra Media Gallery is the most popular photo gallery and media gallery solution for DotNetNuke, UMG offers 10 different flash player to browse your gallery with completely different user interface experience.

Capture your users attention, enrich your site with multimedia flash, and create and opt in distribution list for your DNN site. These are just a few of the many features the Data Springs Module Collection can provide you.

Version 5 of the perennial best-selling tool for creating data-based solutions in DNN without custom programming. This version focuses on greater flexibility, expandability, and ease-of-use.

ALL NEW ! - Minimalist includes skin packs in 12 great colors. Each color has Flat, Gradient and Glass versions. Feature rich XML Flash header, perfect for just about any purpose. 9 Different menu options in each skin pack; 3 horizontal menus, 3 vertical menus and 3 all-new Twin level menus . . .

    |   Register   |   Sunday, November 23, 2008   
Data Springs Product Forums...
Subject: Cancel Subscription
Prev Next
You are not authorized to post a reply.

Author Messages
Shawn
Posts:23
going with the flow
going with the flow

05/28/2008 5:56 PM  

How does one cancel a subscription?  Suppose we offer a service that is billed monthly.  If a client wishes to cancel their subscription how does that work?  It should stop the monthly billing for that client and expire their role (that part of the site tied to the role that they are paying to use.)

Thanks.

Chad
Posts:2227
river guide
river guide

05/29/2008 9:18 AM  
Hi. Well right now if a client cancels their membership completely it will actually delete them as a user (there is a feature in general settings to allow them to cancel or not). You could also have a checkbox on the registration / updated registration pages or any other field type that can allow them to 'cancel' just that service and setup a completion event to remove them or add them to a security role based on that response to the question. Any processes such as refunds I believe would have to be processed manually at this time, unless you can pass the appropriate parameters to Authorizenet which would process the refund (which would be hard because they might have used 1/2 of it setc...)

A few more things... In 3.2 there is a new feature to link completion events to a users cancellation. Previouslly you could fire events for new registrations, updated registrations, or both... In 3.2 there is also an option to fire events for user cancellations. This really doesn't apply to role events though (only email, SQL, URL redirection) because the user will be deleted so there is no need then to remove their roles.

One final item to add is that 3.2 also will be able to handle subscriptions better via PayPal... However I believe for a user to cancel their subscription they have to cancel it within the PayPal interface, whenever that cancellation is setup in PayPal you can tie that to a completion event. Therefore, when they cancel it can be tied to a completion event to remove them from that security role etc...


-Chad
Mike
Posts:7
skipping stones
skipping stones

07/10/2008 9:11 PM  

I want to implement your suggestion.  One question though... if I use a checkbox to control an event that removes them from a subscribed role, how do I cancel their paypal subscription?  Along the same lines... does PayPal take care of collecting the subscription at the appropriate time or does the Dynamic Registration module charge the user's PayPal account?  Any help is much appreciated.  Thanks

Shawn
Posts:23
going with the flow
going with the flow

07/11/2008 7:57 AM  

I've given this a lot of thought.  There is a lot of documentation on paypal on how to create a button on one's site that would allow a user to cancel their subscription without actually going to paypal. You should make that available with the click of a button.  Since we're using Paypal (in this case) as the controller of subscriptions and you are "talking" to paypal via their IPN interface then you should use the reciept of one of those events to fire off the expiration of a given user's role (or removal, inactive state, whatever).

 

For subscriptions Paypal handles the payment collection -- you are just using the registration event to tell Paypal what you want to do and setup the billing process.  From that point on Paypal is in charge. 

 

For a one off purchase the Registration module could be in charge -- in which case you would need to maybe setup some type of events queue and maybe use DNN's event scheduler to remove them from the role at the appropriate time (a configurable events manager that integrates with the DNN scheduler would be a great product by the way).  Another way to do this might be to still use Paypal's subscription tools, but just make the frequency of the subscription happen only once -- at the time of the purchase and set the period for expiration as normal.  At the end of the subscription period Paypal sends out its IPN notice and your modules fire off their events as usual. 

For this to work well you really need to think through the workflow for how all this should work and consider how an administrator could set this up fairly intuitively.  And TEST (by test, I mean make it easier for an administrator to test and validate their configuration -- right now it is pretty difficult). The way it is currently implemented seems to work, but its really painful to "see" at a glance what is firing off when and why.  You really have to study what is going on to understand what was setup.  Someone coming back to a project after 6 mos. that actually did utilize events for many of the Paypal IPN events would have their work cut out for them just figuring out how it was all supposed to work in the first place.

Good luck and thanks for asking.

Mike
Posts:7
skipping stones
skipping stones

07/11/2008 11:08 AM  
So does the IPN "talking" occur whether the user comes to my site or not? In other words, if they go to their PayPal account and cancel their subscription, will PayPal notify my site through the IPN behind the scenes... without me getting involved?
Mike
Posts:7
skipping stones
skipping stones

07/11/2008 11:10 AM  
Also, do you know if PayPal sends the cancellation automatically (if they do), do they do this at the end of the current term or immediately?
Chad
Posts:2227
river guide
river guide

07/16/2008 10:55 PM  

Mike - To answer your question, "if they go to their PayPal account and cancel their subscription, will PayPal notify my site through the IPN behind the scenes"... The answer is yes. PayPal from the very start of the payment transaction will always notify (as long as the Page URL of the site doesn't change and the page is always available to 'all users') PayPal will talk back to that form and pass along the PayPal IPN code. I actually think to process a cancellation the user must do this on the PayPal side.  Depending on the IPN status code, you can process the completion events.

 

For more detailed implementations, you might consider using Dynamic SQL Events instead of the role completion event. This will give you more control over adding/removing user to and from roles and better yet, adding 'days' to their security role based on their subscription terms. So if the subscription is 30 days, 90 days, a year etc... You can handle this with role events  but I think you would have more power using a SQL event to control the effective and expiry date.

 

Basically, PayPal will always talk to your registration form and should process the events accordingly. So, if a user pays with a 'Check', it will sit in pending for a few days on PayPal and you might not want to add the user to a role or fire off a specific email (or maybe fire off a pending email), and then a few days later when it goes to completed you would want to handle these requirements then etc... 

 

Here is another thread which is also a very detailed description of using Dynamic Forms w/ PayPal (non subscription in this example) that should also provide some tips.   We are also working on some tutorials and demonstrations that you will be able to directly export / import into your site and there are a few example of working implementations on beta springs as well.

 

Here are a few major tips:

* Setup a PayPal Sandbox account... Yes this is a learning curve... but there is no better way to test your exact scenerio(s). I know we all want this to be a 5 minute setup within your module but the bottom line is you are dealing with several business processe(s) that need function exactly as you want them to, and this involves PayPal talking back and forth to your site on a consistent basis to make sure a users payments match up with emails that go out, security roles being added or change, securied roles being removed etc...

* Add &Debug=True or ?Debug=True to your querystring when loading the page. This will also allow you to see the exact information that is being passed to PayPal and can help in debugging why something might or might not b e working. For example: http://www.yoursite.com/TabID/55/default.aspx?Debug=True  (you must be signed in as admin to use this feature).

* Review all tutorials, other forum threads (there are several now), and demonstrations that we will be posting soon.

* Make sure your page is viewable to all users. Often during development you will want to only have a page visible to Administrators, however the PayPal IPN system cannot talk to the registration form at that time. You need to make the page viewable to all unauthenticated users so that PayPal can talk to it.

* I am still reviewing the parameters that need to be passed to cancel a subscription directly, however for a user to cancel a subscription themselves they need to:

  1. Log into PayPal (www.paypal.com)
  2. Click "History" within the menu
  3. Select "Subscriptions" from the "Show:" combo box (you might also select a longer timeframe from drop-down box if you have had your account longer than a month.)
  4. Click submit.
  5. You should see an entry called "Subscription Creation"  There will be a link in the "Status" column that tells you the status of the subscription. If it says "Active", click it.
  6. Click the button that says "Cancel Subscription" and follow the remainder of the steps.

 

So... Hopefully this helps and let me know if you have any questions.

 

-Chad

 

Mike
Posts:7
skipping stones
skipping stones

07/17/2008 5:05 AM  
That helps a great deal Chad. Thank you so much!
You are not authorized to post a reply.



ActiveForums 3.7

Copyright 2005 - 2008 by Data Springs, Inc.
Terms Of Use | Privacy Statement