MDL-69166 pg_paypal: A new payment gateway is born
authorShamim Rezaie <shamim@moodle.com>
Mon, 16 Dec 2019 12:14:51 +0000 (23:14 +1100)
committerShamim Rezaie <shamim@moodle.com>
Tue, 27 Oct 2020 04:44:56 +0000 (15:44 +1100)
lib/classes/plugin_manager.php
payment/gateway/paypal/classes/gateway.php [new file with mode: 0644]
payment/gateway/paypal/lang/en/pg_paypal.php [new file with mode: 0644]
payment/gateway/paypal/settings.php [new file with mode: 0644]
payment/gateway/paypal/version.php [new file with mode: 0644]

index 1417eef..6625b95 100644 (file)
@@ -1924,6 +1924,7 @@ class core_plugin_manager {
             ),
 
             'pg' => [
+                'paypal',
             ],
 
             'plagiarism' => array(
diff --git a/payment/gateway/paypal/classes/gateway.php b/payment/gateway/paypal/classes/gateway.php
new file mode 100644 (file)
index 0000000..864406a
--- /dev/null
@@ -0,0 +1,44 @@
+<?php
+// This file is part of Moodle - http://moodle.org/
+//
+// Moodle is free software: you can redistribute it and/or modify
+// it under the terms of the GNU General Public License as published by
+// the Free Software Foundation, either version 3 of the License, or
+// (at your option) any later version.
+//
+// Moodle is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+// GNU General Public License for more details.
+//
+// You should have received a copy of the GNU General Public License
+// along with Moodle.  If not, see <http://www.gnu.org/licenses/>.
+
+/**
+ * Contains class for PayPal payment gateway.
+ *
+ * @package    pg_paypal
+ * @copyright  2019 Shamim Rezaie <shamim@moodle.com>
+ * @license    http://www.gnu.org/copyleft/gpl.html GNU GPL v3 or later
+ */
+
+namespace pg_paypal;
+
+defined('MOODLE_INTERNAL') || die();
+
+/**
+ * The gateway class for PayPal payment gateway.
+ *
+ * @copyright  2019 Shamim Rezaie <shamim@moodle.com>
+ * @license    http://www.gnu.org/copyleft/gpl.html GNU GPL v3 or later
+ */
+class gateway extends \core_payment\gateway {
+    public static function get_supported_currencies(): array {
+        // See https://developer.paypal.com/docs/api/reference/currency-codes/,
+        // 3-character ISO-4217: https://en.wikipedia.org/wiki/ISO_4217#Active_codes.
+        return [
+            'AUD', 'BRL', 'CAD', 'CHF', 'CZK', 'DKK', 'EUR', 'GBP', 'HKD', 'HUF', 'ILS', 'INR', 'JPY',
+            'MXN', 'MYR', 'NOK', 'NZD', 'PHP', 'PLN', 'RUB', 'SEK', 'SGD', 'THB', 'TRY', 'TWD', 'USD'
+        ];
+    }
+}
diff --git a/payment/gateway/paypal/lang/en/pg_paypal.php b/payment/gateway/paypal/lang/en/pg_paypal.php
new file mode 100644 (file)
index 0000000..f64015e
--- /dev/null
@@ -0,0 +1,28 @@
+<?php
+// This file is part of Moodle - http://moodle.org/
+//
+// Moodle is free software: you can redistribute it and/or modify
+// it under the terms of the GNU General Public License as published by
+// the Free Software Foundation, either version 3 of the License, or
+// (at your option) any later version.
+//
+// Moodle is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+// GNU General Public License for more details.
+//
+// You should have received a copy of the GNU General Public License
+// along with Moodle.  If not, see <http://www.gnu.org/licenses/>.
+
+/**
+ * Strings for component 'pg_paypal', language 'en'
+ *
+ * @package    pg_paypal
+ * @copyright  2019 Shamim Rezaie <shamim@moodle.com>
+ * @license    http://www.gnu.org/copyleft/gpl.html GNU GPL v3 or later
+ */
+
+$string['gatewaydescription'] = 'PayPal is an authorised payment gateway provider for processing credit card transactions.';
+$string['gatewayname'] = 'PayPal';
+$string['pluginname'] = 'PayPal';
+$string['pluginname_desc'] = 'The PayPal plugin allows you to receive payments via PayPal.';
diff --git a/payment/gateway/paypal/settings.php b/payment/gateway/paypal/settings.php
new file mode 100644 (file)
index 0000000..0c07be1
--- /dev/null
@@ -0,0 +1,30 @@
+<?php
+// This file is part of Moodle - http://moodle.org/
+//
+// Moodle is free software: you can redistribute it and/or modify
+// it under the terms of the GNU General Public License as published by
+// the Free Software Foundation, either version 3 of the License, or
+// (at your option) any later version.
+//
+// Moodle is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+// GNU General Public License for more details.
+//
+// You should have received a copy of the GNU General Public License
+// along with Moodle.  If not, see <http://www.gnu.org/licenses/>.
+
+/**
+ * Settings for the PayPal payment gateway
+ *
+ * @package    pg_paypal
+ * @copyright  2019 Shamim Rezaie <shamim@moodle.com>
+ * @license    http://www.gnu.org/copyleft/gpl.html GNU GPL v3 or later
+ */
+
+defined('MOODLE_INTERNAL') || die();
+
+if ($ADMIN->fulltree) {
+    $settings->add(new admin_setting_heading('pg_paypal_settings', '', get_string('pluginname_desc', 'pg_paypal')));
+
+}
diff --git a/payment/gateway/paypal/version.php b/payment/gateway/paypal/version.php
new file mode 100644 (file)
index 0000000..c43d1a9
--- /dev/null
@@ -0,0 +1,29 @@
+<?php
+// This file is part of Moodle - http://moodle.org/
+//
+// Moodle is free software: you can redistribute it and/or modify
+// it under the terms of the GNU General Public License as published by
+// the Free Software Foundation, either version 3 of the License, or
+// (at your option) any later version.
+//
+// Moodle is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+// GNU General Public License for more details.
+//
+// You should have received a copy of the GNU General Public License
+// along with Moodle.  If not, see <http://www.gnu.org/licenses/>.
+
+/**
+ * Version information
+ *
+ * @package    pg_paypal
+ * @copyright  2019 Shamim Rezaie <shamim@moodle.com>
+ * @license    http://www.gnu.org/copyleft/gpl.html GNU GPL v3 or later
+ */
+
+defined('MOODLE_INTERNAL') || die();
+
+$plugin->version   = 2020102700;        // The current plugin version (Date: YYYYMMDDXX).
+$plugin->requires  = 2020060900;        // Requires this Moodle version.
+$plugin->component = 'pg_paypal';       // Full name of the plugin (used for diagnostics).