diff --git a/.editorconfig b/.editorconfig new file mode 100644 index 0000000..c5f261a --- /dev/null +++ b/.editorconfig @@ -0,0 +1,6 @@ +# 2017-03-09 +# https://github.com/isaacs/github/issues/170#issuecomment-150489692 +root = true +[*] +indent_size = 4 +indent_style = tab \ No newline at end of file diff --git a/Method.php b/Method.php new file mode 100644 index 0000000..c5cfc68 --- /dev/null +++ b/Method.php @@ -0,0 +1,26 @@ + +rm -rf var/di var/generation generated/code && bin/magento setup:di:compile +``` +If you have some problems while executing these commands, then check the [detailed instruction](https://mage2.pro/t/263). + +## Licensing +It is a paid extension, not free. +You can use it for free for the testing puproses only. +Please read the [testing policy](https://mage2.pro/t/2590) before installation. + +## Support +- [The extension's **forum** branch](https://mage2.pro/c/extensions/payfort). +- [Where and how to report a Mage2.PRO extension's issue?](https://mage2.pro/t/2034) +- I also provide a **[generic Magento 2 support](https://mage2.pro/t/755)** and [Magento 2 installation service](https://mage2.pro/t/748). + +## Want to be notified about the extension's updates? +- [Subscribe](https://mage2.pro/t/2540) to the extension's [forum branch](https://mage2.pro/c/extensions/payfort). +- Subscribe to my [Twitter](https://twitter.com/mage2_pro) and [YouTube](https://www.youtube.com/channel/UCvlDAZuj01_b92pzRi69LeQ) channels. + +## Need a new feature? +I provide the [**customization service**](https://mage2.pro/t/2020) for my payment extensions. + +## Need another payment extension for Magento 2? + +- «[**2Checkout**](https://mage2.pro/c/extensions/2checkout)» payment extension. +- «[**歐付寶 allPay**](https://mage2.pro/c/extensions/allpay)» payment extension (Taiwan). +- «[**Checkout.com**](https://mage2.pro/c/extensions/checkout-com)» payment extension. +- «[**Dragonpay**](https://mage2.pro/c/extensions/dragonpay)» payment extension (Philippines). +- «[**Ginger Payments**](https://mage2.pro/c/extensions/ginger-payments)» extension (the Netherlands, Belgium). +- «[**iPay88**](https://mage2.pro/c/extensions/ipay88)» payment extension (Malaysia, Indonesia, Philippines, Thailand, Singapore, China). +- «[**iyzico**](https://mage2.pro/c/extensions/iyzico)» payment extension (Turkey). +- «[**Kassa Compleet**](https://mage2.pro/c/extensions/kassa-compleet)» payment extension by ING Bank (the Netherlands). +- «[**Klarna**](https://mage2.pro/c/extensions/klarna)» payment extension (Austria, Denmark, Finland, Germany, Norway, Sweden). +- «[**MercadoPago**](https://mage2.pro/c/extensions/mercadopago)» payment extension (Argentina, Brasil, Chile, Mexico, Venezuela, Colombia, Uruguay, Peru). +- «[**Moip**](https://mage2.pro/c/extensions/moip)» payment extension (Brazil). +- «[**mPAY24**](https://mage2.pro/c/extensions/mpay24)» payment extension (Austria, Germany). +- «[**Omise**](https://mage2.pro/c/extensions/omise)» payment extension (Thailand, Japan). +- «[**Paymill**](https://mage2.pro/c/extensions/paymill)» payment extension (the European Union). +- «[**PayPal**](https://mage2.pro/c/extensions/paypal)»: an alternative module you can get fast support and customizations for. +- «[**Paystation**](https://mage2.pro/c/extensions/paystation)» payment extension (New Zealand). +- «[**QIWI Wallet**](https://mage2.pro/c/extensions/qiwi)» (QIWI Кошелёк) payment extension (Russia). +- «[**Robokassa**](https://mage2.pro/c/extensions/robokassa)» payment extension (Russia). +- «[**SecurePay**](https://mage2.pro/c/extensions/securepay)» payment extension (Australia). +- «[**Spryng**](https://mage2.pro/c/extensions/spryng)» payment extension (the European Union). +- «[**Square**](https://mage2.pro/c/extensions/square)» payment extension (USA, Canada). +- «[**Stripe**](https://mage2.pro/c/extensions/stripe)» payment extension. +- «[**Tinkoff Bank**](https://mage2.pro/c/extensions/tinkoff)» (Тинькофф Банк) payment extension (Russia). +- «[**Yandex.Kassa**](https://mage2.pro/c/extensions/yandex-kassa)» (as known as Yandex.Checkout, Яндекс.Касса) payment extension (Russia, Armenia, Azerbaijan, Belarus, Georgia, Kazakhstan, Kyrgyzstan, Latvia, Moldova, Tajikistan). + +## See also my integrations between Magento 2 and a third-party business software (ERP, CRM, accounting, inventory, marketplaces, etc.): +- «[**Microsoft Dynamics 365**](https://mage2.pro/c/extensions/dynamics365)» (an integration with the ERP/CRM software). +- «[**Salesforce**](https://mage2.pro/c/extensions/salesforce)» (an integration with the CRM software). +- «[**Zoho CRM**](https://mage2.pro/c/extensions/zoho-crm)». +- «[**Zoho Inventory**](https://mage2.pro/c/extensions/zoho-inventory)». +- «[**Zoho Books**](https://mage2.pro/c/extensions/zoho-books)» (an accounting software). +- «[**1C:Enterprise**](https://github.com/mage2pro/1c)» (a Russian ERP software, модуль Magento 2 для интеграции с 1С:Предприятие). +- «[**МойСклад**](https://github.com/mage2pro/moysklad)» (a Russian ERP software, модуль Magento 2 для интеграции с МойСклад). +- «[**Яндекс.Маркет**](https://github.com/mage2pro/yandex-market)» (a Russian marketplace, модуль Magento 2 для интеграции с Яндекс.Маркет). + +## See also my other Magento 2 extensions: + +- «[**Backend Login with Google Account**](https://mage2.pro/c/extensions/google-backend-login)» (a single sign-on extension for the Magento 2 backend). +- «[**Blackbaud NetCommunity**](https://mage2.pro/c/extensions/blackbaud-netcommunity)» (an integration with an online fundraising software). +- «[**Facebook Like & Share**](https://mage2.pro/c/extensions/facebook-like)» (shows the Facebook's «Like» and «Share» buttons on the frontend product pages). +- «[**Facebook Login**](https://mage2.pro/c/extensions/facebook-login)» (a single sign-on extension). +- «[**Login with Amazon**](https://mage2.pro/c/extensions/amazon-login)» (a single sign-on extension). +- «[**Markdown Editor**](https://mage2.pro/c/extensions/markdown)» (an alternative content editor for the Magento 2 backend). +- «[**Price Format**](https://mage2.pro/c/extensions/price-format)» (set a custom display format for the prices and other currency values: discounts, taxes, sales amounts). +- «[**Russian language package**](https://mage2.pro/c/extensions/ru)» (русификатор для Magento 2). +- «[**Sales Documents Numeration**](https://mage2.pro/c/extensions/sales-documents-numeration)» (use a custom numeration for the sales documents: orders, invoices, shipments, and credit memos). +- «[**Twitter Timeline**](https://mage2.pro/c/extensions/twitter-timeline)» (shows your latest tweets in your store's frontend sidebar). + +## Need a custom payment extension? +I provide a [custom payment gateway integration service](https://mage2.pro/t/917). + +## Want to get the full rights on my extension? +It is possible: the price depends on a extension and starts from $6.990. +You will get free lifetime support, updates, and installation service for all your clients. \ No newline at end of file diff --git a/Settings.php b/Settings.php new file mode 100644 index 0000000..b027a27 --- /dev/null +++ b/Settings.php @@ -0,0 +1,5 @@ + + + + . + + \ No newline at end of file diff --git a/composer.json b/composer.json new file mode 100644 index 0000000..49fc579 --- /dev/null +++ b/composer.json @@ -0,0 +1,33 @@ +{ + "name": "mage2pro/payfort" + ,"version": "0.0.1" + ,"description": "The «PayFort» payment extension for Magento 2." + ,"type": "magento2-module" + ,"homepage": "https://mage2.pro/c/extensions/payfort" + ,"license": "proprietary" + ,"authors": [{ + "name": "Dmitry Fedyuk", + "email": "admin@mage2.pro", + "homepage": "https://mage2.pro/users/dmitry_fedyuk", + "role": "Developer" + }] + ,"require": {"mage2pro/core": ">=2.10.27"} + ,"autoload": {"files": ["registration.php"], "psr-4": {"Dfe\\Iyzico\\": ""}} + ,"keywords": [ + "3D Secure" + ,"API" + ,"Bank card" + ,"Credit card" + ,"eCommerce" + ,"PayFort" + ,"Magento" + ,"Magento 2" + ,"Magento extension" + ,"Payment" + ,"Payment authorization" + ,"Payment integration" + ,"Payment gateway" + ,"Refund" + ,"United Arab Emirates", "Egypt", "Saudi Arabia", "Jordan", "Lebanon", "Qatar" + ] +} \ No newline at end of file diff --git a/etc/adminhtml/di.xml b/etc/adminhtml/di.xml new file mode 100644 index 0000000..02a9aec --- /dev/null +++ b/etc/adminhtml/di.xml @@ -0,0 +1,6 @@ + + + \ No newline at end of file diff --git a/etc/adminhtml/system.xml b/etc/adminhtml/system.xml new file mode 100644 index 0000000..0458c4a --- /dev/null +++ b/etc/adminhtml/system.xml @@ -0,0 +1,238 @@ + + + +
+ + + + Dfe_PayFort + Df\Config\Fieldset + + + Df\Config\Backend\Checkbox + PayFort» payment extension?]]> + + + + + 1 + required-entry + + + + Df\Config\Backend\Checkbox + How to create a sandbox account?]]> + 1 + + + + + + 1 + 1 + + required-entry + + + + + Magento\Config\Model\Config\Backend\Encrypted + + 1 + 1 + + required-entry + + + + + + 1 + 0 + + required-entry + + + + + Magento\Config\Model\Config\Backend\Encrypted + + 1 + 0 + + required-entry + + + + + 1 + + + + Df\Payment\Source\ACR + new, if he does not have any order in the «Completed» or «Processing» state.]]> + 1 + + + + Df\Payment\Source\ACR + 1 + + + + You can use variables in the description.]]> + 1 + + + + Df\Config\Backend\Checkbox + checked, Magento will require the billing address. It is the default Magento behavior.
If unchecked, Magento will not require the billing address, and even will not ask for it.]]>
+ 1 +
+ + + + validate-number validate-greater-than-zero + 1 + + + + + validate-number validate-greater-than-zero + 1 + + + + Df\Config\Source\NoWhiteBlack + 1 + + + + Magento\Directory\Model\Config\Source\Country + 1 + + 1 + + 0 + + + +
+
+
+
\ No newline at end of file diff --git a/etc/config.xml b/etc/config.xml new file mode 100644 index 0000000..30a38b8 --- /dev/null +++ b/etc/config.xml @@ -0,0 +1,29 @@ + + + + + + authorize_capture + authorize_capture + 1 + Bank Card + PayFort + + + + + + Dfe\PayFort\Method + + + + \ No newline at end of file diff --git a/etc/df.json b/etc/df.json new file mode 100644 index 0000000..7be6093 --- /dev/null +++ b/etc/df.json @@ -0,0 +1,7 @@ +{ + "sentry": { + "id": 204891 + ,"key1": "7276560bec724600a6837a6e6b1df9f3" + ,"key2": "b7a5c0754ea743bba8f4a0f8309fdbae" + } +} \ No newline at end of file diff --git a/etc/di.xml b/etc/di.xml new file mode 100644 index 0000000..774c785 --- /dev/null +++ b/etc/di.xml @@ -0,0 +1,7 @@ + + + + \ No newline at end of file diff --git a/etc/frontend/di.xml b/etc/frontend/di.xml new file mode 100644 index 0000000..83181c4 --- /dev/null +++ b/etc/frontend/di.xml @@ -0,0 +1,23 @@ + + + + + + Dfe\PayFort\ConfigProvider + + + + + + + dfe_pay_fort + + + + + Dfe_PayFort + + \ No newline at end of file diff --git a/etc/frontend/routes.xml b/etc/frontend/routes.xml new file mode 100644 index 0000000..8c51219 --- /dev/null +++ b/etc/frontend/routes.xml @@ -0,0 +1,11 @@ + + + + + + + + diff --git a/etc/module.xml b/etc/module.xml new file mode 100644 index 0000000..4890f72 --- /dev/null +++ b/etc/module.xml @@ -0,0 +1,12 @@ + + + + + + + + + diff --git a/registration.php b/registration.php new file mode 100644 index 0000000..2c12374 --- /dev/null +++ b/registration.php @@ -0,0 +1,3 @@ + + + + + + + + + + + + + uiComponent + + + + + + + + Dfe_PayFort/loader + + + true + + + + + + + + + + + + + + + + + + + diff --git a/view/frontend/web/loader.js b/view/frontend/web/loader.js new file mode 100644 index 0000000..f9ca70a --- /dev/null +++ b/view/frontend/web/loader.js @@ -0,0 +1 @@ +define(['Df_Payment/loader'], function(l) {return l('Dfe_PayFort');}); \ No newline at end of file diff --git a/view/frontend/web/main.js b/view/frontend/web/main.js new file mode 100644 index 0000000..14ca2d3 --- /dev/null +++ b/view/frontend/web/main.js @@ -0,0 +1,58 @@ +// 2017-08-17 +define(['Df_StripeClone/main'], function(parent) {'use strict'; return parent.extend({ + /** + * 2017-08-17 The bank card network codes: https://mage2.pro/t/2647 + * @returns {String[]} + */ + getCardTypes: function() {return ['VI', 'MC', 'AE', 'JCB', 'DI', 'DN'];}, + /** + * 2017-08-17 + * @override + * @see Df_StripeClone/main::tokenCheckStatus() + * https://github.com/mage2pro/core/blob/2.7.9/StripeClone/view/frontend/web/main.js?ts=4#L8-L15 + * @used-by Df_StripeClone/main::placeOrder() + * https://github.com/mage2pro/core/blob/2.7.9/StripeClone/view/frontend/web/main.js?ts=4#L75 + * @param {*} status + * @returns {Boolean} + */ + tokenCheckStatus: function(status) {return null;}, + /** + * 2017-08-17 + * @override + * @see https://github.com/mage2pro/core/blob/2.0.11/StripeClone/view/frontend/web/main.js?ts=4#L21-L29 + * @used-by Df_StripeClone/main::placeOrder() + * https://github.com/mage2pro/core/blob/2.7.9/StripeClone/view/frontend/web/main.js?ts=4#L73 + * @param {Object} params + * @param {Function} callback + */ + tokenCreate: function(params, callback) {}, + /** + * 2017-08-17 + * @override + * @see https://github.com/mage2pro/core/blob/2.0.11/StripeClone/view/frontend/web/main.js?ts=4#L31-L39 + * @used-by placeOrder() + * @param {Object|Number} status + * @param {Object} resp + * @returns {String} + */ + tokenErrorMessage: function(status, resp) {return null;}, + /** + * 2017-08-17 + * @override + * @see https://github.com/mage2pro/core/blob/2.0.11/StripeClone/view/frontend/web/main.js?ts=4#L41-L48 + * @used-by placeOrder() + * @param {Object} resp + * @returns {String} + */ + tokenFromResponse: function(resp) {return null;}, + /** + * 2017-08-17 + * @override + * @see Df_StripeClone/main::tokenParams() + * https://github.com/mage2pro/core/blob/2.7.9/StripeClone/view/frontend/web/main.js?ts=4#L42-L48 + * @used-by Df_StripeClone/main::placeOrder() + * https://github.com/mage2pro/core/blob/2.7.9/StripeClone/view/frontend/web/main.js?ts=4#L73 + * @returns {Object} + */ + tokenParams: function() {return null;} +});}); \ No newline at end of file