353

Product support

Read the plugin support instructions.

Categories

NOTE: if you are unable to write your own code to create an orders table (or use a plugin that handles this) this plugin will not be of use to you. This plugin is not a shoppingcart it does not create an order, it only handles payments for orders.

This plugin only adds a payment gateway to your own projects. You will have to create your own table and write your own code to create orders first. You only add this plugin after you have created this functionality yourself.

This plugin works great with my Room Booking Pro plugin and Members Pro plugin

Features

  • A standardized way to add online payments using Omnipay (https://omnipay.thephpleague.com/)
  • You can (re)use this standardized plugin to handle your online payments for many different projects
  • This is just a payment gateway, you will first have to create the orders in the database yourself

Supported Payment Service Providers (PSP's)

  • Mollie - iDeal, creditcard, PayPal, Bitcoin, SEPA Direct Debit, etc.
  • PayPal Express - PayPal and creditcard
  • Stripe (code your own components)
  • ... (please contact me if you would like others)

This plugin automatically includes the following packages for you through composer.json when installed from the marketplace:

{
    "require": {
        "league/omnipay": "^3",
        "omnipay/paypal": "^3.0",
        "omnipay/mollie": "^5.0",
        "omnipay/stripe": "^3.0"
    }
}

Requirements for using the default components

  • After you create and store your order yourself you redirect users to a page on your website using the $_GET['id'] parameter to identify the order ID.
  • You have to create the table you use to store orders in. It should have at least columns with the following functions (the actual column names can be mapped in Settings > Omnipay):
Column Function
id (int) unique incremented ID (e.g. 132)
paymentid (varchar) set by PSP
description (varchar) description of what is purchased
currency (varchar) currency (e.g. EUR)
amount (decimal) amount (e.g. 100.00)
ispaid (boolean) if the order is paid (e.g. 1)

A word about payment process flow (and Stripe)

Online payments should be handled by a Payment Service Provider (PSP). The PSP is the only one who needs to know your creditcard details. This is how Mollie and PayPal are designed.

  1. Collect order details on your website (products, pricing, shipping information)
  2. Save the order in your database
  3. Prepare the payment using the API of an PSP (e.g. request and store a paymentid in your database)
  4. Redirect the user to the website of the PSP (e.g. include the orderid)
  5. Pay on the website of the PSP
  6. Redirect the user back to your website (e.g. include the orderid)
  7. Check if the order is paid using the API of an PSP (e.g. check the status of the order using the paymentid)
  8. Mark the order as paid in your database
  9. Provide feedback to the users
  10. If the order was not paid use a webhook to periodically check if the order is paid

Some Payment Service Providers like Stripe actually do collect creditcard details on your site. Yes, I know these details do not have to be stored on your server and are send over SSL but I personally have a problem with this as there is no way for the visitors of your website to be sure that you do not store creditcard details anyway (for whatever reason).

The point being that as a visitor of your website I now do not only have to trust you to send me the items that I purchased on your site (creditcards are insured against this scenario) but I also have to trust that you do not store or transmit my creditcard details in a manner that is potentially insecure (even if you do not need to store creditcard details yourself you could if you wanted to). 50% of those fears would instantly go away by only asking for creditcard details on the website of the PSP. Stripe currently does not offer this possibility.

I have included Stripe but you will have to code your own components.

NOTE: PayPal Express also supports guest checkout using creditcards for visitors who do not have a PayPal account. You enter creditcard details on the website of PayPal.

Support

Please use the Support Forum (on the left side of the page for any theme or plugin) or send me a message. I also offer design and development services. You can visit my website for more information. Do not use reviews to ask for support.

IMPORTANT NOTICE! All my activities on October CMS are suspended indefinitely after my second burn-out. I do not offer any support or updates

Like this plugin?

If you like this plugin, you can help me to develop it further, provide support for it or make new plugins by making a donation with PayPal (left side of the page) or giving this plugin a good review :).

My other plugins include:

Hello, I am Wiego. Please start by reading the whole documentation! If you have any questions, find a bug or experience difficulties getting the plugin to work please use the Support Forum. Only leave a Review if you are happy with the plugin or are still unhappy with the plugin after reaching out to me in the Support Forum. Thank you! Wiego

Installation

  1. To install from the Marketplace, click on the "Add to Project" button and then select the project you wish to add it to before updating the project in the backend of your website to pull in the plugin. To install from the backend, go to Settings -> Updates & Plugins -> Install Plugins and then search for Briddle.Omnipay.
  2. Go to Settings > Omnipay
  3. Map the columns of the database table you use to store orders
  4. Add the needed components to the correct pages on your website

My Omnipay plugin does not support automatic payments but you could implement SEPA Direct Debit with Mollie.com to setup automatic payments or use Stripe to setup automatic payments using a credit-card yourself.

Requirements for using the default components

  • After you create and store your order yourself you redirect users to a page on your website using the $_GET['id'] parameter to identify the order ID.
  • You have to create the table you use to store orders in. It should have at least columns with the following functions (the actual column names can be mapped in Settings > Omnipay):
Column Function
id (int) unique incremented ID (e.g. 132)
paymentid (varchar) set by PSP
description (varchar) description of what is purchased
currency (varchar) currency (e.g. EUR)
amount (decimal) amount (e.g. 100.00)
ispaid (boolean) if the order is paid (e.g. 1)

Pay component

Add this component to the page on your website you redirect users to after creating the order and writing it to the database. This component uses $_GET['id'] to fetch the correct order from the database.

Please enter the following properties:

Property Description
Table The name of the table you store your orders in
PSP The Payment Service Provider you want to use
API-key The API-key (Mollie)
Username Username (PayPal)
Password Password (PayPal)
Signature Signature (PayPal)
Test-mode Test-mode (PayPal)
Return URL The PSP will redirect users back to this page on your site
Cancel URL The PSP will redirect users back to this page on your site

Paid component

Add this component to the page on your website your PSP will redirect users to after completing the payment. This component uses $_GET['id'] to fetch the correct order from the database.

Please enter the following properties:

Property Description
Table The name of the table you store your orders in
PSP The Payment Service Provider you want to use
API-key The API-key (Mollie)
Username Username (PayPal)
Password Password (PayPal)
Signature Signature (PayPal)
Test-mode Test-mode (PayPal)

Feedback to users

The component paid returns feedback to the user upon returning to the website. You can either overwrite the partial or use the page variable paid in your HTML (it can have value 'yes' or value 'no').

Events

I have made 2 events available: briddle.omnipay.pay and briddle.omnipay.paid. You can use these events to send confirmation mails etc. (e.g. in combination with my Workflow plugin).

  • The briddle.omnipay.pay event return the description, amount and currency.
  • The briddle.omnipay.paid event return the paymentid, amount and currency.

Support

Please use the Support Forum (on the left side of the page for any theme or plugin) or send me a message. I also offer design and development services. You can visit my website for more information. Do not use reviews to ask for support.

IMPORTANT NOTICE! All my activities on October CMS are suspended indefinitely after my second burn-out. I do not offer any support or updates

  • Found the plugin useful on 29 Apr, 2020

    Just wow. It's an absolute disgrace this plugin was rated 3 out of 5 stars, while it should have all the stars possible.

    It works great with Mollie (haven't tested Paypal) and it gets you kickstarted immediately. Thanks for sharing and a lot of kudos for the great work!

  • Found the plugin useful on 23 Apr, 2020

    Works great. Thank you!

  • Found the plugin not useful on 13 Apr, 2020

    Hi, i'm having an issue here with the plugin. I'm getting an error with the vendor folder. This is my error: Cannot redeclare Clue\StreamFilter\append() (previously declared in E:\Path\to\October-Ecommerce\vendor\clue\stream-filter\src\functions.php:17)

  • author

    Replied on 14 Apr, 2020

    Hi,

    This is not the Support Forum. I am unable to communicate with you about your issue here to find out what the problem is. Please use the Support Forum to get... support.

    At first glance your issue does not seem to be a bug but rather something to do with your current setup.

  • Found the plugin useful on 3 Oct, 2018

    Cheers! You've opened big door of integrations. Thanks!

1.0.4

Added backend translations and provided feedback view to Paid component

Oct 05, 2018

1.0.3

Fixed bug in marking PayPal orders as paid

Oct 03, 2018

1.0.2

Added notifyUrl.

Oct 03, 2018

1.0.1

Initialize plugin.

Oct 02, 2018