diff --git a/Block/Adminhtml/Config/Source/Redirect/SupportedPaymentMethodsAction.php b/Block/Adminhtml/Config/Source/Redirect/SupportedPaymentMethodsAction.php deleted file mode 100644 index cffb9e2..0000000 --- a/Block/Adminhtml/Config/Source/Redirect/SupportedPaymentMethodsAction.php +++ /dev/null @@ -1,19 +0,0 @@ - 'keks-pay-hr', 'label' => __('KEKS pay')], - ['value' => 'pay-cek', 'label' => __('PayCek')], - ]; - } -} diff --git a/CHANGELOG.md b/CHANGELOG.md index 7c4b617..f7d07fe 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,3 +1,6 @@ +### 1.7.1 +- Added additional 3DS parameters for Monri Redirect and Monri Components + ### 1.7.0 - Improved Monri WebPay tokenization by using API for transaction creation. - Added "Instant Purchase" on the product page for customers with saved Monri WebPay tokens. diff --git a/Gateway/Request/Redirect/ProcessingDataBuilder.php b/Gateway/Request/Redirect/ProcessingDataBuilder.php index 827d9eb..6ee4f8e 100644 --- a/Gateway/Request/Redirect/ProcessingDataBuilder.php +++ b/Gateway/Request/Redirect/ProcessingDataBuilder.php @@ -126,7 +126,7 @@ public function build(array $buildSubject) $installments = $this->config->getInstallments($order->getStoreId()); - $supportedPaymentMethods = $this->config->getSupportedPaymentMethods($order->getStoreId()) ?? 'card'; + $supportedPaymentMethods = 'card'; $isMoto = false; diff --git a/Model/CheckoutConfigProvider.php b/Model/CheckoutConfigProvider.php index 68e6c68..2c30d20 100644 --- a/Model/CheckoutConfigProvider.php +++ b/Model/CheckoutConfigProvider.php @@ -5,6 +5,7 @@ namespace Monri\Payments\Model; use Magento\Checkout\Model\ConfigProviderInterface; +use Magento\Framework\HTTP\PhpEnvironment\RemoteAddress; use Monri\Payments\Gateway\Config\Components as Config; use Magento\Checkout\Model\Session; @@ -20,18 +21,26 @@ class CheckoutConfigProvider implements ConfigProviderInterface */ private $checkoutSession; + /** + * @var RemoteAddress + */ + private $remoteAddress; + /** * CheckoutConfigProvider constructor. * * @param Config $config * @param Session $session + * @param RemoteAddress $remoteAddress */ public function __construct( Config $config, - Session $session + Session $session, + RemoteAddress $remoteAddress ) { $this->config = $config; $this->checkoutSession = $session; + $this->remoteAddress = $remoteAddress; } /** @@ -50,6 +59,7 @@ public function getConfig() 'authenticityToken' => $this->config->getClientAuthenticityToken($quote->getStoreId()), 'locale' => $this->config->getGatewayLanguage($quote->getStoreId()), 'allowInstallments' => $this->config->getAllowInstallments($quote->getStoreId()), + 'customerIp' => $this->remoteAddress->getRemoteAddress(), ] ] ]; diff --git a/Model/Ui/Redirect/ConfigProvider.php b/Model/Ui/Redirect/ConfigProvider.php index d552e05..9a32f58 100644 --- a/Model/Ui/Redirect/ConfigProvider.php +++ b/Model/Ui/Redirect/ConfigProvider.php @@ -5,6 +5,7 @@ namespace Monri\Payments\Model\Ui\Redirect; use Magento\Checkout\Model\ConfigProviderInterface; +use Magento\Framework\HTTP\PhpEnvironment\RemoteAddress; use Monri\Payments\Gateway\VaultConfig; class ConfigProvider implements ConfigProviderInterface @@ -14,6 +15,19 @@ class ConfigProvider implements ConfigProviderInterface */ private const CODE = 'monri_payments'; + /** + * @var RemoteAddress + */ + private $remoteAddress; + + /** + * @param RemoteAddress $remoteAddress + */ + public function __construct(RemoteAddress $remoteAddress) + { + $this->remoteAddress = $remoteAddress; + } + /** * Retrieve assoc array of payment method configuration * @@ -24,7 +38,8 @@ public function getConfig(): array return [ 'payment' => [ self::CODE => [ - 'vaultCode' => VaultConfig::CODE + 'vaultCode' => VaultConfig::CODE, + 'customerIp' => $this->remoteAddress->getRemoteAddress() ] ] ]; diff --git a/composer.json b/composer.json index 39014f4..8def339 100644 --- a/composer.json +++ b/composer.json @@ -9,7 +9,7 @@ } ], "description": "The official Monri Payments Magento 2 module", - "version": "1.7.0", + "version": "1.7.1", "license": [ "OSL-3.0" ], diff --git a/etc/adminhtml/system.xml b/etc/adminhtml/system.xml index 5bec32f..20b8580 100644 --- a/etc/adminhtml/system.xml +++ b/etc/adminhtml/system.xml @@ -19,7 +19,7 @@ showInDefault="1" showInWebsite="1" showInStore="0"> Magento\Config\Model\Config\Source\Yesno - + @@ -53,12 +53,6 @@ Monri\Payments\Block\Adminhtml\Config\Source\Installments - - - Monri\Payments\Block\Adminhtml\Config\Source\Redirect\SupportedPaymentMethodsAction - 1 - @@ -105,7 +99,7 @@ showInDefault="1" showInWebsite="1" showInStore="0"> Magento\Config\Model\Config\Source\Yesno - + @@ -178,7 +172,7 @@ Magento\Config\Model\Config\Source\Yesno - + diff --git a/view/frontend/web/js/view/method-renderer/monri_components.js b/view/frontend/web/js/view/method-renderer/monri_components.js index 53336e7..5124017 100644 --- a/view/frontend/web/js/view/method-renderer/monri_components.js +++ b/view/frontend/web/js/view/method-renderer/monri_components.js @@ -220,6 +220,38 @@ define( }.bind(this)); }, + collectBrowserInfo: function () { + var screen_width = window && window.screen ? window.screen.width : ''; + var screen_height = window && window.screen ? window.screen.height : ''; + var color_depth = window && window.screen ? window.screen.colorDepth : ''; + var user_agent = window && window.navigator ? window.navigator.userAgent : ''; + var java_enabled = window && window.navigator ? navigator.javaEnabled() : false; + var ip_address = monriConfig.customerIp || ''; + + var language = ''; + if (window && window.navigator) { + language = window.navigator.language + ? window.navigator.language + : window.navigator.browserLanguage || ''; + } + + var time_zone_offset = (new Date()).getTimezoneOffset(); + + return { + screen_width: screen_width, + screen_height: screen_height, + color_depth: color_depth, + user_agent: user_agent, + time_zone_offset: time_zone_offset, + language: language, + java_enabled: java_enabled, + http_accept: '*/*', + http_user_agent: user_agent, + http_accept_language: language || '*', + ip: ip_address + }; + }, + getTransactionData: function () { var email = customer.isLoggedIn() ? customer.customerData.email : quote.guestEmail; var address = quote.billingAddress(); @@ -241,7 +273,8 @@ define( phone: address.telephone, country: address.countryId, email: email, - orderInfo: $t('Magento Order') + orderInfo: $t('Magento Order'), + browser_info: this.collectBrowserInfo() }; }, diff --git a/view/frontend/web/js/view/method-renderer/monri_payments.js b/view/frontend/web/js/view/method-renderer/monri_payments.js index e4028d5..65688f1 100644 --- a/view/frontend/web/js/view/method-renderer/monri_payments.js +++ b/view/frontend/web/js/view/method-renderer/monri_payments.js @@ -75,11 +75,45 @@ define( }); }, + collectBrowserInfo: function () { + var screen_width = window && window.screen ? window.screen.width : ''; + var screen_height = window && window.screen ? window.screen.height : ''; + var color_depth = window && window.screen ? window.screen.colorDepth : ''; + var user_agent = window && window.navigator ? window.navigator.userAgent : ''; + var java_enabled = window && window.navigator ? navigator.javaEnabled() : false; + var ip_address = window.checkoutConfig.payment[this.getCode()].customerIp || ''; + + var language = ''; + if (window && window.navigator) { + language = window.navigator.language + ? window.navigator.language + : window.navigator.browserLanguage || ''; + } + + var time_zone_offset = (new Date()).getTimezoneOffset(); + + return { + screen_width: screen_width, + screen_height: screen_height, + color_depth: color_depth, + user_agent: user_agent, + time_zone_offset: time_zone_offset, + language: language, + java_enabled: java_enabled, + http_accept: '*/*', + http_user_agent: user_agent, + http_accept_language: language || '*', + ip: ip_address + }; + }, + redirect: function (url, payload) { var form = document.createElement('form'); form.method = 'POST'; form.action = url; + payload['browser_info'] = JSON.stringify(this.collectBrowserInfo()); + for (var field in payload) { if (payload.hasOwnProperty(field)) { var input = document.createElement('input'); diff --git a/view/frontend/web/js/view/monri_components.js b/view/frontend/web/js/view/monri_components.js index 59ff1d9..cd2912b 100644 --- a/view/frontend/web/js/view/monri_components.js +++ b/view/frontend/web/js/view/monri_components.js @@ -4,7 +4,7 @@ * (c) Monri Payments d.o.o. * * @author Favicode - * @version 1.7.0 + * @version 1.7.1 */ define( diff --git a/view/frontend/web/js/view/monri_payments.js b/view/frontend/web/js/view/monri_payments.js index d9cbb0c..4be9919 100644 --- a/view/frontend/web/js/view/monri_payments.js +++ b/view/frontend/web/js/view/monri_payments.js @@ -4,7 +4,7 @@ * (c) Monri Payments d.o.o. * * @author Favicode - * @version 1.7.0 + * @version 1.7.1 */ define( diff --git a/view/frontend/web/js/view/monri_wspay.js b/view/frontend/web/js/view/monri_wspay.js index 40db9fb..5aed676 100644 --- a/view/frontend/web/js/view/monri_wspay.js +++ b/view/frontend/web/js/view/monri_wspay.js @@ -4,7 +4,7 @@ * (c) Monri Payments d.o.o. * * @author Favicode - * @version 1.7.0 + * @version 1.7.1 */ define([