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 798c6448 authored by Rik ter Beek's avatar Rik ter Beek Committed by GitHub

Merge pull request #214 from Adyen/develop

Hotfix release 2.1.3
parents 01469611 91682aa1
**Magento version**: x.y.z
**Plugin version**: x.y.z
**Description**
<!--
- please provide description of the issue. In case of bug report, please provide the necessary steps to reproduce.
- For merchant specific requests, please use https://support.adyen.com
-->
\ No newline at end of file
**Description**
<!-- Please provide a description of the changes proposed in the Pull Request -->
**Tested scenarios**
<!-- Description of tested scenarios -->
**Fixed issue**: <!-- #-prefixed issue number -->
\ No newline at end of file
This diff is collapsed.
...@@ -26,6 +26,7 @@ namespace Adyen\Payment\Gateway\Command; ...@@ -26,6 +26,7 @@ namespace Adyen\Payment\Gateway\Command;
use Magento\Payment\Gateway\Command; use Magento\Payment\Gateway\Command;
use Magento\Payment\Gateway\CommandInterface; use Magento\Payment\Gateway\CommandInterface;
class PayByMailCommand implements CommandInterface class PayByMailCommand implements CommandInterface
{ {
...@@ -34,11 +35,6 @@ class PayByMailCommand implements CommandInterface ...@@ -34,11 +35,6 @@ class PayByMailCommand implements CommandInterface
*/ */
protected $_adyenHelper; protected $_adyenHelper;
/**
* @var ResolverInterface
*/
protected $_resolver;
/** /**
* @var \Adyen\Payment\Logger\AdyenLogger * @var \Adyen\Payment\Logger\AdyenLogger
*/ */
...@@ -53,11 +49,9 @@ class PayByMailCommand implements CommandInterface ...@@ -53,11 +49,9 @@ class PayByMailCommand implements CommandInterface
*/ */
public function __construct( public function __construct(
\Adyen\Payment\Helper\Data $adyenHelper, \Adyen\Payment\Helper\Data $adyenHelper,
\Magento\Framework\Locale\ResolverInterface $resolver,
\Adyen\Payment\Logger\AdyenLogger $adyenLogger \Adyen\Payment\Logger\AdyenLogger $adyenLogger
) { ) {
$this->_adyenHelper = $adyenHelper; $this->_adyenHelper = $adyenHelper;
$this->_resolver = $resolver;
$this->_adyenLogger = $adyenLogger; $this->_adyenLogger = $adyenLogger;
} }
/** /**
...@@ -134,6 +128,7 @@ class PayByMailCommand implements CommandInterface ...@@ -134,6 +128,7 @@ class PayByMailCommand implements CommandInterface
$realOrderId = $order->getRealOrderId(); $realOrderId = $order->getRealOrderId();
$orderCurrencyCode = $order->getOrderCurrencyCode(); $orderCurrencyCode = $order->getOrderCurrencyCode();
$storeId = $order->getStore()->getId();
// check if paybymail has it's own skin // check if paybymail has it's own skin
$skinCode = trim($this->_adyenHelper->getAdyenPayByMailConfigData('skin_code')); $skinCode = trim($this->_adyenHelper->getAdyenPayByMailConfigData('skin_code'));
...@@ -141,18 +136,20 @@ class PayByMailCommand implements CommandInterface ...@@ -141,18 +136,20 @@ class PayByMailCommand implements CommandInterface
// use HPP skin and HMAC // use HPP skin and HMAC
$skinCode = $this->_adyenHelper->getAdyenHppConfigData('skin_code'); $skinCode = $this->_adyenHelper->getAdyenHppConfigData('skin_code');
$hmacKey = $this->_adyenHelper->getHmac(); $hmacKey = $this->_adyenHelper->getHmac();
$shopperLocale = trim($this->_adyenHelper->getAdyenHppConfigData('shopper_locale', $storeId));
$countryCode = trim($this->_adyenHelper->getAdyenHppConfigData('country_code', $storeId));
} else { } else {
// use pay_by_mail skin and hmac // use pay_by_mail skin and hmac
$hmacKey = $this->_adyenHelper->getHmacPayByMail(); $hmacKey = $this->_adyenHelper->getHmacPayByMail();
} }
$amount = $this->_adyenHelper->formatAmount($order->getGrandTotal(), $orderCurrencyCode); $amount = $this->_adyenHelper->formatAmount($order->getGrandTotal(), $orderCurrencyCode);
$merchantAccount = trim($this->_adyenHelper->getAdyenAbstractConfigData('merchant_account')); $merchantAccount = trim($this->_adyenHelper->getAdyenAbstractConfigData('merchant_account', $storeId));
$shopperEmail = $order->getCustomerEmail(); $shopperEmail = $order->getCustomerEmail();
$customerId = $order->getCustomerId(); $customerId = $order->getCustomerId();
$shopperLocale = trim($this->_adyenHelper->getAdyenHppConfigData('shopper_locale'));
$shopperLocale = (!empty($shopperLocale)) ? $shopperLocale : $this->_resolver->getLocale(); // get locale from store
$countryCode = trim($this->_adyenHelper->getAdyenHppConfigData('country_code')); $shopperLocale = (!empty($shopperLocale)) ? $shopperLocale : $this->_adyenHelper->getStoreLocale($storeId);
$countryCode = (!empty($countryCode)) ? $countryCode : false; $countryCode = (!empty($countryCode)) ? $countryCode : false;
// if directory lookup is enabled use the billingadress as countrycode // if directory lookup is enabled use the billingadress as countrycode
...@@ -164,7 +161,7 @@ class PayByMailCommand implements CommandInterface ...@@ -164,7 +161,7 @@ class PayByMailCommand implements CommandInterface
} }
} }
$deliveryDays = $this->_adyenHelper->getAdyenHppConfigData('delivery_days'); $deliveryDays = $this->_adyenHelper->getAdyenHppConfigData('delivery_days', $storeId);
$deliveryDays = (!empty($deliveryDays)) ? $deliveryDays : 5; $deliveryDays = (!empty($deliveryDays)) ? $deliveryDays : 5;
$formFields = []; $formFields = [];
...@@ -184,9 +181,9 @@ class PayByMailCommand implements CommandInterface ...@@ -184,9 +181,9 @@ class PayByMailCommand implements CommandInterface
$formFields['shopperEmail'] = $shopperEmail; $formFields['shopperEmail'] = $shopperEmail;
// recurring // recurring
$recurringType = trim($this->_adyenHelper->getAdyenAbstractConfigData('recurring_type')); $recurringType = trim($this->_adyenHelper->getAdyenAbstractConfigData('recurring_type', $storeId));
$sessionValidity = $this->_adyenHelper->getAdyenPayByMailConfigData('session_validity'); $sessionValidity = $this->_adyenHelper->getAdyenPayByMailConfigData('session_validity', $storeId);
if ($sessionValidity == "") { if ($sessionValidity == "") {
$sessionValidity = 3; $sessionValidity = 3;
......
...@@ -816,4 +816,9 @@ class Data extends AbstractHelper ...@@ -816,4 +816,9 @@ class Data extends AbstractHelper
return $this->_assetRepo->createAsset($fileId, $params); return $this->_assetRepo->createAsset($fileId, $params);
} }
public function getStoreLocale($storeId) {
$path = \Magento\Directory\Helper\Data::XML_PATH_DEFAULT_LOCALE;
return $this->scopeConfig->getValue($path, \Magento\Store\Model\ScopeInterface::SCOPE_STORE, $storeId);
}
} }
\ No newline at end of file
...@@ -336,9 +336,9 @@ class PaymentMethods extends AbstractHelper ...@@ -336,9 +336,9 @@ class PaymentMethods extends AbstractHelper
return $locale; return $locale;
} }
// should have the vulue if not fall back to default // should have the value if not fall back to default
$localeCode = $this->_config->getValue( $localeCode = $this->_config->getValue(
Data::XML_PATH_DEFAULT_LOCALE, \Magento\Directory\Helper\Data::XML_PATH_DEFAULT_LOCALE,
\Magento\Store\Model\ScopeInterface::SCOPE_STORES, \Magento\Store\Model\ScopeInterface::SCOPE_STORES,
$store->getCode() $store->getCode()
); );
......
This diff is collapsed.
...@@ -37,17 +37,18 @@ class Notification extends \Magento\Framework\Model\AbstractModel ...@@ -37,17 +37,18 @@ class Notification extends \Magento\Framework\Model\AbstractModel
const ERROR = 'ERROR'; const ERROR = 'ERROR';
const REFUND = 'REFUND'; const REFUND = 'REFUND';
const REFUND_FAILED = 'REFUND_FAILED'; const REFUND_FAILED = 'REFUND_FAILED';
const CANCEL_OR_REFUND = 'CANCEL_OR_REFUND'; const CANCEL_OR_REFUND = 'CANCEL_OR_REFUND';
const CAPTURE = 'CAPTURE'; const CAPTURE = 'CAPTURE';
const CAPTURE_FAILED = 'CAPTURE_FAILED'; const CAPTURE_FAILED = 'CAPTURE_FAILED';
const CANCELLATION = 'CANCELLATION'; const CANCELLATION = 'CANCELLATION';
const POSAPPROVED = 'POS_APPROVED'; const POSAPPROVED = 'POS_APPROVED';
const HANDLED_EXTERNALLY = 'HANDLED_EXTERNALLY'; const HANDLED_EXTERNALLY = 'HANDLED_EXTERNALLY';
const MANUAL_REVIEW_ACCEPT = 'MANUAL_REVIEW_ACCEPT'; const MANUAL_REVIEW_ACCEPT = 'MANUAL_REVIEW_ACCEPT';
const MANUAL_REVIEW_REJECT = 'MANUAL_REVIEW_REJECT '; const MANUAL_REVIEW_REJECT = 'MANUAL_REVIEW_REJECT ';
const RECURRING_CONTRACT = "RECURRING_CONTRACT"; const RECURRING_CONTRACT = "RECURRING_CONTRACT";
const REPORT_AVAILABLE = "REPORT_AVAILABLE"; const REPORT_AVAILABLE = "REPORT_AVAILABLE";
const ORDER_CLOSED = "ORDER_CLOSED"; const ORDER_CLOSED = "ORDER_CLOSED";
const OFFER_CLOSED = "OFFER_CLOSED";
/** /**
* Notification constructor. * Notification constructor.
...@@ -85,11 +86,12 @@ class Notification extends \Magento\Framework\Model\AbstractModel ...@@ -85,11 +86,12 @@ class Notification extends \Magento\Framework\Model\AbstractModel
* @param $eventCode * @param $eventCode
* @param $success * @param $success
* @param $originalReference * @param $originalReference
* @return bool (true if the notification is a duplicate) * @param null $done
* @return bool
*/ */
public function isDuplicate($pspReference, $eventCode, $success, $originalReference) public function isDuplicate($pspReference, $eventCode, $success, $originalReference, $done = null)
{ {
$result = $this->getResource()->getNotification($pspReference, $eventCode, $success, $originalReference); $result = $this->getResource()->getNotification($pspReference, $eventCode, $success, $originalReference, $done);
return (empty($result)) ? false : true; return (empty($result)) ? false : true;
} }
...@@ -147,7 +149,7 @@ class Notification extends \Magento\Framework\Model\AbstractModel ...@@ -147,7 +149,7 @@ class Notification extends \Magento\Framework\Model\AbstractModel
{ {
return $this->setData(self::ORIGINAL_REFERENCE, $originalReference); return $this->setData(self::ORIGINAL_REFERENCE, $originalReference);
} }
/** /**
* Gets the Merchantreference for the notification. * Gets the Merchantreference for the notification.
* *
...@@ -314,7 +316,7 @@ class Notification extends \Magento\Framework\Model\AbstractModel ...@@ -314,7 +316,7 @@ class Notification extends \Magento\Framework\Model\AbstractModel
{ {
return $this->setData(self::LIVE, $live); return $this->setData(self::LIVE, $live);
} }
/** /**
* Gets the AdditionalData for the notification. * Gets the AdditionalData for the notification.
* *
......
...@@ -36,21 +36,30 @@ class Notification extends \Magento\Framework\Model\ResourceModel\Db\AbstractDb ...@@ -36,21 +36,30 @@ class Notification extends \Magento\Framework\Model\ResourceModel\Db\AbstractDb
/** /**
* Get Notification for duplicate check * Get Notification for duplicate check
* *
* @param $pspReference * @param $pspReference
* @param $eventCode * @param $eventCode
* @param $success * @param $success
* @param $originalReference * @param $originalReference
* @param null $done
* @return array * @return array
*/ */
public function getNotification($pspReference, $eventCode, $success, $originalReference) public function getNotification($pspReference, $eventCode, $success, $originalReference, $done = null)
{ {
$select = $this->getConnection()->select() $select = $this->getConnection()->select()
->from(['notification' => $this->getTable('adyen_notification')]) ->from(['notification' => $this->getTable('adyen_notification')])
->where('notification.pspreference=?', $pspReference) ->where('notification.pspreference=?', $pspReference)
->where('notification.event_code=?', $eventCode) ->where('notification.event_code=?', $eventCode)
->where('notification.success=?', $success) ->where('notification.success=?', $success);
->where('notification.original_reference=?', $originalReference);
if ($done !== null) {
$select->where('notification.done=?', $done);
}
if ($originalReference) {
$select->where('notification.original_reference=?', $originalReference);
}
return $this->getConnection()->fetchAll($select); return $this->getConnection()->fetchAll($select);
} }
} }
\ No newline at end of file
...@@ -81,7 +81,8 @@ class AdyenHppConfigProvider implements ConfigProviderInterface ...@@ -81,7 +81,8 @@ class AdyenHppConfigProvider implements ConfigProviderInterface
\Magento\Framework\UrlInterface $urlBuilder, \Magento\Framework\UrlInterface $urlBuilder,
\Magento\Customer\Model\Session $customerSession, \Magento\Customer\Model\Session $customerSession,
\Magento\Checkout\Model\Session $session \Magento\Checkout\Model\Session $session
) { )
{
$this->_paymentHelper = $paymentHelper; $this->_paymentHelper = $paymentHelper;
$this->_adyenHelper = $adyenHelper; $this->_adyenHelper = $adyenHelper;
$this->_request = $request; $this->_request = $request;
...@@ -123,7 +124,7 @@ class AdyenHppConfigProvider implements ConfigProviderInterface ...@@ -123,7 +124,7 @@ class AdyenHppConfigProvider implements ConfigProviderInterface
$gender = ""; $gender = "";
$dob = ""; $dob = "";
} }
// add to config // add to config
$config['payment'] ['adyenHpp']['gender'] = $gender; $config['payment'] ['adyenHpp']['gender'] = $gender;
$config['payment'] ['adyenHpp']['dob'] = $dob; $config['payment'] ['adyenHpp']['dob'] = $dob;
...@@ -137,12 +138,12 @@ class AdyenHppConfigProvider implements ConfigProviderInterface ...@@ -137,12 +138,12 @@ class AdyenHppConfigProvider implements ConfigProviderInterface
$config['payment'] ['adyenHpp']['isPaymentMethodSelectionOnAdyen'] = $paymentMethodSelectionOnAdyen; $config['payment'] ['adyenHpp']['isPaymentMethodSelectionOnAdyen'] = $paymentMethodSelectionOnAdyen;
$config['payment'] ['adyenHpp']['showGender'] = $this->_adyenHelper->getAdyenHppConfigDataFlag('show_gender'); $config['payment'] ['adyenHpp']['showGender'] = $this->_adyenHelper->getAdyenHppConfigDataFlag('show_gender');
$config['payment'] ['adyenHpp']['showDob'] = $this->_adyenHelper->getAdyenHppConfigDataFlag('show_dob'); $config['payment'] ['adyenHpp']['showDob'] = $this->_adyenHelper->getAdyenHppConfigDataFlag('show_dob');
$config['payment'] ['adyenHpp']['showTelephone'] = $this->_adyenHelper->getAdyenHppConfigDataFlag( $config['payment'] ['adyenHpp']['showTelephone'] = $this->_adyenHelper->getAdyenHppConfigDataFlag(
'show_telephone' 'show_telephone'
); );
$config['payment'] ['adyenHpp']['ratePayId'] = $this->_adyenHelper->getRatePayId(); $config['payment'] ['adyenHpp']['ratePayId'] = $this->_adyenHelper->getRatePayId();
$config['payment'] ['adyenHpp']['deviceIdentToken'] = md5($this->_session->getQuoteId().date('c')); $config['payment'] ['adyenHpp']['deviceIdentToken'] = md5($this->_session->getQuoteId() . date('c'));
$config['payment'] ['adyenHpp']['nordicCountries'] = ['SE', 'NO', 'DK', 'FI'];
return $config; return $config;
} }
......
...@@ -60,6 +60,8 @@ class AdyenBoletoDataAssignObserver extends AbstractDataAssignObserver ...@@ -60,6 +60,8 @@ class AdyenBoletoDataAssignObserver extends AbstractDataAssignObserver
} }
$paymentInfo = $this->readPaymentModelArgument($observer); $paymentInfo = $this->readPaymentModelArgument($observer);
$paymentInfo->setCcType('boleto');
foreach ($this->additionalInformationList as $additionalInformationKey) { foreach ($this->additionalInformationList as $additionalInformationKey) {
if (isset($additionalData[$additionalInformationKey])) { if (isset($additionalData[$additionalInformationKey])) {
......
...@@ -37,6 +37,7 @@ class AdyenHppDataAssignObserver extends AbstractDataAssignObserver ...@@ -37,6 +37,7 @@ class AdyenHppDataAssignObserver extends AbstractDataAssignObserver
const DOB = 'dob'; const DOB = 'dob';
const TELEPHONE = 'telephone'; const TELEPHONE = 'telephone';
const DF_VALUE = 'df_value'; const DF_VALUE = 'df_value';
const SSN = 'ssn';
/** /**
...@@ -48,7 +49,8 @@ class AdyenHppDataAssignObserver extends AbstractDataAssignObserver ...@@ -48,7 +49,8 @@ class AdyenHppDataAssignObserver extends AbstractDataAssignObserver
self::GENDER, self::GENDER,
self::DOB, self::DOB,
self::TELEPHONE, self::TELEPHONE,
self::DF_VALUE self::DF_VALUE,
self::SSN
]; ];
/** /**
...@@ -65,6 +67,10 @@ class AdyenHppDataAssignObserver extends AbstractDataAssignObserver ...@@ -65,6 +67,10 @@ class AdyenHppDataAssignObserver extends AbstractDataAssignObserver
} }
$paymentInfo = $this->readPaymentModelArgument($observer); $paymentInfo = $this->readPaymentModelArgument($observer);
if (isset($additionalData[self::BRAND_CODE])) {
$paymentInfo->setCcType($additionalData[self::BRAND_CODE]);
}
foreach ($this->additionalInformationList as $additionalInformationKey) { foreach ($this->additionalInformationList as $additionalInformationKey) {
if (isset($additionalData[$additionalInformationKey])) { if (isset($additionalData[$additionalInformationKey])) {
...@@ -72,7 +78,7 @@ class AdyenHppDataAssignObserver extends AbstractDataAssignObserver ...@@ -72,7 +78,7 @@ class AdyenHppDataAssignObserver extends AbstractDataAssignObserver
$additionalInformationKey, $additionalInformationKey,
$additionalData[$additionalInformationKey] $additionalData[$additionalInformationKey]
); );
}
} }
} }
} }
}
...@@ -60,6 +60,8 @@ class AdyenSepaDataAssignObserver extends AbstractDataAssignObserver ...@@ -60,6 +60,8 @@ class AdyenSepaDataAssignObserver extends AbstractDataAssignObserver
} }
$paymentInfo = $this->readPaymentModelArgument($observer); $paymentInfo = $this->readPaymentModelArgument($observer);
$paymentInfo->setCcType('sepa');
foreach ($this->additionalInformationList as $additionalInformationKey) { foreach ($this->additionalInformationList as $additionalInformationKey) {
if (isset($additionalData[$additionalInformationKey])) { if (isset($additionalData[$additionalInformationKey])) {
......
# Adyen_Magento2 # Adyen_Magento2
Adyen Payment plugin for Magento2 Adyen Payment plugin for Magento2. This plugin supports Magento2 version 2.1 and higher. <br/>
For Magento2 version 2.0 support, use plugin version 1.4.6.
## Installation ## ## Installation ##
``` ```
bin/composer require adyen/module-payment bin/composer require adyen/module-payment
......
...@@ -2,13 +2,12 @@ ...@@ -2,13 +2,12 @@
"name": "adyen/module-payment", "name": "adyen/module-payment",
"description": "Official Magento2 Plugin to connect to Payment Service Provider Adyen.", "description": "Official Magento2 Plugin to connect to Payment Service Provider Adyen.",
"type": "magento2-module", "type": "magento2-module",
"version": "2.1.2", "version": "2.1.3",
"license": [ "license": [
"OSL-3.0", "OSL-3.0",
"AFL-3.0" "AFL-3.0"
], ],
"require": { "require": {
"php": "~5.5.0|~5.6.0|~7.0.0",
"adyen/php-api-library": "*" "adyen/php-api-library": "*"
}, },
"autoload": { "autoload": {
......
...@@ -192,12 +192,5 @@ ...@@ -192,12 +192,5 @@
<group>adyen</group> <group>adyen</group>
</adyen_boleto> </adyen_boleto>
</payment> </payment>
<dev>
<js>
<minify_exclude>
live.adyen.com/hpp/js/df
</minify_exclude>
</js>
</dev>
</default> </default>
</config> </config>
...@@ -24,7 +24,7 @@ ...@@ -24,7 +24,7 @@
--> -->
<config xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="urn:magento:framework:Module/etc/module.xsd"> <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="2.1.2"> <module name="Adyen_Payment" setup_version="2.1.3">
<sequence> <sequence>
<module name="Magento_Sales"/> <module name="Magento_Sales"/>
<module name="Magento_Quote"/> <module name="Magento_Quote"/>
......
view/base/web/images/logos/ABNAMRO.png

3.19 KB | W: | H:

view/base/web/images/logos/ABNAMRO.png

1.97 KB | W: | H:

view/base/web/images/logos/ABNAMRO.png
view/base/web/images/logos/ABNAMRO.png
view/base/web/images/logos/ABNAMRO.png
view/base/web/images/logos/ABNAMRO.png
  • 2-up
  • Swipe
  • Onion skin
view/base/web/images/logos/BUNQ.png

2.35 KB | W: | H:

view/base/web/images/logos/BUNQ.png

2.05 KB | W: | H:

view/base/web/images/logos/BUNQ.png
view/base/web/images/logos/BUNQ.png
view/base/web/images/logos/BUNQ.png
view/base/web/images/logos/BUNQ.png
  • 2-up
  • Swipe
  • Onion skin
view/base/web/images/logos/ING.png

7.51 KB | W: | H:

view/base/web/images/logos/ING.png

2.09 KB | W: | H:

view/base/web/images/logos/ING.png
view/base/web/images/logos/ING.png
view/base/web/images/logos/ING.png
view/base/web/images/logos/ING.png
  • 2-up
  • Swipe
  • Onion skin
view/base/web/images/logos/KNAB.png

2.84 KB | W: | H:

view/base/web/images/logos/KNAB.png

1.54 KB | W: | H:

view/base/web/images/logos/KNAB.png
view/base/web/images/logos/KNAB.png
view/base/web/images/logos/KNAB.png
view/base/web/images/logos/KNAB.png
  • 2-up
  • Swipe
  • Onion skin
view/base/web/images/logos/alipay.png

3.88 KB | W: | H:

view/base/web/images/logos/alipay.png

2.53 KB | W: | H:

view/base/web/images/logos/alipay.png
view/base/web/images/logos/alipay.png
view/base/web/images/logos/alipay.png
view/base/web/images/logos/alipay.png
  • 2-up
  • Swipe
  • Onion skin
view/base/web/images/logos/bank_ru.png

1.11 KB | W: | H:

view/base/web/images/logos/bank_ru.png

1.39 KB | W: | H:

view/base/web/images/logos/bank_ru.png
view/base/web/images/logos/bank_ru.png
view/base/web/images/logos/bank_ru.png
view/base/web/images/logos/bank_ru.png
  • 2-up
  • Swipe
  • Onion skin
view/base/web/images/logos/bank_ru_small.png

613 Bytes | W: | H:

view/base/web/images/logos/bank_ru_small.png

883 Bytes | W: | H:

view/base/web/images/logos/bank_ru_small.png
view/base/web/images/logos/bank_ru_small.png
view/base/web/images/logos/bank_ru_small.png
view/base/web/images/logos/bank_ru_small.png
  • 2-up
  • Swipe
  • Onion skin
view/base/web/images/logos/bank_ru_tiny.png

538 Bytes | W: | H:

view/base/web/images/logos/bank_ru_tiny.png

542 Bytes | W: | H:

view/base/web/images/logos/bank_ru_tiny.png
view/base/web/images/logos/bank_ru_tiny.png
view/base/web/images/logos/bank_ru_tiny.png
view/base/web/images/logos/bank_ru_tiny.png
  • 2-up
  • Swipe
  • Onion skin
view/base/web/images/logos/bcmc.png

4.45 KB | W: | H:

view/base/web/images/logos/bcmc.png

2.09 KB | W: | H:

view/base/web/images/logos/bcmc.png
view/base/web/images/logos/bcmc.png
view/base/web/images/logos/bcmc.png
view/base/web/images/logos/bcmc.png
  • 2-up
  • Swipe
  • Onion skin
view/base/web/images/logos/bcmc_tiny.png

994 Bytes | W: | H:

view/base/web/images/logos/bcmc_tiny.png

729 Bytes | W: | H:

view/base/web/images/logos/bcmc_tiny.png
view/base/web/images/logos/bcmc_tiny.png
view/base/web/images/logos/bcmc_tiny.png
view/base/web/images/logos/bcmc_tiny.png
  • 2-up
  • Swipe
  • Onion skin
view/base/web/images/logos/card.png

4.17 KB | W: | H:

view/base/web/images/logos/card.png

2.72 KB | W: | H:

view/base/web/images/logos/card.png
view/base/web/images/logos/card.png
view/base/web/images/logos/card.png
view/base/web/images/logos/card.png
  • 2-up
  • Swipe
  • Onion skin
view/base/web/images/logos/interac.png

2.04 KB | W: | H:

view/base/web/images/logos/interac.png

1.74 KB | W: | H:

view/base/web/images/logos/interac.png
view/base/web/images/logos/interac.png
view/base/web/images/logos/interac.png
view/base/web/images/logos/interac.png
  • 2-up
  • Swipe
  • Onion skin
view/base/web/images/logos/interac_tiny.png

684 Bytes | W: | H:

view/base/web/images/logos/interac_tiny.png

769 Bytes | W: | H:

view/base/web/images/logos/interac_tiny.png
view/base/web/images/logos/interac_tiny.png
view/base/web/images/logos/interac_tiny.png
view/base/web/images/logos/interac_tiny.png
  • 2-up
  • Swipe
  • Onion skin
view/base/web/images/logos/klarna.png

3.41 KB | W: | H:

view/base/web/images/logos/klarna.png

1.9 KB | W: | H:

view/base/web/images/logos/klarna.png
view/base/web/images/logos/klarna.png
view/base/web/images/logos/klarna.png
view/base/web/images/logos/klarna.png
  • 2-up
  • Swipe
  • Onion skin
view/base/web/images/logos/klarna_tiny.png

910 Bytes | W: | H:

view/base/web/images/logos/klarna_tiny.png

477 Bytes | W: | H:

view/base/web/images/logos/klarna_tiny.png
view/base/web/images/logos/klarna_tiny.png
view/base/web/images/logos/klarna_tiny.png
view/base/web/images/logos/klarna_tiny.png
  • 2-up
  • Swipe
  • Onion skin
view/base/web/images/logos/mc_small_grey.png

688 Bytes | W: | H:

view/base/web/images/logos/mc_small_grey.png

822 Bytes | W: | H:

view/base/web/images/logos/mc_small_grey.png
view/base/web/images/logos/mc_small_grey.png
view/base/web/images/logos/mc_small_grey.png
view/base/web/images/logos/mc_small_grey.png
  • 2-up
  • Swipe
  • Onion skin
view/base/web/images/logos/mc_tiny.png

975 Bytes | W: | H:

view/base/web/images/logos/mc_tiny.png

590 Bytes | W: | H:

view/base/web/images/logos/mc_tiny.png
view/base/web/images/logos/mc_tiny.png
view/base/web/images/logos/mc_tiny.png
view/base/web/images/logos/mc_tiny.png
  • 2-up
  • Swipe
  • Onion skin
view/base/web/images/logos/moneta.png

2.17 KB | W: | H:

view/base/web/images/logos/moneta.png

1.03 KB | W: | H:

view/base/web/images/logos/moneta.png
view/base/web/images/logos/moneta.png
view/base/web/images/logos/moneta.png
view/base/web/images/logos/moneta.png
  • 2-up
  • Swipe
  • Onion skin
view/base/web/images/logos/online_RU_small.png

1019 Bytes | W: | H:

view/base/web/images/logos/online_RU_small.png

969 Bytes | W: | H:

view/base/web/images/logos/online_RU_small.png
view/base/web/images/logos/online_RU_small.png
view/base/web/images/logos/online_RU_small.png
view/base/web/images/logos/online_RU_small.png
  • 2-up
  • Swipe
  • Onion skin
view/base/web/images/logos/online_RU_tiny.png

196 Bytes | W: | H:

view/base/web/images/logos/online_RU_tiny.png

601 Bytes | W: | H:

view/base/web/images/logos/online_RU_tiny.png
view/base/web/images/logos/online_RU_tiny.png
view/base/web/images/logos/online_RU_tiny.png
view/base/web/images/logos/online_RU_tiny.png
  • 2-up
  • Swipe
  • Onion skin
view/base/web/images/logos/paypal.png

2.02 KB | W: | H:

view/base/web/images/logos/paypal.png

2.87 KB | W: | H:

view/base/web/images/logos/paypal.png
view/base/web/images/logos/paypal.png
view/base/web/images/logos/paypal.png
view/base/web/images/logos/paypal.png
  • 2-up
  • Swipe
  • Onion skin
view/base/web/images/logos/paypal_tiny.png

635 Bytes | W: | H:

view/base/web/images/logos/paypal_tiny.png

1.36 KB | W: | H:

view/base/web/images/logos/paypal_tiny.png
view/base/web/images/logos/paypal_tiny.png
view/base/web/images/logos/paypal_tiny.png
view/base/web/images/logos/paypal_tiny.png
  • 2-up
  • Swipe
  • Onion skin
view/base/web/images/logos/safetypay_tiny.png

665 Bytes | W: | H:

view/base/web/images/logos/safetypay_tiny.png

612 Bytes | W: | H:

view/base/web/images/logos/safetypay_tiny.png
view/base/web/images/logos/safetypay_tiny.png
view/base/web/images/logos/safetypay_tiny.png
view/base/web/images/logos/safetypay_tiny.png
  • 2-up
  • Swipe
  • Onion skin
view/base/web/images/logos/sm_small.png

1.68 KB | W: | H:

view/base/web/images/logos/sm_small.png

2.14 KB | W: | H:

view/base/web/images/logos/sm_small.png
view/base/web/images/logos/sm_small.png
view/base/web/images/logos/sm_small.png
view/base/web/images/logos/sm_small.png
  • 2-up
  • Swipe
  • Onion skin
view/base/web/images/logos/ukash.png

2.88 KB | W: | H:

view/base/web/images/logos/ukash.png

4.58 KB | W: | H:

view/base/web/images/logos/ukash.png
view/base/web/images/logos/ukash.png
view/base/web/images/logos/ukash.png
view/base/web/images/logos/ukash.png
  • 2-up
  • Swipe
  • Onion skin
view/base/web/images/logos/ukash_tiny.png

800 Bytes | W: | H:

view/base/web/images/logos/ukash_tiny.png

1.63 KB | W: | H:

view/base/web/images/logos/ukash_tiny.png
view/base/web/images/logos/ukash_tiny.png
view/base/web/images/logos/ukash_tiny.png
view/base/web/images/logos/ukash_tiny.png
  • 2-up
  • Swipe
  • Onion skin
view/base/web/images/logos/visa.png

2.14 KB | W: | H:

view/base/web/images/logos/visa.png

2.9 KB | W: | H:

view/base/web/images/logos/visa.png
view/base/web/images/logos/visa.png
view/base/web/images/logos/visa.png
view/base/web/images/logos/visa.png
  • 2-up
  • Swipe
  • Onion skin
view/base/web/images/logos/visa_tiny.png

874 Bytes | W: | H:

view/base/web/images/logos/visa_tiny.png

1.45 KB | W: | H:

view/base/web/images/logos/visa_tiny.png
view/base/web/images/logos/visa_tiny.png
view/base/web/images/logos/visa_tiny.png
view/base/web/images/logos/visa_tiny.png
  • 2-up
  • Swipe
  • Onion skin
view/base/web/images/logos/wallet_RU.png

3.87 KB | W: | H:

view/base/web/images/logos/wallet_RU.png

525 Bytes | W: | H:

view/base/web/images/logos/wallet_RU.png
view/base/web/images/logos/wallet_RU.png
view/base/web/images/logos/wallet_RU.png
view/base/web/images/logos/wallet_RU.png
  • 2-up
  • Swipe
  • Onion skin
view/base/web/images/logos/wallet_RU_tiny.png

981 Bytes | W: | H:

view/base/web/images/logos/wallet_RU_tiny.png

305 Bytes | W: | H:

view/base/web/images/logos/wallet_RU_tiny.png
view/base/web/images/logos/wallet_RU_tiny.png
view/base/web/images/logos/wallet_RU_tiny.png
view/base/web/images/logos/wallet_RU_tiny.png
  • 2-up
  • Swipe
  • Onion skin
view/base/web/images/logos/yourgift.png

4.21 KB | W: | H:

view/base/web/images/logos/yourgift.png

4.13 KB | W: | H:

view/base/web/images/logos/yourgift.png
view/base/web/images/logos/yourgift.png
view/base/web/images/logos/yourgift.png
view/base/web/images/logos/yourgift.png
  • 2-up
  • Swipe
  • Onion skin
This diff is collapsed.
This diff is collapsed.
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