Stripe Payment with SCA and Coupon

Brief Introduction #

This plugin helps admins and webmasters use Stripe as the payment gateway. Stripe is one of the popular payment gateways. This plugin has all the settings for development as well as for production usage. It is easy to install, setup and effective.

Added features include:

  • Completely SCA support provides 5 layer of internal checking for security while the payment is processed giving you the most secure Payment processing confidence ever.
  • Coupon functionality while enrolling students with percent-off or amount-off discount
  • Full course name and site logo on stripe checkout
  • Ability to set custom stripe transaction statement descriptor for each course

Admins and Webmasters, now, can create, manage, and keep track of all promotional codes directly in their Stripe dashboard.

Requirements  #

  • PHP is version 5.6 or greater (compatible with the latest PHP 7.3 too) 
  • Moodle 3.0

Stripe Payment Installation Guide #

Method I – Download Stripe Payment

  • Download the plugin from the : 
  • Open your Moodle Site Administrator Page and navigate to the Plugin menu option. From the Plugin menu list, select Install Plugin from Zip File option. 
  • Copy and paste the Stripe file downloaded from the Moodle site
  • Once installed select “Install Plugin from Zip File” to get started instantly 

Method II – Add Stripe Payment

  • Go to and navigate to the Plugins menu option
  • Once the Plugin page loads select the Add New option. 
  • On the Add New page drag your mouse to the Search field and type MooWoodle
  • Once the MooWoodle Plugin option appears, select the Install button 
  • Once Installed click on the Activate button to get started with Moodle 
  • Install and Activate Stripe Payment 
  • Next the Moodle database will be upgraded. Though you can already set up the plugin options at this stage, it is recommended to leave the plugin options at the default settings at first and just click Save Changes to continue.

Method III – Installing manually at the server

  • If you can’t deploy the plugin code via the administration web interface, you have to copy it to the server file system manually
  • Log into your server admin, your destination will be: /path/to/moodle/enrol/ and Unzip the plugin file
  • In your Moodle site (as admin) go to the dashboard, you will get the installation prompt.
  • Then follow the same process to “Upload and install via ZIP file”

Stripe Payment Setup #

  1. Once stripe is active, you will be redirected to the set up page. 
  2. Add Client ID, Publishable key and Secret key obtained from Stripe.
  3. Enable Web Service via Server >> Web Service >> Overview and Enable web services
  4. Make sure to enable the REST API via Site administration >> Server >> Web services >> Manage protocols
  5. Also create the token via Site administration >> Server >> Web services >> Manage tokens. At the time of generating the token, make sure to select the “Administrator” as a user. Copy the token generated here.
  6. Now Go back to your stripe settings page and add the token here.
  7. Enable Stripe as an enrollment option.

8. These following options will send payment notifications if enabled :

  • Notify students
  • Notify teachers
  • Notify admin

9. Choose Enroll button Color : This option lets you set the desired colour for the enrollment button :

That’s it, you are now ready to set up the cost for the courses. 

Set up cost for Courses #

You can set two types of cost : 

  • Global : The global Course determines the default price of each course, in case the course doesn’t have any price assigned to it. In order to set this up, follow these steps : 
  1. In Course Administration > Plugins > Enrolment methods, click the edit/hand/pen icon to the right of the Stripe option.
  2. Set global course cost under “Enrol cost” option 
  3. Using the “Currency” settings, you can set the currency your site will be using for the course
  • Per Product : In order to set individual cost for each course, you need to navigate to the course. Under the Participant tab, you can select the Enrollment option as Stripe. 
  1. Optional: Give a name to this enrolment method if you wish in “Custom Instance name”
  2. Ensure that “Allow Stripe Subscription enrolments” is set to “yes”
  3. In “Enrol cost”, type in the cost of your course and in “Currency” choose your currency.
  4. 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
  5. If you want to limit the number of users that can be enrolled using this, please put a numerical value in the ‘Max Enrolled Users’ field.
  6. Choose an enrollment period and/or start/end dates if desired.
  7. Select if it is a monthly or a yearly subscription using the subscription interval dropdown.
  8. If you want to offer trial usage , put a numerical value fr the duration in days.
  9. Select if Coupon will be available during checkout or not using the Stripe coupon dropdown.
  10. Click the “Save changes” button.

Setting Up Coupons #

You can offer unlimited promo codes to your students. You have full control on application of the coupons:

  • Offer discount by a percentage or a flat amount
  • Coupons can be applied to every invoice
  • Coupons can be applied to one invoice
  • You can set duration of the coupon activation

In order to create the coupon you have to login to your stripe account and follow the steps :

  • Go to your Stripe Dashboard > Product > Coupons > Create a coupon.
  • Type in the coupon’s name: it can be anything and for your reference only.
  • Type in the Coupon’s ID: This is the Coupon code that your students will need to enter if they want to avail of the discount.
  • For further information, you may check Stripe’s Document

User Token : You should also generate a token for the ‘moodle_enrol_stripepayment’ service with administrator privileges. To create token goto Site Administrator >> Server >> Web Service >> Manage Token.

Global Enrollment Details #

  • Allow Stripe Enrolments : Enable this option to allow stripe as a payment method for the course.
  • Enroll Cost : You can charge a set amount for the product, and students must pay this to access the course.
  • Currency : Select the currency you wish to receive for payments.
  • Max enrolled users : Specify the maximum number of users who can enroll in this course.
  • Default role assignment : Define the user’s default role upon enrollment in the course.
  • Enrolment duration : Enrollment duration allows the admin to determine the number of days a student will have access to the product.

Product Configuration #

To enable Stripe as the payment method for the product, follow these steps:

  • Navigate to the ‘Participant’ tab of the product.
  • Under ‘Enrollment method,’ select ‘Stripe Payment.’
  • Configure the specific options for this product. Keep in mind that product-specific enrollment details will take precedence over global enrollment settings.
    • Allow Stripe Enrolments
    • Enroll Cost
    • Currency
    • Max enrolled users
    • Default role assignment
    • Enrolment duration
    • Start Date and End date : With this feature, you can define the duration during which Stripe payment will be displayed as the enrollment method for the product.

Powered by BetterDocs