13 Commits
2.6 ... 2.10

Author SHA1 Message Date
Wouter van Os
88446ee9a3 Add fallback for checkout 2020-05-25 17:50:16 +02:00
Wouter van Os
8f8aee016d Added some fancy badges. 2020-05-25 16:52:35 +02:00
Wouter van Os
f01ce080a4 Linked to WHMCS versioning table 2020-05-25 15:50:08 +02:00
Wouter van Os
ed2cb8da15 Renamed file to download in README 2020-05-25 15:47:37 +02:00
Wouter van Os
3b5df871b8 Updated plugin to gateway 2020-05-25 15:43:00 +02:00
Wouter van Os
4c31da5ba3 Added support for the Mollie Payments checkout page 2020-05-25 15:42:05 +02:00
Wouter van Os
baf13db08b Rewritten to English 2020-05-25 15:39:52 +02:00
Wouter van Os
16f333c39c Rename module to WHMCS Mollie Payments
This to better separate the 2 different Mollie services: Payments and Recurring.
2020-04-01 11:54:13 +02:00
Wouter van Os
664b2a7cfb Fix redirect for addfunds
This fixes addfunds requests somehow.
2020-02-10 17:34:18 +01:00
Thomas
fd9a3e39b1 Fix #53 (#55)
Een extra / in de URL zou niet uit moeten maken, bij mijn eigen site werkt dat verder. Bij bijv. Google ook: https://www.google.nl////search?q=mollie+whmcs
2019-06-24 20:42:48 +02:00
Wouter van Os
c2857294b3 Added Apply Pay 2019-05-27 16:23:55 +02:00
Wouter van Os
e356f9cfc1 Removed Bitcoin because Mollie removed the payment method 2019-05-27 16:23:27 +02:00
Wouter van Os
6d65280c6e Added Przelewy24 payment provider 2019-04-24 17:09:48 +02:00
9 changed files with 139 additions and 63 deletions

View File

@@ -1,41 +1,21 @@
# WHMCS Mollie Gateway
Onofficiële Mollie gateway voor WHMCS. In deze gratis plugin zit GEEN ondersteuning voor Mollie Recurring (SEPA/Automatisch Incasso). Hiervoor hebben we een [betaalde](https://0100dev.nl/modules/whmcs#WHMCS%20Mollie%20Recurring) plugin. Deze plugins zijn niet afhankelijk van elkaar en kunnen naast elkaar opereren maar ook zonder elkaar.
# WHMCS Mollie Payments gateway ![GitHub All Releases](https://img.shields.io/github/downloads/0100Dev/WHMCS-Mollie-Payments/total) ![GitHub release (latest by date)](https://img.shields.io/github/v/release/0100Dev/WHMCS-Mollie-Payments)
Unofficial Mollie Payments gateway for WHMCS. This free gateway does NOT support Mollie Recurring, only Molie Payments. For Mollie Recurring we have a [paid](https://0100dev.nl/modules/whmcs#WHMCS%20Mollie%20Recurring) gateway. These gateways are not dependent on each other and can operate side by side, but also without each other.
Compatible met **alle** WHMCS versies.
Compatible with **all** WHMCS versions that are [supported by WHMCS](https://docs.whmcs.com/Long_Term_Support#WHMCS_Version_.26_LTS_Schedule).
### Installatie via SSH
+ Log in op SSH (of console) en zorg dat GIT geinstalleerd is op uw webserver.
+ Ga naar een tijdelijke folder (bijvoorbeeld `/tmp`) en voer het onderstaande commando uit.
+ ``` git clone https://github.com/0100Dev/WHMCS-Mollie.git```
+ Ga in de `WHMCS-Mollie` folder die zojuist met het vorige commando aangemaakt is.
+ Installeer Composer op de webserver of volg de instructies [hier](https://getcomposer.org/download/) en voer daarna het onderstaande commando uit.
+ ```composer install```
+ Ga naar de root van de WHMCS installatie (de hoofd folder) en dan naar `modules/gateways`.
+ Kopieer nu alles uit de `WHMCS-Mollie/src` folder van enkele stappen terug naar de huidige folder.
### Installation
+ Log in to your (s)FTP.
+ Download the `WHMCS-Mollie-Payments.zip` from the [releases page](https://github.com/0100Dev/WHMCS-Mollie/releases) (**PLEASE NOTE:** **not** `Source code (zip)` or `Source code (tar.gz)`!).
+ Upload all the files from the `src` folder to the `/modules/gateways` folder in your WHMCS installation.
### Installatie via FTP
+ Log in op FTP.
+ Download de `whmcs-mollie.tar.gz` van onze [releases pagina](https://github.com/0100Dev/WHMCS-Mollie/releases) (**LET OP:** **niet** `Source code (zip)` of `Source code (tar.gz)`!).
+ Upload alles uit de `src` folder uit de hierboven gedownloaden TAR in de `/modules/gateways` folder van uw WHMCS installatie.
### Payment Methodes
All payment methods from Mollie are supported (which is also supported by their API). Enable the desired payment methods by activating the gateway in WHMCS.
### Betaalmethodes
Alle betaalmethodes van Mollie zijn ondersteund (welke ook door hun API ondersteund word). Zet de gewenste betaalmethodes aan door de gateway in WHMCS te activeren.
Support for new payment methods must be added manually, due to the structure of this gateway. It can therefore take a while before a new payment method is supported. Is it urgent? Contact our paid support or add support for it yourself and contribute it back using a pull request.
Betaalmethodes moeten door de structuur van deze gateway handmatig toegevoegd worden. Het kan dus even duren voordat een betaalmethode toegevoegd word. Heeft het haast? Zie het kopje Support.
### Updates
#### Naar V2.0 of hoger
Deze release is NIET compatible met V1.x. Verwijder eerst alle files vanuit je /modules/gateways folder die betrekking hebben op deze gateway. Alles dus met mollie_x.php. In WHMCS dien je ook opnieuw deze gateways in te schakelen. WHMCS zal aangeven dat de ouded gateways niet meer gevonden kunnen worden, dit klopt - verwijder deze en vervang deze met de nieuw ingeschakelde.
Let erop dat je bijvoorbeeld NIET onze mollierecurring.php moet verwijderen, als je onze betaalde Mollie Recurring gateway actief hebt.
#### Naar V2.5 of hoger
In deze release zijn de betaalmethodes KBC/CBC, ING Home'Pay, Giropay, Giftcards en EPS erbij gekomen. Verder is de gateway vernieuwd van een modernere package manager en is Mistercash van naam veranderd naar Bancontact.
U kunt de files uploaden en simpelweg overschrijven (zie instructie bij Installatie), maar zorg wel dat u de oude Bancontact/Mistercash gateway uitschakeld en de nieuwe inschakeld als Bancontact.
You can use `Mollie Checkout` to use the Mollie Payments checkout pages. In this case it'll use the Mollie Payments checkout screen and show all enabled payment methodes in your Mollie account.
### Support
Support op basis van best-effort in Github via haar issuetracker. Business support (reactietijd van max. 24 uur, normaliter <1 uur) via ons [klantenpaneel](https://my.0100dev.nl/) tegen ons uurtarief a € 45,- excl. VAT. Maak een account aan en stuur via daar een ticket in.
Support is best-effort through the Github issue tracker. Business support (responsetime within 24 hours, normally less then 1 hour) through our [website](https://0100dev.nl/) against our hourly rate at75,- excl. VAT. Please create an account at our website before contacting us.
[Meer informatie via Mollie](https://www.mollie.nl/betaaldiensten/)
[More information through Mollie about Mollie Payments](https://www.mollie.com/en/payments)

85
composer.lock generated
View File

@@ -8,16 +8,16 @@
"packages": [
{
"name": "composer/ca-bundle",
"version": "1.1.2",
"version": "1.1.4",
"source": {
"type": "git",
"url": "https://github.com/composer/ca-bundle.git",
"reference": "46afded9720f40b9dc63542af4e3e43a1177acb0"
"reference": "558f321c52faeb4828c03e7dc0cfe39a09e09a2d"
},
"dist": {
"type": "zip",
"url": "https://api.github.com/repos/composer/ca-bundle/zipball/46afded9720f40b9dc63542af4e3e43a1177acb0",
"reference": "46afded9720f40b9dc63542af4e3e43a1177acb0",
"url": "https://api.github.com/repos/composer/ca-bundle/zipball/558f321c52faeb4828c03e7dc0cfe39a09e09a2d",
"reference": "558f321c52faeb4828c03e7dc0cfe39a09e09a2d",
"shasum": ""
},
"require": {
@@ -60,7 +60,7 @@
"ssl",
"tls"
],
"time": "2018-08-08T08:57:40+00:00"
"time": "2019-01-28T09:30:10+00:00"
},
{
"name": "guzzlehttp/guzzle",
@@ -180,32 +180,33 @@
},
{
"name": "guzzlehttp/psr7",
"version": "1.4.2",
"version": "1.5.2",
"source": {
"type": "git",
"url": "https://github.com/guzzle/psr7.git",
"reference": "f5b8a8512e2b58b0071a7280e39f14f72e05d87c"
"reference": "9f83dded91781a01c63574e387eaa769be769115"
},
"dist": {
"type": "zip",
"url": "https://api.github.com/repos/guzzle/psr7/zipball/f5b8a8512e2b58b0071a7280e39f14f72e05d87c",
"reference": "f5b8a8512e2b58b0071a7280e39f14f72e05d87c",
"url": "https://api.github.com/repos/guzzle/psr7/zipball/9f83dded91781a01c63574e387eaa769be769115",
"reference": "9f83dded91781a01c63574e387eaa769be769115",
"shasum": ""
},
"require": {
"php": ">=5.4.0",
"psr/http-message": "~1.0"
"psr/http-message": "~1.0",
"ralouphie/getallheaders": "^2.0.5"
},
"provide": {
"psr/http-message-implementation": "1.0"
},
"require-dev": {
"phpunit/phpunit": "~4.0"
"phpunit/phpunit": "~4.8.36 || ^5.7.27 || ^6.5.8"
},
"type": "library",
"extra": {
"branch-alias": {
"dev-master": "1.4-dev"
"dev-master": "1.5-dev"
}
},
"autoload": {
@@ -235,26 +236,27 @@
"keywords": [
"http",
"message",
"psr-7",
"request",
"response",
"stream",
"uri",
"url"
],
"time": "2017-03-20T17:10:46+00:00"
"time": "2018-12-04T20:46:45+00:00"
},
{
"name": "mollie/mollie-api-php",
"version": "v2.0.13",
"version": "v2.10.0",
"source": {
"type": "git",
"url": "https://github.com/mollie/mollie-api-php.git",
"reference": "8d3b199ddf955f968a274daa1d2a4bdf68b932d1"
"reference": "151bdb85c325f6768452a3d8461930589be85729"
},
"dist": {
"type": "zip",
"url": "https://api.github.com/repos/mollie/mollie-api-php/zipball/8d3b199ddf955f968a274daa1d2a4bdf68b932d1",
"reference": "8d3b199ddf955f968a274daa1d2a4bdf68b932d1",
"url": "https://api.github.com/repos/mollie/mollie-api-php/zipball/151bdb85c325f6768452a3d8461930589be85729",
"reference": "151bdb85c325f6768452a3d8461930589be85729",
"shasum": ""
},
"require": {
@@ -267,7 +269,7 @@
},
"require-dev": {
"eloquent/liberator": "^2.0",
"phpunit/phpunit": "^5.7|^6.5|^7.1"
"phpunit/phpunit": "^5.7 || ^6.5 || ^7.1"
},
"suggest": {
"mollie/oauth2-mollie-php": "Use OAuth to authenticate with the Mollie API. This is needed for some endpoints. Visit https://docs.mollie.com/ for more information."
@@ -292,12 +294,12 @@
"homepage": "https://www.mollie.com/en/developers",
"keywords": [
"CBC",
"Przelewy24",
"api",
"bancontact",
"banktransfer",
"belfius",
"belfius direct net",
"bitcoin",
"charges",
"creditcard",
"direct debit",
@@ -308,8 +310,10 @@
"inghomepay",
"intersolve",
"kbc",
"klarna",
"mistercash",
"mollie",
"paylater",
"payment",
"payments",
"paypal",
@@ -319,11 +323,12 @@
"refunds",
"sepa",
"service",
"sliceit",
"sofort",
"sofortbanking",
"subscriptions"
],
"time": "2018-08-29T09:05:31+00:00"
"time": "2019-05-20T09:07:29+00:00"
},
{
"name": "psr/http-message",
@@ -374,6 +379,46 @@
"response"
],
"time": "2016-08-06T14:39:51+00:00"
},
{
"name": "ralouphie/getallheaders",
"version": "2.0.5",
"source": {
"type": "git",
"url": "https://github.com/ralouphie/getallheaders.git",
"reference": "5601c8a83fbba7ef674a7369456d12f1e0d0eafa"
},
"dist": {
"type": "zip",
"url": "https://api.github.com/repos/ralouphie/getallheaders/zipball/5601c8a83fbba7ef674a7369456d12f1e0d0eafa",
"reference": "5601c8a83fbba7ef674a7369456d12f1e0d0eafa",
"shasum": ""
},
"require": {
"php": ">=5.3"
},
"require-dev": {
"phpunit/phpunit": "~3.7.0",
"satooshi/php-coveralls": ">=1.0"
},
"type": "library",
"autoload": {
"files": [
"src/getallheaders.php"
]
},
"notification-url": "https://packagist.org/downloads/",
"license": [
"MIT"
],
"authors": [
{
"name": "Ralph Khattar",
"email": "ralph.khattar@gmail.com"
}
],
"description": "A polyfill for getallheaders.",
"time": "2016-02-11T07:05:27+00:00"
}
],
"packages-dev": [],

View File

@@ -31,6 +31,9 @@ if (isset($_POST['id'])) {
$method = $transaction['method'];
if (empty($method)) {
$method = 'checkout';
}
$_GATEWAY = getGatewayVariables('mollie' . $method . '_devapp');

View File

@@ -10,7 +10,6 @@ $_GATEWAYLANG['checkPayment'] = 'We controleren je betaling, moment geduld...';
$_GATEWAYLANG['payWithBanktransfer'] = 'Betaal met Bank overschrijving';
$_GATEWAYLANG['payWithBelfius'] = 'Betaal met Belfius';
$_GATEWAYLANG['payWithBitcoin'] = 'Betaal met Bitcoin';
$_GATEWAYLANG['payWithCreditcard'] = 'Betaal met Creditcard';
$_GATEWAYLANG['payWithIdeal'] = 'Betaal met iDeal';
$_GATEWAYLANG['payWithBancontact'] = 'Betaal met Bancontact';
@@ -22,3 +21,6 @@ $_GATEWAYLANG['payWithGiftcard'] = 'Betaal met een cadeaukaart';
$_GATEWAYLANG['payWithGiropay'] = 'Betaal met Giropay';
$_GATEWAYLANG['payWithInghomepay'] = 'Betaal met ING Home\'Pay';
$_GATEWAYLANG['payWithKbc'] = 'Betaal met KBC/CBC-betaalknop';
$_GATEWAYLANG['payWithPrzelewy24'] = 'Betaal met Przelewy24';
$_GATEWAYLANG['payWithApplepay'] = 'Betaal met Apple Pay';
$_GATEWAYLANG['payWith'] = 'Betaal met Mollie';

View File

@@ -3,7 +3,6 @@
$_GATEWAYLANG = array();
$_GATEWAYLANG['selectBank'] = 'Select bank';
$_GATEWAYLANG['selectLater'] = 'Select later';
$_GATEWAYLANG['errorTransactionNotFound'] = 'Transaction is not found. Please try again.';
@@ -11,7 +10,6 @@ $_GATEWAYLANG['checkPayment'] = 'Checking your payment, please wait...';
$_GATEWAYLANG['payWithBanktransfer'] = 'Pay with Bank Transfer';
$_GATEWAYLANG['payWithBelfius'] = 'Pay with Belfius';
$_GATEWAYLANG['payWithBitcoin'] = 'Pay with Bitcoin';
$_GATEWAYLANG['payWithCreditcard'] = 'Pay with Credit Card';
$_GATEWAYLANG['payWithIdeal'] = 'Pay with iDeal';
$_GATEWAYLANG['payWithBancontact'] = 'Pay with Bancontact';
@@ -23,3 +21,6 @@ $_GATEWAYLANG['payWithGiftcard'] = 'Pay with a gift card';
$_GATEWAYLANG['payWithGiropay'] = 'Pay with Giropay';
$_GATEWAYLANG['payWithInghomepay'] = 'Pay with ING Home\'Pay';
$_GATEWAYLANG['payWithKbc'] = 'Pay with KBC/CBC Payment Button';
$_GATEWAYLANG['payWithPrzelewy24'] = 'Pay with Przelewy24';
$_GATEWAYLANG['payWithApplepay'] = 'Pay with Apple Pay';
$_GATEWAYLANG['payWith'] = 'Pay with Mollie';

View File

@@ -71,7 +71,7 @@ function mollie_link($params, $method = Mollie_API_Object_Method::IDEAL)
return '<br/><img src="' . $params['systemurl'] . 'modules/gateways/mollie/ajax_loader.gif" /><br/>' . $_GATEWAYLANG['checkPayment'] . ' <script> window.onload = function(){ setTimeout("location.reload(true);", 2000); } </script>';
}
} else {
if (isset($_POST['start']) || (isset($_GET['a']) && $_GET['a'] == 'complete') || (isset($_GET['action']) && ($_GET['action'] == 'addfunds' || $_GET['action'] == 'masspay') && isset($_POST['paymentmethod']) && $_POST['paymentmethod'] == 'mollie' . $method)) {
if (isset($_POST['start']) || isset($_POST['issuer']) || (isset($_GET['a']) && $_GET['a'] == 'complete') || (isset($_GET['action']) && ($_GET['action'] == 'addfunds' || $_GET['action'] == 'masspay') && isset($_POST['paymentmethod']) && $_POST['paymentmethod'] == 'mollie' . $method)) {
$transactionCurrency = select_query('tblcurrencies', '', array('code' => $params['currency']), null, null, 1);
$transactionCurrency = mysql_fetch_assoc($transactionCurrency);
@@ -93,7 +93,7 @@ function mollie_link($params, $method = Mollie_API_Object_Method::IDEAL)
'method' => $method,
'description' => $params['description'],
'redirectUrl' => $params['returnurl'] . '&check_payment=' . $transactionId,
'webhookUrl' => $params['systemurl'] . 'modules/gateways/mollie/callback.php',
'webhookUrl' => $params['systemurl'] . '/modules/gateways/mollie/callback.php',
'metadata' => array(
'invoice_id' => $params['invoiceid'],
),
@@ -105,7 +105,7 @@ function mollie_link($params, $method = Mollie_API_Object_Method::IDEAL)
header('Location: ' . $payment->getCheckoutUrl());
exit();
} else {
$return = '<form action="" method="POST">';
$return = '<form action="viewinvoice.php?id=' . $params['invoiceid'] . '" method="POST">';
if ($method == \Mollie\Api\Types\PaymentMethod::IDEAL) {
$issuers = $mollie->methods->get('ideal', ['include' => 'issuers'])->issuers;

View File

@@ -2,21 +2,21 @@
require_once __DIR__ . '/mollie/mollie.php';
function molliebitcoin_devapp_config()
function mollieapplepay_devapp_config()
{
$config = mollie_config();
$config = array_merge($config, array(
'FriendlyName' => array(
'Type' => 'System',
'Value' => 'Mollie Bitcoin'
'Value' => 'Mollie Apple Pay'
)
));
return $config;
}
function molliebitcoin_devapp_link($params)
function mollieapplepay_devapp_link($params)
{
return mollie_link($params, \Mollie\Api\Types\PaymentMethod::BITCOIN);
return mollie_link($params, \Mollie\Api\Types\PaymentMethod::APPLEPAY);
}

View File

@@ -0,0 +1,23 @@
<?php
require_once __DIR__ . '/mollie/mollie.php';
function molliecheckout_devapp_config()
{
$config = mollie_config();
$config = array_merge($config, array(
'FriendlyName' => array(
'Type' => 'System',
'Value' => 'Mollie Checkout'
)
));
return $config;
}
function molliecheckout_devapp_link($params)
{
return mollie_link($params, null);
}

View File

@@ -0,0 +1,22 @@
<?php
require_once __DIR__ . '/mollie/mollie.php';
function mollieprzelewy24_devapp_config()
{
$config = mollie_config();
$config = array_merge($config, array(
'FriendlyName' => array(
'Type' => 'System',
'Value' => 'Mollie Przelewy24'
)
));
return $config;
}
function mollieprzelewy24_devapp_link($params)
{
return mollie_link($params, \Mollie\Api\Types\PaymentMethod::PRZELEWY24);
}