Difference between revisions of "PayPal enrolment"

Jump to: navigation, search
(added template)
(updated video)
 
(53 intermediate revisions by 13 users not shown)
Line 1: Line 1:
{{Enrolment methods}}
+
{{Enrolment}}
{{Improve}}
+
{{Note|In Moodle 3.10 onwards, a new recommended enrolment method for paying with PayPal is available - [[Enrolment on payment]]. Enrolment on payment provides the option of having multiple [[Payment gateways]].}}
  
Location: PayPal edit settings link in ''Site administration > Plugins > Enrolments > Manage enrol plugins''
+
==What is PayPal enrolment?==
  
The PayPal enrolment plugin allows you to set up paid courses. You can use the edit link to set a standard course cost default.
+
PayPal enrolment allows users to pay for courses and then be automatically enrolled.  
  
 +
==What is the difference between PayPal enrolment and Enrolment on payment?==
  
==Setup Steps: Moodle Course Enrollment & Paypal==
+
[[Enrolment on payment]] (new in Moodle 3.10 onwards) provides more features than PayPal enrolment, such as the option of having multiple [[Payment gateways]].
The following steps are based on '''Moodle release = '1.9.5+''' (Build: 20091007) and Paypal as of Feb 2011.
 
  
'''In Moodle:'''
+
The PayPal enrolment plugin uses PayPal's old API which still works, though PayPal encourages the use of the new API, as done for the PayPal payment gateway plugin in 3.10.
* Create a course
 
* After the course is complete, from the main Moodle page (after logging in as an Administrator) click on the course name and then click on "Settings" on the left navigation bar.  In the new page that appears, do the following:
 
# Scroll down to the "Enrolments" section  and fill it out:
 
## Enrolment Plugins: Paypal
 
## Default role: Site Default (Student)
 
## Course enrollable: Yes
 
## Enrolment duration: 30 days (or whatever you want)
 
# "Enrolment expiry notification" section (these settings are optional but it is always good to communicate):
 
## Notify: Yes
 
## Notify students: Yes
 
## Threshold: 10 days
 
# "Availability" section
 
## Availability: "This course is available to students"
 
## Enrolment key: <left blank>  (not required; optional)
 
## Guest access: "Do not allow guests in"
 
## Cost: enter a price (like 100.00) and select currency (like "US Dollar")
 
# Save changes
 
  
* Now on the main Moodle page after logging in, it should list your course with a price under it.
+
PayPal enrolment can still be used in 3.10, however it is planned for removal in a future version of Moodle.  
  
Setup email based self-registration
+
For these reasons, it is recommended that you use Enrolment on payment rather than PayPal enrolment.
* Log into Moodle as the Administrator
 
* Select "Site Administration > Users > Authentication > Manage Authentication"
 
# Enable "Email-based self-registration" (make sure the eye appears next to this)
 
# Scroll down and fill in the rest of the fields
 
## Self registration: "Email-based self-registration"
 
## Guest login button: Hide
 
## Restrict domains when changing email: checked
 
## Fill in ReCAPTCHA keys (go to http://recaptcha.net and fill out the form to create an account; it will then provide you with the public key and the private key to use on this form)
 
## All other fields are blank
 
## Save Changes
 
  
* Now select "Site Administration > Users > Authentication > Email-based self-registration"
+
==PayPal side setup==
# "Enable reCAPTCHA element": Yes
 
# All other fields: Unlocked
 
  
* Now select "Site Administration > Courses > Enrolments"
+
# Create a PayPal account at https://www.paypal.com
# PayPal enabled, set to Default
+
#* Although not required, it may be wise to upgrade your account to "Premier" status and get "Verified".
# "Send course welcome message": Yes
+
# Set the encoding to UTF-8.
# PayPal Edit button:
+
#* Go to Profile > Profile and settings > My selling tools > More selling tools > PayPal button language encoding
## Provide an enrolment cost (this is a global cost, individual course costs defined in the step above will override this setting), currency and your personal/business email
+
#* Make sure you have your website's language set to Western European Languages
## Check all the checkboxes so that emails are sent
+
#* Click the "More Options" button
## Save changes
+
#* Set encoding to "UTF-8" and let the same encoding be used for IPN, too.
 +
# Enable instant payment notifications (IPN)
 +
#* Go to Profile > Profile and settings > My selling tools > Getting paid and managing my risk > Instant payment notifications > Update
 +
#* Turn IPN on and set the notification URL to your site's enrol/paypal/ipn.php (so it reads for example like <nowiki>https://my.school.edu/moodle/enrol/paypal/ipn.php</nowiki>).
  
'''In Paypal:'''
+
You may wish to log in to https://developer.paypal.com/developer/accounts/ and experiment with PayPal Sandbox first. If doing do, put this to your config.php:
* Setup your PayPal account at paypal.com
 
# Create a Paypal account
 
# Not required but recommended for selling: Upgrade your account to "Premier" status and get "Verified"
 
# Setup IPN in Paypal to interact with Moodle.  Log into Paypal, go to "Profile > Instant Payment Notifications (IPN)”, click "Turn On IPN", click the "Edit settings" and enter a URL that references your IPN file in your Moodle installation (for example: http://<domain name>/moodle/enrol/paypal/ipn.php)
 
# Set the Encoding to UFT-8.  In Paypal, go to "Profile > Language Encoding" (under the Selling Preferences column) and set your website's language (like select "Western European Languages (including English)" as it is the only English version).  Then click on the "More Options" button and set the Encoding to "UTF-8", select "Yes" to use the same encoding for data sent from Paypay to you, and save.
 
  
* Do not use a PayPal button on your website
+
    $CFG->usepaypalsandbox = 1;
# Instead, on your website provide a link to your main login page for your Moodle installation.  It will now have a section on the right for 'firt time users' with a "Create new account" button.  This is how the process will start now.
 
  
'''Workflow -''' Now the workflow goes like this:
+
PayPal can provide more details, but as a high-level overview you will:
* On your website links to the main login page for Moodle (looks something like: http://<domain name>/moodle/login/index.php)
+
# Create "sandbox" accounts that are used for testing. At least one "BUSINESS" account is needed, and one "PERSONAL" account is needed, to represent both sides of a pretend transaction.
* Click the "Create new account" button
+
# These sandbox accounts will be registered/associated with the developer account for your REAL PayPal business account.
# Fill in the form (this is the "Email-based self-registration" form with the reCAPTCHA at the bottom) and click the "Create my new account" button
+
# When testing, in addition to the configuration flag above, remember to use the "BUSINESS" type sandbox account email address in the "PayPal business email" field in the PayPal plugin settings page. Do this instead of using your REAL business email address. Failure to use the pretend business account will result in an error message.
# You will get a web page saying to check your email for instructions on completing your registration.
 
* Log into your email and you should have an email. It will have a URL to click in order to confirm the new account. Click it.
 
* A new Moodle page will appear saying "Thanks, <name>" "Your registration has been confirmed"
 
# Click the "courses" button
 
  
* Now it lists all the courses available.  When you click on one of the course names that you want to take, it brings you to a page that has the course summary and the price displayed.  Below this is another section that says "This course requires a payment for entry", shows the price and now has a PayPal button that says "Send payment via PayPal".  Clicking this sends you to PayPal with the course listed in the order summary and you can log in to pay. 
+
==Enabling PayPal enrolment==
# Once done paying you will receive an email confirmation and a link to the main Moodle login page that you provided in the Paypal setup.
 
# The user should be able to log in now to take the purchased course.
 
# Likewise you will have received emails from Paypal on the purchase and the user/student will have received a confirmation receipt from Paypal also.
 
  
 +
{{MediaPlayer | url = https://youtu.be/aN5vyivT0qI | desc = How to set up payment for courses}}
  
==Course costs==
+
An administrator can enable PayPal file enrolment as follows:
Costs for each course can be set separately. If the cost for any course is zero, then students are not asked to pay at the time of enrolment into the course. However, if there is a site wide default course cost, you may override that in your course settings.
 
  
If the course cost field is not empty, then students trying to enrol will be presented with the option of making a payment to enter.
+
# ''Go to Site administration > Plugins > Enrolments > Manage enrol plugins'' and click the eye icon opposite PayPal. When enabled, it will no longer be greyed out. [[Manual enrolment]] must also be enabled, since the PayPal plugin requires it.
 +
# Click the settings link, configure as required (see details of settings below), then click the 'Save changes' button.
  
If you ALSO enter an [[Enrolment key|enrolment key]] in the course settings, then students will also have the option to enrol using a key. This is useful if you have a mixture of paying and non-paying students.
+
* PayPal business email - This setting is case sensitive and must exactly match that in PayPal
 +
* Default role assignment - This means the role that a new user will automatically be given in a course when they purchase access. Usually this would be "student" unless you have a special reason for choosing another role. As for other default settings, it may be overridden in individual courses.
  
==Verifying the default encoding==
+
Tip: If you wish to allow users to create their own accounts on your site then you need to set up [[Email-based_self-registration|Email based self registration]].
  
You need to verify the default encoding in your PayPal business account as follows:
+
==Course settings for PayPal==
  
#Login go to your PayPal account, select "My Account" tab, then Profile tab.
+
===Checking you have PayPal in your course===
#Click on "Language Encoding" in the right column Selling Preferences.
 
#Click on "More Options" button and select UTF-8 encoding for both cases. If you are using other software with IPN please check that it is compatible with UTF-8 encoding.
 
  
==See also==
+
# If you are using the [[Boost theme]], click the gear menu from the Participants link and then click Enrolment methods. If you are using a different theme, go to ''Course administration > Users > Enrolment methods''
 +
# If you do not see PayPal, use the pull down menu "Add method" and select PayPal. If you are a course teacher, your admin will need to allow you the capability ''enrol/paypal:config'' in order for you to add this method.
 +
# Make sure PayPal has its "eye" opened:
  
* Using Moodle [http://moodle.org/mod/forum/view.php?id=2981 Enrolment Plugins forum]
+
[[File:Paypalenrolmentmethod.png]]
* Using Moodle [http://moodle.org/mod/forum/discuss.php?d=137299 Can't get paid enrollment to work in any form] forum discussion
+
{{Note|Make sure you don't have [[Self enrolment]] enabled as this would allow users to access the course without paying. If you do need some users to self enrol for free, then add an [[Enrolment key]] in the self enrolment settings.}}
*[[Metacourses]] - using same core course subjects but packaging them at different rates.
 
* see Jhon Anderson's  answer in the forums [http://moodle.org/mod/forum/discuss.php?d=116279#p510221 Howto setup Moodle to work with Paypal]
 
  
[[Category:Enrolment]]
+
===Setting a price for your course===
[[fr:Inscription par Paypal]]
+
 
 +
# In ''Course Administration > Users > Enrolment methods'', click the edit/hand/pen icon to the right of the PayPal option.
 +
# Optional: Give a name to this enrolment method if you wish in "Custom Instance name"
 +
# Ensure that "Allow PayPal enrolments" is set to "yes"
 +
# In "Enrol cost", type in the cost of your course and in "Currency" choose your currency.
 +
# Usually you would leave the "Assign role" as "student" unless you have a very special reason for allowing your users to enrol as, say, editing teachers etc
 +
# Choose an enrolment period and/or start/end dates if desired.
 +
# Click the "Save changes" button.
 +
 
 +
[[File:Paypalcoursesettings.png]]
 +
 
 +
===What the new user sees===
 +
 
 +
When a new user clicks on your course link, they will see a message inviting them to go to PayPal to purchase access to the course. In the list of courses, PayPal courses have a "P" icon next to them.
 +
{|
 +
| [[File:Paypaluserview.png|frame|left|Message inviting user to pay via PayPal]]
 +
| [[File:Paypalicon.png|frame|left|PayPal course listed with "P" icon]]
 +
|}
 +
 
 +
==PayPal capabilities==
 +
 
 +
*[[Capabilities/enrol/paypal:config|Configure PayPal enrol instances]]
 +
*[[Capabilities/enrol/paypal:manage|Manage enrolled users]]
 +
*[[Capabilities/enrol/paypal:unenrol|Unenrol users from course]]
 +
*[[Capabilities/enrol/paypal:unenrolself|Unenrol self from the course]]
 +
 
 +
== See also ==
 +
*[[Enrolment on payment]]
 +
*[http://moodle.org/mod/forum/discuss.php?d=171745#p977221 Testing the PayPal plugin in the PayPal Sandbox]
 +
 
 +
[[de:Paypal-Einschreibung]]
 +
[[es:Inscripción por Paypal]]
 +
[[fr:Inscription Paypal]]

Latest revision as of 11:47, 3 February 2021

Note: In Moodle 3.10 onwards, a new recommended enrolment method for paying with PayPal is available - Enrolment on payment. Enrolment on payment provides the option of having multiple Payment gateways.


What is PayPal enrolment?

PayPal enrolment allows users to pay for courses and then be automatically enrolled.

What is the difference between PayPal enrolment and Enrolment on payment?

Enrolment on payment (new in Moodle 3.10 onwards) provides more features than PayPal enrolment, such as the option of having multiple Payment gateways.

The PayPal enrolment plugin uses PayPal's old API which still works, though PayPal encourages the use of the new API, as done for the PayPal payment gateway plugin in 3.10.

PayPal enrolment can still be used in 3.10, however it is planned for removal in a future version of Moodle.

For these reasons, it is recommended that you use Enrolment on payment rather than PayPal enrolment.

PayPal side setup

  1. Create a PayPal account at https://www.paypal.com
    • Although not required, it may be wise to upgrade your account to "Premier" status and get "Verified".
  2. Set the encoding to UTF-8.
    • Go to Profile > Profile and settings > My selling tools > More selling tools > PayPal button language encoding
    • Make sure you have your website's language set to Western European Languages
    • Click the "More Options" button
    • Set encoding to "UTF-8" and let the same encoding be used for IPN, too.
  3. Enable instant payment notifications (IPN)
    • Go to Profile > Profile and settings > My selling tools > Getting paid and managing my risk > Instant payment notifications > Update
    • Turn IPN on and set the notification URL to your site's enrol/paypal/ipn.php (so it reads for example like https://my.school.edu/moodle/enrol/paypal/ipn.php).

You may wish to log in to https://developer.paypal.com/developer/accounts/ and experiment with PayPal Sandbox first. If doing do, put this to your config.php:

   $CFG->usepaypalsandbox = 1;

PayPal can provide more details, but as a high-level overview you will:

  1. Create "sandbox" accounts that are used for testing. At least one "BUSINESS" account is needed, and one "PERSONAL" account is needed, to represent both sides of a pretend transaction.
  2. These sandbox accounts will be registered/associated with the developer account for your REAL PayPal business account.
  3. When testing, in addition to the configuration flag above, remember to use the "BUSINESS" type sandbox account email address in the "PayPal business email" field in the PayPal plugin settings page. Do this instead of using your REAL business email address. Failure to use the pretend business account will result in an error message.

Enabling PayPal enrolment

How to set up payment for courses

An administrator can enable PayPal file enrolment as follows:

  1. Go to Site administration > Plugins > Enrolments > Manage enrol plugins and click the eye icon opposite PayPal. When enabled, it will no longer be greyed out. Manual enrolment must also be enabled, since the PayPal plugin requires it.
  2. Click the settings link, configure as required (see details of settings below), then click the 'Save changes' button.
  • PayPal business email - This setting is case sensitive and must exactly match that in PayPal
  • Default role assignment - This means the role that a new user will automatically be given in a course when they purchase access. Usually this would be "student" unless you have a special reason for choosing another role. As for other default settings, it may be overridden in individual courses.

Tip: If you wish to allow users to create their own accounts on your site then you need to set up Email based self registration.

Course settings for PayPal

Checking you have PayPal in your course

  1. If you are using the Boost theme, click the gear menu from the Participants link and then click Enrolment methods. If you are using a different theme, go to Course administration > Users > Enrolment methods
  2. If you do not see PayPal, use the pull down menu "Add method" and select PayPal. If you are a course teacher, your admin will need to allow you the capability enrol/paypal:config in order for you to add this method.
  3. Make sure PayPal has its "eye" opened:

Paypalenrolmentmethod.png

Note: Make sure you don't have Self enrolment enabled as this would allow users to access the course without paying. If you do need some users to self enrol for free, then add an Enrolment key in the self enrolment settings.


Setting a price for your course

  1. In Course Administration > Users > Enrolment methods, click the edit/hand/pen icon to the right of the PayPal option.
  2. Optional: Give a name to this enrolment method if you wish in "Custom Instance name"
  3. Ensure that "Allow PayPal enrolments" is set to "yes"
  4. In "Enrol cost", type in the cost of your course and in "Currency" choose your currency.
  5. Usually you would leave the "Assign role" as "student" unless you have a very special reason for allowing your users to enrol as, say, editing teachers etc
  6. Choose an enrolment period and/or start/end dates if desired.
  7. Click the "Save changes" button.

Paypalcoursesettings.png

What the new user sees

When a new user clicks on your course link, they will see a message inviting them to go to PayPal to purchase access to the course. In the list of courses, PayPal courses have a "P" icon next to them.

Message inviting user to pay via PayPal
PayPal course listed with "P" icon

PayPal capabilities

See also