We will be off from 27/1 (Monday) to 31/1 (Friday) (GMT +7) for our Tet Holiday (Lunar New Year) in our country

Commit 524a9911 authored by Rik ter Beek's avatar Rik ter Beek Committed by GitHub

Merge pull request #646 from Adyen/develop

Release 5.4.0
parents 1a3da231 7125e128
......@@ -31,17 +31,20 @@ class CronMessage implements \Magento\Framework\Notification\MessageInterface
protected $_dateChecked;
protected $_adyenHelper;
protected $_timezoneInterface;
protected $backendHelper;
public function __construct(
\Magento\Backend\Model\Auth\Session $authSession,
\Adyen\Payment\Helper\Data $adyenHelper,
\Magento\Framework\Stdlib\DateTime\TimezoneInterface $timezoneInterface
\Magento\Framework\Stdlib\DateTime\TimezoneInterface $timezoneInterface,
\Magento\Backend\Helper\Data $backendHelper
) {
$this->_authSession = $authSession;
$this->_cronCheck = $this->getSessionData("cronCheck");
$this->_dateChecked = $this->getSessionData("dateChecked");
$this->_adyenHelper = $adyenHelper;
$this->_timezoneInterface = $timezoneInterface;
$this->backendHelper = $backendHelper;
}
/**
......@@ -89,7 +92,8 @@ class CronMessage implements \Magento\Framework\Notification\MessageInterface
*/
public function getText()
{
$message = __('You have ' . $this->_cronCheck . ' unprocessed notification(s). Please check your Cron');
$urlNotificationsOverview = $this->backendHelper->getUrl("adyen/NotificationsOverview/index");
$message = __('You have <a href="%1">%2 unprocessed notification(s)</a>. Please check your Cron', $urlNotificationsOverview, $this->_cronCheck);
$urlMagento = "http://devdocs.magento.com/guides/v2.0/config-guide/cli/config-cli-subcommands-cron.html";
$urlAdyen = "https://docs.adyen.com/developers/plugins/magento-2/set-up-the-plugin-in-magento#step2runcron";
$message .= __(
......
......@@ -81,6 +81,18 @@ interface NotificationInterface
* Additional data
*/
const ADDITIONAL_DATA = 'additional_data';
/*
* Processing
*/
const PROCESSING = 'processing';
/*
* Error count
*/
const ERROR_COUNT = 'error_count';
/*
* Error message
*/
const ERROR_MESSAGE = 'error_message';
/*
* Created-at timestamp.
*/
......
<?php
/**
* ######
* ######
* ############ ####( ###### #####. ###### ############ ############
* ############# #####( ###### #####. ###### ############# #############
* ###### #####( ###### #####. ###### ##### ###### ##### ######
* ###### ###### #####( ###### #####. ###### ##### ##### ##### ######
* ###### ###### #####( ###### #####. ###### ##### ##### ######
* ############# ############# ############# ############# ##### ######
* ############ ############ ############# ############ ##### ######
* ######
* #############
* ############
*
* Adyen Payment module (https://www.adyen.com/)
*
* Copyright (c) 2020 Adyen BV (https://www.adyen.com/)
* See LICENSE.txt for license details.
*
* Author: Adyen <magento@adyen.com>
*/
namespace Adyen\Payment\Controller\Adminhtml\Notifications;
class Overview extends \Magento\Backend\App\Action
{
/**
* Load the page defined in corresponding layout XML
*
* @return \Magento\Framework\View\Result\Page
*/
public function execute()
{
$resultPage = $this->resultFactory->create(\Magento\Framework\Controller\ResultFactory::TYPE_PAGE);
$resultPage->setActiveMenu('Adyen_Payment::notifications_overview')
->getConfig()->getTitle()->prepend(__('Adyen Notifications Overview'));
return $resultPage;
}
}
\ No newline at end of file
......@@ -99,8 +99,6 @@ class Result extends \Magento\Framework\App\Action\Action
$response = $this->getRequest()->getParams();
$this->_adyenLogger->addAdyenResult(print_r($response, true));
$failReturnPath = $this->_adyenHelper->getAdyenAbstractConfigData('return_path');
if ($response) {
$result = $this->validateResponse($response);
......@@ -110,10 +108,12 @@ class Result extends \Magento\Framework\App\Action\Action
$this->_redirect('checkout/onepage/success', ['_query' => ['utm_nooverride' => '1']]);
} else {
$this->_cancel($response);
$failReturnPath = $this->_adyenHelper->getAdyenAbstractConfigData('return_path');
$this->_redirect($failReturnPath);
}
} else {
// redirect to checkout page
$failReturnPath = $this->_adyenHelper->getAdyenAbstractConfigData('return_path');
$this->_redirect($failReturnPath);
}
}
......
......@@ -1853,4 +1853,27 @@ class Data extends AbstractHelper
return $localeCode;
}
/**
* Get the Customer Area PSP Search URL with a preset PSP Reference
*
* @param string $pspReference
* @param string $liveEnvironment
* @return string
*/
public function getPspReferenceSearchUrl($pspReference, $liveEnvironment)
{
if ($liveEnvironment === "true") {
$checkoutEnvironment = "live";
} else {
$checkoutEnvironment = "test";
}
return sprintf(
"https://ca-%s.adyen.com/ca/ca/accounts/showTx.shtml?pspReference=%s",
$checkoutEnvironment,
$pspReference
);
}
}
......@@ -230,6 +230,11 @@ class Cron
*/
private $notifierPool;
/**
* @var \Magento\Framework\Stdlib\DateTime\TimezoneInterface
*/
private $timezone;
/**
* Cron constructor.
*
......@@ -276,7 +281,8 @@ class Cron
\Adyen\Payment\Model\ResourceModel\Billing\Agreement $agreementResourceModel,
\Magento\Sales\Model\Order\Payment\Transaction\Builder $transactionBuilder,
\Magento\Framework\Serialize\SerializerInterface $serializer,
\Magento\Framework\Notification\NotifierInterface $notifierPool
\Magento\Framework\Notification\NotifierInterface $notifierPool,
\Magento\Framework\Stdlib\DateTime\TimezoneInterface $timezone
) {
$this->_scopeConfig = $scopeConfig;
$this->_adyenLogger = $adyenLogger;
......@@ -300,6 +306,7 @@ class Cron
$this->transactionBuilder = $transactionBuilder;
$this->serializer = $serializer;
$this->notifierPool = $notifierPool;
$this->timezone = $timezone;
}
/**
......@@ -339,6 +346,7 @@ class Cron
$notifications->addFieldToFilter('done', 0);
$notifications->addFieldToFilter('processing', 0);
$notifications->addFieldToFilter('created_at', $dateRange);
$notifications->addFieldToFilter('error_count', ['lt' => Notification::MAX_ERROR_COUNT]);
foreach ($notifications as $notification) {
// set Cron processing to true
......@@ -464,6 +472,7 @@ class Cron
++$count;
} catch (\Exception $e) {
$this->_updateNotification($notification, false, false);
$this->handleNotificationError($notification, $e->getMessage());
$this->_adyenLogger->addAdyenNotificationCronjob(
sprintf("Notification %s had an error: %s \n %s", $notification->getEntityId(), $e->getMessage(),
$e->getTraceAsString())
......@@ -1886,11 +1895,63 @@ class Cron
*
* @return void
*/
protected function addRefundFailedNotice(){
protected function addRefundFailedNotice()
{
$this->notifierPool->addNotice(
__("Adyen: Refund for order #%1 has failed", $this->_merchantReference),
__("Reason: %1 | PSPReference: %2 | You can go to Adyen Customer Area and trigger this refund manually or contact our support.", $this->_reason, $this->_pspReference),
sprintf("https://ca-%s.adyen.com/ca/ca/accounts/showTx.shtml?pspReference=%s", $this->_live === 'true' ? 'live' : 'test', $this->_pspReference)
__("Reason: %1 | PSPReference: %2 | You can go to Adyen Customer Area and trigger this refund manually or contact our support.",
$this->_reason, $this->_pspReference),
$this->_adyenHelper->getPspReferenceSearchUrl($this->_pspReference, $this->_live)
);
}
/**
* Add/update info on notification processing errors
*
* @param \Adyen\Payment\Model\Notification $notification
* @param string $errorMessage
* @return void
*/
private function handleNotificationError($notification, $errorMessage)
{
$this->setNotificationError($notification, $errorMessage);
$this->addNotificationErrorComment($errorMessage);
}
/**
* Increases error count and appends error message to notification
*
* @param \Adyen\Payment\Model\Notification $notification
* @param string $errorMessage
* @return void
*/
private function setNotificationError($notification, $errorMessage)
{
$notification->setErrorCount($notification->getErrorCount() + 1);
$oldMessage = $notification->getErrorMessage();
$newMessage = sprintf(
"[%s]: %s",
$this->timezone->formatDateTime($notification->getUpdatedAt()),
$errorMessage
);
if (empty($oldMessage)) {
$notification->setErrorMessage($newMessage);
} else {
$notification->setErrorMessage($oldMessage . "\n" . $newMessage);
}
$notification->save();
}
/**
* Adds a comment to the order history with the notification processing error
*
* @param string $errorMessage
* @return void
*/
private function addNotificationErrorComment($errorMessage)
{
$comment = __('The order failed to update: %1', $errorMessage);
$this->_order->addStatusHistoryComment($comment);
$this->_order->save();
}
}
......@@ -49,6 +49,7 @@ class Notification extends \Magento\Framework\Model\AbstractModel implements Not
const REPORT_AVAILABLE = "REPORT_AVAILABLE";
const ORDER_CLOSED = "ORDER_CLOSED";
const OFFER_CLOSED = "OFFER_CLOSED";
const MAX_ERROR_COUNT = 5;
/**
* Notification constructor.
......@@ -359,6 +360,69 @@ class Notification extends \Magento\Framework\Model\AbstractModel implements Not
return $this->setData(self::DONE, $done);
}
/**
* Gets the Processing flag for the notification.
*
* @return bool Processing.
*/
public function getProcessing()
{
return $this->getData(self::PROCESSING);
}
/**
* Sets Processing flag.
*
* @param bool $processing
* @return $this
*/
public function setProcessing($processing)
{
return $this->setData(self::PROCESSING, $processing);
}
/**
* Gets the Error Count for the notification.
*
* @return bool|null ErrorCount.
*/
public function getErrorCount()
{
return $this->getData(self::ERROR_COUNT);
}
/**
* Sets Error Count.
*
* @param bool $errorCount
* @return $this
*/
public function setErrorCount($errorCount)
{
return $this->setData(self::ERROR_COUNT, $errorCount);
}
/**
* Gets the Error Message for the notification.
*
* @return string|null ErrorMessage
*/
public function getErrorMessage()
{
return $this->getData(self::ERROR_MESSAGE);
}
/**
* Sets Error Message.
*
* @param string $errorMessage
* @return $this
*/
public function setErrorMessage($errorMessage)
{
return $this->setData(self::ERROR_MESSAGE, $errorMessage);
}
/**
* Gets the created-at timestamp for the notification.
*
......
......@@ -34,6 +34,8 @@ class AdyenGooglePayConfigProvider implements ConfigProviderInterface
const GOOGLE_PAY_VAULT_CODE = 'adyen_google_pay_vault';
const PRODUCTION = 'production';
/**
* @var PaymentHelper
*/
......@@ -106,9 +108,10 @@ class AdyenGooglePayConfigProvider implements ConfigProviderInterface
];
$config['payment']['adyenGooglePay']['active'] = (bool)$this->adyenHelper->isAdyenGooglePayEnabled($this->storeManager->getStore()->getId());
$config['payment']['adyenGooglePay']['checkoutEnvironment'] = $this->adyenHelper->getCheckoutEnvironment($this->storeManager->getStore()->getId());
$config['payment']['adyenGooglePay']['checkoutEnvironment'] = $this->getGooglePayEnvironment($this->storeManager->getStore()->getId());
$config['payment']['adyenGooglePay']['locale'] = $this->adyenHelper->getStoreLocale($this->storeManager->getStore()->getId());
$config['payment']['adyenGooglePay']['merchantAccount'] = $this->adyenHelper->getAdyenMerchantAccount("adyen_google_pay", $this->storeManager->getStore()->getId());
$config['payment']['adyenGooglePay']['merchantAccount'] = $this->adyenHelper->getAdyenMerchantAccount("adyen_google_pay",
$this->storeManager->getStore()->getId());
$quote = $this->checkoutSession->getQuote();
$currency = $quote->getCurrency();
......@@ -128,4 +131,17 @@ class AdyenGooglePayConfigProvider implements ConfigProviderInterface
{
return $this->_request;
}
/**
* @param null $storeId
* @return mixed
*/
private function getGooglePayEnvironment($storeId = null)
{
if ($this->adyenHelper->isDemoMode($storeId)) {
return \Adyen\Payment\Helper\Data::TEST;
}
return self::PRODUCTION;
}
}
......@@ -68,6 +68,10 @@ class UpgradeSchema implements UpgradeSchemaInterface
$this->updateSchemaVersion221($setup);
}
if (version_compare($context->getVersion(), '5.4.0', '<')) {
$this->updateSchemaVersion540($setup);
}
$setup->endSetup();
}
......@@ -359,4 +363,46 @@ class UpgradeSchema implements UpgradeSchemaInterface
$setup->getConnection()->createTable($table);
}
/**
* Upgrade to 5.4.0
*
* @param SchemaSetupInterface $setup
* @return void
*/
public function updateSchemaVersion540(SchemaSetupInterface $setup)
{
$connection = $setup->getConnection();
$tableName = $setup->getTable('adyen_notification');
$adyenNotificationErrorCountColumn = [
'type' => Table::TYPE_INTEGER,
'length' => 1,
'nullable' => true,
'default' => 0,
'comment' => 'Adyen Notification Process Error Count',
'after' => \Adyen\Payment\Model\Notification::PROCESSING
];
$adyenNotificationErrorMessageColumn = [
'type' => Table::TYPE_TEXT,
'length' => null,
'nullable' => true,
'default' => null,
'comment' => 'Adyen Notification Process Error Message',
'after' => \Adyen\Payment\Model\Notification::ERROR_COUNT
];
$connection->addColumn(
$tableName,
\Adyen\Payment\Model\Notification::ERROR_COUNT,
$adyenNotificationErrorCountColumn
);
$connection->addColumn(
$tableName,
\Adyen\Payment\Model\Notification::ERROR_MESSAGE,
$adyenNotificationErrorMessageColumn
);
}
}
......@@ -105,4 +105,33 @@ class DataTest extends \PHPUnit\Framework\TestCase
$this->assertEquals(false, $this->dataHelper->isPaymentMethodOpenInvoiceMethod('ideal'));
$this->assertEquals(true, $this->dataHelper->isPaymentMethodOpenInvoiceMethod('test_klarna'));
}
/**
* @param string $expectedResult
* @param string $pspReference
* @param string $checkoutEnvironment
* @dataProvider checkoutEnvironmentsProvider
*
*/
public function testGetPspReferenceSearchUrl($expectedResult, $pspReference, $checkoutEnvironment)
{
$pspSearchUrl = $this->dataHelper->getPspReferenceSearchUrl($pspReference, $checkoutEnvironment);
$this->assertEquals($expectedResult, $pspSearchUrl);
}
public static function checkoutEnvironmentsProvider()
{
return array(
array(
'https://ca-test.adyen.com/ca/ca/accounts/showTx.shtml?pspReference=7914073381342284',
'7914073381342284',
'false'
),
array(
'https://ca-live.adyen.com/ca/ca/accounts/showTx.shtml?pspReference=883580976999434D',
'883580976999434D',
'true'
)
);
}
}
<?php
/**
* ######
* ######
* ############ ####( ###### #####. ###### ############ ############
* ############# #####( ###### #####. ###### ############# #############
* ###### #####( ###### #####. ###### ##### ###### ##### ######
* ###### ###### #####( ###### #####. ###### ##### ##### ##### ######
* ###### ###### #####( ###### #####. ###### ##### ##### ######
* ############# ############# ############# ############# ##### ######
* ############ ############ ############# ############ ##### ######
* ######
* #############
* ############
*
* Adyen Payment module (https://www.adyen.com/)
*
* Copyright (c) 2020 Adyen BV (https://www.adyen.com/)
* See LICENSE.txt for license details.
*
* Author: Adyen <magento@adyen.com>
*/
namespace Adyen\Payment\Ui\Component\Listing\Column;
class NotificationColumn extends \Magento\Ui\Component\Listing\Columns\Column
{
/**
* @var \Magento\Sales\Api\Data\OrderInterface
*/
protected $orderInterface;
/**
* @var \Magento\Backend\Helper\Data
*/
protected $backendHelper;
/**
* @var \Adyen\Payment\Helper\Data
*/
protected $adyenHelper;
public function __construct(
\Magento\Sales\Api\Data\OrderInterface $orderInterface,
\Magento\Backend\Helper\Data $backendHelper,
\Adyen\Payment\Helper\Data $adyenHelper,
\Magento\Framework\View\Element\UiComponent\ContextInterface $context,
\Magento\Framework\View\Element\UiComponentFactory $uiComponentFactory,
array $components = [],
array $data = []
) {
$this->orderInterface = $orderInterface;
$this->backendHelper = $backendHelper;
$this->adyenHelper = $adyenHelper;
parent::__construct($context, $uiComponentFactory, $components, $data);
}
/**
* Style and format Adyen notification columns
*
* @param array $dataSource
* @return array
*/
public function prepareDataSource(array $dataSource)
{
if (empty($dataSource['data']['items'])) {
return $dataSource;
}
foreach ($dataSource['data']['items'] as & $item) {
$class = "grid-severity-critical";
if ($item["success"] == "true") {
$class = "grid-severity-notice";
}
$item["success"] = sprintf('<span class="%s">%s</span>', $class, $item["success"]);
//Setting Status "fake" column value based on processing and done values
if ($item["processing"] == 0) {
if ($item["done"] == 0) {
$item["status"] = __("Queued");
} else {
$item["status"] = __("Processed");
}
} else {
$item["status"] = __("In progress");
}
//Adding anchor link to order number and PSP reference if order number exists
$this->orderInterface->unsetData();
$order = $this->orderInterface->loadByIncrementId($item["merchant_reference"]);
if ($order->getId()) {
$orderUrl = $this->backendHelper->getUrl("sales/order/view", ["order_id" => $order->getId()]);
$item["merchant_reference"] = sprintf(
'<a href="%s">%s</a>',
$orderUrl,
$item["merchant_reference"]
);
$item["pspreference"] = sprintf(
'<a href="%s" target="_blank">%s</a>',
$this->adyenHelper->getPspReferenceSearchUrl(
$item["pspreference"],
$item["live"]
),
$item["pspreference"]
);
}
}
return $dataSource;
}
}
\ No newline at end of file
......@@ -2,7 +2,7 @@
"name": "adyen/module-payment",
"description": "Official Magento2 Plugin to connect to Payment Service Provider Adyen.",
"type": "magento2-module",
"version": "5.3.0",
"version": "5.4.0",
"license": [
"OSL-3.0",
"AFL-3.0"
......@@ -17,7 +17,7 @@
"adyen/php-api-library": "~4.1",
"magento/framework": ">=101.0.8 <102 || >=102.0.1",
"magento/module-vault": "101.*",
"magento/module-paypal": "*"
"magento/module-paypal": "100.3.*"
},
"require-dev": {
"phpunit/phpunit": "~6.5.0",
......
<?xml version="1.0"?>
<config xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="urn:magento:framework:Acl/etc/acl.xsd">
<acl>
<resources>
<resource id="Magento_Backend::admin">
<resource id="Magento_Backend::system">
<resource id="Adyen_Payment::adyen" title="Adyen" translate="title" sortOrder="10">
<resource id="Adyen_Payment::notifications_overview" title="Notifications Overview" translate="title" sortOrder="10"/>
</resource>
</resource>
</resource>
</resources>
</acl>
</config>
\ No newline at end of file
<?xml version="1.0"?>
<config xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="../../../../Magento/Backend/etc/menu.xsd">
<menu>
<add id="Adyen_Payment::adyen" title="Adyen" module="Adyen_Payment" sortOrder="100" parent="Magento_Backend::system" resource="Adyen_Payment::adyen"/>
<add id="Adyen_Payment::notifications_overview" title="Notifications Overview" module="Adyen_Payment" sortOrder="10" parent="Adyen_Payment::adyen" action="adyen/notifications/overview" resource="Adyen_Payment::notifications_overview"/>
</menu>
</config>
<?xml version="1.0"?>
<config xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="urn:magento:framework:App/etc/routes.xsd">
<router id="admin">
<route id="adyen" frontName="adyen">
<module name="Adyen_Payment"/>
</route>
</router>
</config>
......@@ -1035,4 +1035,20 @@
<type name="Magento\Checkout\Api\GuestPaymentInformationManagementInterface">
<plugin name="AdyenGuestPaymentInformationManagementAddPaymentInfo" type="Adyen\Payment\Plugin\GuestPaymentInformationManagement" sortOrder="10"/>
</type>
<!--Notifications overview-->
<type name="Magento\Framework\View\Element\UiComponent\DataProvider\CollectionFactory">
<arguments>
<argument name="collections" xsi:type="array">
<item name="adyen_notifications_overview_data_source" xsi:type="string">Adyen\Payment\Model\ResourceModel\Notification\UiComponentCollection</item>
</argument>
</arguments>
</type>
<virtualType name="Adyen\Payment\Model\ResourceModel\Notification\UiComponentCollection" type="Magento\Framework\View\Element\UiComponent\DataProvider\SearchResult">
<arguments>
<argument name="mainTable" xsi:type="string">adyen_notification</argument>
<argument name="resourceModel" xsi:type="string">Adyen\Payment\Model\ResourceModel\Notification</argument>
</arguments>
</virtualType>
</config>
......@@ -24,7 +24,7 @@
-->
<config xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="urn:magento:framework:Module/etc/module.xsd">
<module name="Adyen_Payment" setup_version="4.5.4">
<module name="Adyen_Payment" setup_version="5.4.0">
<sequence>
<module name="Magento_Sales"/>
<module name="Magento_Quote"/>
......
<?xml version="1.0"?>
<page xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="urn:magento:framework:View/Layout/etc/page_configuration.xsd">
<head>
<css src="Adyen_Payment::css/notifications_overview_styles.css"/>
<title>
Adyen Notifications Overview
</title>
</head>
<body>
<referenceContainer name="content">
<uiComponent name="adyen_notifications_overview"/>
</referenceContainer>
</body>
</page>
\ No newline at end of file
<listing xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="urn:magento:module:Magento_Ui:etc/ui_configuration.xsd">
<argument name="data" xsi:type="array">
<item name="js_config" xsi:type="array">
<item name="provider" xsi:type="string">adyen_notifications_overview.adyen_notifications_overview_data_source</item>
<item name="deps" xsi:type="string">adyen_notifications_overview.adyen_notifications_overview_data_source</item>
</item>
<item name="spinner" xsi:type="string">spinner_columns</item>
</argument>
<listingToolbar name="listing_top">
<columnsControls name="columns_controls"/>
<paging name="listing_paging"/>
<filters name="listing_filters" />
</listingToolbar>
<dataSource name="nameOfDataSource">
<argument name="dataProvider" xsi:type="configurableObject">
<argument name="class" xsi:type="string">Magento\Framework\View\Element\UiComponent\DataProvider\DataProvider</argument>
<argument name="name" xsi:type="string">adyen_notifications_overview_data_source</argument>
<argument name="primaryFieldName" xsi:type="string">entity_id</argument>
<argument name="requestFieldName" xsi:type="string">id</argument>
<argument name="data" xsi:type="array">
<item name="config" xsi:type="array">
<item name="component" xsi:type="string">Magento_Ui/js/grid/provider</item>
<item name="update_url" xsi:type="url" path="mui/index/render"/>
<item name="storageConfig" xsi:type="array">
<item name="indexField" xsi:type="string">entity_id</item>
</item>
</item>
</argument>
</argument>
</dataSource>
<columns name="spinner_columns">
<column name="entity_id">
<argument name="data" xsi:type="array">
<item name="config" xsi:type="array">
<item name="filter" xsi:type="string">textRange</item>
<item name="sorting" xsi:type="string">desc</item>
<item name="label" xsi:type="string" translate="true">ID</item>
</item>
</argument>
</column>
<column name="processing">
<argument name="data" xsi:type="array">
<item name="options" xsi:type="object">Magento\Config\Model\Config\Source\Yesno</item>
<item name="config" xsi:type="array">
<item name="component" xsi:type="string">Magento_Ui/js/grid/columns/select</item>
<item name="filter" xsi:type="string">select</item>
<item name="dataType" xsi:type="string">select</item>
<item name="editor" xsi:type="string">select</item>
<item name="label" xsi:type="string" translate="true">Processing</item>
</item>
</argument>
</column>
<column name="done">
<argument name="data" xsi:type="array">
<item name="options" xsi:type="object">Magento\Config\Model\Config\Source\Yesno</item>
<item name="config" xsi:type="array">
<item name="component" xsi:type="string">Magento_Ui/js/grid/columns/select</item>
<item name="filter" xsi:type="string">select</item>
<item name="dataType" xsi:type="string">select</item>
<item name="editor" xsi:type="string">select</item>
<item name="label" xsi:type="string" translate="true">Done</item>
</item>
</argument>
</column>
<column name="status" class="Adyen\Payment\Ui\Component\Listing\Column\NotificationColumn">
<argument name="data" xsi:type="array">
<item name="config" xsi:type="array">
<item name="label" xsi:type="string" translate="true">Status</item>
<item name="sortable" xsi:type="boolean">false</item>
</item>
</argument>
</column>
<column name="success">
<argument name="data" xsi:type="array">
<item name="config" xsi:type="array">
<item name="filter" xsi:type="string">true</item>
<item name="label" xsi:type="string" translate="true">Success</item>
<item name="bodyTmpl" xsi:type="string">ui/grid/cells/html</item>
</item>
</argument>
</column>
<column name="pspreference">
<argument name="data" xsi:type="array">
<item name="config" xsi:type="array">
<item name="filter" xsi:type="string">text</item>
<item name="label" xsi:type="string" translate="true">PSP Reference</item>
<item name="bodyTmpl" xsi:type="string">ui/grid/cells/html</item>
</item>
</argument>
</column>
<column name="event_code">
<argument name="data" xsi:type="array">
<item name="config" xsi:type="array">
<item name="filter" xsi:type="string">text</item>
<item name="label" xsi:type="string" translate="true">Event Code</item>
</item>
</argument>
</column>
<column name="merchant_reference">
<argument name="data" xsi:type="array">
<item name="config" xsi:type="array">
<item name="filter" xsi:type="string">text</item>
<item name="label" xsi:type="string" translate="true">Order</item>
<item name="bodyTmpl" xsi:type="string">ui/grid/cells/html</item>
</item>
</argument>
</column>
<column name="error_count">
<argument name="data" xsi:type="array">
<item name="config" xsi:type="array">
<item name="filter" xsi:type="string">text</item>
<item name="label" xsi:type="string" translate="true">Error Count</item>
<item name="bodyTmpl" xsi:type="string">ui/grid/cells/html</item>
</item>
</argument>
</column>
<column name="error_message">
<argument name="data" xsi:type="array">
<item name="config" xsi:type="array">
<item name="filter" xsi:type="string">text</item>
<item name="label" xsi:type="string" translate="true">Error Message</item>
<item name="bodyTmpl" xsi:type="string">ui/grid/cells/html</item>
<item name="fieldClass" xsi:type="string">adyen-notification-error-messages</item>
</item>
</argument>
</column>
<column name="created_at" class="Magento\Ui\Component\Listing\Columns\Date">
<argument name="data" xsi:type="array">
<item name="config" xsi:type="array">
<item name="filter" xsi:type="string">dateRange</item>
<item name="label" xsi:type="string" translate="true">Creation Date</item>
<item name="component" xsi:type="string">Magento_Ui/js/grid/columns/date</item>
<item name="dataType" xsi:type="string">date</item>
</item>
</argument>
</column>
</columns>
</listing>
\ No newline at end of file
/**
* ######
* ######
* ############ ####( ###### #####. ###### ############ ############
* ############# #####( ###### #####. ###### ############# #############
* ###### #####( ###### #####. ###### ##### ###### ##### ######
* ###### ###### #####( ###### #####. ###### ##### ##### ##### ######
* ###### ###### #####( ###### #####. ###### ##### ##### ######
* ############# ############# ############# ############# ##### ######
* ############ ############ ############# ############ ##### ######
* ######
* #############
* ############
*
* Adyen Payment module (https://www.adyen.com/)
*
* Copyright (c) 2020 Adyen BV (https://www.adyen.com/)
* See LICENSE.txt for license details.
*
* Author: Adyen <magento@adyen.com>
*/
.adyen-notification-error-messages div {
white-space: pre-wrap;
}
......@@ -43,7 +43,7 @@ define(
var paymentMethod = ko.observable(null);
var messageComponents;
var shippingAddressCountryCode = quote.shippingAddress().countryId;
var unsupportedPaymentMethods = ['scheme', 'boleto', 'bcmc_mobile_QR', 'wechatpay', /^bcmc$/ ];
var unsupportedPaymentMethods = ['scheme', 'boleto', 'bcmc_mobile_QR', 'wechatpay', /^bcmc$/, "applepay", "paywithgoogle"];
/**
* Shareble adyen checkout component
* @type {AdyenCheckout}
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment