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;
use Magento\Payment\Gateway\Command;
use Magento\Payment\Gateway\CommandInterface;
class PayByMailCommand implements CommandInterface
{
......@@ -34,11 +35,6 @@ class PayByMailCommand implements CommandInterface
*/
protected $_adyenHelper;
/**
* @var ResolverInterface
*/
protected $_resolver;
/**
* @var \Adyen\Payment\Logger\AdyenLogger
*/
......@@ -53,11 +49,9 @@ class PayByMailCommand implements CommandInterface
*/
public function __construct(
\Adyen\Payment\Helper\Data $adyenHelper,
\Magento\Framework\Locale\ResolverInterface $resolver,
\Adyen\Payment\Logger\AdyenLogger $adyenLogger
) {
$this->_adyenHelper = $adyenHelper;
$this->_resolver = $resolver;
$this->_adyenLogger = $adyenLogger;
}
/**
......@@ -134,6 +128,7 @@ class PayByMailCommand implements CommandInterface
$realOrderId = $order->getRealOrderId();
$orderCurrencyCode = $order->getOrderCurrencyCode();
$storeId = $order->getStore()->getId();
// check if paybymail has it's own skin
$skinCode = trim($this->_adyenHelper->getAdyenPayByMailConfigData('skin_code'));
......@@ -141,18 +136,20 @@ class PayByMailCommand implements CommandInterface
// use HPP skin and HMAC
$skinCode = $this->_adyenHelper->getAdyenHppConfigData('skin_code');
$hmacKey = $this->_adyenHelper->getHmac();
$shopperLocale = trim($this->_adyenHelper->getAdyenHppConfigData('shopper_locale', $storeId));
$countryCode = trim($this->_adyenHelper->getAdyenHppConfigData('country_code', $storeId));
} else {
// use pay_by_mail skin and hmac
$hmacKey = $this->_adyenHelper->getHmacPayByMail();
}
$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();
$customerId = $order->getCustomerId();
$shopperLocale = trim($this->_adyenHelper->getAdyenHppConfigData('shopper_locale'));
$shopperLocale = (!empty($shopperLocale)) ? $shopperLocale : $this->_resolver->getLocale();
$countryCode = trim($this->_adyenHelper->getAdyenHppConfigData('country_code'));
// get locale from store
$shopperLocale = (!empty($shopperLocale)) ? $shopperLocale : $this->_adyenHelper->getStoreLocale($storeId);
$countryCode = (!empty($countryCode)) ? $countryCode : false;
// if directory lookup is enabled use the billingadress as countrycode
......@@ -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;
$formFields = [];
......@@ -184,9 +181,9 @@ class PayByMailCommand implements CommandInterface
$formFields['shopperEmail'] = $shopperEmail;
// 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 == "") {
$sessionValidity = 3;
......
......@@ -816,4 +816,9 @@ class Data extends AbstractHelper
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
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(
Data::XML_PATH_DEFAULT_LOCALE,
\Magento\Directory\Helper\Data::XML_PATH_DEFAULT_LOCALE,
\Magento\Store\Model\ScopeInterface::SCOPE_STORES,
$store->getCode()
);
......
This diff is collapsed.
......@@ -37,17 +37,18 @@ class Notification extends \Magento\Framework\Model\AbstractModel
const ERROR = 'ERROR';
const REFUND = 'REFUND';
const REFUND_FAILED = 'REFUND_FAILED';
const CANCEL_OR_REFUND = 'CANCEL_OR_REFUND';
const CANCEL_OR_REFUND = 'CANCEL_OR_REFUND';
const CAPTURE = 'CAPTURE';
const CAPTURE_FAILED = 'CAPTURE_FAILED';
const CANCELLATION = 'CANCELLATION';
const POSAPPROVED = 'POS_APPROVED';
const HANDLED_EXTERNALLY = 'HANDLED_EXTERNALLY';
const HANDLED_EXTERNALLY = 'HANDLED_EXTERNALLY';
const MANUAL_REVIEW_ACCEPT = 'MANUAL_REVIEW_ACCEPT';
const MANUAL_REVIEW_REJECT = 'MANUAL_REVIEW_REJECT ';
const RECURRING_CONTRACT = "RECURRING_CONTRACT";
const REPORT_AVAILABLE = "REPORT_AVAILABLE";
const ORDER_CLOSED = "ORDER_CLOSED";
const OFFER_CLOSED = "OFFER_CLOSED";
/**
* Notification constructor.
......@@ -85,11 +86,12 @@ class Notification extends \Magento\Framework\Model\AbstractModel
* @param $eventCode
* @param $success
* @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;
}
......@@ -147,7 +149,7 @@ class Notification extends \Magento\Framework\Model\AbstractModel
{
return $this->setData(self::ORIGINAL_REFERENCE, $originalReference);
}
/**
* Gets the Merchantreference for the notification.
*
......@@ -314,7 +316,7 @@ class Notification extends \Magento\Framework\Model\AbstractModel
{
return $this->setData(self::LIVE, $live);
}
/**
* Gets the AdditionalData for the notification.
*
......
......@@ -36,21 +36,30 @@ class Notification extends \Magento\Framework\Model\ResourceModel\Db\AbstractDb
/**
* Get Notification for duplicate check
*
*
* @param $pspReference
* @param $eventCode
* @param $success
* @param $originalReference
* @param null $done
* @return array
*/
public function getNotification($pspReference, $eventCode, $success, $originalReference)
public function getNotification($pspReference, $eventCode, $success, $originalReference, $done = null)
{
$select = $this->getConnection()->select()
->from(['notification' => $this->getTable('adyen_notification')])
->where('notification.pspreference=?', $pspReference)
->where('notification.event_code=?', $eventCode)
->where('notification.success=?', $success)
->where('notification.original_reference=?', $originalReference);
->where('notification.success=?', $success);
if ($done !== null) {
$select->where('notification.done=?', $done);
}
if ($originalReference) {
$select->where('notification.original_reference=?', $originalReference);
}
return $this->getConnection()->fetchAll($select);
}
}
\ No newline at end of file
......@@ -81,7 +81,8 @@ class AdyenHppConfigProvider implements ConfigProviderInterface
\Magento\Framework\UrlInterface $urlBuilder,
\Magento\Customer\Model\Session $customerSession,
\Magento\Checkout\Model\Session $session
) {
)
{
$this->_paymentHelper = $paymentHelper;
$this->_adyenHelper = $adyenHelper;
$this->_request = $request;
......@@ -123,7 +124,7 @@ class AdyenHppConfigProvider implements ConfigProviderInterface
$gender = "";
$dob = "";
}
// add to config
$config['payment'] ['adyenHpp']['gender'] = $gender;
$config['payment'] ['adyenHpp']['dob'] = $dob;
......@@ -137,12 +138,12 @@ class AdyenHppConfigProvider implements ConfigProviderInterface
$config['payment'] ['adyenHpp']['isPaymentMethodSelectionOnAdyen'] = $paymentMethodSelectionOnAdyen;
$config['payment'] ['adyenHpp']['showGender'] = $this->_adyenHelper->getAdyenHppConfigDataFlag('show_gender');
$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'
);
$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;
}
......
......@@ -60,6 +60,8 @@ class AdyenBoletoDataAssignObserver extends AbstractDataAssignObserver
}
$paymentInfo = $this->readPaymentModelArgument($observer);
$paymentInfo->setCcType('boleto');
foreach ($this->additionalInformationList as $additionalInformationKey) {
if (isset($additionalData[$additionalInformationKey])) {
......
......@@ -37,6 +37,7 @@ class AdyenHppDataAssignObserver extends AbstractDataAssignObserver
const DOB = 'dob';
const TELEPHONE = 'telephone';
const DF_VALUE = 'df_value';
const SSN = 'ssn';
/**
......@@ -48,7 +49,8 @@ class AdyenHppDataAssignObserver extends AbstractDataAssignObserver
self::GENDER,
self::DOB,
self::TELEPHONE,
self::DF_VALUE
self::DF_VALUE,
self::SSN
];
/**
......@@ -65,6 +67,10 @@ class AdyenHppDataAssignObserver extends AbstractDataAssignObserver
}
$paymentInfo = $this->readPaymentModelArgument($observer);
if (isset($additionalData[self::BRAND_CODE])) {
$paymentInfo->setCcType($additionalData[self::BRAND_CODE]);
}
foreach ($this->additionalInformationList as $additionalInformationKey) {
if (isset($additionalData[$additionalInformationKey])) {
......@@ -72,7 +78,7 @@ class AdyenHppDataAssignObserver extends AbstractDataAssignObserver
$additionalInformationKey,
$additionalData[$additionalInformationKey]
);
}
}
}
}
}
......@@ -60,6 +60,8 @@ class AdyenSepaDataAssignObserver extends AbstractDataAssignObserver
}
$paymentInfo = $this->readPaymentModelArgument($observer);
$paymentInfo->setCcType('sepa');
foreach ($this->additionalInformationList as $additionalInformationKey) {
if (isset($additionalData[$additionalInformationKey])) {
......
# 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 ##
```
bin/composer require adyen/module-payment
......
......@@ -2,13 +2,12 @@
"name": "adyen/module-payment",
"description": "Official Magento2 Plugin to connect to Payment Service Provider Adyen.",
"type": "magento2-module",
"version": "2.1.2",
"version": "2.1.3",
"license": [
"OSL-3.0",
"AFL-3.0"
],
"require": {
"php": "~5.5.0|~5.6.0|~7.0.0",
"adyen/php-api-library": "*"
},
"autoload": {
......
......@@ -192,12 +192,5 @@
<group>adyen</group>
</adyen_boleto>
</payment>
<dev>
<js>
<minify_exclude>
live.adyen.com/hpp/js/df
</minify_exclude>
</js>
</dev>
</default>
</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="2.1.2">
<module name="Adyen_Payment" setup_version="2.1.3">
<sequence>
<module name="Magento_Sales"/>
<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