Version Notes
Support multi-currency
Download this release
Release Info
Developer | Eric Benayoun |
Extension | payitsimplepayment |
Version | 2.0.2 |
Comparing to | |
See all releases |
Code changes from version 2.0.1 to 2.0.2
- app/code/community/Cm/RedisSession/Model/Session.php +695 -0
- app/code/community/Cm/RedisSession/etc/config.xml +48 -0
- app/code/community/PayItSimple/Payment/Model/PisMethod.php +2 -1
- app/code/community/Phoenix/Moneybookers/Block/Form.php +93 -0
- app/code/community/Phoenix/Moneybookers/Block/Info.php +51 -0
- app/code/community/Phoenix/Moneybookers/Block/Jsinit.php +49 -0
- app/code/community/Phoenix/Moneybookers/Block/Payment.php +39 -0
- app/code/community/Phoenix/Moneybookers/Block/Placeform.php +67 -0
- app/code/community/Phoenix/Moneybookers/Block/Redirect.php +30 -0
- app/code/community/Phoenix/Moneybookers/Helper/Data.php +130 -0
- app/code/community/Phoenix/Moneybookers/Model/Abstract.php +208 -0
- app/code/community/Phoenix/Moneybookers/Model/Acc.php +27 -0
- app/code/community/Phoenix/Moneybookers/Model/Csi.php +27 -0
- app/code/community/Phoenix/Moneybookers/Model/Did.php +27 -0
- app/code/community/Phoenix/Moneybookers/Model/Dnk.php +27 -0
- app/code/community/Phoenix/Moneybookers/Model/Ebt.php +27 -0
- app/code/community/Phoenix/Moneybookers/Model/Ent.php +27 -0
- app/code/community/Phoenix/Moneybookers/Model/Event.php +274 -0
- app/code/community/Phoenix/Moneybookers/Model/Gcb.php +27 -0
- app/code/community/Phoenix/Moneybookers/Model/Gir.php +27 -0
- app/code/community/Phoenix/Moneybookers/Model/Idl.php +27 -0
- app/code/community/Phoenix/Moneybookers/Model/Lsr.php +27 -0
- app/code/community/Phoenix/Moneybookers/Model/Mae.php +27 -0
- app/code/community/Phoenix/Moneybookers/Model/Npy.php +27 -0
- app/code/community/Phoenix/Moneybookers/Model/Obt.php +27 -0
- app/code/community/Phoenix/Moneybookers/Model/Pli.php +27 -0
- app/code/community/Phoenix/Moneybookers/Model/Psp.php +27 -0
- app/code/community/Phoenix/Moneybookers/Model/Pwy.php +27 -0
- app/code/community/Phoenix/Moneybookers/Model/Sft.php +27 -0
- app/code/community/Phoenix/Moneybookers/Model/So2.php +27 -0
- app/code/community/Phoenix/Moneybookers/Model/Wlt.php +28 -0
- app/code/community/Phoenix/Moneybookers/controllers/MoneybookersController.php +97 -0
- app/code/community/Phoenix/Moneybookers/controllers/ProcessingController.php +146 -0
- app/code/community/Phoenix/Moneybookers/etc/config.xml +306 -0
- app/code/community/Phoenix/Moneybookers/etc/system.xml +1201 -0
- app/code/community/Phoenix/Moneybookers/sql/moneybookers_setup/install-1.6.0.0.php +22 -0
- app/code/community/Phoenix/Moneybookers/sql/moneybookers_setup/mysql4-upgrade-1.2-1.2.0.1.php +41 -0
- app/design/adminhtml/default/default/layout/payitsimple_notification.xml +0 -9
- app/design/adminhtml/default/default/template/payitsimple/system/config/button.phtml +0 -14
- app/design/adminhtml/default/default/template/payitsimple/system/config/notification.phtml +0 -5
- app/design/frontend/base/default/layout/pis_payment.xml +0 -29
- app/design/frontend/base/default/template/payitsimple/form/method_faq.phtml +0 -4
- app/design/frontend/base/default/template/payitsimple/form/pis.phtml +0 -84
- app/design/frontend/base/default/template/payitsimple/help.phtml +0 -8
- app/design/frontend/base/default/template/payitsimple/terms.phtml +0 -102
- app/etc/modules/PayItSimple_Payment.xml +0 -9
- package.xml +19 -5
app/code/community/Cm/RedisSession/Model/Session.php
ADDED
@@ -0,0 +1,695 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
<?php
|
2 |
+
/*
|
3 |
+
==New BSD License==
|
4 |
+
|
5 |
+
Copyright (c) 2013, Colin Mollenhour
|
6 |
+
All rights reserved.
|
7 |
+
|
8 |
+
Redistribution and use in source and binary forms, with or without
|
9 |
+
modification, are permitted provided that the following conditions are met:
|
10 |
+
|
11 |
+
* Redistributions of source code must retain the above copyright
|
12 |
+
notice, this list of conditions and the following disclaimer.
|
13 |
+
* Redistributions in binary form must reproduce the above copyright
|
14 |
+
notice, this list of conditions and the following disclaimer in the
|
15 |
+
documentation and/or other materials provided with the distribution.
|
16 |
+
* The name of Colin Mollenhour may not be used to endorse or promote products
|
17 |
+
derived from this software without specific prior written permission.
|
18 |
+
* Redistributions in any form must not change the Cm_RedisSession namespace.
|
19 |
+
|
20 |
+
THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND
|
21 |
+
ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
|
22 |
+
WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
|
23 |
+
DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER BE LIABLE FOR ANY
|
24 |
+
DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
|
25 |
+
(INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
|
26 |
+
LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND
|
27 |
+
ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
|
28 |
+
(INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
|
29 |
+
SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
|
30 |
+
*/
|
31 |
+
/**
|
32 |
+
* Redis session handler with optimistic locking.
|
33 |
+
*
|
34 |
+
* Features:
|
35 |
+
* - Falls back to mysql handler if it can't connect to redis. Mysql handler falls back to file handler.
|
36 |
+
* - When a session's data exceeds the compression threshold the session data will be compressed.
|
37 |
+
* - Compression libraries supported are 'gzip', 'lzf', 'lz4' and 'snappy'.
|
38 |
+
* - Compression can be enabled, disabled, or reconfigured on the fly with no loss of session data.
|
39 |
+
* - Expiration is handled by Redis. No garbage collection needed.
|
40 |
+
* - Logs when sessions are not written due to not having or losing their lock.
|
41 |
+
* - Limits the number of concurrent lock requests before a 503 error is returned.
|
42 |
+
*
|
43 |
+
* Locking Algorithm Properties:
|
44 |
+
* - Only one process may get a write lock on a session.
|
45 |
+
* - A process may lose it's lock if another process breaks it, in which case the session will not be written.
|
46 |
+
* - The lock may be broken after BREAK_AFTER seconds and the process that gets the lock is indeterminate.
|
47 |
+
* - Only MAX_CONCURRENCY processes may be waiting for a lock for the same session or else a 503 error is returned.
|
48 |
+
* - Detects crashed processes to prevent session deadlocks (Linux only).
|
49 |
+
* - Detects inactive waiting processes to prevent false-positives in concurrency throttling.
|
50 |
+
*
|
51 |
+
*/
|
52 |
+
class Cm_RedisSession_Model_Session extends Mage_Core_Model_Mysql4_Session
|
53 |
+
{
|
54 |
+
const SLEEP_TIME = 500000; /* Sleep 0.5 seconds between lock attempts (1,000,000 == 1 second) */
|
55 |
+
const FAIL_AFTER = 15; /* Try to break lock for at most this many seconds */
|
56 |
+
const DETECT_ZOMBIES = 20; /* Try to detect zombies every this many tries */
|
57 |
+
const SESSION_PREFIX = 'sess_';
|
58 |
+
const LOG_FILE = 'redis_session.log';
|
59 |
+
|
60 |
+
/* Bots get shorter session lifetimes */
|
61 |
+
const BOT_REGEX = '/^alexa|^blitz\.io|bot|^browsermob|crawl|^curl|^facebookexternalhit|feed|google web preview|^ia_archiver|indexer|^java|jakarta|^libwww-perl|^load impact|^magespeedtest|monitor|^Mozilla$|nagios|^\.net|^pinterest|postrank|slurp|spider|uptime|^wget|yandex/i';
|
62 |
+
|
63 |
+
const DEFAULT_TIMEOUT = 2.5;
|
64 |
+
const DEFAULT_COMPRESSION_THRESHOLD = 2048;
|
65 |
+
const DEFAULT_COMPRESSION_LIB = 'gzip';
|
66 |
+
const DEFAULT_LOG_LEVEL = 1;
|
67 |
+
const DEFAULT_MAX_CONCURRENCY = 6; /* The maximum number of concurrent lock waiters per session */
|
68 |
+
const DEFAULT_BREAK_AFTER = 30; /* Try to break the lock after this many seconds */
|
69 |
+
const DEFAULT_FIRST_LIFETIME = 600; /* The session lifetime for non-bots on the first write */
|
70 |
+
const DEFAULT_BOT_FIRST_LIFETIME = 60; /* The session lifetime for bots on the first write */
|
71 |
+
const DEFAULT_BOT_LIFETIME = 7200; /* The session lifetime for bots - shorter to prevent bots from wasting backend storage */
|
72 |
+
const DEFAULT_DISABLE_LOCKING = FALSE; /* Session locking is enabled by default */
|
73 |
+
const DEFAULT_MAX_LIFETIME = 2592000; /* Redis backend limit */
|
74 |
+
const DEFAULT_MIN_LIFETIME = 60;
|
75 |
+
|
76 |
+
/** @var bool */
|
77 |
+
protected $_useRedis;
|
78 |
+
|
79 |
+
/** @var Credis_Client */
|
80 |
+
protected $_redis;
|
81 |
+
|
82 |
+
/** @var int */
|
83 |
+
protected $_dbNum;
|
84 |
+
|
85 |
+
protected $_config;
|
86 |
+
protected $_compressionThreshold;
|
87 |
+
protected $_compressionLib;
|
88 |
+
protected $_logLevel;
|
89 |
+
protected $_maxConcurrency;
|
90 |
+
protected $_breakAfter;
|
91 |
+
protected $_useLocking;
|
92 |
+
protected $_hasLock;
|
93 |
+
protected $_sessionWritten; // avoid infinite loops
|
94 |
+
protected $_sessionWrites; // set expire time based on activity
|
95 |
+
protected $_maxLifetime;
|
96 |
+
protected $_minLifetime;
|
97 |
+
|
98 |
+
static public $failedLockAttempts = 0; // for debug or informational purposes
|
99 |
+
|
100 |
+
public function __construct()
|
101 |
+
{
|
102 |
+
$this->_config = $config = Mage::getConfig()->getNode('global/redis_session');
|
103 |
+
if (!$config) {
|
104 |
+
$this->_useRedis = FALSE;
|
105 |
+
Mage::log('Redis configuration does not exist, falling back to MySQL handler.', Zend_Log::EMERG);
|
106 |
+
parent::__construct();
|
107 |
+
return;
|
108 |
+
}
|
109 |
+
|
110 |
+
$this->_logLevel = ((int) $config->descend('log_level') ?: self::DEFAULT_LOG_LEVEL);
|
111 |
+
if ($this->_logLevel >= Zend_Log::DEBUG) {
|
112 |
+
$timeStart = microtime(true);
|
113 |
+
}
|
114 |
+
|
115 |
+
// Database config
|
116 |
+
$host = ((string) $config->descend('host') ?: '127.0.0.1');
|
117 |
+
$port = ((int) $config->descend('port') ?: '6379');
|
118 |
+
$pass = ((string) $config->descend('password') ?: '');
|
119 |
+
$timeout = ((float) $config->descend('timeout') ?: self::DEFAULT_TIMEOUT);
|
120 |
+
$persistent = ((string) $config->descend('persistent') ?: '');
|
121 |
+
$this->_dbNum = ((int) $config->descend('db') ?: 0);
|
122 |
+
|
123 |
+
// General config
|
124 |
+
$this->_compressionThreshold = ((int) $config->descend('compression_threshold') ?: self::DEFAULT_COMPRESSION_THRESHOLD);
|
125 |
+
$this->_compressionLib = ((string) $config->descend('compression_lib') ?: self::DEFAULT_COMPRESSION_LIB);
|
126 |
+
$this->_maxConcurrency = ((int) $config->descend('max_concurrency') ?: self::DEFAULT_MAX_CONCURRENCY);
|
127 |
+
$this->_breakAfter = ((float) $config->descend('break_after_'.session_name()) ?: self::DEFAULT_BREAK_AFTER);
|
128 |
+
$this->_maxLifetime = ((int) $config->descend('max_lifetime') ?: self::DEFAULT_MAX_LIFETIME);
|
129 |
+
$this->_minLifetime = ((int) $config->descend('min_lifetime') ?: self::DEFAULT_MIN_LIFETIME);
|
130 |
+
$this->_useLocking = defined('CM_REDISSESSION_LOCKING_ENABLED')
|
131 |
+
? CM_REDISSESSION_LOCKING_ENABLED
|
132 |
+
: ! ((int) $config->descend('disable_locking') ?: self::DEFAULT_DISABLE_LOCKING);
|
133 |
+
|
134 |
+
// Use sleep time multiplier so break time is in seconds
|
135 |
+
$this->_breakAfter = (int) round((1000000 / self::SLEEP_TIME) * $this->_breakAfter);
|
136 |
+
$this->_failAfter = (int) round((1000000 / self::SLEEP_TIME) * self::FAIL_AFTER);
|
137 |
+
|
138 |
+
// Connect and authenticate
|
139 |
+
$this->_redis = new Credis_Client($host, $port, $timeout, $persistent);
|
140 |
+
if (!empty($pass)) {
|
141 |
+
$this->_redis->auth($pass) or Zend_Cache::throwException('Unable to authenticate with the redis server.');
|
142 |
+
}
|
143 |
+
$this->_redis->setCloseOnDestruct(FALSE); // Destructor order cannot be predicted
|
144 |
+
$this->_useRedis = TRUE;
|
145 |
+
if ($this->_logLevel >= Zend_Log::DEBUG) {
|
146 |
+
$this->_log(sprintf("%s initialized for connection to %s:%s after %.5f seconds",
|
147 |
+
get_class($this), $host, $port, (microtime(true) - $timeStart)
|
148 |
+
));
|
149 |
+
}
|
150 |
+
}
|
151 |
+
|
152 |
+
/**
|
153 |
+
* @param $msg
|
154 |
+
* @param $level
|
155 |
+
*/
|
156 |
+
protected function _log($msg, $level = Zend_Log::DEBUG)
|
157 |
+
{
|
158 |
+
Mage::log("{$this->_getPid()}: $msg", $level, self::LOG_FILE);
|
159 |
+
}
|
160 |
+
|
161 |
+
/**
|
162 |
+
* Check DB connection
|
163 |
+
*
|
164 |
+
* @return bool
|
165 |
+
*/
|
166 |
+
public function hasConnection()
|
167 |
+
{
|
168 |
+
if( ! $this->_useRedis) return parent::hasConnection();
|
169 |
+
|
170 |
+
try {
|
171 |
+
$this->_redis->connect();
|
172 |
+
if ($this->_logLevel >= Zend_Log::DEBUG) {
|
173 |
+
$this->_log("Connected to Redis");
|
174 |
+
}
|
175 |
+
return TRUE;
|
176 |
+
}
|
177 |
+
catch (Exception $e) {
|
178 |
+
Mage::logException($e);
|
179 |
+
$this->_redis = NULL;
|
180 |
+
Mage::log('Unable to connect to Redis; falling back to MySQL handler', Zend_Log::EMERG);
|
181 |
+
|
182 |
+
// Fall-back to MySQL handler. If this fails, the file handler will be used.
|
183 |
+
$this->_useRedis = FALSE;
|
184 |
+
parent::__construct();
|
185 |
+
return parent::hasConnection();
|
186 |
+
}
|
187 |
+
}
|
188 |
+
|
189 |
+
/**
|
190 |
+
* Fetch session data
|
191 |
+
*
|
192 |
+
* @param string $sessionId
|
193 |
+
* @return string
|
194 |
+
*/
|
195 |
+
public function read($sessionId)
|
196 |
+
{
|
197 |
+
if ( ! $this->_useRedis) return parent::read($sessionId);
|
198 |
+
Varien_Profiler::start(__METHOD__);
|
199 |
+
|
200 |
+
// Get lock on session. Increment the "lock" field and if the new value is 1, we have the lock.
|
201 |
+
$sessionId = self::SESSION_PREFIX.$sessionId;
|
202 |
+
$tries = $waiting = $lock = 0;
|
203 |
+
$lockPid = $oldLockPid = NULL; // Restart waiting for lock when current lock holder changes
|
204 |
+
$detectZombies = FALSE;
|
205 |
+
if ($this->_logLevel >= Zend_Log::WARN) {
|
206 |
+
$timeStart = microtime(true);
|
207 |
+
}
|
208 |
+
if ($this->_logLevel >= Zend_Log::DEBUG) {
|
209 |
+
$this->_log(sprintf("Attempting to take lock on ID %s", $sessionId));
|
210 |
+
}
|
211 |
+
$this->_redis->select($this->_dbNum);
|
212 |
+
while ($this->_useLocking)
|
213 |
+
{
|
214 |
+
// Increment lock value for this session and retrieve the new value
|
215 |
+
$oldLock = $lock;
|
216 |
+
$lock = $this->_redis->hIncrBy($sessionId, 'lock', 1);
|
217 |
+
|
218 |
+
// Get the pid of the process that has the lock
|
219 |
+
if ($lock != 1 && $tries + 1 >= $this->_breakAfter) {
|
220 |
+
$lockPid = $this->_redis->hGet($sessionId, 'pid');
|
221 |
+
}
|
222 |
+
|
223 |
+
// If we got the lock, update with our pid and reset lock and expiration
|
224 |
+
if ( $lock == 1 // We actually do have the lock
|
225 |
+
|| (
|
226 |
+
$tries >= $this->_breakAfter // We are done waiting and want to start trying to break it
|
227 |
+
&& $oldLockPid == $lockPid // Nobody else got the lock while we were waiting
|
228 |
+
)
|
229 |
+
) {
|
230 |
+
$this->_hasLock = TRUE;
|
231 |
+
break;
|
232 |
+
}
|
233 |
+
|
234 |
+
// Otherwise, add to "wait" counter and continue
|
235 |
+
else if ( ! $waiting) {
|
236 |
+
$i = 0;
|
237 |
+
do {
|
238 |
+
$waiting = $this->_redis->hIncrBy($sessionId, 'wait', 1);
|
239 |
+
} while (++$i < $this->_maxConcurrency && $waiting < 1);
|
240 |
+
}
|
241 |
+
|
242 |
+
// Handle overloaded sessions
|
243 |
+
else {
|
244 |
+
// Detect broken sessions (e.g. caused by fatal errors)
|
245 |
+
if ($detectZombies) {
|
246 |
+
$detectZombies = FALSE;
|
247 |
+
if ( $lock > $oldLock // lock shouldn't be less than old lock (another process broke the lock)
|
248 |
+
&& $lock + 1 < $oldLock + $waiting // lock should be old+waiting, otherwise there must be a dead process
|
249 |
+
) {
|
250 |
+
// Reset session to fresh state
|
251 |
+
if ($this->_logLevel >= Zend_Log::INFO) {
|
252 |
+
$this->_log(sprintf(
|
253 |
+
"Detected zombie waiter after %.5f seconds for ID %s (%d waiting)\n %s (%s - %s)",
|
254 |
+
(microtime(true) - $timeStart),
|
255 |
+
$sessionId, $waiting,
|
256 |
+
Mage::app()->getRequest()->getRequestUri(), Mage::app()->getRequest()->getClientIp(), Mage::app()->getRequest()->getHeader('User-Agent')
|
257 |
+
), Zend_Log::INFO);
|
258 |
+
}
|
259 |
+
$waiting = $this->_redis->hIncrBy($sessionId, 'wait', -1);
|
260 |
+
continue;
|
261 |
+
}
|
262 |
+
}
|
263 |
+
|
264 |
+
// Limit concurrent lock waiters to prevent server resource hogging
|
265 |
+
if ($waiting >= $this->_maxConcurrency) {
|
266 |
+
// Overloaded sessions get 503 errors
|
267 |
+
$this->_redis->hIncrBy($sessionId, 'wait', -1);
|
268 |
+
$this->_sessionWritten = TRUE; // Prevent session from getting written
|
269 |
+
$writes = $this->_redis->hGet($sessionId, 'writes');
|
270 |
+
if ($this->_logLevel >= Zend_Log::WARN) {
|
271 |
+
$this->_log(sprintf(
|
272 |
+
"Session concurrency exceeded for ID %s; displaying HTTP 503 (%s waiting, %s total requests)\n %s (%s - %s)",
|
273 |
+
$sessionId, $waiting, $writes,
|
274 |
+
Mage::app()->getRequest()->getRequestUri(), Mage::app()->getRequest()->getClientIp(), Mage::app()->getRequest()->getHeader('User-Agent')
|
275 |
+
), Zend_Log::WARN);
|
276 |
+
}
|
277 |
+
$this->_logLevel = -1; // Disable further logging
|
278 |
+
require_once(Mage::getBaseDir() . DS . 'errors' . DS . '503.php');
|
279 |
+
exit;
|
280 |
+
}
|
281 |
+
}
|
282 |
+
|
283 |
+
$tries++;
|
284 |
+
$oldLockPid = $lockPid;
|
285 |
+
$sleepTime = self::SLEEP_TIME;
|
286 |
+
|
287 |
+
// Detect dead lock waiters
|
288 |
+
if ($tries % self::DETECT_ZOMBIES == 1) {
|
289 |
+
$detectZombies = TRUE;
|
290 |
+
$sleepTime += 10000; // sleep + 0.01 seconds
|
291 |
+
}
|
292 |
+
// Detect dead lock holder every 10 seconds (only works on same node as lock holder)
|
293 |
+
if ($tries % self::DETECT_ZOMBIES == 0) {
|
294 |
+
Varien_Profiler::start(__METHOD__.'-detect-zombies');
|
295 |
+
if ($this->_logLevel >= Zend_Log::DEBUG) {
|
296 |
+
$this->_log(sprintf(
|
297 |
+
"Checking for zombies after %.5f seconds of waiting...", (microtime(true) - $timeStart)
|
298 |
+
));
|
299 |
+
}
|
300 |
+
$pid = $this->_redis->hGet($sessionId, 'pid');
|
301 |
+
if ($pid && ! $this->_pidExists($pid)) {
|
302 |
+
// Allow a live process to get the lock
|
303 |
+
$this->_redis->hSet($sessionId, 'lock', 0);
|
304 |
+
if ($this->_logLevel >= Zend_Log::INFO) {
|
305 |
+
$this->_log(sprintf(
|
306 |
+
"Detected zombie process (%s) for %s (%s waiting)\n %s (%s - %s)",
|
307 |
+
$pid, $sessionId, $waiting,
|
308 |
+
Mage::app()->getRequest()->getRequestUri(), Mage::app()->getRequest()->getClientIp(), Mage::app()->getRequest()->getHeader('User-Agent')
|
309 |
+
), Zend_Log::INFO);
|
310 |
+
}
|
311 |
+
Varien_Profiler::stop(__METHOD__.'-detect-zombies');
|
312 |
+
continue;
|
313 |
+
}
|
314 |
+
Varien_Profiler::stop(__METHOD__.'-detect-zombies');
|
315 |
+
}
|
316 |
+
// Timeout
|
317 |
+
if ($tries >= $this->_breakAfter + $this->_failAfter) {
|
318 |
+
$this->_hasLock = FALSE;
|
319 |
+
if ($this->_logLevel >= Zend_Log::NOTICE) {
|
320 |
+
$this->_log(sprintf("Giving up on read lock for ID %s after %.5f seconds (%d attempts)", $sessionId, (microtime(true) - $timeStart), $tries), Zend_Log::NOTICE);
|
321 |
+
}
|
322 |
+
break;
|
323 |
+
}
|
324 |
+
else {
|
325 |
+
if ($this->_logLevel >= Zend_Log::DEBUG) {
|
326 |
+
$this->_log(sprintf(
|
327 |
+
"Waiting %.2f seconds for lock on ID %s (%d tries, lock pid is %s, %.5f seconds elapsed)",
|
328 |
+
$sleepTime / 1000000, $sessionId, $tries, $lockPid, (microtime(true) - $timeStart)
|
329 |
+
));
|
330 |
+
}
|
331 |
+
Varien_Profiler::start(__METHOD__.'-wait');
|
332 |
+
usleep($sleepTime);
|
333 |
+
Varien_Profiler::stop(__METHOD__.'-wait');
|
334 |
+
}
|
335 |
+
}
|
336 |
+
self::$failedLockAttempts = $tries;
|
337 |
+
|
338 |
+
// Session can be read even if it was not locked by this pid!
|
339 |
+
if ($this->_logLevel >= Zend_Log::DEBUG) {
|
340 |
+
$timeStart = microtime(true);
|
341 |
+
}
|
342 |
+
list($sessionData, $sessionWrites) = $this->_redis->hMGet($sessionId, array('data','writes'));
|
343 |
+
Varien_Profiler::stop(__METHOD__);
|
344 |
+
if ($this->_logLevel >= Zend_Log::DEBUG) {
|
345 |
+
$this->_log(sprintf("Data read for ID %s in %.5f seconds", $sessionId, (microtime(true) - $timeStart)));
|
346 |
+
}
|
347 |
+
$this->_sessionWrites = (int) $sessionWrites;
|
348 |
+
|
349 |
+
$this->_redis->pipeline();
|
350 |
+
|
351 |
+
// This process is no longer waiting for a lock
|
352 |
+
if ($tries > 0) {
|
353 |
+
$this->_redis->hIncrBy($sessionId, 'wait', -1);
|
354 |
+
}
|
355 |
+
|
356 |
+
// This process has the lock, save the pid
|
357 |
+
if ($this->_hasLock) {
|
358 |
+
$setData = array(
|
359 |
+
'pid' => $this->_getPid(),
|
360 |
+
'lock' => 1,
|
361 |
+
);
|
362 |
+
|
363 |
+
// Save request data in session so if a lock is broken we can know which page it was for debugging
|
364 |
+
if ($this->_logLevel >= Zend_Log::INFO) {
|
365 |
+
if (empty($_SERVER['REQUEST_METHOD'])) {
|
366 |
+
$setData['req'] = $_SERVER['SCRIPT_NAME'];
|
367 |
+
} else {
|
368 |
+
$setData['req'] = "{$_SERVER['REQUEST_METHOD']} {$_SERVER['SERVER_NAME']}{$_SERVER['REQUEST_URI']}";
|
369 |
+
}
|
370 |
+
if ($lock != 1) {
|
371 |
+
$this->_log(sprintf(
|
372 |
+
"Successfully broke lock for ID %s after %.5f seconds (%d attempts). Lock: %d\nLast request of broken lock: %s",
|
373 |
+
$sessionId, (microtime(true) - $timeStart), $tries, $lock, $this->_redis->hGet($sessionId, 'req')
|
374 |
+
), Zend_Log::INFO);
|
375 |
+
}
|
376 |
+
}
|
377 |
+
$this->_redis->hMSet($sessionId, $setData);
|
378 |
+
}
|
379 |
+
|
380 |
+
// Set session expiration
|
381 |
+
$this->_redis->expire($sessionId, min($this->getLifeTime(), $this->_maxLifetime));
|
382 |
+
$this->_redis->exec();
|
383 |
+
|
384 |
+
// Reset flag in case of multiple session read/write operations
|
385 |
+
$this->_sessionWritten = FALSE;
|
386 |
+
|
387 |
+
return $sessionData ? $this->_decodeData($sessionData) : '';
|
388 |
+
}
|
389 |
+
|
390 |
+
/**
|
391 |
+
* Update session
|
392 |
+
*
|
393 |
+
* @param string $sessionId
|
394 |
+
* @param string $sessionData
|
395 |
+
* @return boolean
|
396 |
+
*/
|
397 |
+
public function write($sessionId, $sessionData)
|
398 |
+
{
|
399 |
+
Varien_Profiler::start(__METHOD__);
|
400 |
+
if ( ! $this->_useRedis) return parent::write($sessionId, $sessionData);
|
401 |
+
if ($this->_sessionWritten) {
|
402 |
+
if ($this->_logLevel >= Zend_Log::DEBUG) {
|
403 |
+
$this->_log(sprintf("Repeated session write detected; skipping for ID %s", $sessionId));
|
404 |
+
}
|
405 |
+
Varien_Profiler::stop(__METHOD__);
|
406 |
+
return TRUE;
|
407 |
+
}
|
408 |
+
$this->_sessionWritten = TRUE;
|
409 |
+
if ($this->_logLevel >= Zend_Log::WARN) {
|
410 |
+
$timeStart = microtime(true);
|
411 |
+
}
|
412 |
+
|
413 |
+
// Do not overwrite the session if it is locked by another pid
|
414 |
+
try {
|
415 |
+
if($this->_dbNum) $this->_redis->select($this->_dbNum); // Prevent conflicts with other connections?
|
416 |
+
|
417 |
+
if ( ! $this->_useLocking
|
418 |
+
|| ( ! ($pid = $this->_redis->hGet('sess_'.$sessionId, 'pid')) || $pid == $this->_getPid())
|
419 |
+
) {
|
420 |
+
$this->_writeRawSession($sessionId, $sessionData, $this->getLifeTime());
|
421 |
+
if ($this->_logLevel >= Zend_Log::DEBUG) {
|
422 |
+
$this->_log(sprintf("Data written to ID %s in %.5f seconds", $sessionId, (microtime(true) - $timeStart)));
|
423 |
+
}
|
424 |
+
}
|
425 |
+
else {
|
426 |
+
if ($this->_logLevel >= Zend_Log::WARN) {
|
427 |
+
if ($this->_hasLock) {
|
428 |
+
$this->_log(sprintf("Did not write session for ID %s: another process took the lock.",
|
429 |
+
$sessionId
|
430 |
+
), Zend_Log::WARN);
|
431 |
+
} else {
|
432 |
+
$this->_log(sprintf("Did not write session for ID %s: unable to acquire lock.",
|
433 |
+
$sessionId
|
434 |
+
), Zend_Log::WARN);
|
435 |
+
}
|
436 |
+
}
|
437 |
+
}
|
438 |
+
}
|
439 |
+
catch(Exception $e) {
|
440 |
+
if (class_exists('Mage', false)) {
|
441 |
+
Mage::logException($e);
|
442 |
+
} else {
|
443 |
+
error_log("$e");
|
444 |
+
}
|
445 |
+
Varien_Profiler::stop(__METHOD__);
|
446 |
+
return FALSE;
|
447 |
+
}
|
448 |
+
Varien_Profiler::stop(__METHOD__);
|
449 |
+
return TRUE;
|
450 |
+
}
|
451 |
+
|
452 |
+
/**
|
453 |
+
* Destroy session
|
454 |
+
*
|
455 |
+
* @param string $sessionId
|
456 |
+
* @return boolean
|
457 |
+
*/
|
458 |
+
public function destroy($sessionId)
|
459 |
+
{
|
460 |
+
if ( ! $this->_useRedis) return parent::destroy($sessionId);
|
461 |
+
Varien_Profiler::start(__METHOD__);
|
462 |
+
|
463 |
+
if ($this->_logLevel >= Zend_Log::DEBUG) {
|
464 |
+
$this->_log(sprintf("Destroying ID %s", $sessionId));
|
465 |
+
}
|
466 |
+
$this->_redis->pipeline();
|
467 |
+
if($this->_dbNum) $this->_redis->select($this->_dbNum);
|
468 |
+
$this->_redis->del(self::SESSION_PREFIX.$sessionId);
|
469 |
+
$this->_redis->exec();
|
470 |
+
Varien_Profiler::stop(__METHOD__);
|
471 |
+
return TRUE;
|
472 |
+
}
|
473 |
+
|
474 |
+
/**
|
475 |
+
* Overridden to prevent calling getLifeTime at shutdown
|
476 |
+
*
|
477 |
+
* @return bool
|
478 |
+
*/
|
479 |
+
public function close()
|
480 |
+
{
|
481 |
+
if ( ! $this->_useRedis) return parent::close();
|
482 |
+
if ($this->_logLevel >= Zend_Log::DEBUG) {
|
483 |
+
$this->_log("Closing connection");
|
484 |
+
}
|
485 |
+
if ($this->_redis) $this->_redis->close();
|
486 |
+
return TRUE;
|
487 |
+
}
|
488 |
+
|
489 |
+
/**
|
490 |
+
* Garbage collection
|
491 |
+
*
|
492 |
+
* @param int $maxLifeTime ignored
|
493 |
+
* @return boolean
|
494 |
+
*/
|
495 |
+
public function gc($maxLifeTime)
|
496 |
+
{
|
497 |
+
if ( ! $this->_useRedis) return parent::gc($maxLifeTime);
|
498 |
+
return TRUE;
|
499 |
+
}
|
500 |
+
|
501 |
+
/**
|
502 |
+
* @return int|mixed
|
503 |
+
*/
|
504 |
+
public function getLifeTime()
|
505 |
+
{
|
506 |
+
if ( ! $this->_config) return parent::getLifeTime();
|
507 |
+
|
508 |
+
if ($this->_lifeTime === NULL) {
|
509 |
+
$lifeTime = NULL;
|
510 |
+
|
511 |
+
// Detect bots by user agent
|
512 |
+
$botLifetime = ((int) $this->_config->descend('bot_lifetime') ?: self::DEFAULT_BOT_LIFETIME);
|
513 |
+
if ($botLifetime) {
|
514 |
+
$userAgent = empty($_SERVER['HTTP_USER_AGENT']) ? FALSE : $_SERVER['HTTP_USER_AGENT'];
|
515 |
+
$isBot = ! $userAgent || preg_match(self::BOT_REGEX, $userAgent);
|
516 |
+
if ($isBot) {
|
517 |
+
if ($this->_logLevel > Zend_Log::DEBUG) {
|
518 |
+
$this->_log(sprintf("Bot detected for user agent: %s", $userAgent));
|
519 |
+
}
|
520 |
+
if ( $this->_sessionWrites <= 1
|
521 |
+
&& ($botFirstLifetime = ((int) $this->_config->descend('bot_first_lifetime') ?: self::DEFAULT_BOT_FIRST_LIFETIME))
|
522 |
+
) {
|
523 |
+
$lifeTime = $botFirstLifetime * (1+$this->_sessionWrites);
|
524 |
+
} else {
|
525 |
+
$lifeTime = min(parent::getLifeTime(), $botLifetime);
|
526 |
+
}
|
527 |
+
}
|
528 |
+
}
|
529 |
+
|
530 |
+
// Use different lifetime for first write
|
531 |
+
if ($lifeTime === NULL && $this->_sessionWrites <= 1) {
|
532 |
+
$firstLifetime = ((int) $this->_config->descend('first_lifetime') ?: self::DEFAULT_FIRST_LIFETIME);
|
533 |
+
if ($firstLifetime) {
|
534 |
+
$lifeTime = $firstLifetime * (1+$this->_sessionWrites);
|
535 |
+
}
|
536 |
+
}
|
537 |
+
|
538 |
+
// Neither bot nor first write
|
539 |
+
if ($lifeTime === NULL) {
|
540 |
+
$lifeTime = parent::getLifeTime();
|
541 |
+
}
|
542 |
+
|
543 |
+
$this->_lifeTime = $lifeTime;
|
544 |
+
if ($this->_lifeTime < $this->_minLifetime) {
|
545 |
+
$this->_lifeTime = $this->_minLifetime;
|
546 |
+
}
|
547 |
+
if ($this->_lifeTime > $this->_maxLifetime) {
|
548 |
+
$this->_lifeTime = $this->_maxLifetime;
|
549 |
+
}
|
550 |
+
}
|
551 |
+
return $this->_lifeTime;
|
552 |
+
}
|
553 |
+
|
554 |
+
/**
|
555 |
+
* Public for testing purposes only.
|
556 |
+
*
|
557 |
+
* @param string $data
|
558 |
+
* @return string
|
559 |
+
*/
|
560 |
+
public function _encodeData($data)
|
561 |
+
{
|
562 |
+
Varien_Profiler::start(__METHOD__);
|
563 |
+
$originalDataSize = strlen($data);
|
564 |
+
if ($this->_compressionThreshold > 0 && $this->_compressionLib != 'none' && $originalDataSize >= $this->_compressionThreshold) {
|
565 |
+
if ($this->_logLevel >= Zend_Log::DEBUG) {
|
566 |
+
$this->_log(sprintf("Compressing %s bytes with %s", $originalDataSize,$this->_compressionLib));
|
567 |
+
$timeStart = microtime(true);
|
568 |
+
}
|
569 |
+
$prefix = ':'.substr($this->_compressionLib,0,2).':';
|
570 |
+
switch($this->_compressionLib) {
|
571 |
+
case 'snappy': $data = snappy_compress($data); break;
|
572 |
+
case 'lzf': $data = lzf_compress($data); break;
|
573 |
+
case 'lz4': $data = lz4_compress($data); $prefix = ':l4:'; break;
|
574 |
+
case 'gzip': $data = gzcompress($data, 1); break;
|
575 |
+
}
|
576 |
+
if($data) {
|
577 |
+
$data = $prefix.$data;
|
578 |
+
if ($this->_logLevel >= Zend_Log::DEBUG) {
|
579 |
+
$this->_log(sprintf("Data compressed by %.1f percent in %.5f seconds",
|
580 |
+
($originalDataSize == 0 ? 0 : (100 - (strlen($data) / $originalDataSize * 100))), (microtime(true) - $timeStart)
|
581 |
+
));
|
582 |
+
}
|
583 |
+
} else if ($this->_logLevel >= Zend_Log::WARN) {
|
584 |
+
$this->_log(sprintf("Could not compress session data using %s", $this->_compressionLib), Zend_Log::WARN);
|
585 |
+
}
|
586 |
+
}
|
587 |
+
Varien_Profiler::stop(__METHOD__);
|
588 |
+
return $data;
|
589 |
+
}
|
590 |
+
|
591 |
+
/**
|
592 |
+
* Public for testing purposes only.
|
593 |
+
*
|
594 |
+
* @param string $data
|
595 |
+
* @return string
|
596 |
+
*/
|
597 |
+
public function _decodeData($data)
|
598 |
+
{
|
599 |
+
Varien_Profiler::start(__METHOD__);
|
600 |
+
switch (substr($data,0,4)) {
|
601 |
+
// asking the data which library it uses allows for transparent changes of libraries
|
602 |
+
case ':sn:': $data = snappy_uncompress(substr($data,4)); break;
|
603 |
+
case ':lz:': $data = lzf_decompress(substr($data,4)); break;
|
604 |
+
case ':l4:': $data = lz4_uncompress(substr($data,4)); break;
|
605 |
+
case ':gz:': $data = gzuncompress(substr($data,4)); break;
|
606 |
+
}
|
607 |
+
Varien_Profiler::stop(__METHOD__);
|
608 |
+
return $data;
|
609 |
+
}
|
610 |
+
|
611 |
+
/**
|
612 |
+
* Public for testing/import purposes only.
|
613 |
+
*
|
614 |
+
* @param $id
|
615 |
+
* @param $data
|
616 |
+
* @param $lifetime
|
617 |
+
* @throws Exception
|
618 |
+
*/
|
619 |
+
public function _writeRawSession($id, $data, $lifetime)
|
620 |
+
{
|
621 |
+
if ( ! $this->_useRedis) {
|
622 |
+
throw new Exception('Not connected to redis!');
|
623 |
+
}
|
624 |
+
|
625 |
+
$sessionId = 'sess_' . $id;
|
626 |
+
$this->_redis->pipeline()
|
627 |
+
->select($this->_dbNum)
|
628 |
+
->hMSet($sessionId, array(
|
629 |
+
'data' => $this->_encodeData($data),
|
630 |
+
'lock' => 0, // 0 so that next lock attempt will get 1
|
631 |
+
))
|
632 |
+
->hIncrBy($sessionId, 'writes', 1)
|
633 |
+
->expire($sessionId, min($lifetime, $this->_maxLifetime))
|
634 |
+
->exec();
|
635 |
+
}
|
636 |
+
|
637 |
+
/**
|
638 |
+
* @param string $id
|
639 |
+
* @return array
|
640 |
+
* @throws Exception
|
641 |
+
*/
|
642 |
+
public function _inspectSession($id)
|
643 |
+
{
|
644 |
+
if ( ! $this->_useRedis) {
|
645 |
+
throw new Exception('Not connected to redis!');
|
646 |
+
}
|
647 |
+
|
648 |
+
$sessionId = strpos($id, 'sess_') === 0 ? $id : 'sess_' . $id;
|
649 |
+
$this->_redis->select($this->_dbNum);
|
650 |
+
$data = $this->_redis->hGetAll($sessionId);
|
651 |
+
if ($data && isset($data['data'])) {
|
652 |
+
$data['data'] = $this->_decodeData($data['data']);
|
653 |
+
}
|
654 |
+
return $data;
|
655 |
+
}
|
656 |
+
|
657 |
+
/**
|
658 |
+
* Public for testing/inspection purposes only.
|
659 |
+
*
|
660 |
+
* @param $forceStandalone
|
661 |
+
* @return Credis_Client
|
662 |
+
*/
|
663 |
+
public function _redisClient($forceStandalone)
|
664 |
+
{
|
665 |
+
if ($forceStandalone) {
|
666 |
+
$this->_redis->forceStandalone();
|
667 |
+
}
|
668 |
+
if ($this->_dbNum) {
|
669 |
+
$this->_redis->select($this->_dbNum);
|
670 |
+
}
|
671 |
+
return $this->_redis;
|
672 |
+
}
|
673 |
+
|
674 |
+
/**
|
675 |
+
* @return string
|
676 |
+
*/
|
677 |
+
public function _getPid()
|
678 |
+
{
|
679 |
+
return gethostname().'|'.getmypid();
|
680 |
+
}
|
681 |
+
|
682 |
+
/**
|
683 |
+
* @param $pid
|
684 |
+
* @return bool
|
685 |
+
*/
|
686 |
+
public function _pidExists($pid)
|
687 |
+
{
|
688 |
+
list($host,$pid) = explode('|', $pid);
|
689 |
+
if (PHP_OS != 'Linux' || $host != gethostname()) {
|
690 |
+
return TRUE;
|
691 |
+
}
|
692 |
+
return @file_exists('/proc/'.$pid);
|
693 |
+
}
|
694 |
+
|
695 |
+
}
|
app/code/community/Cm/RedisSession/etc/config.xml
ADDED
@@ -0,0 +1,48 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
<?xml version="1.0"?>
|
2 |
+
<!--
|
3 |
+
/*
|
4 |
+
==New BSD License==
|
5 |
+
|
6 |
+
Copyright (c) 2013, Colin Mollenhour
|
7 |
+
All rights reserved.
|
8 |
+
|
9 |
+
Redistribution and use in source and binary forms, with or without
|
10 |
+
modification, are permitted provided that the following conditions are met:
|
11 |
+
|
12 |
+
* Redistributions of source code must retain the above copyright
|
13 |
+
notice, this list of conditions and the following disclaimer.
|
14 |
+
* Redistributions in binary form must reproduce the above copyright
|
15 |
+
notice, this list of conditions and the following disclaimer in the
|
16 |
+
documentation and/or other materials provided with the distribution.
|
17 |
+
* The name of Colin Mollenhour may not be used to endorse or promote products
|
18 |
+
derived from this software without specific prior written permission.
|
19 |
+
* The module name must remain Cm_RedisSession.
|
20 |
+
|
21 |
+
THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND
|
22 |
+
ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
|
23 |
+
WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
|
24 |
+
DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER BE LIABLE FOR ANY
|
25 |
+
DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
|
26 |
+
(INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
|
27 |
+
LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND
|
28 |
+
ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
|
29 |
+
(INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
|
30 |
+
SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
|
31 |
+
*/
|
32 |
+
-->
|
33 |
+
<config>
|
34 |
+
<modules>
|
35 |
+
<Cm_RedisSession>
|
36 |
+
<version>0.2</version>
|
37 |
+
</Cm_RedisSession>
|
38 |
+
</modules>
|
39 |
+
<global>
|
40 |
+
<models>
|
41 |
+
<core_mysql4>
|
42 |
+
<rewrite>
|
43 |
+
<session>Cm_RedisSession_Model_Session</session>
|
44 |
+
</rewrite>
|
45 |
+
</core_mysql4>
|
46 |
+
</models>
|
47 |
+
</global>
|
48 |
+
</config>
|
app/code/community/PayItSimple/Payment/Model/PisMethod.php
CHANGED
@@ -174,7 +174,8 @@ class PayItSimple_Payment_Model_PisMethod extends Mage_Payment_Model_Method_Cc
|
|
174 |
'CardExpYear' => $payment->getCcExpYear(),
|
175 |
'CardCvv' => $payment->getCcCid(),
|
176 |
'InstallmentNumber' => $payment->getInstallmentsNo(),
|
177 |
-
'ParamX' => $order->getIncrementId()
|
|
|
178 |
);
|
179 |
$result = $api->createInstallmentPlan($params);
|
180 |
$this->debugData('REQUEST: ' . $api->getRequest());
|
174 |
'CardExpYear' => $payment->getCcExpYear(),
|
175 |
'CardCvv' => $payment->getCcCid(),
|
176 |
'InstallmentNumber' => $payment->getInstallmentsNo(),
|
177 |
+
'ParamX' => $order->getIncrementId(),
|
178 |
+
'CurrencyName' => Mage::app()->getStore()->getCurrentCurrencyCode()
|
179 |
);
|
180 |
$result = $api->createInstallmentPlan($params);
|
181 |
$this->debugData('REQUEST: ' . $api->getRequest());
|
app/code/community/Phoenix/Moneybookers/Block/Form.php
ADDED
@@ -0,0 +1,93 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
<?php
|
2 |
+
/**
|
3 |
+
* Magento
|
4 |
+
*
|
5 |
+
* NOTICE OF LICENSE
|
6 |
+
*
|
7 |
+
* This source file is subject to the Open Software License (OSL 3.0)
|
8 |
+
* that is bundled with this package in the file LICENSE.txt.
|
9 |
+
* It is also available through the world-wide-web at this URL:
|
10 |
+
* http://opensource.org/licenses/osl-3.0.php
|
11 |
+
* If you did not receive a copy of the license and are unable to
|
12 |
+
* obtain it through the world-wide-web, please send an email
|
13 |
+
* to license@magentocommerce.com so we can send you a copy immediately.
|
14 |
+
*
|
15 |
+
* @category Phoenix
|
16 |
+
* @package Phoenix_Moneybookers
|
17 |
+
* @copyright Copyright (c) 2015 Phoenix Medien GmbH & Co. KG (http://www.phoenix-medien.de)
|
18 |
+
* @license http://opensource.org/licenses/osl-3.0.php Open Software License (OSL 3.0)
|
19 |
+
*/
|
20 |
+
class Phoenix_Moneybookers_Block_Form extends Mage_Payment_Block_Form
|
21 |
+
{
|
22 |
+
/**
|
23 |
+
* Available locales for content URL generation
|
24 |
+
*
|
25 |
+
* @var array
|
26 |
+
*/
|
27 |
+
protected $_supportedInfoLocales = array('de');
|
28 |
+
|
29 |
+
/**
|
30 |
+
* Default locale for content URL generation
|
31 |
+
*
|
32 |
+
* @var string
|
33 |
+
*/
|
34 |
+
protected $_defaultInfoLocale = 'en';
|
35 |
+
|
36 |
+
/**
|
37 |
+
* Constructor. Set template.
|
38 |
+
*/
|
39 |
+
protected function _construct()
|
40 |
+
{
|
41 |
+
parent::_construct();
|
42 |
+
$this->setTemplate('moneybookers/form.phtml');
|
43 |
+
}
|
44 |
+
|
45 |
+
/**
|
46 |
+
* Return payment logo image src
|
47 |
+
*
|
48 |
+
* @param string $payment Payment Code
|
49 |
+
* @return string|bool
|
50 |
+
*/
|
51 |
+
public function getPaymentImageSrc($payment)
|
52 |
+
{
|
53 |
+
if ($payment == 'moneybookers_obt') {
|
54 |
+
$payment .= '_'.$this->getInfoLocale();
|
55 |
+
}
|
56 |
+
|
57 |
+
$imageFilename = Mage::getDesign()
|
58 |
+
->getFilename('images' . DS . 'moneybookers' . DS . $payment, array('_type' => 'skin'));
|
59 |
+
|
60 |
+
if (file_exists($imageFilename . '.png')) {
|
61 |
+
return $this->getSkinUrl('images/moneybookers/' . $payment . '.png');
|
62 |
+
} else if (file_exists($imageFilename . '.gif')) {
|
63 |
+
return $this->getSkinUrl('images/moneybookers/' . $payment . '.gif');
|
64 |
+
}
|
65 |
+
|
66 |
+
return false;
|
67 |
+
}
|
68 |
+
|
69 |
+
/**
|
70 |
+
* Return supported locale for information text
|
71 |
+
*
|
72 |
+
* @return string
|
73 |
+
*/
|
74 |
+
public function getInfoLocale()
|
75 |
+
{
|
76 |
+
$locale = substr(Mage::app()->getLocale()->getLocaleCode(), 0 ,2);
|
77 |
+
if (!in_array($locale, $this->_supportedInfoLocales)) {
|
78 |
+
$locale = $this->_defaultInfoLocale;
|
79 |
+
}
|
80 |
+
return $locale;
|
81 |
+
}
|
82 |
+
|
83 |
+
/**
|
84 |
+
* Return info URL for eWallet payment
|
85 |
+
*
|
86 |
+
* @return string
|
87 |
+
*/
|
88 |
+
public function getWltInfoUrl()
|
89 |
+
{
|
90 |
+
$locale = substr(Mage::app()->getLocale()->getLocaleCode(), 0 ,2);
|
91 |
+
return 'http://www.moneybookers.com/app/?l=' . strtoupper($locale);
|
92 |
+
}
|
93 |
+
}
|
app/code/community/Phoenix/Moneybookers/Block/Info.php
ADDED
@@ -0,0 +1,51 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
<?php
|
2 |
+
/**
|
3 |
+
* Magento
|
4 |
+
*
|
5 |
+
* NOTICE OF LICENSE
|
6 |
+
*
|
7 |
+
* This source file is subject to the Open Software License (OSL 3.0)
|
8 |
+
* that is bundled with this package in the file LICENSE.txt.
|
9 |
+
* It is also available through the world-wide-web at this URL:
|
10 |
+
* http://opensource.org/licenses/osl-3.0.php
|
11 |
+
* If you did not receive a copy of the license and are unable to
|
12 |
+
* obtain it through the world-wide-web, please send an email
|
13 |
+
* to license@magentocommerce.com so we can send you a copy immediately.
|
14 |
+
*
|
15 |
+
* @category Phoenix
|
16 |
+
* @package Phoenix_Moneybookers
|
17 |
+
* @copyright Copyright (c) 2015 Phoenix Medien GmbH & Co. KG (http://www.phoenix-medien.de)
|
18 |
+
* @license http://opensource.org/licenses/osl-3.0.php Open Software License (OSL 3.0)
|
19 |
+
*/
|
20 |
+
class Phoenix_Moneybookers_Block_Info extends Mage_Payment_Block_Info
|
21 |
+
{
|
22 |
+
/**
|
23 |
+
* Constructor. Set template.
|
24 |
+
*/
|
25 |
+
protected function _construct()
|
26 |
+
{
|
27 |
+
parent::_construct();
|
28 |
+
$this->setTemplate('moneybookers/info.phtml');
|
29 |
+
}
|
30 |
+
|
31 |
+
/**
|
32 |
+
* Returns code of payment method
|
33 |
+
*
|
34 |
+
* @return string
|
35 |
+
*/
|
36 |
+
public function getMethodCode()
|
37 |
+
{
|
38 |
+
return $this->getInfo()->getMethodInstance()->getCode();
|
39 |
+
}
|
40 |
+
|
41 |
+
/**
|
42 |
+
* Build PDF content of info block
|
43 |
+
*
|
44 |
+
* @return string
|
45 |
+
*/
|
46 |
+
public function toPdf()
|
47 |
+
{
|
48 |
+
$this->setTemplate('moneybookers/pdf/info.phtml');
|
49 |
+
return $this->toHtml();
|
50 |
+
}
|
51 |
+
}
|
app/code/community/Phoenix/Moneybookers/Block/Jsinit.php
ADDED
@@ -0,0 +1,49 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
<?php
|
2 |
+
/**
|
3 |
+
* Magento
|
4 |
+
*
|
5 |
+
* NOTICE OF LICENSE
|
6 |
+
*
|
7 |
+
* This source file is subject to the Open Software License (OSL 3.0)
|
8 |
+
* that is bundled with this package in the file LICENSE.txt.
|
9 |
+
* It is also available through the world-wide-web at this URL:
|
10 |
+
* http://opensource.org/licenses/osl-3.0.php
|
11 |
+
* If you did not receive a copy of the license and are unable to
|
12 |
+
* obtain it through the world-wide-web, please send an email
|
13 |
+
* to license@magentocommerce.com so we can send you a copy immediately.
|
14 |
+
*
|
15 |
+
* @category Phoenix
|
16 |
+
* @package Phoenix_Moneybookers
|
17 |
+
* @copyright Copyright (c) 2015 Phoenix Medien GmbH & Co. KG (http://www.phoenix-medien.de)
|
18 |
+
* @license http://opensource.org/licenses/osl-3.0.php Open Software License (OSL 3.0)
|
19 |
+
*/
|
20 |
+
class Phoenix_Moneybookers_Block_Jsinit extends Mage_Adminhtml_Block_Template
|
21 |
+
{
|
22 |
+
/**
|
23 |
+
* Include JS in head if section is moneybookers
|
24 |
+
*/
|
25 |
+
protected function _prepareLayout()
|
26 |
+
{
|
27 |
+
$section = $this->getAction()->getRequest()->getParam('section', false);
|
28 |
+
if ($section == 'moneybookers') {
|
29 |
+
$this->getLayout()
|
30 |
+
->getBlock('head')
|
31 |
+
->addJs('mage/adminhtml/moneybookers.js');
|
32 |
+
}
|
33 |
+
parent::_prepareLayout();
|
34 |
+
}
|
35 |
+
|
36 |
+
/**
|
37 |
+
* Print init JS script into body
|
38 |
+
* @return string
|
39 |
+
*/
|
40 |
+
protected function _toHtml()
|
41 |
+
{
|
42 |
+
$section = $this->getAction()->getRequest()->getParam('section', false);
|
43 |
+
if ($section == 'moneybookers') {
|
44 |
+
return parent::_toHtml();
|
45 |
+
} else {
|
46 |
+
return '';
|
47 |
+
}
|
48 |
+
}
|
49 |
+
}
|
app/code/community/Phoenix/Moneybookers/Block/Payment.php
ADDED
@@ -0,0 +1,39 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
<?php
|
2 |
+
/**
|
3 |
+
* Magento
|
4 |
+
*
|
5 |
+
* NOTICE OF LICENSE
|
6 |
+
*
|
7 |
+
* This source file is subject to the Open Software License (OSL 3.0)
|
8 |
+
* that is bundled with this package in the file LICENSE.txt.
|
9 |
+
* It is also available through the world-wide-web at this URL:
|
10 |
+
* http://opensource.org/licenses/osl-3.0.php
|
11 |
+
* If you did not receive a copy of the license and are unable to
|
12 |
+
* obtain it through the world-wide-web, please send an email
|
13 |
+
* to license@magentocommerce.com so we can send you a copy immediately.
|
14 |
+
*
|
15 |
+
* @category Phoenix
|
16 |
+
* @package Phoenix_Moneybookers
|
17 |
+
* @copyright Copyright (c) 2015 Phoenix Medien GmbH & Co. KG (http://www.phoenix-medien.de)
|
18 |
+
* @license http://opensource.org/licenses/osl-3.0.php Open Software License (OSL 3.0)
|
19 |
+
*/
|
20 |
+
class Phoenix_Moneybookers_Block_Payment extends Mage_Core_Block_Template
|
21 |
+
{
|
22 |
+
/**
|
23 |
+
* Return Payment logo src
|
24 |
+
*
|
25 |
+
* @return string
|
26 |
+
*/
|
27 |
+
public function getMoneybookersLogoSrc()
|
28 |
+
{
|
29 |
+
$locale = Mage::getModel('moneybookers/acc')->getLocale();
|
30 |
+
$logoFilename = Mage::getDesign()
|
31 |
+
->getFilename('images' . DS . 'moneybookers' . DS . 'banner_120_' . $locale . '.gif', array('_type' => 'skin'));
|
32 |
+
|
33 |
+
if (file_exists($logoFilename)) {
|
34 |
+
return $this->getSkinUrl('images/moneybookers/banner_120_'.$locale.'.gif');
|
35 |
+
}
|
36 |
+
|
37 |
+
return $this->getSkinUrl('images/moneybookers/banner_120_int.gif');
|
38 |
+
}
|
39 |
+
}
|
app/code/community/Phoenix/Moneybookers/Block/Placeform.php
ADDED
@@ -0,0 +1,67 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
<?php
|
2 |
+
/**
|
3 |
+
* Magento
|
4 |
+
*
|
5 |
+
* NOTICE OF LICENSE
|
6 |
+
*
|
7 |
+
* This source file is subject to the Open Software License (OSL 3.0)
|
8 |
+
* that is bundled with this package in the file LICENSE.txt.
|
9 |
+
* It is also available through the world-wide-web at this URL:
|
10 |
+
* http://opensource.org/licenses/osl-3.0.php
|
11 |
+
* If you did not receive a copy of the license and are unable to
|
12 |
+
* obtain it through the world-wide-web, please send an email
|
13 |
+
* to license@magentocommerce.com so we can send you a copy immediately.
|
14 |
+
*
|
15 |
+
* @category Phoenix
|
16 |
+
* @package Phoenix_Moneybookers
|
17 |
+
* @copyright Copyright (c) 2015 Phoenix Medien GmbH & Co. KG (http://www.phoenix-medien.de)
|
18 |
+
* @license http://opensource.org/licenses/osl-3.0.php Open Software License (OSL 3.0)
|
19 |
+
*/
|
20 |
+
class Phoenix_Moneybookers_Block_Placeform extends Mage_Core_Block_Template
|
21 |
+
{
|
22 |
+
/**
|
23 |
+
* Return checkout session instance
|
24 |
+
*
|
25 |
+
* @return Mage_Checkout_Model_Session
|
26 |
+
*/
|
27 |
+
protected function _getCheckout()
|
28 |
+
{
|
29 |
+
return Mage::getSingleton('checkout/session');
|
30 |
+
}
|
31 |
+
|
32 |
+
/**
|
33 |
+
* Return order instance
|
34 |
+
*
|
35 |
+
* @return Mage_Sales_Model_Order|null
|
36 |
+
*/
|
37 |
+
protected function _getOrder()
|
38 |
+
{
|
39 |
+
if ($this->getOrder()) {
|
40 |
+
return $this->getOrder();
|
41 |
+
} elseif ($orderIncrementId = $this->_getCheckout()->getLastRealOrderId()) {
|
42 |
+
return Mage::getModel('sales/order')->loadByIncrementId($orderIncrementId);
|
43 |
+
} else {
|
44 |
+
return null;
|
45 |
+
}
|
46 |
+
}
|
47 |
+
|
48 |
+
/**
|
49 |
+
* Get Form data by using ogone payment api
|
50 |
+
*
|
51 |
+
* @return array
|
52 |
+
*/
|
53 |
+
public function getFormData()
|
54 |
+
{
|
55 |
+
return $this->_getOrder()->getPayment()->getMethodInstance()->getFormFields();
|
56 |
+
}
|
57 |
+
|
58 |
+
/**
|
59 |
+
* Getting gateway url
|
60 |
+
*
|
61 |
+
* @return string
|
62 |
+
*/
|
63 |
+
public function getFormAction()
|
64 |
+
{
|
65 |
+
return $this->_getOrder()->getPayment()->getMethodInstance()->getUrl();
|
66 |
+
}
|
67 |
+
}
|
app/code/community/Phoenix/Moneybookers/Block/Redirect.php
ADDED
@@ -0,0 +1,30 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
<?php
|
2 |
+
/**
|
3 |
+
* Magento
|
4 |
+
*
|
5 |
+
* NOTICE OF LICENSE
|
6 |
+
*
|
7 |
+
* This source file is subject to the Open Software License (OSL 3.0)
|
8 |
+
* that is bundled with this package in the file LICENSE.txt.
|
9 |
+
* It is also available through the world-wide-web at this URL:
|
10 |
+
* http://opensource.org/licenses/osl-3.0.php
|
11 |
+
* If you did not receive a copy of the license and are unable to
|
12 |
+
* obtain it through the world-wide-web, please send an email
|
13 |
+
* to license@magentocommerce.com so we can send you a copy immediately.
|
14 |
+
*
|
15 |
+
* @category Phoenix
|
16 |
+
* @package Phoenix_Moneybookers
|
17 |
+
* @copyright Copyright (c) 2015 Phoenix Medien GmbH & Co. KG (http://www.phoenix-medien.de)
|
18 |
+
* @license http://opensource.org/licenses/osl-3.0.php Open Software License (OSL 3.0)
|
19 |
+
*/
|
20 |
+
class Phoenix_Moneybookers_Block_Redirect extends Mage_Core_Block_Template
|
21 |
+
{
|
22 |
+
/**
|
23 |
+
* Constructor. Set template.
|
24 |
+
*/
|
25 |
+
protected function _construct()
|
26 |
+
{
|
27 |
+
parent::_construct();
|
28 |
+
$this->setTemplate('moneybookers/redirect.phtml');
|
29 |
+
}
|
30 |
+
}
|
app/code/community/Phoenix/Moneybookers/Helper/Data.php
ADDED
@@ -0,0 +1,130 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
<?php
|
2 |
+
/**
|
3 |
+
* Magento
|
4 |
+
*
|
5 |
+
* NOTICE OF LICENSE
|
6 |
+
*
|
7 |
+
* This source file is subject to the Open Software License (OSL 3.0)
|
8 |
+
* that is bundled with this package in the file LICENSE.txt.
|
9 |
+
* It is also available through the world-wide-web at this URL:
|
10 |
+
* http://opensource.org/licenses/osl-3.0.php
|
11 |
+
* If you did not receive a copy of the license and are unable to
|
12 |
+
* obtain it through the world-wide-web, please send an email
|
13 |
+
* to license@magentocommerce.com so we can send you a copy immediately.
|
14 |
+
*
|
15 |
+
* @category Phoenix
|
16 |
+
* @package Phoenix_Moneybookers
|
17 |
+
* @copyright Copyright (c) 2015 Phoenix Medien GmbH & Co. KG (http://www.phoenix-medien.de)
|
18 |
+
* @license http://opensource.org/licenses/osl-3.0.php Open Software License (OSL 3.0)
|
19 |
+
*/
|
20 |
+
class Phoenix_Moneybookers_Helper_Data extends Mage_Payment_Helper_Data
|
21 |
+
{
|
22 |
+
const XML_PATH_EMAIL = 'moneybookers/settings/moneybookers_email';
|
23 |
+
const XML_PATH_CUSTOMER_ID = 'moneybookers/settings/customer_id';
|
24 |
+
const XML_PATH_SECRET_KEY = 'moneybookers/settings/secret_key';
|
25 |
+
|
26 |
+
/**
|
27 |
+
* Internal parameters for validation
|
28 |
+
*/
|
29 |
+
protected $_moneybookersServer = 'https://www.moneybookers.com';
|
30 |
+
protected $_checkEmailUrl = '/app/email_check.pl';
|
31 |
+
protected $_checkEmailCustId = '6999315';
|
32 |
+
protected $_checkEmailPassword = 'a4ce5a98a8950c04a3d34a2e2cb8c89f';
|
33 |
+
protected $_checkSecretUrl = '/app/secret_word_check.pl';
|
34 |
+
protected $_activationEmailTo = 'ecommerce@moneybookers.com';
|
35 |
+
protected $_activationEmailSubject = 'Magento Moneybookers Activation';
|
36 |
+
protected $_moneybookersMasterCustId = '7283403';
|
37 |
+
protected $_moneybookersMasterSecretHash = 'c18524b6b1082653039078a4700367f0';
|
38 |
+
|
39 |
+
/**
|
40 |
+
* Send activation Email to Moneybookers
|
41 |
+
*/
|
42 |
+
public function activateEmail()
|
43 |
+
{
|
44 |
+
$storeId = Mage::app()->getStore()->getId();
|
45 |
+
|
46 |
+
$translate = Mage::getSingleton('core/translate');
|
47 |
+
/* @var $translate Mage_Core_Model_Translate */
|
48 |
+
$translate->setTranslateInline(false);
|
49 |
+
|
50 |
+
Mage::getModel('core/email_template')
|
51 |
+
->setDesignConfig(array('area' => 'frontend', 'store' => $storeId))
|
52 |
+
->sendTransactional(
|
53 |
+
'moneybookers_activateemail',
|
54 |
+
Mage::getStoreConfig(Mage_Sales_Model_Order::XML_PATH_EMAIL_IDENTITY, $storeId),
|
55 |
+
$this->_activationEmailTo,
|
56 |
+
null,
|
57 |
+
array(
|
58 |
+
'subject' => $this->_activationEmailSubject,
|
59 |
+
'email_addr' => Mage::getStoreConfig(self::XML_PATH_EMAIL),
|
60 |
+
'url' => Mage::getBaseUrl(),
|
61 |
+
'customer_id' => Mage::getStoreConfig(self::XML_PATH_CUSTOMER_ID),
|
62 |
+
'language' => Mage::getModel('core/locale')->getDefaultLocale()
|
63 |
+
)
|
64 |
+
);
|
65 |
+
|
66 |
+
$translate->setTranslateInline(true);
|
67 |
+
}
|
68 |
+
|
69 |
+
/**
|
70 |
+
* Check if email is registered at Moneybookers
|
71 |
+
*
|
72 |
+
* @param array $params
|
73 |
+
* @return array
|
74 |
+
*/
|
75 |
+
public function checkEmailRequest(Array $params) {
|
76 |
+
$response = null;
|
77 |
+
try {
|
78 |
+
$response = $this->_getHttpsPage($this->_moneybookersServer . $this->_checkEmailUrl, array(
|
79 |
+
'email' => $params['email'],
|
80 |
+
'cust_id' => $this->_checkEmailCustId,
|
81 |
+
'password' => $this->_checkEmailPassword)
|
82 |
+
);
|
83 |
+
} catch (Exception $e) {
|
84 |
+
Mage::log($e->getMessage());
|
85 |
+
return null;
|
86 |
+
}
|
87 |
+
return $response;
|
88 |
+
}
|
89 |
+
|
90 |
+
/**
|
91 |
+
* Check if entered secret is valid
|
92 |
+
* @param array $params
|
93 |
+
* @return array
|
94 |
+
*/
|
95 |
+
public function checkSecretRequest(Array $params)
|
96 |
+
{
|
97 |
+
$response = null;
|
98 |
+
try {
|
99 |
+
$response = $this->_getHttpsPage($this->_moneybookersServer . $this->_checkSecretUrl, array(
|
100 |
+
'email' => $params['email'],
|
101 |
+
'secret' => md5(md5($params['secret']) . $this->_moneybookersMasterSecretHash),
|
102 |
+
'cust_id' => $this->_moneybookersMasterCustId)
|
103 |
+
);
|
104 |
+
} catch (Exception $e) {
|
105 |
+
Mage::log($e->getMessage());
|
106 |
+
return null;
|
107 |
+
}
|
108 |
+
return $response;
|
109 |
+
}
|
110 |
+
|
111 |
+
/**
|
112 |
+
* Reading a page via HTTPS and returning its content.
|
113 |
+
*/
|
114 |
+
protected function _getHttpsPage($host, $parameter)
|
115 |
+
{
|
116 |
+
$client = new Varien_Http_Client();
|
117 |
+
$client->setUri($host)
|
118 |
+
->setConfig(array('timeout' => 30))
|
119 |
+
->setHeaders('accept-encoding', '')
|
120 |
+
->setParameterGet($parameter)
|
121 |
+
->setMethod(Zend_Http_Client::GET);
|
122 |
+
$request = $client->request();
|
123 |
+
// Workaround for pseudo chunked messages which are yet too short, so
|
124 |
+
// only an exception is is thrown instead of returning raw body
|
125 |
+
if (!preg_match("/^([\da-fA-F]+)[^\r\n]*\r\n/sm", $request->getRawBody(), $m))
|
126 |
+
return $request->getRawBody();
|
127 |
+
|
128 |
+
return $request->getBody();
|
129 |
+
}
|
130 |
+
}
|
app/code/community/Phoenix/Moneybookers/Model/Abstract.php
ADDED
@@ -0,0 +1,208 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
<?php
|
2 |
+
/**
|
3 |
+
* Magento
|
4 |
+
*
|
5 |
+
* NOTICE OF LICENSE
|
6 |
+
*
|
7 |
+
* This source file is subject to the Open Software License (OSL 3.0)
|
8 |
+
* that is bundled with this package in the file LICENSE.txt.
|
9 |
+
* It is also available through the world-wide-web at this URL:
|
10 |
+
* http://opensource.org/licenses/osl-3.0.php
|
11 |
+
* If you did not receive a copy of the license and are unable to
|
12 |
+
* obtain it through the world-wide-web, please send an email
|
13 |
+
* to license@magentocommerce.com so we can send you a copy immediately.
|
14 |
+
*
|
15 |
+
* @category Phoenix
|
16 |
+
* @package Phoenix_Moneybookers
|
17 |
+
* @copyright Copyright (c) 2015 Phoenix Medien GmbH & Co. KG (http://www.phoenix-medien.de)
|
18 |
+
* @license http://opensource.org/licenses/osl-3.0.php Open Software License (OSL 3.0)
|
19 |
+
*/
|
20 |
+
abstract class Phoenix_Moneybookers_Model_Abstract extends Mage_Payment_Model_Method_Abstract
|
21 |
+
{
|
22 |
+
/**
|
23 |
+
* unique internal payment method identifier
|
24 |
+
*/
|
25 |
+
protected $_code = 'moneybookers_abstract';
|
26 |
+
|
27 |
+
protected $_formBlockType = 'moneybookers/form';
|
28 |
+
protected $_infoBlockType = 'moneybookers/info';
|
29 |
+
|
30 |
+
/**
|
31 |
+
* Availability options
|
32 |
+
*/
|
33 |
+
protected $_isGateway = true;
|
34 |
+
protected $_canAuthorize = true;
|
35 |
+
protected $_canCapture = true;
|
36 |
+
protected $_canCapturePartial = false;
|
37 |
+
protected $_canRefund = false;
|
38 |
+
protected $_canVoid = false;
|
39 |
+
protected $_canUseInternal = false;
|
40 |
+
protected $_canUseCheckout = true;
|
41 |
+
protected $_canUseForMultishipping = false;
|
42 |
+
|
43 |
+
protected $_paymentMethod = 'abstract';
|
44 |
+
protected $_defaultLocale = 'en';
|
45 |
+
protected $_supportedLocales = array('cn', 'cz', 'da', 'en', 'es', 'fi', 'de', 'fr', 'gr', 'it', 'nl', 'ro', 'ru', 'pl', 'sv', 'tr');
|
46 |
+
protected $_hidelogin = '1';
|
47 |
+
|
48 |
+
protected $_order;
|
49 |
+
|
50 |
+
/**
|
51 |
+
* Get order model
|
52 |
+
*
|
53 |
+
* @return Mage_Sales_Model_Order
|
54 |
+
*/
|
55 |
+
public function getOrder()
|
56 |
+
{
|
57 |
+
if (!$this->_order) {
|
58 |
+
$this->_order = $this->getInfoInstance()->getOrder();
|
59 |
+
}
|
60 |
+
return $this->_order;
|
61 |
+
}
|
62 |
+
|
63 |
+
/**
|
64 |
+
* Return url for redirection after order placed
|
65 |
+
* @return string
|
66 |
+
*/
|
67 |
+
public function getOrderPlaceRedirectUrl()
|
68 |
+
{
|
69 |
+
return Mage::getUrl('moneybookers/processing/payment');
|
70 |
+
}
|
71 |
+
|
72 |
+
/**
|
73 |
+
* Capture payment through Moneybookers api
|
74 |
+
*
|
75 |
+
* @param Varien_Object $payment
|
76 |
+
* @param decimal $amount
|
77 |
+
* @return Phoenix_Moneybookers_Model_Abstract
|
78 |
+
*/
|
79 |
+
public function capture(Varien_Object $payment, $amount)
|
80 |
+
{
|
81 |
+
$payment->setStatus(self::STATUS_APPROVED)
|
82 |
+
->setTransactionId($this->getTransactionId())
|
83 |
+
->setIsTransactionClosed(0);
|
84 |
+
|
85 |
+
return $this;
|
86 |
+
}
|
87 |
+
|
88 |
+
/**
|
89 |
+
* Camcel payment
|
90 |
+
*
|
91 |
+
* @param Varien_Object $payment
|
92 |
+
* @return Phoenix_Moneybookers_Model_Abstract
|
93 |
+
*/
|
94 |
+
public function cancel(Varien_Object $payment)
|
95 |
+
{
|
96 |
+
$payment->setStatus(self::STATUS_DECLINED)
|
97 |
+
->setTransactionId($this->getTransactionId())
|
98 |
+
->setIsTransactionClosed(1);
|
99 |
+
|
100 |
+
return $this;
|
101 |
+
}
|
102 |
+
|
103 |
+
/**
|
104 |
+
* Return url of payment method
|
105 |
+
*
|
106 |
+
* @return string
|
107 |
+
*/
|
108 |
+
public function getUrl()
|
109 |
+
{
|
110 |
+
return 'https://www.moneybookers.com/app/payment.pl';
|
111 |
+
}
|
112 |
+
|
113 |
+
/**
|
114 |
+
* Return url of payment method
|
115 |
+
*
|
116 |
+
* @return string
|
117 |
+
*/
|
118 |
+
public function getLocale()
|
119 |
+
{
|
120 |
+
$locale = explode('_', Mage::app()->getLocale()->getLocaleCode());
|
121 |
+
if (is_array($locale) && !empty($locale) && in_array($locale[0], $this->_supportedLocales)) {
|
122 |
+
return $locale[0];
|
123 |
+
}
|
124 |
+
return $this->getDefaultLocale();
|
125 |
+
}
|
126 |
+
|
127 |
+
/**
|
128 |
+
* prepare params array to send it to gateway page via POST
|
129 |
+
*
|
130 |
+
* @return array
|
131 |
+
*/
|
132 |
+
public function getFormFields()
|
133 |
+
{
|
134 |
+
$order_id = $this->getOrder()->getRealOrderId();
|
135 |
+
$billing = $this->getOrder()->getBillingAddress();
|
136 |
+
if ($this->getOrder()->getBillingAddress()->getEmail()) {
|
137 |
+
$email = $this->getOrder()->getBillingAddress()->getEmail();
|
138 |
+
} else {
|
139 |
+
$email = $this->getOrder()->getCustomerEmail();
|
140 |
+
}
|
141 |
+
|
142 |
+
$params = array(
|
143 |
+
'merchant_fields' => 'partner',
|
144 |
+
'partner' => 'magento',
|
145 |
+
'pay_to_email' => Mage::getStoreConfig(Phoenix_Moneybookers_Helper_Data::XML_PATH_EMAIL),
|
146 |
+
'transaction_id' => $order_id,
|
147 |
+
'return_url' => Mage::getUrl('moneybookers/processing/success', array('transaction_id' => $order_id)),
|
148 |
+
'cancel_url' => Mage::getUrl('moneybookers/processing/cancel', array('transaction_id' => $order_id)),
|
149 |
+
'status_url' => Mage::getUrl('moneybookers/processing/status'),
|
150 |
+
'language' => $this->getLocale(),
|
151 |
+
'amount' => round($this->getOrder()->getGrandTotal(), 2),
|
152 |
+
'currency' => $this->getOrder()->getOrderCurrencyCode(),
|
153 |
+
'recipient_description' => $this->getOrder()->getStore()->getWebsite()->getName(),
|
154 |
+
'firstname' => $billing->getFirstname(),
|
155 |
+
'lastname' => $billing->getLastname(),
|
156 |
+
'address' => $billing->getStreet(-1),
|
157 |
+
'postal_code' => $billing->getPostcode(),
|
158 |
+
'city' => $billing->getCity(),
|
159 |
+
'country' => $billing->getCountryModel()->getIso3Code(),
|
160 |
+
'pay_from_email' => $email,
|
161 |
+
'phone_number' => $billing->getTelephone(),
|
162 |
+
'detail1_description' => Mage::helper('moneybookers')->__('Order ID'),
|
163 |
+
'detail1_text' => $order_id,
|
164 |
+
'payment_methods' => $this->_paymentMethod,
|
165 |
+
'hide_login' => $this->_hidelogin,
|
166 |
+
'new_window_redirect' => '1'
|
167 |
+
);
|
168 |
+
|
169 |
+
// add optional day of birth
|
170 |
+
if ($billing->getDob()) {
|
171 |
+
$params['date_of_birth'] = Mage::app()->getLocale()->date($billing->getDob(), null, null, false)->toString('dmY');
|
172 |
+
}
|
173 |
+
|
174 |
+
return $params;
|
175 |
+
}
|
176 |
+
/**
|
177 |
+
* Get initialized flag status
|
178 |
+
* @return true
|
179 |
+
*/
|
180 |
+
public function isInitializeNeeded()
|
181 |
+
{
|
182 |
+
return true;
|
183 |
+
}
|
184 |
+
|
185 |
+
/**
|
186 |
+
* Instantiate state and set it to state onject
|
187 |
+
* //@param
|
188 |
+
* //@param
|
189 |
+
*/
|
190 |
+
public function initialize($paymentAction, $stateObject)
|
191 |
+
{
|
192 |
+
$state = Mage_Sales_Model_Order::STATE_PENDING_PAYMENT;
|
193 |
+
$stateObject->setState($state);
|
194 |
+
$stateObject->setStatus(Mage_Sales_Model_Order::STATE_PENDING_PAYMENT);
|
195 |
+
$stateObject->setIsNotified(false);
|
196 |
+
}
|
197 |
+
|
198 |
+
/**
|
199 |
+
* Get config action to process initialization
|
200 |
+
*
|
201 |
+
* @return string
|
202 |
+
*/
|
203 |
+
public function getConfigPaymentAction()
|
204 |
+
{
|
205 |
+
$paymentAction = $this->getConfigData('payment_action');
|
206 |
+
return empty($paymentAction) ? true : $paymentAction;
|
207 |
+
}
|
208 |
+
}
|
app/code/community/Phoenix/Moneybookers/Model/Acc.php
ADDED
@@ -0,0 +1,27 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
<?php
|
2 |
+
/**
|
3 |
+
* Magento
|
4 |
+
*
|
5 |
+
* NOTICE OF LICENSE
|
6 |
+
*
|
7 |
+
* This source file is subject to the Open Software License (OSL 3.0)
|
8 |
+
* that is bundled with this package in the file LICENSE.txt.
|
9 |
+
* It is also available through the world-wide-web at this URL:
|
10 |
+
* http://opensource.org/licenses/osl-3.0.php
|
11 |
+
* If you did not receive a copy of the license and are unable to
|
12 |
+
* obtain it through the world-wide-web, please send an email
|
13 |
+
* to license@magentocommerce.com so we can send you a copy immediately.
|
14 |
+
*
|
15 |
+
* @category Phoenix
|
16 |
+
* @package Phoenix_Moneybookers
|
17 |
+
* @copyright Copyright (c) 2015 Phoenix Medien GmbH & Co. KG (http://www.phoenix-medien.de)
|
18 |
+
* @license http://opensource.org/licenses/osl-3.0.php Open Software License (OSL 3.0)
|
19 |
+
*/
|
20 |
+
class Phoenix_Moneybookers_Model_Acc extends Phoenix_Moneybookers_Model_Abstract
|
21 |
+
{
|
22 |
+
/**
|
23 |
+
* unique internal payment method identifier
|
24 |
+
*/
|
25 |
+
protected $_code = 'moneybookers_acc';
|
26 |
+
protected $_paymentMethod = 'ACC';
|
27 |
+
}
|
app/code/community/Phoenix/Moneybookers/Model/Csi.php
ADDED
@@ -0,0 +1,27 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
<?php
|
2 |
+
/**
|
3 |
+
* Magento
|
4 |
+
*
|
5 |
+
* NOTICE OF LICENSE
|
6 |
+
*
|
7 |
+
* This source file is subject to the Open Software License (OSL 3.0)
|
8 |
+
* that is bundled with this package in the file LICENSE.txt.
|
9 |
+
* It is also available through the world-wide-web at this URL:
|
10 |
+
* http://opensource.org/licenses/osl-3.0.php
|
11 |
+
* If you did not receive a copy of the license and are unable to
|
12 |
+
* obtain it through the world-wide-web, please send an email
|
13 |
+
* to license@magentocommerce.com so we can send you a copy immediately.
|
14 |
+
*
|
15 |
+
* @category Phoenix
|
16 |
+
* @package Phoenix_Moneybookers
|
17 |
+
* @copyright Copyright (c) 2015 Phoenix Medien GmbH & Co. KG (http://www.phoenix-medien.de)
|
18 |
+
* @license http://opensource.org/licenses/osl-3.0.php Open Software License (OSL 3.0)
|
19 |
+
*/
|
20 |
+
class Phoenix_Moneybookers_Model_Csi extends Phoenix_Moneybookers_Model_Abstract
|
21 |
+
{
|
22 |
+
/**
|
23 |
+
* unique internal payment method identifier
|
24 |
+
*/
|
25 |
+
protected $_code = 'moneybookers_csi';
|
26 |
+
protected $_paymentMethod = 'CSI';
|
27 |
+
}
|
app/code/community/Phoenix/Moneybookers/Model/Did.php
ADDED
@@ -0,0 +1,27 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
<?php
|
2 |
+
/**
|
3 |
+
* Magento
|
4 |
+
*
|
5 |
+
* NOTICE OF LICENSE
|
6 |
+
*
|
7 |
+
* This source file is subject to the Open Software License (OSL 3.0)
|
8 |
+
* that is bundled with this package in the file LICENSE.txt.
|
9 |
+
* It is also available through the world-wide-web at this URL:
|
10 |
+
* http://opensource.org/licenses/osl-3.0.php
|
11 |
+
* If you did not receive a copy of the license and are unable to
|
12 |
+
* obtain it through the world-wide-web, please send an email
|
13 |
+
* to license@magentocommerce.com so we can send you a copy immediately.
|
14 |
+
*
|
15 |
+
* @category Phoenix
|
16 |
+
* @package Phoenix_Moneybookers
|
17 |
+
* @copyright Copyright (c) 2015 Phoenix Medien GmbH & Co. KG (http://www.phoenix-medien.de)
|
18 |
+
* @license http://opensource.org/licenses/osl-3.0.php Open Software License (OSL 3.0)
|
19 |
+
*/
|
20 |
+
class Phoenix_Moneybookers_Model_Did extends Phoenix_Moneybookers_Model_Abstract
|
21 |
+
{
|
22 |
+
/**
|
23 |
+
* unique internal payment method identifier
|
24 |
+
*/
|
25 |
+
protected $_code = 'moneybookers_did';
|
26 |
+
protected $_paymentMethod = 'DID';
|
27 |
+
}
|
app/code/community/Phoenix/Moneybookers/Model/Dnk.php
ADDED
@@ -0,0 +1,27 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
<?php
|
2 |
+
/**
|
3 |
+
* Magento
|
4 |
+
*
|
5 |
+
* NOTICE OF LICENSE
|
6 |
+
*
|
7 |
+
* This source file is subject to the Open Software License (OSL 3.0)
|
8 |
+
* that is bundled with this package in the file LICENSE.txt.
|
9 |
+
* It is also available through the world-wide-web at this URL:
|
10 |
+
* http://opensource.org/licenses/osl-3.0.php
|
11 |
+
* If you did not receive a copy of the license and are unable to
|
12 |
+
* obtain it through the world-wide-web, please send an email
|
13 |
+
* to license@magentocommerce.com so we can send you a copy immediately.
|
14 |
+
*
|
15 |
+
* @category Phoenix
|
16 |
+
* @package Phoenix_Moneybookers
|
17 |
+
* @copyright Copyright (c) 2015 Phoenix Medien GmbH & Co. KG (http://www.phoenix-medien.de)
|
18 |
+
* @license http://opensource.org/licenses/osl-3.0.php Open Software License (OSL 3.0)
|
19 |
+
*/
|
20 |
+
class Phoenix_Moneybookers_Model_Dnk extends Phoenix_Moneybookers_Model_Abstract
|
21 |
+
{
|
22 |
+
/**
|
23 |
+
* unique internal payment method identifier
|
24 |
+
*/
|
25 |
+
protected $_code = 'moneybookers_dnk';
|
26 |
+
protected $_paymentMethod = 'DNK';
|
27 |
+
}
|
app/code/community/Phoenix/Moneybookers/Model/Ebt.php
ADDED
@@ -0,0 +1,27 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
<?php
|
2 |
+
/**
|
3 |
+
* Magento
|
4 |
+
*
|
5 |
+
* NOTICE OF LICENSE
|
6 |
+
*
|
7 |
+
* This source file is subject to the Open Software License (OSL 3.0)
|
8 |
+
* that is bundled with this package in the file LICENSE.txt.
|
9 |
+
* It is also available through the world-wide-web at this URL:
|
10 |
+
* http://opensource.org/licenses/osl-3.0.php
|
11 |
+
* If you did not receive a copy of the license and are unable to
|
12 |
+
* obtain it through the world-wide-web, please send an email
|
13 |
+
* to license@magentocommerce.com so we can send you a copy immediately.
|
14 |
+
*
|
15 |
+
* @category Phoenix
|
16 |
+
* @package Phoenix_Moneybookers
|
17 |
+
* @copyright Copyright (c) 2015 Phoenix Medien GmbH & Co. KG (http://www.phoenix-medien.de)
|
18 |
+
* @license http://opensource.org/licenses/osl-3.0.php Open Software License (OSL 3.0)
|
19 |
+
*/
|
20 |
+
class Phoenix_Moneybookers_Model_Ebt extends Phoenix_Moneybookers_Model_Abstract
|
21 |
+
{
|
22 |
+
/**
|
23 |
+
* unique internal payment method identifier
|
24 |
+
*/
|
25 |
+
protected $_code = 'moneybookers_ebt';
|
26 |
+
protected $_paymentMethod = 'EBT';
|
27 |
+
}
|
app/code/community/Phoenix/Moneybookers/Model/Ent.php
ADDED
@@ -0,0 +1,27 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
<?php
|
2 |
+
/**
|
3 |
+
* Magento
|
4 |
+
*
|
5 |
+
* NOTICE OF LICENSE
|
6 |
+
*
|
7 |
+
* This source file is subject to the Open Software License (OSL 3.0)
|
8 |
+
* that is bundled with this package in the file LICENSE.txt.
|
9 |
+
* It is also available through the world-wide-web at this URL:
|
10 |
+
* http://opensource.org/licenses/osl-3.0.php
|
11 |
+
* If you did not receive a copy of the license and are unable to
|
12 |
+
* obtain it through the world-wide-web, please send an email
|
13 |
+
* to license@magentocommerce.com so we can send you a copy immediately.
|
14 |
+
*
|
15 |
+
* @category Phoenix
|
16 |
+
* @package Phoenix_Moneybookers
|
17 |
+
* @copyright Copyright (c) 2015 Phoenix Medien GmbH & Co. KG (http://www.phoenix-medien.de)
|
18 |
+
* @license http://opensource.org/licenses/osl-3.0.php Open Software License (OSL 3.0)
|
19 |
+
*/
|
20 |
+
class Phoenix_Moneybookers_Model_Ent extends Phoenix_Moneybookers_Model_Abstract
|
21 |
+
{
|
22 |
+
/**
|
23 |
+
* unique internal payment method identifier
|
24 |
+
*/
|
25 |
+
protected $_code = 'moneybookers_ent';
|
26 |
+
protected $_paymentMethod = 'ENT';
|
27 |
+
}
|
app/code/community/Phoenix/Moneybookers/Model/Event.php
ADDED
@@ -0,0 +1,274 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
<?php
|
2 |
+
/**
|
3 |
+
* Magento
|
4 |
+
*
|
5 |
+
* NOTICE OF LICENSE
|
6 |
+
*
|
7 |
+
* This source file is subject to the Open Software License (OSL 3.0)
|
8 |
+
* that is bundled with this package in the file LICENSE.txt.
|
9 |
+
* It is also available through the world-wide-web at this URL:
|
10 |
+
* http://opensource.org/licenses/osl-3.0.php
|
11 |
+
* If you did not receive a copy of the license and are unable to
|
12 |
+
* obtain it through the world-wide-web, please send an email
|
13 |
+
* to license@magentocommerce.com so we can send you a copy immediately.
|
14 |
+
*
|
15 |
+
* @category Phoenix
|
16 |
+
* @package Phoenix_Moneybookers
|
17 |
+
* @copyright Copyright (c) 2015 Phoenix Medien GmbH & Co. KG (http://www.phoenix-medien.de)
|
18 |
+
* @license http://opensource.org/licenses/osl-3.0.php Open Software License (OSL 3.0)
|
19 |
+
*/
|
20 |
+
|
21 |
+
/**
|
22 |
+
* Moneybookers notification processor model
|
23 |
+
*/
|
24 |
+
class Phoenix_Moneybookers_Model_Event
|
25 |
+
{
|
26 |
+
const MONEYBOOKERS_STATUS_FAIL = -2;
|
27 |
+
const MONEYBOOKERS_STATUS_CANCEL = -1;
|
28 |
+
const MONEYBOOKERS_STATUS_PENDING = 0;
|
29 |
+
const MONEYBOOKERS_STATUS_SUCCESS = 2;
|
30 |
+
|
31 |
+
/**
|
32 |
+
* Store order instance
|
33 |
+
*
|
34 |
+
* @var Mage_Sales_Model_Order
|
35 |
+
*/
|
36 |
+
protected $_order = null;
|
37 |
+
|
38 |
+
/**
|
39 |
+
* Event request data
|
40 |
+
* @var array
|
41 |
+
*/
|
42 |
+
protected $_eventData = array();
|
43 |
+
|
44 |
+
/**
|
45 |
+
* Enent request data setter
|
46 |
+
* @param array $data
|
47 |
+
* @return Phoenix_Moneybookers_Model_Event
|
48 |
+
*/
|
49 |
+
public function setEventData(array $data)
|
50 |
+
{
|
51 |
+
$this->_eventData = $data;
|
52 |
+
return $this;
|
53 |
+
}
|
54 |
+
|
55 |
+
/**
|
56 |
+
* Event request data getter
|
57 |
+
* @param string $key
|
58 |
+
* @return array|string
|
59 |
+
*/
|
60 |
+
public function getEventData($key = null)
|
61 |
+
{
|
62 |
+
if (null === $key) {
|
63 |
+
return $this->_eventData;
|
64 |
+
}
|
65 |
+
return isset($this->_eventData[$key]) ? $this->_eventData[$key] : null;
|
66 |
+
}
|
67 |
+
|
68 |
+
/**
|
69 |
+
* Get singleton of Checkout Session Model
|
70 |
+
*
|
71 |
+
* @return Mage_Checkout_Model_Session
|
72 |
+
*/
|
73 |
+
protected function _getCheckout()
|
74 |
+
{
|
75 |
+
return Mage::getSingleton('checkout/session');
|
76 |
+
}
|
77 |
+
|
78 |
+
/**
|
79 |
+
* Process status notification from Monebookers server
|
80 |
+
*
|
81 |
+
* @return String
|
82 |
+
*/
|
83 |
+
public function processStatusEvent()
|
84 |
+
{
|
85 |
+
try {
|
86 |
+
$params = $this->_validateEventData();
|
87 |
+
$msg = '';
|
88 |
+
switch($params['status']) {
|
89 |
+
case self::MONEYBOOKERS_STATUS_FAIL: //fail
|
90 |
+
$msg = Mage::helper('moneybookers')->__('Payment failed.');
|
91 |
+
$this->_processCancel($msg);
|
92 |
+
break;
|
93 |
+
case self::MONEYBOOKERS_STATUS_CANCEL: //cancel
|
94 |
+
$msg = Mage::helper('moneybookers')->__('Payment was canceled.');
|
95 |
+
$this->_processCancel($msg);
|
96 |
+
break;
|
97 |
+
case self::MONEYBOOKERS_STATUS_PENDING: //pending
|
98 |
+
$msg = Mage::helper('moneybookers')->__('Pending bank transfer created.');
|
99 |
+
$this->_processSale($params['status'], $msg);
|
100 |
+
break;
|
101 |
+
case self::MONEYBOOKERS_STATUS_SUCCESS: //ok
|
102 |
+
$msg = Mage::helper('moneybookers')->__('The amount has been authorized and captured by Moneybookers.');
|
103 |
+
$this->_processSale($params['status'], $msg);
|
104 |
+
break;
|
105 |
+
}
|
106 |
+
return $msg;
|
107 |
+
} catch (Mage_Core_Exception $e) {
|
108 |
+
return $e->getMessage();
|
109 |
+
} catch(Exception $e) {
|
110 |
+
Mage::logException($e);
|
111 |
+
}
|
112 |
+
return;
|
113 |
+
}
|
114 |
+
|
115 |
+
/**
|
116 |
+
* Process cancelation
|
117 |
+
*/
|
118 |
+
public function cancelEvent() {
|
119 |
+
try {
|
120 |
+
$this->_validateEventData(false);
|
121 |
+
$this->_processCancel('Payment was canceled.');
|
122 |
+
return Mage::helper('moneybookers')->__('The order has been canceled.');
|
123 |
+
} catch (Mage_Core_Exception $e) {
|
124 |
+
return $e->getMessage();
|
125 |
+
} catch(Exception $e) {
|
126 |
+
Mage::logException($e);
|
127 |
+
}
|
128 |
+
return '';
|
129 |
+
}
|
130 |
+
|
131 |
+
/**
|
132 |
+
* Validate request and return QuoteId
|
133 |
+
* Can throw Mage_Core_Exception and Exception
|
134 |
+
*
|
135 |
+
* @return int
|
136 |
+
*/
|
137 |
+
public function successEvent(){
|
138 |
+
$this->_validateEventData(false);
|
139 |
+
return $this->_order->getQuoteId();
|
140 |
+
}
|
141 |
+
|
142 |
+
/**
|
143 |
+
* Processed order cancelation
|
144 |
+
* @param string $msg Order history message
|
145 |
+
*/
|
146 |
+
protected function _processCancel($msg)
|
147 |
+
{
|
148 |
+
$this->_order->cancel();
|
149 |
+
$this->_order->addStatusToHistory(Mage_Sales_Model_Order::STATE_CANCELED, $msg);
|
150 |
+
$this->_order->save();
|
151 |
+
}
|
152 |
+
|
153 |
+
/**
|
154 |
+
* Processes payment confirmation, creates invoice if necessary, updates order status,
|
155 |
+
* sends order confirmation to customer
|
156 |
+
*
|
157 |
+
* @param string $status
|
158 |
+
* @param string $msg Order history message
|
159 |
+
*/
|
160 |
+
protected function _processSale($status, $msg)
|
161 |
+
{
|
162 |
+
switch ($status) {
|
163 |
+
case self::MONEYBOOKERS_STATUS_SUCCESS:
|
164 |
+
$this->_createInvoice();
|
165 |
+
$this->_order->setState(Mage_Sales_Model_Order::STATE_PROCESSING, true, $msg);
|
166 |
+
// save transaction ID
|
167 |
+
$this->_order->getPayment()->setLastTransId($this->getEventData('mb_transaction_id'));
|
168 |
+
// send new order email
|
169 |
+
$this->_order->queueNewOrderEmail();
|
170 |
+
$this->_order->setEmailSent(true);
|
171 |
+
break;
|
172 |
+
case self::MONEYBOOKERS_STATUS_PENDING:
|
173 |
+
$this->_order->setState(Mage_Sales_Model_Order::STATE_PENDING_PAYMENT, true, $msg);
|
174 |
+
// save transaction ID
|
175 |
+
$this->_order->getPayment()->setLastTransId($this->getEventData('mb_transaction_id'));
|
176 |
+
break;
|
177 |
+
}
|
178 |
+
$this->_order->save();
|
179 |
+
}
|
180 |
+
|
181 |
+
/**
|
182 |
+
* Builds invoice for order
|
183 |
+
*/
|
184 |
+
protected function _createInvoice()
|
185 |
+
{
|
186 |
+
if (!$this->_order->canInvoice()) {
|
187 |
+
return;
|
188 |
+
}
|
189 |
+
$invoice = $this->_order->prepareInvoice();
|
190 |
+
$invoice->register()->capture();
|
191 |
+
$this->_order->addRelatedObject($invoice);
|
192 |
+
}
|
193 |
+
|
194 |
+
/**
|
195 |
+
* Checking returned parameters
|
196 |
+
* Thorws Mage_Core_Exception if error
|
197 |
+
* @param bool $fullCheck Whether to make additional validations such as payment status, transaction signature etc.
|
198 |
+
*
|
199 |
+
* @return array $params request params
|
200 |
+
*/
|
201 |
+
protected function _validateEventData($fullCheck = true)
|
202 |
+
{
|
203 |
+
// get request variables
|
204 |
+
$params = $this->_eventData;
|
205 |
+
if (empty($params)) {
|
206 |
+
Mage::throwException('Request does not contain any elements.');
|
207 |
+
}
|
208 |
+
|
209 |
+
// check order ID
|
210 |
+
if (empty($params['transaction_id'])
|
211 |
+
|| ($fullCheck == false && $this->_getCheckout()->getMoneybookersRealOrderId() != $params['transaction_id'])
|
212 |
+
) {
|
213 |
+
Mage::throwException('Missing or invalid order ID.');
|
214 |
+
}
|
215 |
+
// load order for further validation
|
216 |
+
$this->_order = Mage::getModel('sales/order')->loadByIncrementId($params['transaction_id']);
|
217 |
+
if (!$this->_order->getId()) {
|
218 |
+
Mage::throwException('Order not found.');
|
219 |
+
}
|
220 |
+
|
221 |
+
if (0 !== strpos($this->_order->getPayment()->getMethodInstance()->getCode(), 'moneybookers_')) {
|
222 |
+
Mage::throwException('Unknown payment method.');
|
223 |
+
}
|
224 |
+
|
225 |
+
// make additional validation
|
226 |
+
if ($fullCheck) {
|
227 |
+
// check payment status
|
228 |
+
if (empty($params['status'])) {
|
229 |
+
Mage::throwException('Unknown payment status.');
|
230 |
+
}
|
231 |
+
|
232 |
+
// check transaction signature
|
233 |
+
if (empty($params['md5sig'])) {
|
234 |
+
Mage::throwException('Invalid transaction signature.');
|
235 |
+
}
|
236 |
+
|
237 |
+
$checkParams = array('merchant_id', 'transaction_id', 'secret', 'mb_amount', 'mb_currency', 'status');
|
238 |
+
$md5String = '';
|
239 |
+
foreach ($checkParams as $key) {
|
240 |
+
if ($key == 'merchant_id') {
|
241 |
+
$md5String .= Mage::getStoreConfig(Phoenix_Moneybookers_Helper_Data::XML_PATH_CUSTOMER_ID,
|
242 |
+
$this->_order->getStoreId()
|
243 |
+
);
|
244 |
+
} elseif ($key == 'secret') {
|
245 |
+
$secretKey = Mage::getStoreConfig(
|
246 |
+
Phoenix_Moneybookers_Helper_Data::XML_PATH_SECRET_KEY,
|
247 |
+
$this->_order->getStoreId()
|
248 |
+
);
|
249 |
+
|
250 |
+
if (empty($secretKey)) {
|
251 |
+
Mage::throwException('Secret key is empty.');
|
252 |
+
}
|
253 |
+
|
254 |
+
$md5String .= strtoupper(md5($secretKey));
|
255 |
+
} elseif (isset($params[$key])) {
|
256 |
+
$md5String .= $params[$key];
|
257 |
+
}
|
258 |
+
}
|
259 |
+
$md5String = strtoupper(md5($md5String));
|
260 |
+
|
261 |
+
if ($md5String != $params['md5sig']) {
|
262 |
+
Mage::throwException('Hash is not valid.');
|
263 |
+
}
|
264 |
+
|
265 |
+
// check transaction amount if currency matches
|
266 |
+
if ($this->_order->getOrderCurrencyCode() == $params['mb_currency']) {
|
267 |
+
if (round($this->_order->getGrandTotal(), 2) != $params['mb_amount']) {
|
268 |
+
Mage::throwException('Transaction amount does not match.');
|
269 |
+
}
|
270 |
+
}
|
271 |
+
}
|
272 |
+
return $params;
|
273 |
+
}
|
274 |
+
}
|
app/code/community/Phoenix/Moneybookers/Model/Gcb.php
ADDED
@@ -0,0 +1,27 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
<?php
|
2 |
+
/**
|
3 |
+
* Magento
|
4 |
+
*
|
5 |
+
* NOTICE OF LICENSE
|
6 |
+
*
|
7 |
+
* This source file is subject to the Open Software License (OSL 3.0)
|
8 |
+
* that is bundled with this package in the file LICENSE.txt.
|
9 |
+
* It is also available through the world-wide-web at this URL:
|
10 |
+
* http://opensource.org/licenses/osl-3.0.php
|
11 |
+
* If you did not receive a copy of the license and are unable to
|
12 |
+
* obtain it through the world-wide-web, please send an email
|
13 |
+
* to license@magentocommerce.com so we can send you a copy immediately.
|
14 |
+
*
|
15 |
+
* @category Phoenix
|
16 |
+
* @package Phoenix_Moneybookers
|
17 |
+
* @copyright Copyright (c) 2015 Phoenix Medien GmbH & Co. KG (http://www.phoenix-medien.de)
|
18 |
+
* @license http://opensource.org/licenses/osl-3.0.php Open Software License (OSL 3.0)
|
19 |
+
*/
|
20 |
+
class Phoenix_Moneybookers_Model_Gcb extends Phoenix_Moneybookers_Model_Abstract
|
21 |
+
{
|
22 |
+
/**
|
23 |
+
* unique internal payment method identifier
|
24 |
+
*/
|
25 |
+
protected $_code = 'moneybookers_gcb';
|
26 |
+
protected $_paymentMethod = 'GCB';
|
27 |
+
}
|
app/code/community/Phoenix/Moneybookers/Model/Gir.php
ADDED
@@ -0,0 +1,27 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
<?php
|
2 |
+
/**
|
3 |
+
* Magento
|
4 |
+
*
|
5 |
+
* NOTICE OF LICENSE
|
6 |
+
*
|
7 |
+
* This source file is subject to the Open Software License (OSL 3.0)
|
8 |
+
* that is bundled with this package in the file LICENSE.txt.
|
9 |
+
* It is also available through the world-wide-web at this URL:
|
10 |
+
* http://opensource.org/licenses/osl-3.0.php
|
11 |
+
* If you did not receive a copy of the license and are unable to
|
12 |
+
* obtain it through the world-wide-web, please send an email
|
13 |
+
* to license@magentocommerce.com so we can send you a copy immediately.
|
14 |
+
*
|
15 |
+
* @category Phoenix
|
16 |
+
* @package Phoenix_Moneybookers
|
17 |
+
* @copyright Copyright (c) 2015 Phoenix Medien GmbH & Co. KG (http://www.phoenix-medien.de)
|
18 |
+
* @license http://opensource.org/licenses/osl-3.0.php Open Software License (OSL 3.0)
|
19 |
+
*/
|
20 |
+
class Phoenix_Moneybookers_Model_Gir extends Phoenix_Moneybookers_Model_Abstract
|
21 |
+
{
|
22 |
+
/**
|
23 |
+
* unique internal payment method identifier
|
24 |
+
*/
|
25 |
+
protected $_code = 'moneybookers_gir';
|
26 |
+
protected $_paymentMethod = 'GIR';
|
27 |
+
}
|
app/code/community/Phoenix/Moneybookers/Model/Idl.php
ADDED
@@ -0,0 +1,27 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
<?php
|
2 |
+
/**
|
3 |
+
* Magento
|
4 |
+
*
|
5 |
+
* NOTICE OF LICENSE
|
6 |
+
*
|
7 |
+
* This source file is subject to the Open Software License (OSL 3.0)
|
8 |
+
* that is bundled with this package in the file LICENSE.txt.
|
9 |
+
* It is also available through the world-wide-web at this URL:
|
10 |
+
* http://opensource.org/licenses/osl-3.0.php
|
11 |
+
* If you did not receive a copy of the license and are unable to
|
12 |
+
* obtain it through the world-wide-web, please send an email
|
13 |
+
* to license@magentocommerce.com so we can send you a copy immediately.
|
14 |
+
*
|
15 |
+
* @category Phoenix
|
16 |
+
* @package Phoenix_Moneybookers
|
17 |
+
* @copyright Copyright (c) 2015 Phoenix Medien GmbH & Co. KG (http://www.phoenix-medien.de)
|
18 |
+
* @license http://opensource.org/licenses/osl-3.0.php Open Software License (OSL 3.0)
|
19 |
+
*/
|
20 |
+
class Phoenix_Moneybookers_Model_Idl extends Phoenix_Moneybookers_Model_Abstract
|
21 |
+
{
|
22 |
+
/**
|
23 |
+
* unique internal payment method identifier
|
24 |
+
*/
|
25 |
+
protected $_code = 'moneybookers_idl';
|
26 |
+
protected $_paymentMethod = 'IDL';
|
27 |
+
}
|
app/code/community/Phoenix/Moneybookers/Model/Lsr.php
ADDED
@@ -0,0 +1,27 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
<?php
|
2 |
+
/**
|
3 |
+
* Magento
|
4 |
+
*
|
5 |
+
* NOTICE OF LICENSE
|
6 |
+
*
|
7 |
+
* This source file is subject to the Open Software License (OSL 3.0)
|
8 |
+
* that is bundled with this package in the file LICENSE.txt.
|
9 |
+
* It is also available through the world-wide-web at this URL:
|
10 |
+
* http://opensource.org/licenses/osl-3.0.php
|
11 |
+
* If you did not receive a copy of the license and are unable to
|
12 |
+
* obtain it through the world-wide-web, please send an email
|
13 |
+
* to license@magentocommerce.com so we can send you a copy immediately.
|
14 |
+
*
|
15 |
+
* @category Phoenix
|
16 |
+
* @package Phoenix_Moneybookers
|
17 |
+
* @copyright Copyright (c) 2015 Phoenix Medien GmbH & Co. KG (http://www.phoenix-medien.de)
|
18 |
+
* @license http://opensource.org/licenses/osl-3.0.php Open Software License (OSL 3.0)
|
19 |
+
*/
|
20 |
+
class Phoenix_Moneybookers_Model_Lsr extends Phoenix_Moneybookers_Model_Abstract
|
21 |
+
{
|
22 |
+
/**
|
23 |
+
* unique internal payment method identifier
|
24 |
+
*/
|
25 |
+
protected $_code = 'moneybookers_lsr';
|
26 |
+
protected $_paymentMethod = 'LSR';
|
27 |
+
}
|
app/code/community/Phoenix/Moneybookers/Model/Mae.php
ADDED
@@ -0,0 +1,27 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
<?php
|
2 |
+
/**
|
3 |
+
* Magento
|
4 |
+
*
|
5 |
+
* NOTICE OF LICENSE
|
6 |
+
*
|
7 |
+
* This source file is subject to the Open Software License (OSL 3.0)
|
8 |
+
* that is bundled with this package in the file LICENSE.txt.
|
9 |
+
* It is also available through the world-wide-web at this URL:
|
10 |
+
* http://opensource.org/licenses/osl-3.0.php
|
11 |
+
* If you did not receive a copy of the license and are unable to
|
12 |
+
* obtain it through the world-wide-web, please send an email
|
13 |
+
* to license@magentocommerce.com so we can send you a copy immediately.
|
14 |
+
*
|
15 |
+
* @category Phoenix
|
16 |
+
* @package Phoenix_Moneybookers
|
17 |
+
* @copyright Copyright (c) 2015 Phoenix Medien GmbH & Co. KG (http://www.phoenix-medien.de)
|
18 |
+
* @license http://opensource.org/licenses/osl-3.0.php Open Software License (OSL 3.0)
|
19 |
+
*/
|
20 |
+
class Phoenix_Moneybookers_Model_Mae extends Phoenix_Moneybookers_Model_Abstract
|
21 |
+
{
|
22 |
+
/**
|
23 |
+
* unique internal payment method identifier
|
24 |
+
*/
|
25 |
+
protected $_code = 'moneybookers_mae';
|
26 |
+
protected $_paymentMethod = 'MAE';
|
27 |
+
}
|
app/code/community/Phoenix/Moneybookers/Model/Npy.php
ADDED
@@ -0,0 +1,27 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
<?php
|
2 |
+
/**
|
3 |
+
* Magento
|
4 |
+
*
|
5 |
+
* NOTICE OF LICENSE
|
6 |
+
*
|
7 |
+
* This source file is subject to the Open Software License (OSL 3.0)
|
8 |
+
* that is bundled with this package in the file LICENSE.txt.
|
9 |
+
* It is also available through the world-wide-web at this URL:
|
10 |
+
* http://opensource.org/licenses/osl-3.0.php
|
11 |
+
* If you did not receive a copy of the license and are unable to
|
12 |
+
* obtain it through the world-wide-web, please send an email
|
13 |
+
* to license@magentocommerce.com so we can send you a copy immediately.
|
14 |
+
*
|
15 |
+
* @category Phoenix
|
16 |
+
* @package Phoenix_Moneybookers
|
17 |
+
* @copyright Copyright (c) 2015 Phoenix Medien GmbH & Co. KG (http://www.phoenix-medien.de)
|
18 |
+
* @license http://opensource.org/licenses/osl-3.0.php Open Software License (OSL 3.0)
|
19 |
+
*/
|
20 |
+
class Phoenix_Moneybookers_Model_Npy extends Phoenix_Moneybookers_Model_Abstract
|
21 |
+
{
|
22 |
+
/**
|
23 |
+
* unique internal payment method identifier
|
24 |
+
*/
|
25 |
+
protected $_code = 'moneybookers_npy';
|
26 |
+
protected $_paymentMethod = 'NPY';
|
27 |
+
}
|
app/code/community/Phoenix/Moneybookers/Model/Obt.php
ADDED
@@ -0,0 +1,27 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
<?php
|
2 |
+
/**
|
3 |
+
* Magento
|
4 |
+
*
|
5 |
+
* NOTICE OF LICENSE
|
6 |
+
*
|
7 |
+
* This source file is subject to the Open Software License (OSL 3.0)
|
8 |
+
* that is bundled with this package in the file LICENSE.txt.
|
9 |
+
* It is also available through the world-wide-web at this URL:
|
10 |
+
* http://opensource.org/licenses/osl-3.0.php
|
11 |
+
* If you did not receive a copy of the license and are unable to
|
12 |
+
* obtain it through the world-wide-web, please send an email
|
13 |
+
* to license@magentocommerce.com so we can send you a copy immediately.
|
14 |
+
*
|
15 |
+
* @category Phoenix
|
16 |
+
* @package Phoenix_Moneybookers
|
17 |
+
* @copyright Copyright (c) 2015 Phoenix Medien GmbH & Co. KG (http://www.phoenix-medien.de)
|
18 |
+
* @license http://opensource.org/licenses/osl-3.0.php Open Software License (OSL 3.0)
|
19 |
+
*/
|
20 |
+
class Phoenix_Moneybookers_Model_Obt extends Phoenix_Moneybookers_Model_Abstract
|
21 |
+
{
|
22 |
+
/**
|
23 |
+
* unique internal payment method identifier
|
24 |
+
*/
|
25 |
+
protected $_code = 'moneybookers_obt';
|
26 |
+
protected $_paymentMethod = 'OBT';
|
27 |
+
}
|
app/code/community/Phoenix/Moneybookers/Model/Pli.php
ADDED
@@ -0,0 +1,27 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
<?php
|
2 |
+
/**
|
3 |
+
* Magento
|
4 |
+
*
|
5 |
+
* NOTICE OF LICENSE
|
6 |
+
*
|
7 |
+
* This source file is subject to the Open Software License (OSL 3.0)
|
8 |
+
* that is bundled with this package in the file LICENSE.txt.
|
9 |
+
* It is also available through the world-wide-web at this URL:
|
10 |
+
* http://opensource.org/licenses/osl-3.0.php
|
11 |
+
* If you did not receive a copy of the license and are unable to
|
12 |
+
* obtain it through the world-wide-web, please send an email
|
13 |
+
* to license@magentocommerce.com so we can send you a copy immediately.
|
14 |
+
*
|
15 |
+
* @category Phoenix
|
16 |
+
* @package Phoenix_Moneybookers
|
17 |
+
* @copyright Copyright (c) 2015 Phoenix Medien GmbH & Co. KG (http://www.phoenix-medien.de)
|
18 |
+
* @license http://opensource.org/licenses/osl-3.0.php Open Software License (OSL 3.0)
|
19 |
+
*/
|
20 |
+
class Phoenix_Moneybookers_Model_Pli extends Phoenix_Moneybookers_Model_Abstract
|
21 |
+
{
|
22 |
+
/**
|
23 |
+
* unique internal payment method identifier
|
24 |
+
*/
|
25 |
+
protected $_code = 'moneybookers_pli';
|
26 |
+
protected $_paymentMethod = 'PLI';
|
27 |
+
}
|
app/code/community/Phoenix/Moneybookers/Model/Psp.php
ADDED
@@ -0,0 +1,27 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
<?php
|
2 |
+
/**
|
3 |
+
* Magento
|
4 |
+
*
|
5 |
+
* NOTICE OF LICENSE
|
6 |
+
*
|
7 |
+
* This source file is subject to the Open Software License (OSL 3.0)
|
8 |
+
* that is bundled with this package in the file LICENSE.txt.
|
9 |
+
* It is also available through the world-wide-web at this URL:
|
10 |
+
* http://opensource.org/licenses/osl-3.0.php
|
11 |
+
* If you did not receive a copy of the license and are unable to
|
12 |
+
* obtain it through the world-wide-web, please send an email
|
13 |
+
* to license@magentocommerce.com so we can send you a copy immediately.
|
14 |
+
*
|
15 |
+
* @category Phoenix
|
16 |
+
* @package Phoenix_Moneybookers
|
17 |
+
* @copyright Copyright (c) 2015 Phoenix Medien GmbH & Co. KG (http://www.phoenix-medien.de)
|
18 |
+
* @license http://opensource.org/licenses/osl-3.0.php Open Software License (OSL 3.0)
|
19 |
+
*/
|
20 |
+
class Phoenix_Moneybookers_Model_Psp extends Phoenix_Moneybookers_Model_Abstract
|
21 |
+
{
|
22 |
+
/**
|
23 |
+
* unique internal payment method identifier
|
24 |
+
*/
|
25 |
+
protected $_code = 'moneybookers_psp';
|
26 |
+
protected $_paymentMethod = 'PSP';
|
27 |
+
}
|
app/code/community/Phoenix/Moneybookers/Model/Pwy.php
ADDED
@@ -0,0 +1,27 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
<?php
|
2 |
+
/**
|
3 |
+
* Magento
|
4 |
+
*
|
5 |
+
* NOTICE OF LICENSE
|
6 |
+
*
|
7 |
+
* This source file is subject to the Open Software License (OSL 3.0)
|
8 |
+
* that is bundled with this package in the file LICENSE.txt.
|
9 |
+
* It is also available through the world-wide-web at this URL:
|
10 |
+
* http://opensource.org/licenses/osl-3.0.php
|
11 |
+
* If you did not receive a copy of the license and are unable to
|
12 |
+
* obtain it through the world-wide-web, please send an email
|
13 |
+
* to license@magentocommerce.com so we can send you a copy immediately.
|
14 |
+
*
|
15 |
+
* @category Phoenix
|
16 |
+
* @package Phoenix_Moneybookers
|
17 |
+
* @copyright Copyright (c) 2015 Phoenix Medien GmbH & Co. KG (http://www.phoenix-medien.de)
|
18 |
+
* @license http://opensource.org/licenses/osl-3.0.php Open Software License (OSL 3.0)
|
19 |
+
*/
|
20 |
+
class Phoenix_Moneybookers_Model_Pwy extends Phoenix_Moneybookers_Model_Abstract
|
21 |
+
{
|
22 |
+
/**
|
23 |
+
* unique internal payment method identifier
|
24 |
+
*/
|
25 |
+
protected $_code = 'moneybookers_pwy';
|
26 |
+
protected $_paymentMethod = 'PWY';
|
27 |
+
}
|
app/code/community/Phoenix/Moneybookers/Model/Sft.php
ADDED
@@ -0,0 +1,27 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
<?php
|
2 |
+
/**
|
3 |
+
* Magento
|
4 |
+
*
|
5 |
+
* NOTICE OF LICENSE
|
6 |
+
*
|
7 |
+
* This source file is subject to the Open Software License (OSL 3.0)
|
8 |
+
* that is bundled with this package in the file LICENSE.txt.
|
9 |
+
* It is also available through the world-wide-web at this URL:
|
10 |
+
* http://opensource.org/licenses/osl-3.0.php
|
11 |
+
* If you did not receive a copy of the license and are unable to
|
12 |
+
* obtain it through the world-wide-web, please send an email
|
13 |
+
* to license@magentocommerce.com so we can send you a copy immediately.
|
14 |
+
*
|
15 |
+
* @category Phoenix
|
16 |
+
* @package Phoenix_Moneybookers
|
17 |
+
* @copyright Copyright (c) 2015 Phoenix Medien GmbH & Co. KG (http://www.phoenix-medien.de)
|
18 |
+
* @license http://opensource.org/licenses/osl-3.0.php Open Software License (OSL 3.0)
|
19 |
+
*/
|
20 |
+
class Phoenix_Moneybookers_Model_Sft extends Phoenix_Moneybookers_Model_Abstract
|
21 |
+
{
|
22 |
+
/**
|
23 |
+
* unique internal payment method identifier
|
24 |
+
*/
|
25 |
+
protected $_code = 'moneybookers_sft';
|
26 |
+
protected $_paymentMethod = 'SFT';
|
27 |
+
}
|
app/code/community/Phoenix/Moneybookers/Model/So2.php
ADDED
@@ -0,0 +1,27 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
<?php
|
2 |
+
/**
|
3 |
+
* Magento
|
4 |
+
*
|
5 |
+
* NOTICE OF LICENSE
|
6 |
+
*
|
7 |
+
* This source file is subject to the Open Software License (OSL 3.0)
|
8 |
+
* that is bundled with this package in the file LICENSE.txt.
|
9 |
+
* It is also available through the world-wide-web at this URL:
|
10 |
+
* http://opensource.org/licenses/osl-3.0.php
|
11 |
+
* If you did not receive a copy of the license and are unable to
|
12 |
+
* obtain it through the world-wide-web, please send an email
|
13 |
+
* to license@magentocommerce.com so we can send you a copy immediately.
|
14 |
+
*
|
15 |
+
* @category Phoenix
|
16 |
+
* @package Phoenix_Moneybookers
|
17 |
+
* @copyright Copyright (c) 2015 Phoenix Medien GmbH & Co. KG (http://www.phoenix-medien.de)
|
18 |
+
* @license http://opensource.org/licenses/osl-3.0.php Open Software License (OSL 3.0)
|
19 |
+
*/
|
20 |
+
class Phoenix_Moneybookers_Model_So2 extends Phoenix_Moneybookers_Model_Abstract
|
21 |
+
{
|
22 |
+
/**
|
23 |
+
* unique internal payment method identifier
|
24 |
+
*/
|
25 |
+
protected $_code = 'moneybookers_so2';
|
26 |
+
protected $_paymentMethod = 'SO2';
|
27 |
+
}
|
app/code/community/Phoenix/Moneybookers/Model/Wlt.php
ADDED
@@ -0,0 +1,28 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
<?php
|
2 |
+
/**
|
3 |
+
* Magento
|
4 |
+
*
|
5 |
+
* NOTICE OF LICENSE
|
6 |
+
*
|
7 |
+
* This source file is subject to the Open Software License (OSL 3.0)
|
8 |
+
* that is bundled with this package in the file LICENSE.txt.
|
9 |
+
* It is also available through the world-wide-web at this URL:
|
10 |
+
* http://opensource.org/licenses/osl-3.0.php
|
11 |
+
* If you did not receive a copy of the license and are unable to
|
12 |
+
* obtain it through the world-wide-web, please send an email
|
13 |
+
* to license@magentocommerce.com so we can send you a copy immediately.
|
14 |
+
*
|
15 |
+
* @category Phoenix
|
16 |
+
* @package Phoenix_Moneybookers
|
17 |
+
* @copyright Copyright (c) 2015 Phoenix Medien GmbH & Co. KG (http://www.phoenix-medien.de)
|
18 |
+
* @license http://opensource.org/licenses/osl-3.0.php Open Software License (OSL 3.0)
|
19 |
+
*/
|
20 |
+
class Phoenix_Moneybookers_Model_Wlt extends Phoenix_Moneybookers_Model_Abstract
|
21 |
+
{
|
22 |
+
/**
|
23 |
+
* unique internal payment method identifier
|
24 |
+
*/
|
25 |
+
protected $_code = 'moneybookers_wlt';
|
26 |
+
protected $_paymentMethod = 'WLT';
|
27 |
+
protected $_hidelogin = '0';
|
28 |
+
}
|
app/code/community/Phoenix/Moneybookers/controllers/MoneybookersController.php
ADDED
@@ -0,0 +1,97 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
<?php
|
2 |
+
/**
|
3 |
+
* Magento
|
4 |
+
*
|
5 |
+
* NOTICE OF LICENSE
|
6 |
+
*
|
7 |
+
* This source file is subject to the Open Software License (OSL 3.0)
|
8 |
+
* that is bundled with this package in the file LICENSE.txt.
|
9 |
+
* It is also available through the world-wide-web at this URL:
|
10 |
+
* http://opensource.org/licenses/osl-3.0.php
|
11 |
+
* If you did not receive a copy of the license and are unable to
|
12 |
+
* obtain it through the world-wide-web, please send an email
|
13 |
+
* to license@magentocommerce.com so we can send you a copy immediately.
|
14 |
+
*
|
15 |
+
* @category Phoenix
|
16 |
+
* @package Phoenix_Moneybookers
|
17 |
+
* @copyright Copyright (c) 2015 Phoenix Medien GmbH & Co. KG (http://www.phoenix-medien.de)
|
18 |
+
* @license http://opensource.org/licenses/osl-3.0.php Open Software License (OSL 3.0)
|
19 |
+
*/
|
20 |
+
class Phoenix_Moneybookers_MoneybookersController extends Mage_Adminhtml_Controller_Action
|
21 |
+
{
|
22 |
+
/**
|
23 |
+
* Retrieve Moneybookers helper
|
24 |
+
*
|
25 |
+
* @return Phoenix_Moneybookers_Helper_Data
|
26 |
+
*/
|
27 |
+
protected function _getHelper()
|
28 |
+
{
|
29 |
+
return Mage::helper('moneybookers');
|
30 |
+
}
|
31 |
+
|
32 |
+
/**
|
33 |
+
* Send activation Email to Moneybookers
|
34 |
+
*/
|
35 |
+
public function activateemailAction()
|
36 |
+
{
|
37 |
+
$this->_getHelper()->activateEmail();
|
38 |
+
}
|
39 |
+
|
40 |
+
/**
|
41 |
+
* Check if email is registered at Moneybookers
|
42 |
+
*/
|
43 |
+
public function checkemailAction()
|
44 |
+
{
|
45 |
+
try {
|
46 |
+
$params = $this->getRequest()->getParams();
|
47 |
+
if (empty($params['email'])) {
|
48 |
+
Mage::throwException('Error: No parameters specified');
|
49 |
+
}
|
50 |
+
$response = $this->_getHelper()->checkEmailRequest($params);
|
51 |
+
if (empty($response)) {
|
52 |
+
Mage::throwException('Error: Connection to moneybookers.com failed');
|
53 |
+
}
|
54 |
+
$this->getResponse()->setBody($response);
|
55 |
+
return;
|
56 |
+
} catch (Mage_Core_Exception $e) {
|
57 |
+
$response = $e->getMessage();
|
58 |
+
} catch (Exception $e) {
|
59 |
+
$response = 'Error: System error during request';
|
60 |
+
}
|
61 |
+
$this->getResponse()->setBody($response);
|
62 |
+
}
|
63 |
+
|
64 |
+
/**
|
65 |
+
* Check if entered secret is valid
|
66 |
+
*/
|
67 |
+
public function checksecretAction()
|
68 |
+
{
|
69 |
+
try {
|
70 |
+
$params = $this->getRequest()->getParams();
|
71 |
+
if (empty($params['email']) || empty($params['secret'])) {
|
72 |
+
Mage::throwException('Error: No parameters specified');
|
73 |
+
}
|
74 |
+
$response = $this->_getHelper()->checkSecretRequest($params);
|
75 |
+
if (empty($response)) {
|
76 |
+
Mage::throwException('Error: Connection to moneybookers.com failed');
|
77 |
+
}
|
78 |
+
$this->getResponse()->setBody($response);
|
79 |
+
return;
|
80 |
+
} catch (Mage_Core_Exception $e) {
|
81 |
+
$response = $e->getMessage();
|
82 |
+
} catch (Exception $e) {
|
83 |
+
$response = 'Error: System error during request';
|
84 |
+
}
|
85 |
+
$this->getResponse()->setBody($response);
|
86 |
+
}
|
87 |
+
|
88 |
+
/**
|
89 |
+
* Check is allowed access to action
|
90 |
+
*
|
91 |
+
* @return bool
|
92 |
+
*/
|
93 |
+
protected function _isAllowed()
|
94 |
+
{
|
95 |
+
return Mage::getSingleton('admin/session')->isAllowed('system/config/moneybookers');
|
96 |
+
}
|
97 |
+
}
|
app/code/community/Phoenix/Moneybookers/controllers/ProcessingController.php
ADDED
@@ -0,0 +1,146 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
<?php
|
2 |
+
/**
|
3 |
+
* Magento
|
4 |
+
*
|
5 |
+
* NOTICE OF LICENSE
|
6 |
+
*
|
7 |
+
* This source file is subject to the Open Software License (OSL 3.0)
|
8 |
+
* that is bundled with this package in the file LICENSE.txt.
|
9 |
+
* It is also available through the world-wide-web at this URL:
|
10 |
+
* http://opensource.org/licenses/osl-3.0.php
|
11 |
+
* If you did not receive a copy of the license and are unable to
|
12 |
+
* obtain it through the world-wide-web, please send an email
|
13 |
+
* to license@magentocommerce.com so we can send you a copy immediately.
|
14 |
+
*
|
15 |
+
* @category Phoenix
|
16 |
+
* @package Phoenix_Moneybookers
|
17 |
+
* @copyright Copyright (c) 2015 Phoenix Medien GmbH & Co. KG (http://www.phoenix-medien.de)
|
18 |
+
* @license http://opensource.org/licenses/osl-3.0.php Open Software License (OSL 3.0)
|
19 |
+
*/
|
20 |
+
class Phoenix_Moneybookers_ProcessingController extends Mage_Core_Controller_Front_Action
|
21 |
+
{
|
22 |
+
/**
|
23 |
+
* Get singleton of Checkout Session Model
|
24 |
+
*
|
25 |
+
* @return Mage_Checkout_Model_Session
|
26 |
+
*/
|
27 |
+
protected function _getCheckout()
|
28 |
+
{
|
29 |
+
return Mage::getSingleton('checkout/session');
|
30 |
+
}
|
31 |
+
|
32 |
+
/**
|
33 |
+
* Iframe page which submits the payment data to Moneybookers.
|
34 |
+
*/
|
35 |
+
public function placeformAction()
|
36 |
+
{
|
37 |
+
$this->loadLayout();
|
38 |
+
$this->renderLayout();
|
39 |
+
}
|
40 |
+
|
41 |
+
/**
|
42 |
+
* Show orderPlaceRedirect page which contains the Moneybookers iframe.
|
43 |
+
*/
|
44 |
+
public function paymentAction()
|
45 |
+
{
|
46 |
+
try {
|
47 |
+
$session = $this->_getCheckout();
|
48 |
+
|
49 |
+
$order = Mage::getModel('sales/order');
|
50 |
+
$order->loadByIncrementId($session->getLastRealOrderId());
|
51 |
+
if (!$order->getId()) {
|
52 |
+
Mage::throwException('No order for processing found');
|
53 |
+
}
|
54 |
+
$order->setState(Mage_Sales_Model_Order::STATE_PENDING_PAYMENT, Mage_Sales_Model_Order::STATE_PENDING_PAYMENT,
|
55 |
+
Mage::helper('moneybookers')->__('The customer was redirected to Moneybookers.')
|
56 |
+
);
|
57 |
+
$order->save();
|
58 |
+
|
59 |
+
$session->setMoneybookersQuoteId($session->getQuoteId());
|
60 |
+
$session->setMoneybookersRealOrderId($session->getLastRealOrderId());
|
61 |
+
$session->getQuote()->setIsActive(false)->save();
|
62 |
+
$session->clear();
|
63 |
+
|
64 |
+
$this->loadLayout();
|
65 |
+
$this->renderLayout();
|
66 |
+
} catch (Exception $e){
|
67 |
+
Mage::logException($e);
|
68 |
+
parent::_redirect('checkout/cart');
|
69 |
+
}
|
70 |
+
}
|
71 |
+
|
72 |
+
/**
|
73 |
+
* Action to which the customer will be returned when the payment is made.
|
74 |
+
*/
|
75 |
+
public function successAction()
|
76 |
+
{
|
77 |
+
$event = Mage::getModel('moneybookers/event')
|
78 |
+
->setEventData($this->getRequest()->getParams());
|
79 |
+
try {
|
80 |
+
$quoteId = $event->successEvent();
|
81 |
+
$this->_getCheckout()->setLastSuccessQuoteId($quoteId);
|
82 |
+
$this->_redirect('checkout/onepage/success');
|
83 |
+
return;
|
84 |
+
} catch (Mage_Core_Exception $e) {
|
85 |
+
$this->_getCheckout()->addError($e->getMessage());
|
86 |
+
} catch(Exception $e) {
|
87 |
+
Mage::logException($e);
|
88 |
+
}
|
89 |
+
$this->_redirect('checkout/cart');
|
90 |
+
}
|
91 |
+
|
92 |
+
/**
|
93 |
+
* Action to which the customer will be returned if the payment process is
|
94 |
+
* cancelled.
|
95 |
+
* Cancel order and redirect user to the shopping cart.
|
96 |
+
*/
|
97 |
+
public function cancelAction()
|
98 |
+
{
|
99 |
+
$event = Mage::getModel('moneybookers/event')
|
100 |
+
->setEventData($this->getRequest()->getParams());
|
101 |
+
$message = $event->cancelEvent();
|
102 |
+
|
103 |
+
// set quote to active
|
104 |
+
$session = $this->_getCheckout();
|
105 |
+
if ($quoteId = $session->getMoneybookersQuoteId()) {
|
106 |
+
$quote = Mage::getModel('sales/quote')->load($quoteId);
|
107 |
+
if ($quote->getId()) {
|
108 |
+
$quote->setIsActive(true)->save();
|
109 |
+
$session->setQuoteId($quoteId);
|
110 |
+
}
|
111 |
+
}
|
112 |
+
|
113 |
+
$session->addError($message);
|
114 |
+
$this->_redirect('checkout/cart');
|
115 |
+
}
|
116 |
+
|
117 |
+
/**
|
118 |
+
* Action to which the transaction details will be posted after the payment
|
119 |
+
* process is complete.
|
120 |
+
*/
|
121 |
+
public function statusAction()
|
122 |
+
{
|
123 |
+
$event = Mage::getModel('moneybookers/event')
|
124 |
+
->setEventData($this->getRequest()->getParams());
|
125 |
+
$message = $event->processStatusEvent();
|
126 |
+
$this->getResponse()->setBody($message);
|
127 |
+
}
|
128 |
+
|
129 |
+
/**
|
130 |
+
* Set redirect into responce. This has to be encapsulated in an JavaScript
|
131 |
+
* call to jump out of the iframe.
|
132 |
+
*
|
133 |
+
* @param string $path
|
134 |
+
* @param array $arguments
|
135 |
+
*/
|
136 |
+
protected function _redirect($path, $arguments=array())
|
137 |
+
{
|
138 |
+
$this->getResponse()->setBody(
|
139 |
+
$this->getLayout()
|
140 |
+
->createBlock('moneybookers/redirect')
|
141 |
+
->setRedirectUrl(Mage::getUrl($path, $arguments))
|
142 |
+
->toHtml()
|
143 |
+
);
|
144 |
+
return $this;
|
145 |
+
}
|
146 |
+
}
|
app/code/community/Phoenix/Moneybookers/etc/config.xml
ADDED
@@ -0,0 +1,306 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
<?xml version="1.0"?>
|
2 |
+
<!--
|
3 |
+
/**
|
4 |
+
* Magento
|
5 |
+
*
|
6 |
+
* NOTICE OF LICENSE
|
7 |
+
*
|
8 |
+
* This source file is subject to the Open Software License (OSL 3.0)
|
9 |
+
* that is bundled with this package in the file LICENSE.txt.
|
10 |
+
* It is also available through the world-wide-web at this URL:
|
11 |
+
* http://opensource.org/licenses/osl-3.0.php
|
12 |
+
* If you did not receive a copy of the license and are unable to
|
13 |
+
* obtain it through the world-wide-web, please send an email
|
14 |
+
* to license@magentocommerce.com so we can send you a copy immediately.
|
15 |
+
*
|
16 |
+
* @category Phoenix
|
17 |
+
* @package Phoenix_Moneybookers
|
18 |
+
* @copyright Copyright (c) 2015 Phoenix Medien GmbH & Co. KG (http://www.phoenix-medien.de)
|
19 |
+
* @license http://opensource.org/licenses/osl-3.0.php Open Software License (OSL 3.0)
|
20 |
+
*/
|
21 |
+
-->
|
22 |
+
<config>
|
23 |
+
<modules>
|
24 |
+
<Phoenix_Moneybookers>
|
25 |
+
<version>1.6.0.0</version>
|
26 |
+
</Phoenix_Moneybookers>
|
27 |
+
</modules>
|
28 |
+
<global>
|
29 |
+
<models>
|
30 |
+
<moneybookers>
|
31 |
+
<class>Phoenix_Moneybookers_Model</class>
|
32 |
+
</moneybookers>
|
33 |
+
</models>
|
34 |
+
<helpers>
|
35 |
+
<moneybookers>
|
36 |
+
<class>Phoenix_Moneybookers_Helper</class>
|
37 |
+
</moneybookers>
|
38 |
+
</helpers>
|
39 |
+
<resources>
|
40 |
+
<moneybookers_setup>
|
41 |
+
<setup>
|
42 |
+
<module>Phoenix_Moneybookers</module>
|
43 |
+
</setup>
|
44 |
+
</moneybookers_setup>
|
45 |
+
</resources>
|
46 |
+
<blocks>
|
47 |
+
<moneybookers><class>Phoenix_Moneybookers_Block</class></moneybookers>
|
48 |
+
</blocks>
|
49 |
+
<template>
|
50 |
+
<email>
|
51 |
+
<moneybookers_activateemail>
|
52 |
+
<label>Moneybookers activate email</label>
|
53 |
+
<file>moneybookers_activateemail.html</file>
|
54 |
+
<type>html</type>
|
55 |
+
</moneybookers_activateemail>
|
56 |
+
</email>
|
57 |
+
</template>
|
58 |
+
<payment>
|
59 |
+
<groups>
|
60 |
+
<mbookers>Moneybookers</mbookers>
|
61 |
+
</groups>
|
62 |
+
</payment>
|
63 |
+
</global>
|
64 |
+
<frontend>
|
65 |
+
<secure_url>
|
66 |
+
<moneybookers_processing>/moneybookers/processing</moneybookers_processing>
|
67 |
+
</secure_url>
|
68 |
+
<routers>
|
69 |
+
<moneybookers>
|
70 |
+
<use>standard</use>
|
71 |
+
<args>
|
72 |
+
<module>Phoenix_Moneybookers</module>
|
73 |
+
<frontName>moneybookers</frontName>
|
74 |
+
</args>
|
75 |
+
</moneybookers>
|
76 |
+
</routers>
|
77 |
+
<translate>
|
78 |
+
<modules>
|
79 |
+
<Phoenix_Moneybookers>
|
80 |
+
<files>
|
81 |
+
<default>Phoenix_Moneybookers.csv</default>
|
82 |
+
</files>
|
83 |
+
</Phoenix_Moneybookers>
|
84 |
+
</modules>
|
85 |
+
</translate>
|
86 |
+
<layout>
|
87 |
+
<updates>
|
88 |
+
<moneybookers>
|
89 |
+
<file>moneybookers.xml</file>
|
90 |
+
</moneybookers>
|
91 |
+
</updates>
|
92 |
+
</layout>
|
93 |
+
</frontend>
|
94 |
+
<admin>
|
95 |
+
<routers>
|
96 |
+
<adminhtml>
|
97 |
+
<args>
|
98 |
+
<modules>
|
99 |
+
<moneybookers after="Mage_Adminhtml">Phoenix_Moneybookers</moneybookers>
|
100 |
+
</modules>
|
101 |
+
</args>
|
102 |
+
</adminhtml>
|
103 |
+
</routers>
|
104 |
+
</admin>
|
105 |
+
<adminhtml>
|
106 |
+
<translate>
|
107 |
+
<modules>
|
108 |
+
<Phoenix_Moneybookers>
|
109 |
+
<files>
|
110 |
+
<default>Phoenix_Moneybookers.csv</default>
|
111 |
+
</files>
|
112 |
+
</Phoenix_Moneybookers>
|
113 |
+
</modules>
|
114 |
+
</translate>
|
115 |
+
<layout>
|
116 |
+
<updates>
|
117 |
+
<moneybookers>
|
118 |
+
<file>moneybookers.xml</file>
|
119 |
+
</moneybookers>
|
120 |
+
</updates>
|
121 |
+
</layout>
|
122 |
+
<acl>
|
123 |
+
<resources>
|
124 |
+
<admin>
|
125 |
+
<children>
|
126 |
+
<system>
|
127 |
+
<children>
|
128 |
+
<config>
|
129 |
+
<children>
|
130 |
+
<moneybookers translate="title" module="moneybookers">
|
131 |
+
<title>Moneybookers Settings</title>
|
132 |
+
</moneybookers>
|
133 |
+
</children>
|
134 |
+
</config>
|
135 |
+
</children>
|
136 |
+
</system>
|
137 |
+
</children>
|
138 |
+
</admin>
|
139 |
+
</resources>
|
140 |
+
</acl>
|
141 |
+
</adminhtml>
|
142 |
+
<phoenix>
|
143 |
+
<moneybookers>
|
144 |
+
<verify_url>http://www.phoenix-medien.de/index.php?id=105</verify_url>
|
145 |
+
</moneybookers>
|
146 |
+
</phoenix>
|
147 |
+
<default>
|
148 |
+
<payment>
|
149 |
+
<moneybookers_acc>
|
150 |
+
<group>mbookers</group>
|
151 |
+
<active>0</active>
|
152 |
+
<model>moneybookers/acc</model>
|
153 |
+
<title>Credit Card / Visa, Mastercard, AMEX, JCB, Diners</title>
|
154 |
+
<allowspecific>0</allowspecific>
|
155 |
+
</moneybookers_acc>
|
156 |
+
<moneybookers_csi>
|
157 |
+
<group>mbookers</group>
|
158 |
+
<active>0</active>
|
159 |
+
<model>moneybookers/csi</model>
|
160 |
+
<title>CartaSi</title>
|
161 |
+
<allowspecific>1</allowspecific>
|
162 |
+
<specificcountry>IT</specificcountry>
|
163 |
+
</moneybookers_csi>
|
164 |
+
<moneybookers_did>
|
165 |
+
<group>mbookers</group>
|
166 |
+
<active>0</active>
|
167 |
+
<model>moneybookers/did</model>
|
168 |
+
<title>Lastschrift (ELV)</title>
|
169 |
+
<allowspecific>1</allowspecific>
|
170 |
+
<specificcountry>DE</specificcountry>
|
171 |
+
</moneybookers_did>
|
172 |
+
<moneybookers_dnk>
|
173 |
+
<group>mbookers</group>
|
174 |
+
<active>0</active>
|
175 |
+
<model>moneybookers/dnk</model>
|
176 |
+
<title>Dankort</title>
|
177 |
+
<allowspecific>1</allowspecific>
|
178 |
+
<specificcountry>DK</specificcountry>
|
179 |
+
</moneybookers_dnk>
|
180 |
+
<moneybookers_ebt>
|
181 |
+
<group>mbookers</group>
|
182 |
+
<active>0</active>
|
183 |
+
<model>moneybookers/ebt</model>
|
184 |
+
<title>Nordea Solo</title>
|
185 |
+
<allowspecific>1</allowspecific>
|
186 |
+
<specificcountry>SE</specificcountry>
|
187 |
+
</moneybookers_ebt>
|
188 |
+
<moneybookers_ent>
|
189 |
+
<group>mbookers</group>
|
190 |
+
<active>0</active>
|
191 |
+
<model>moneybookers/ent</model>
|
192 |
+
<title>eNETS</title>
|
193 |
+
<allowspecific>1</allowspecific>
|
194 |
+
<specificcountry>SG</specificcountry>
|
195 |
+
</moneybookers_ent>
|
196 |
+
<moneybookers_gcb>
|
197 |
+
<group>mbookers</group>
|
198 |
+
<active>0</active>
|
199 |
+
<model>moneybookers/gcb</model>
|
200 |
+
<title>Carte Bleue</title>
|
201 |
+
<allowspecific>1</allowspecific>
|
202 |
+
<specificcountry>FR</specificcountry>
|
203 |
+
</moneybookers_gcb>
|
204 |
+
<moneybookers_gir>
|
205 |
+
<group>mbookers</group>
|
206 |
+
<active>0</active>
|
207 |
+
<model>moneybookers/gir</model>
|
208 |
+
<title>Giropay</title>
|
209 |
+
<allowspecific>1</allowspecific>
|
210 |
+
<specificcountry>DE</specificcountry>
|
211 |
+
</moneybookers_gir>
|
212 |
+
<moneybookers_idl>
|
213 |
+
<group>mbookers</group>
|
214 |
+
<active>0</active>
|
215 |
+
<model>moneybookers/idl</model>
|
216 |
+
<title>iDeal</title>
|
217 |
+
<allowspecific>1</allowspecific>
|
218 |
+
<specificcountry>NL</specificcountry>
|
219 |
+
</moneybookers_idl>
|
220 |
+
<moneybookers_lsr>
|
221 |
+
<group>mbookers</group>
|
222 |
+
<active>0</active>
|
223 |
+
<model>moneybookers/lsr</model>
|
224 |
+
<title>Laser</title>
|
225 |
+
<allowspecific>1</allowspecific>
|
226 |
+
<specificcountry>IE</specificcountry>
|
227 |
+
</moneybookers_lsr>
|
228 |
+
<moneybookers_mae>
|
229 |
+
<group>mbookers</group>
|
230 |
+
<active>0</active>
|
231 |
+
<model>moneybookers/mae</model>
|
232 |
+
<title>Maestro</title>
|
233 |
+
<allowspecific>1</allowspecific>
|
234 |
+
<specificcountry>GB,AT,ES</specificcountry>
|
235 |
+
</moneybookers_mae>
|
236 |
+
<moneybookers_npy>
|
237 |
+
<group>mbookers</group>
|
238 |
+
<active>0</active>
|
239 |
+
<model>moneybookers/npy</model>
|
240 |
+
<title>EPS Online-Überweisung</title>
|
241 |
+
<allowspecific>1</allowspecific>
|
242 |
+
<specificcountry>AT</specificcountry>
|
243 |
+
</moneybookers_npy>
|
244 |
+
<moneybookers_pli>
|
245 |
+
<group>mbookers</group>
|
246 |
+
<active>0</active>
|
247 |
+
<model>moneybookers/pli</model>
|
248 |
+
<title>POLi</title>
|
249 |
+
<allowspecific>1</allowspecific>
|
250 |
+
<specificcountry>AU</specificcountry>
|
251 |
+
</moneybookers_pli>
|
252 |
+
<moneybookers_psp>
|
253 |
+
<group>mbookers</group>
|
254 |
+
<active>0</active>
|
255 |
+
<model>moneybookers/psp</model>
|
256 |
+
<title>Postepay</title>
|
257 |
+
<allowspecific>1</allowspecific>
|
258 |
+
<specificcountry>IT</specificcountry>
|
259 |
+
</moneybookers_psp>
|
260 |
+
<moneybookers_pwy>
|
261 |
+
<group>mbookers</group>
|
262 |
+
<active>0</active>
|
263 |
+
<model>moneybookers/pwy</model>
|
264 |
+
<title>All Polish Banks</title>
|
265 |
+
<allowspecific>1</allowspecific>
|
266 |
+
<specificcountry>PL</specificcountry>
|
267 |
+
</moneybookers_pwy>
|
268 |
+
<moneybookers_sft>
|
269 |
+
<group>mbookers</group>
|
270 |
+
<active>0</active>
|
271 |
+
<model>moneybookers/sft</model>
|
272 |
+
<title>Sofortüberweisung</title>
|
273 |
+
<allowspecific>1</allowspecific>
|
274 |
+
<specificcountry>DE</specificcountry>
|
275 |
+
</moneybookers_sft>
|
276 |
+
<moneybookers_so2>
|
277 |
+
<group>mbookers</group>
|
278 |
+
<active>0</active>
|
279 |
+
<model>moneybookers/so2</model>
|
280 |
+
<title>Nordea Solo</title>
|
281 |
+
<allowspecific>1</allowspecific>
|
282 |
+
<specificcountry>FI</specificcountry>
|
283 |
+
</moneybookers_so2>
|
284 |
+
<moneybookers_wlt>
|
285 |
+
<group>mbookers</group>
|
286 |
+
<active>0</active>
|
287 |
+
<model>moneybookers/wlt</model>
|
288 |
+
<title>Moneybookers eWallet</title>
|
289 |
+
<allowspecific>0</allowspecific>
|
290 |
+
</moneybookers_wlt>
|
291 |
+
<moneybookers_obt>
|
292 |
+
<group>mbookers</group>
|
293 |
+
<active>0</active>
|
294 |
+
<model>moneybookers/obt</model>
|
295 |
+
<title>Onlineüberweisung (empfohlen)</title>
|
296 |
+
<allowspecific>1</allowspecific>
|
297 |
+
<specificcountry>GB,DE</specificcountry>
|
298 |
+
</moneybookers_obt>
|
299 |
+
</payment>
|
300 |
+
<moneybookers>
|
301 |
+
<settings>
|
302 |
+
<activationstatus>0</activationstatus>
|
303 |
+
</settings>
|
304 |
+
</moneybookers>
|
305 |
+
</default>
|
306 |
+
</config>
|
app/code/community/Phoenix/Moneybookers/etc/system.xml
ADDED
@@ -0,0 +1,1201 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
<?xml version="1.0"?>
|
2 |
+
<!--
|
3 |
+
/**
|
4 |
+
* Magento
|
5 |
+
*
|
6 |
+
* NOTICE OF LICENSE
|
7 |
+
*
|
8 |
+
* This source file is subject to the Open Software License (OSL 3.0)
|
9 |
+
* that is bundled with this package in the file LICENSE.txt.
|
10 |
+
* It is also available through the world-wide-web at this URL:
|
11 |
+
* http://opensource.org/licenses/osl-3.0.php
|
12 |
+
* If you did not receive a copy of the license and are unable to
|
13 |
+
* obtain it through the world-wide-web, please send an email
|
14 |
+
* to license@magentocommerce.com so we can send you a copy immediately.
|
15 |
+
*
|
16 |
+
* @category Phoenix
|
17 |
+
* @package Phoenix_Moneybookers
|
18 |
+
* @copyright Copyright (c) 2015 Phoenix Medien GmbH & Co. KG (http://www.phoenix-medien.de)
|
19 |
+
* @license http://opensource.org/licenses/osl-3.0.php Open Software License (OSL 3.0)
|
20 |
+
*/
|
21 |
+
-->
|
22 |
+
<config>
|
23 |
+
<sections>
|
24 |
+
<moneybookers translate="label" module="moneybookers">
|
25 |
+
<label>Moneybookers</label>
|
26 |
+
<tab>sales</tab>
|
27 |
+
<frontend_type>text</frontend_type>
|
28 |
+
<sort_order>990</sort_order>
|
29 |
+
<show_in_default>1</show_in_default>
|
30 |
+
<show_in_website>1</show_in_website>
|
31 |
+
<show_in_store>1</show_in_store>
|
32 |
+
<groups>
|
33 |
+
<settings translate="label">
|
34 |
+
<label>Moneybookers Settings</label>
|
35 |
+
<frontend_type>text</frontend_type>
|
36 |
+
<sort_order>1</sort_order>
|
37 |
+
<show_in_default>1</show_in_default>
|
38 |
+
<show_in_website>1</show_in_website>
|
39 |
+
<show_in_store>1</show_in_store>
|
40 |
+
<fields>
|
41 |
+
<moneybookers_email translate="label,comment">
|
42 |
+
<label>Email Address of Your Moneybookers Account</label>
|
43 |
+
<comment><![CDATA[To have access to the international payment network of Moneybookers please register <a href="http://www.moneybookers.com/partners/magento/" target="_blank">here</a> for a free account if you don’t have one yet.]]></comment>
|
44 |
+
<frontend_type>text</frontend_type>
|
45 |
+
<sort_order>1</sort_order>
|
46 |
+
<show_in_default>1</show_in_default>
|
47 |
+
<show_in_website>1</show_in_website>
|
48 |
+
<show_in_store>1</show_in_store>
|
49 |
+
</moneybookers_email>
|
50 |
+
<customer_id translate="label">
|
51 |
+
<label>Customer ID</label>
|
52 |
+
<frontend_type>text</frontend_type>
|
53 |
+
<sort_order>2</sort_order>
|
54 |
+
<show_in_default>1</show_in_default>
|
55 |
+
<show_in_website>1</show_in_website>
|
56 |
+
<show_in_store>1</show_in_store>
|
57 |
+
</customer_id>
|
58 |
+
<secret_key translate="label,comment">
|
59 |
+
<label>Secret Word</label>
|
60 |
+
<comment>Pre-shared secret key to secure the transaction. After activation Moneybookers will give you access to a new section in your Moneybookers account called "Merchant tools". Please choose a secret word (do not use your password for this) and provide it in your Moneybookers admin area and above.</comment>
|
61 |
+
<frontend_type>text</frontend_type>
|
62 |
+
<sort_order>3</sort_order>
|
63 |
+
<show_in_default>1</show_in_default>
|
64 |
+
<show_in_website>1</show_in_website>
|
65 |
+
<show_in_store>1</show_in_store>
|
66 |
+
</secret_key>
|
67 |
+
<activationstatus>
|
68 |
+
<comment></comment>
|
69 |
+
<frontend_type>text</frontend_type>
|
70 |
+
<sort_order>4</sort_order>
|
71 |
+
<show_in_default>1</show_in_default>
|
72 |
+
<show_in_website>1</show_in_website>
|
73 |
+
<show_in_store>1</show_in_store>
|
74 |
+
</activationstatus>
|
75 |
+
</fields>
|
76 |
+
</settings>
|
77 |
+
<moneybookers_acc translate="label" module="moneybookers">
|
78 |
+
<label>All Credit Cards / Visa, Mastercard, AMEX, JCB, Diners (powered by Moneybookers) - International</label>
|
79 |
+
<frontend_type>text</frontend_type>
|
80 |
+
<sort_order>201</sort_order>
|
81 |
+
<show_in_default>1</show_in_default>
|
82 |
+
<show_in_website>1</show_in_website>
|
83 |
+
<show_in_store>1</show_in_store>
|
84 |
+
<fields>
|
85 |
+
<active translate="label">
|
86 |
+
<label>Enabled</label>
|
87 |
+
<frontend_type>select</frontend_type>
|
88 |
+
<config_path>payment/moneybookers_acc/active</config_path>
|
89 |
+
<source_model>adminhtml/system_config_source_yesno</source_model>
|
90 |
+
<sort_order>1</sort_order>
|
91 |
+
<show_in_default>1</show_in_default>
|
92 |
+
<show_in_website>1</show_in_website>
|
93 |
+
<show_in_store>1</show_in_store>
|
94 |
+
</active>
|
95 |
+
<sort_order translate="label">
|
96 |
+
<label>Sort Order</label>
|
97 |
+
<frontend_type>text</frontend_type>
|
98 |
+
<config_path>payment/moneybookers_acc/sort_order</config_path>
|
99 |
+
<sort_order>3</sort_order>
|
100 |
+
<show_in_default>1</show_in_default>
|
101 |
+
<show_in_website>1</show_in_website>
|
102 |
+
<show_in_store>1</show_in_store>
|
103 |
+
</sort_order>
|
104 |
+
<title translate="label">
|
105 |
+
<label>Title</label>
|
106 |
+
<frontend_type>text</frontend_type>
|
107 |
+
<config_path>payment/moneybookers_acc/title</config_path>
|
108 |
+
<sort_order>5</sort_order>
|
109 |
+
<show_in_default>1</show_in_default>
|
110 |
+
<show_in_website>1</show_in_website>
|
111 |
+
<show_in_store>1</show_in_store>
|
112 |
+
</title>
|
113 |
+
<allowspecific translate="label">
|
114 |
+
<label>Payment from Applicable Countries</label>
|
115 |
+
<frontend_type>allowspecific</frontend_type>
|
116 |
+
<config_path>payment/moneybookers_acc/allowspecific</config_path>
|
117 |
+
<sort_order>6</sort_order>
|
118 |
+
<source_model>adminhtml/system_config_source_payment_allspecificcountries</source_model>
|
119 |
+
<show_in_default>1</show_in_default>
|
120 |
+
<show_in_website>1</show_in_website>
|
121 |
+
<show_in_store>1</show_in_store>
|
122 |
+
</allowspecific>
|
123 |
+
<specificcountry translate="label">
|
124 |
+
<label>Payment from Specific Countries</label>
|
125 |
+
<frontend_type>multiselect</frontend_type>
|
126 |
+
<config_path>payment/moneybookers_acc/specificcountry</config_path>
|
127 |
+
<sort_order>7</sort_order>
|
128 |
+
<source_model>adminhtml/system_config_source_country</source_model>
|
129 |
+
<show_in_default>1</show_in_default>
|
130 |
+
<show_in_website>1</show_in_website>
|
131 |
+
<show_in_store>1</show_in_store>
|
132 |
+
<can_be_empty>1</can_be_empty>
|
133 |
+
</specificcountry>
|
134 |
+
</fields>
|
135 |
+
</moneybookers_acc>
|
136 |
+
<moneybookers_csi translate="label" module="moneybookers">
|
137 |
+
<label>CartaSi (powered by Moneybookers) - Italy</label>
|
138 |
+
<frontend_type>text</frontend_type>
|
139 |
+
<sort_order>252</sort_order>
|
140 |
+
<show_in_default>1</show_in_default>
|
141 |
+
<show_in_website>1</show_in_website>
|
142 |
+
<show_in_store>1</show_in_store>
|
143 |
+
<fields>
|
144 |
+
<active translate="label">
|
145 |
+
<label>Enabled</label>
|
146 |
+
<frontend_type>select</frontend_type>
|
147 |
+
<config_path>payment/moneybookers_csi/active</config_path>
|
148 |
+
<source_model>adminhtml/system_config_source_yesno</source_model>
|
149 |
+
<sort_order>1</sort_order>
|
150 |
+
<show_in_default>1</show_in_default>
|
151 |
+
<show_in_website>1</show_in_website>
|
152 |
+
<show_in_store>1</show_in_store>
|
153 |
+
</active>
|
154 |
+
<sort_order translate="label">
|
155 |
+
<label>Sort Order</label>
|
156 |
+
<frontend_type>text</frontend_type>
|
157 |
+
<config_path>payment/moneybookers_csi/sort_order</config_path>
|
158 |
+
<sort_order>3</sort_order>
|
159 |
+
<show_in_default>1</show_in_default>
|
160 |
+
<show_in_website>1</show_in_website>
|
161 |
+
<show_in_store>1</show_in_store>
|
162 |
+
</sort_order>
|
163 |
+
<title translate="label">
|
164 |
+
<label>Title</label>
|
165 |
+
<frontend_type>text</frontend_type>
|
166 |
+
<config_path>payment/moneybookers_csi/title</config_path>
|
167 |
+
<sort_order>5</sort_order>
|
168 |
+
<show_in_default>1</show_in_default>
|
169 |
+
<show_in_website>1</show_in_website>
|
170 |
+
<show_in_store>1</show_in_store>
|
171 |
+
</title>
|
172 |
+
<allowspecific translate="label">
|
173 |
+
<label>Payment from Applicable Countries</label>
|
174 |
+
<frontend_type>allowspecific</frontend_type>
|
175 |
+
<config_path>payment/moneybookers_csi/allowspecific</config_path>
|
176 |
+
<sort_order>6</sort_order>
|
177 |
+
<source_model>adminhtml/system_config_source_payment_allspecificcountries</source_model>
|
178 |
+
<show_in_default>1</show_in_default>
|
179 |
+
<show_in_website>1</show_in_website>
|
180 |
+
<show_in_store>1</show_in_store>
|
181 |
+
</allowspecific>
|
182 |
+
<specificcountry translate="label">
|
183 |
+
<label>Payment from Specific Countries</label>
|
184 |
+
<frontend_type>multiselect</frontend_type>
|
185 |
+
<config_path>payment/moneybookers_csi/specificcountry</config_path>
|
186 |
+
<sort_order>7</sort_order>
|
187 |
+
<source_model>adminhtml/system_config_source_country</source_model>
|
188 |
+
<show_in_default>1</show_in_default>
|
189 |
+
<show_in_website>1</show_in_website>
|
190 |
+
<show_in_store>1</show_in_store>
|
191 |
+
<can_be_empty>1</can_be_empty>
|
192 |
+
</specificcountry>
|
193 |
+
</fields>
|
194 |
+
</moneybookers_csi>
|
195 |
+
<moneybookers_did translate="label" module="moneybookers">
|
196 |
+
<label>Lastschrift (ELV) (powered by Moneybookers) - Germany</label>
|
197 |
+
<frontend_type>text</frontend_type>
|
198 |
+
<sort_order>211</sort_order>
|
199 |
+
<show_in_default>1</show_in_default>
|
200 |
+
<show_in_website>1</show_in_website>
|
201 |
+
<show_in_store>1</show_in_store>
|
202 |
+
<fields>
|
203 |
+
<active translate="label">
|
204 |
+
<label>Enabled</label>
|
205 |
+
<frontend_type>select</frontend_type>
|
206 |
+
<config_path>payment/moneybookers_did/active</config_path>
|
207 |
+
<source_model>adminhtml/system_config_source_yesno</source_model>
|
208 |
+
<sort_order>1</sort_order>
|
209 |
+
<show_in_default>1</show_in_default>
|
210 |
+
<show_in_website>1</show_in_website>
|
211 |
+
<show_in_store>1</show_in_store>
|
212 |
+
</active>
|
213 |
+
<sort_order translate="label">
|
214 |
+
<label>Sort Order</label>
|
215 |
+
<frontend_type>text</frontend_type>
|
216 |
+
<config_path>payment/moneybookers_did/sort_order</config_path>
|
217 |
+
<sort_order>3</sort_order>
|
218 |
+
<show_in_default>1</show_in_default>
|
219 |
+
<show_in_website>1</show_in_website>
|
220 |
+
<show_in_store>1</show_in_store>
|
221 |
+
</sort_order>
|
222 |
+
<title translate="label">
|
223 |
+
<label>Title</label>
|
224 |
+
<frontend_type>text</frontend_type>
|
225 |
+
<config_path>payment/moneybookers_did/title</config_path>
|
226 |
+
<sort_order>5</sort_order>
|
227 |
+
<show_in_default>1</show_in_default>
|
228 |
+
<show_in_website>1</show_in_website>
|
229 |
+
<show_in_store>1</show_in_store>
|
230 |
+
</title>
|
231 |
+
<allowspecific translate="label">
|
232 |
+
<label>Payment from Applicable Countries</label>
|
233 |
+
<frontend_type>allowspecific</frontend_type>
|
234 |
+
<config_path>payment/moneybookers_did/allowspecific</config_path>
|
235 |
+
<sort_order>6</sort_order>
|
236 |
+
<source_model>adminhtml/system_config_source_payment_allspecificcountries</source_model>
|
237 |
+
<show_in_default>1</show_in_default>
|
238 |
+
<show_in_website>1</show_in_website>
|
239 |
+
<show_in_store>1</show_in_store>
|
240 |
+
</allowspecific>
|
241 |
+
<specificcountry translate="label">
|
242 |
+
<label>Payment from Specific Countries</label>
|
243 |
+
<frontend_type>multiselect</frontend_type>
|
244 |
+
<config_path>payment/moneybookers_did/specificcountry</config_path>
|
245 |
+
<sort_order>7</sort_order>
|
246 |
+
<source_model>adminhtml/system_config_source_country</source_model>
|
247 |
+
<show_in_default>1</show_in_default>
|
248 |
+
<show_in_website>1</show_in_website>
|
249 |
+
<show_in_store>1</show_in_store>
|
250 |
+
<can_be_empty>1</can_be_empty>
|
251 |
+
</specificcountry>
|
252 |
+
</fields>
|
253 |
+
</moneybookers_did>
|
254 |
+
<moneybookers_dnk translate="label" module="moneybookers">
|
255 |
+
<label>Dankort (powered by Moneybookers) - Denmark</label>
|
256 |
+
<frontend_type>text</frontend_type>
|
257 |
+
<sort_order>241</sort_order>
|
258 |
+
<show_in_default>1</show_in_default>
|
259 |
+
<show_in_website>1</show_in_website>
|
260 |
+
<show_in_store>1</show_in_store>
|
261 |
+
<fields>
|
262 |
+
<active translate="label">
|
263 |
+
<label>Enabled</label>
|
264 |
+
<frontend_type>select</frontend_type>
|
265 |
+
<config_path>payment/moneybookers_dnk/active</config_path>
|
266 |
+
<source_model>adminhtml/system_config_source_yesno</source_model>
|
267 |
+
<sort_order>1</sort_order>
|
268 |
+
<show_in_default>1</show_in_default>
|
269 |
+
<show_in_website>1</show_in_website>
|
270 |
+
<show_in_store>1</show_in_store>
|
271 |
+
</active>
|
272 |
+
<sort_order translate="label">
|
273 |
+
<label>Sort Order</label>
|
274 |
+
<frontend_type>text</frontend_type>
|
275 |
+
<config_path>payment/moneybookers_dnk/sort_order</config_path>
|
276 |
+
<sort_order>3</sort_order>
|
277 |
+
<show_in_default>1</show_in_default>
|
278 |
+
<show_in_website>1</show_in_website>
|
279 |
+
<show_in_store>1</show_in_store>
|
280 |
+
</sort_order>
|
281 |
+
<title translate="label">
|
282 |
+
<label>Title</label>
|
283 |
+
<frontend_type>text</frontend_type>
|
284 |
+
<config_path>payment/moneybookers_dnk/title</config_path>
|
285 |
+
<sort_order>5</sort_order>
|
286 |
+
<show_in_default>1</show_in_default>
|
287 |
+
<show_in_website>1</show_in_website>
|
288 |
+
<show_in_store>1</show_in_store>
|
289 |
+
</title>
|
290 |
+
<allowspecific translate="label">
|
291 |
+
<label>Payment from Applicable Countries</label>
|
292 |
+
<frontend_type>allowspecific</frontend_type>
|
293 |
+
<config_path>payment/moneybookers_dnk/allowspecific</config_path>
|
294 |
+
<sort_order>6</sort_order>
|
295 |
+
<source_model>adminhtml/system_config_source_payment_allspecificcountries</source_model>
|
296 |
+
<show_in_default>1</show_in_default>
|
297 |
+
<show_in_website>1</show_in_website>
|
298 |
+
<show_in_store>1</show_in_store>
|
299 |
+
</allowspecific>
|
300 |
+
<specificcountry translate="label">
|
301 |
+
<label>Payment from Specific Countries</label>
|
302 |
+
<frontend_type>multiselect</frontend_type>
|
303 |
+
<config_path>payment/moneybookers_dnk/specificcountry</config_path>
|
304 |
+
<sort_order>7</sort_order>
|
305 |
+
<source_model>adminhtml/system_config_source_country</source_model>
|
306 |
+
<show_in_default>1</show_in_default>
|
307 |
+
<show_in_website>1</show_in_website>
|
308 |
+
<show_in_store>1</show_in_store>
|
309 |
+
<can_be_empty>1</can_be_empty>
|
310 |
+
</specificcountry>
|
311 |
+
</fields>
|
312 |
+
</moneybookers_dnk>
|
313 |
+
<moneybookers_ebt translate="label" module="moneybookers">
|
314 |
+
<label>Nordea Solo (powered by Moneybookers) - Sweden</label>
|
315 |
+
<frontend_type>text</frontend_type>
|
316 |
+
<sort_order>271</sort_order>
|
317 |
+
<show_in_default>1</show_in_default>
|
318 |
+
<show_in_website>1</show_in_website>
|
319 |
+
<show_in_store>1</show_in_store>
|
320 |
+
<fields>
|
321 |
+
<active translate="label">
|
322 |
+
<label>Enabled</label>
|
323 |
+
<frontend_type>select</frontend_type>
|
324 |
+
<config_path>payment/moneybookers_ebt/active</config_path>
|
325 |
+
<source_model>adminhtml/system_config_source_yesno</source_model>
|
326 |
+
<sort_order>1</sort_order>
|
327 |
+
<show_in_default>1</show_in_default>
|
328 |
+
<show_in_website>1</show_in_website>
|
329 |
+
<show_in_store>1</show_in_store>
|
330 |
+
</active>
|
331 |
+
<sort_order translate="label">
|
332 |
+
<label>Sort Order</label>
|
333 |
+
<frontend_type>text</frontend_type>
|
334 |
+
<config_path>payment/moneybookers_ebt/sort_order</config_path>
|
335 |
+
<sort_order>3</sort_order>
|
336 |
+
<show_in_default>1</show_in_default>
|
337 |
+
<show_in_website>1</show_in_website>
|
338 |
+
<show_in_store>1</show_in_store>
|
339 |
+
</sort_order>
|
340 |
+
<title translate="label">
|
341 |
+
<label>Title</label>
|
342 |
+
<frontend_type>text</frontend_type>
|
343 |
+
<config_path>payment/moneybookers_ebt/title</config_path>
|
344 |
+
<sort_order>5</sort_order>
|
345 |
+
<show_in_default>1</show_in_default>
|
346 |
+
<show_in_website>1</show_in_website>
|
347 |
+
<show_in_store>1</show_in_store>
|
348 |
+
</title>
|
349 |
+
<allowspecific translate="label">
|
350 |
+
<label>Payment from Applicable Countries</label>
|
351 |
+
<config_path>payment/moneybookers_ebt/allowspecific</config_path>
|
352 |
+
<frontend_type>allowspecific</frontend_type>
|
353 |
+
<sort_order>6</sort_order>
|
354 |
+
<source_model>adminhtml/system_config_source_payment_allspecificcountries</source_model>
|
355 |
+
<show_in_default>1</show_in_default>
|
356 |
+
<show_in_website>1</show_in_website>
|
357 |
+
<show_in_store>1</show_in_store>
|
358 |
+
</allowspecific>
|
359 |
+
<specificcountry translate="label">
|
360 |
+
<label>Payment from Specific Countries</label>
|
361 |
+
<frontend_type>multiselect</frontend_type>
|
362 |
+
<config_path>payment/moneybookers_ebt/specificcountry</config_path>
|
363 |
+
<sort_order>7</sort_order>
|
364 |
+
<source_model>adminhtml/system_config_source_country</source_model>
|
365 |
+
<show_in_default>1</show_in_default>
|
366 |
+
<show_in_website>1</show_in_website>
|
367 |
+
<show_in_store>1</show_in_store>
|
368 |
+
<can_be_empty>1</can_be_empty>
|
369 |
+
</specificcountry>
|
370 |
+
</fields>
|
371 |
+
</moneybookers_ebt>
|
372 |
+
<moneybookers_ent translate="label" module="moneybookers">
|
373 |
+
<label>eNETS (powered by Moneybookers) - Singapore</label>
|
374 |
+
<frontend_type>text</frontend_type>
|
375 |
+
<sort_order>261</sort_order>
|
376 |
+
<show_in_default>1</show_in_default>
|
377 |
+
<show_in_website>1</show_in_website>
|
378 |
+
<show_in_store>1</show_in_store>
|
379 |
+
<fields>
|
380 |
+
<active translate="label">
|
381 |
+
<label>Enabled</label>
|
382 |
+
<frontend_type>select</frontend_type>
|
383 |
+
<config_path>payment/moneybookers_ent/active</config_path>
|
384 |
+
<source_model>adminhtml/system_config_source_yesno</source_model>
|
385 |
+
<sort_order>1</sort_order>
|
386 |
+
<show_in_default>1</show_in_default>
|
387 |
+
<show_in_website>1</show_in_website>
|
388 |
+
<show_in_store>1</show_in_store>
|
389 |
+
</active>
|
390 |
+
<sort_order translate="label">
|
391 |
+
<label>Sort Order</label>
|
392 |
+
<frontend_type>text</frontend_type>
|
393 |
+
<config_path>payment/moneybookers_ent/sort_order</config_path>
|
394 |
+
<sort_order>3</sort_order>
|
395 |
+
<show_in_default>1</show_in_default>
|
396 |
+
<show_in_website>1</show_in_website>
|
397 |
+
<show_in_store>1</show_in_store>
|
398 |
+
</sort_order>
|
399 |
+
<title translate="label">
|
400 |
+
<label>Title</label>
|
401 |
+
<frontend_type>text</frontend_type>
|
402 |
+
<config_path>payment/moneybookers_ent/title</config_path>
|
403 |
+
<sort_order>5</sort_order>
|
404 |
+
<show_in_default>1</show_in_default>
|
405 |
+
<show_in_website>1</show_in_website>
|
406 |
+
<show_in_store>1</show_in_store>
|
407 |
+
</title>
|
408 |
+
<allowspecific translate="label">
|
409 |
+
<label>Payment from Applicable Countries</label>
|
410 |
+
<frontend_type>allowspecific</frontend_type>
|
411 |
+
<config_path>payment/moneybookers_ent/allowspecific</config_path>
|
412 |
+
<sort_order>6</sort_order>
|
413 |
+
<source_model>adminhtml/system_config_source_payment_allspecificcountries</source_model>
|
414 |
+
<show_in_default>1</show_in_default>
|
415 |
+
<show_in_website>1</show_in_website>
|
416 |
+
<show_in_store>1</show_in_store>
|
417 |
+
</allowspecific>
|
418 |
+
<specificcountry translate="label">
|
419 |
+
<label>Payment from Specific Countries</label>
|
420 |
+
<frontend_type>multiselect</frontend_type>
|
421 |
+
<config_path>payment/moneybookers_ent/specificcountry</config_path>
|
422 |
+
<sort_order>7</sort_order>
|
423 |
+
<source_model>adminhtml/system_config_source_country</source_model>
|
424 |
+
<show_in_default>1</show_in_default>
|
425 |
+
<show_in_website>1</show_in_website>
|
426 |
+
<show_in_store>1</show_in_store>
|
427 |
+
<can_be_empty>1</can_be_empty>
|
428 |
+
</specificcountry>
|
429 |
+
</fields>
|
430 |
+
</moneybookers_ent>
|
431 |
+
<moneybookers_gcb translate="label" module="moneybookers">
|
432 |
+
<label>Carte Bleue (powered by Moneybookers) - France</label>
|
433 |
+
<frontend_type>text</frontend_type>
|
434 |
+
<sort_order>231</sort_order>
|
435 |
+
<show_in_default>1</show_in_default>
|
436 |
+
<show_in_website>1</show_in_website>
|
437 |
+
<show_in_store>1</show_in_store>
|
438 |
+
<fields>
|
439 |
+
<active translate="label">
|
440 |
+
<label>Enabled</label>
|
441 |
+
<frontend_type>select</frontend_type>
|
442 |
+
<config_path>payment/moneybookers_gcb/active</config_path>
|
443 |
+
<source_model>adminhtml/system_config_source_yesno</source_model>
|
444 |
+
<sort_order>1</sort_order>
|
445 |
+
<show_in_default>1</show_in_default>
|
446 |
+
<show_in_website>1</show_in_website>
|
447 |
+
<show_in_store>1</show_in_store>
|
448 |
+
</active>
|
449 |
+
<sort_order translate="label">
|
450 |
+
<label>Sort Order</label>
|
451 |
+
<frontend_type>text</frontend_type>
|
452 |
+
<config_path>payment/moneybookers_gcb/sort_order</config_path>
|
453 |
+
<sort_order>3</sort_order>
|
454 |
+
<show_in_default>1</show_in_default>
|
455 |
+
<show_in_website>1</show_in_website>
|
456 |
+
<show_in_store>1</show_in_store>
|
457 |
+
</sort_order>
|
458 |
+
<title translate="label">
|
459 |
+
<label>Title</label>
|
460 |
+
<frontend_type>text</frontend_type>
|
461 |
+
<config_path>payment/moneybookers_gcb/title</config_path>
|
462 |
+
<sort_order>5</sort_order>
|
463 |
+
<show_in_default>1</show_in_default>
|
464 |
+
<show_in_website>1</show_in_website>
|
465 |
+
<show_in_store>1</show_in_store>
|
466 |
+
</title>
|
467 |
+
<allowspecific translate="label">
|
468 |
+
<label>Payment from Applicable Countries</label>
|
469 |
+
<frontend_type>allowspecific</frontend_type>
|
470 |
+
<config_path>payment/moneybookers_gcb/allowspecific</config_path>
|
471 |
+
<sort_order>6</sort_order>
|
472 |
+
<source_model>adminhtml/system_config_source_payment_allspecificcountries</source_model>
|
473 |
+
<show_in_default>1</show_in_default>
|
474 |
+
<show_in_website>1</show_in_website>
|
475 |
+
<show_in_store>1</show_in_store>
|
476 |
+
</allowspecific>
|
477 |
+
<specificcountry translate="label">
|
478 |
+
<label>Payment from Specific Countries</label>
|
479 |
+
<frontend_type>multiselect</frontend_type>
|
480 |
+
<config_path>payment/moneybookers_gcb/specificcountry</config_path>
|
481 |
+
<sort_order>7</sort_order>
|
482 |
+
<source_model>adminhtml/system_config_source_country</source_model>
|
483 |
+
<show_in_default>1</show_in_default>
|
484 |
+
<show_in_website>1</show_in_website>
|
485 |
+
<show_in_store>1</show_in_store>
|
486 |
+
<can_be_empty>1</can_be_empty>
|
487 |
+
</specificcountry>
|
488 |
+
</fields>
|
489 |
+
</moneybookers_gcb>
|
490 |
+
<moneybookers_gir translate="label" module="moneybookers">
|
491 |
+
<label>Giropay (powered by Moneybookers) - Germany</label>
|
492 |
+
<frontend_type>text</frontend_type>
|
493 |
+
<sort_order>212</sort_order>
|
494 |
+
<show_in_default>1</show_in_default>
|
495 |
+
<show_in_website>1</show_in_website>
|
496 |
+
<show_in_store>1</show_in_store>
|
497 |
+
<fields>
|
498 |
+
<active translate="label">
|
499 |
+
<label>Enabled</label>
|
500 |
+
<frontend_type>select</frontend_type>
|
501 |
+
<config_path>payment/moneybookers_gir/active</config_path>
|
502 |
+
<source_model>adminhtml/system_config_source_yesno</source_model>
|
503 |
+
<sort_order>1</sort_order>
|
504 |
+
<show_in_default>1</show_in_default>
|
505 |
+
<show_in_website>1</show_in_website>
|
506 |
+
<show_in_store>1</show_in_store>
|
507 |
+
</active>
|
508 |
+
<sort_order translate="label">
|
509 |
+
<label>Sort Order</label>
|
510 |
+
<frontend_type>text</frontend_type>
|
511 |
+
<config_path>payment/moneybookers_gir/sort_order</config_path>
|
512 |
+
<sort_order>3</sort_order>
|
513 |
+
<show_in_default>1</show_in_default>
|
514 |
+
<show_in_website>1</show_in_website>
|
515 |
+
<show_in_store>1</show_in_store>
|
516 |
+
</sort_order>
|
517 |
+
<title translate="label">
|
518 |
+
<label>Title</label>
|
519 |
+
<frontend_type>text</frontend_type>
|
520 |
+
<config_path>payment/moneybookers_gir/title</config_path>
|
521 |
+
<sort_order>5</sort_order>
|
522 |
+
<show_in_default>1</show_in_default>
|
523 |
+
<show_in_website>1</show_in_website>
|
524 |
+
<show_in_store>1</show_in_store>
|
525 |
+
</title>
|
526 |
+
<allowspecific translate="label">
|
527 |
+
<label>Payment from Applicable Countries</label>
|
528 |
+
<frontend_type>allowspecific</frontend_type>
|
529 |
+
<config_path>payment/moneybookers_gir/allowspecific</config_path>
|
530 |
+
<sort_order>6</sort_order>
|
531 |
+
<source_model>adminhtml/system_config_source_payment_allspecificcountries</source_model>
|
532 |
+
<show_in_default>1</show_in_default>
|
533 |
+
<show_in_website>1</show_in_website>
|
534 |
+
<show_in_store>1</show_in_store>
|
535 |
+
</allowspecific>
|
536 |
+
<specificcountry translate="label">
|
537 |
+
<label>Payment from Specific Countries</label>
|
538 |
+
<frontend_type>multiselect</frontend_type>
|
539 |
+
<config_path>payment/moneybookers_gir/specificcountry</config_path>
|
540 |
+
<sort_order>7</sort_order>
|
541 |
+
<source_model>adminhtml/system_config_source_country</source_model>
|
542 |
+
<show_in_default>1</show_in_default>
|
543 |
+
<show_in_website>1</show_in_website>
|
544 |
+
<show_in_store>1</show_in_store>
|
545 |
+
<can_be_empty>1</can_be_empty>
|
546 |
+
</specificcountry>
|
547 |
+
</fields>
|
548 |
+
</moneybookers_gir>
|
549 |
+
<moneybookers_idl translate="label" module="moneybookers">
|
550 |
+
<label>iDeal (powered by Moneybookers) - Netherlands</label>
|
551 |
+
<frontend_type>text</frontend_type>
|
552 |
+
<sort_order>291</sort_order>
|
553 |
+
<show_in_default>1</show_in_default>
|
554 |
+
<show_in_website>1</show_in_website>
|
555 |
+
<show_in_store>1</show_in_store>
|
556 |
+
<fields>
|
557 |
+
<active translate="label">
|
558 |
+
<label>Enabled</label>
|
559 |
+
<frontend_type>select</frontend_type>
|
560 |
+
<config_path>payment/moneybookers_idl/active</config_path>
|
561 |
+
<source_model>adminhtml/system_config_source_yesno</source_model>
|
562 |
+
<sort_order>1</sort_order>
|
563 |
+
<show_in_default>1</show_in_default>
|
564 |
+
<show_in_website>1</show_in_website>
|
565 |
+
<show_in_store>1</show_in_store>
|
566 |
+
</active>
|
567 |
+
<sort_order translate="label">
|
568 |
+
<label>Sort Order</label>
|
569 |
+
<frontend_type>text</frontend_type>
|
570 |
+
<config_path>payment/moneybookers_idl/sort_order</config_path>
|
571 |
+
<sort_order>3</sort_order>
|
572 |
+
<show_in_default>1</show_in_default>
|
573 |
+
<show_in_website>1</show_in_website>
|
574 |
+
<show_in_store>1</show_in_store>
|
575 |
+
</sort_order>
|
576 |
+
<title translate="label">
|
577 |
+
<label>Title</label>
|
578 |
+
<frontend_type>text</frontend_type>
|
579 |
+
<config_path>payment/moneybookers_idl/title</config_path>
|
580 |
+
<sort_order>5</sort_order>
|
581 |
+
<show_in_default>1</show_in_default>
|
582 |
+
<show_in_website>1</show_in_website>
|
583 |
+
<show_in_store>1</show_in_store>
|
584 |
+
</title>
|
585 |
+
<allowspecific translate="label">
|
586 |
+
<label>Payment from Applicable Countries</label>
|
587 |
+
<frontend_type>allowspecific</frontend_type>
|
588 |
+
<config_path>payment/moneybookers_idl/allowspecific</config_path>
|
589 |
+
<sort_order>6</sort_order>
|
590 |
+
<source_model>adminhtml/system_config_source_payment_allspecificcountries</source_model>
|
591 |
+
<show_in_default>1</show_in_default>
|
592 |
+
<show_in_website>1</show_in_website>
|
593 |
+
<show_in_store>1</show_in_store>
|
594 |
+
</allowspecific>
|
595 |
+
<specificcountry translate="label">
|
596 |
+
<label>Payment from Specific Countries</label>
|
597 |
+
<frontend_type>multiselect</frontend_type>
|
598 |
+
<config_path>payment/moneybookers_idl/specificcountry</config_path>
|
599 |
+
<sort_order>7</sort_order>
|
600 |
+
<source_model>adminhtml/system_config_source_country</source_model>
|
601 |
+
<show_in_default>1</show_in_default>
|
602 |
+
<show_in_website>1</show_in_website>
|
603 |
+
<show_in_store>1</show_in_store>
|
604 |
+
<can_be_empty>1</can_be_empty>
|
605 |
+
</specificcountry>
|
606 |
+
</fields>
|
607 |
+
</moneybookers_idl>
|
608 |
+
<moneybookers_lsr translate="label" module="moneybookers">
|
609 |
+
<label>Laser (powered by Moneybookers) - Ireland</label>
|
610 |
+
<frontend_type>text</frontend_type>
|
611 |
+
<sort_order>221</sort_order>
|
612 |
+
<show_in_default>1</show_in_default>
|
613 |
+
<show_in_website>1</show_in_website>
|
614 |
+
<show_in_store>1</show_in_store>
|
615 |
+
<fields>
|
616 |
+
<active translate="label">
|
617 |
+
<label>Enabled</label>
|
618 |
+
<frontend_type>select</frontend_type>
|
619 |
+
<config_path>payment/moneybookers_lsr/active</config_path>
|
620 |
+
<source_model>adminhtml/system_config_source_yesno</source_model>
|
621 |
+
<sort_order>1</sort_order>
|
622 |
+
<show_in_default>1</show_in_default>
|
623 |
+
<show_in_website>1</show_in_website>
|
624 |
+
<show_in_store>1</show_in_store>
|
625 |
+
</active>
|
626 |
+
<sort_order translate="label">
|
627 |
+
<label>Sort Order</label>
|
628 |
+
<frontend_type>text</frontend_type>
|
629 |
+
<config_path>payment/moneybookers_lsr/sort_order</config_path>
|
630 |
+
<sort_order>3</sort_order>
|
631 |
+
<show_in_default>1</show_in_default>
|
632 |
+
<show_in_website>1</show_in_website>
|
633 |
+
<show_in_store>1</show_in_store>
|
634 |
+
</sort_order>
|
635 |
+
<title translate="label">
|
636 |
+
<label>Title</label>
|
637 |
+
<frontend_type>text</frontend_type>
|
638 |
+
<config_path>payment/moneybookers_lsr/title</config_path>
|
639 |
+
<sort_order>5</sort_order>
|
640 |
+
<show_in_default>1</show_in_default>
|
641 |
+
<show_in_website>1</show_in_website>
|
642 |
+
<show_in_store>1</show_in_store>
|
643 |
+
</title>
|
644 |
+
<allowspecific translate="label">
|
645 |
+
<label>Payment from Applicable Countries</label>
|
646 |
+
<frontend_type>allowspecific</frontend_type>
|
647 |
+
<config_path>payment/moneybookers_lsr/allowspecific</config_path>
|
648 |
+
<sort_order>6</sort_order>
|
649 |
+
<source_model>adminhtml/system_config_source_payment_allspecificcountries</source_model>
|
650 |
+
<show_in_default>1</show_in_default>
|
651 |
+
<show_in_website>1</show_in_website>
|
652 |
+
<show_in_store>1</show_in_store>
|
653 |
+
</allowspecific>
|
654 |
+
<specificcountry translate="label">
|
655 |
+
<label>Payment from Specific Countries</label>
|
656 |
+
<frontend_type>multiselect</frontend_type>
|
657 |
+
<config_path>payment/moneybookers_lsr/specificcountry</config_path>
|
658 |
+
<sort_order>7</sort_order>
|
659 |
+
<source_model>adminhtml/system_config_source_country</source_model>
|
660 |
+
<show_in_default>1</show_in_default>
|
661 |
+
<show_in_website>1</show_in_website>
|
662 |
+
<show_in_store>1</show_in_store>
|
663 |
+
<can_be_empty>1</can_be_empty>
|
664 |
+
</specificcountry>
|
665 |
+
</fields>
|
666 |
+
</moneybookers_lsr>
|
667 |
+
<moneybookers_mae translate="label" module="moneybookers">
|
668 |
+
<label>Maestro (powered by Moneybookers) - United Kingdom, Austria, Spain</label>
|
669 |
+
<frontend_type>text</frontend_type>
|
670 |
+
<sort_order>231</sort_order>
|
671 |
+
<show_in_default>1</show_in_default>
|
672 |
+
<show_in_website>1</show_in_website>
|
673 |
+
<show_in_store>1</show_in_store>
|
674 |
+
<fields>
|
675 |
+
<active translate="label">
|
676 |
+
<label>Enabled</label>
|
677 |
+
<frontend_type>select</frontend_type>
|
678 |
+
<config_path>payment/moneybookers_mae/active</config_path>
|
679 |
+
<source_model>adminhtml/system_config_source_yesno</source_model>
|
680 |
+
<sort_order>1</sort_order>
|
681 |
+
<show_in_default>1</show_in_default>
|
682 |
+
<show_in_website>1</show_in_website>
|
683 |
+
<show_in_store>1</show_in_store>
|
684 |
+
</active>
|
685 |
+
<sort_order translate="label">
|
686 |
+
<label>Sort Order</label>
|
687 |
+
<frontend_type>text</frontend_type>
|
688 |
+
<config_path>payment/moneybookers_mae/sort_order</config_path>
|
689 |
+
<sort_order>3</sort_order>
|
690 |
+
<show_in_default>1</show_in_default>
|
691 |
+
<show_in_website>1</show_in_website>
|
692 |
+
<show_in_store>1</show_in_store>
|
693 |
+
</sort_order>
|
694 |
+
<title translate="label">
|
695 |
+
<label>Title</label>
|
696 |
+
<frontend_type>text</frontend_type>
|
697 |
+
<config_path>payment/moneybookers_mae/title</config_path>
|
698 |
+
<sort_order>5</sort_order>
|
699 |
+
<show_in_default>1</show_in_default>
|
700 |
+
<show_in_website>1</show_in_website>
|
701 |
+
<show_in_store>1</show_in_store>
|
702 |
+
</title>
|
703 |
+
<allowspecific translate="label">
|
704 |
+
<label>Payment from Applicable Countries</label>
|
705 |
+
<frontend_type>allowspecific</frontend_type>
|
706 |
+
<config_path>payment/moneybookers_mae/allowspecific</config_path>
|
707 |
+
<sort_order>6</sort_order>
|
708 |
+
<source_model>adminhtml/system_config_source_payment_allspecificcountries</source_model>
|
709 |
+
<show_in_default>1</show_in_default>
|
710 |
+
<show_in_website>1</show_in_website>
|
711 |
+
<show_in_store>1</show_in_store>
|
712 |
+
</allowspecific>
|
713 |
+
<specificcountry translate="label">
|
714 |
+
<label>Payment from Specific Countries</label>
|
715 |
+
<frontend_type>multiselect</frontend_type>
|
716 |
+
<config_path>payment/moneybookers_mae/specificcountry</config_path>
|
717 |
+
<sort_order>7</sort_order>
|
718 |
+
<source_model>adminhtml/system_config_source_country</source_model>
|
719 |
+
<show_in_default>1</show_in_default>
|
720 |
+
<show_in_website>1</show_in_website>
|
721 |
+
<show_in_store>1</show_in_store>
|
722 |
+
<can_be_empty>1</can_be_empty>
|
723 |
+
</specificcountry>
|
724 |
+
</fields>
|
725 |
+
</moneybookers_mae>
|
726 |
+
<moneybookers_npy translate="label" module="moneybookers">
|
727 |
+
<label>EPS Online-Überweisung (powered by Moneybookers) - Austria</label>
|
728 |
+
<frontend_type>text</frontend_type>
|
729 |
+
<sort_order>301</sort_order>
|
730 |
+
<show_in_default>1</show_in_default>
|
731 |
+
<show_in_website>1</show_in_website>
|
732 |
+
<show_in_store>1</show_in_store>
|
733 |
+
<fields>
|
734 |
+
<active translate="label">
|
735 |
+
<label>Enabled</label>
|
736 |
+
<frontend_type>select</frontend_type>
|
737 |
+
<config_path>payment/moneybookers_npy/active</config_path>
|
738 |
+
<source_model>adminhtml/system_config_source_yesno</source_model>
|
739 |
+
<sort_order>1</sort_order>
|
740 |
+
<show_in_default>1</show_in_default>
|
741 |
+
<show_in_website>1</show_in_website>
|
742 |
+
<show_in_store>1</show_in_store>
|
743 |
+
</active>
|
744 |
+
<sort_order translate="label">
|
745 |
+
<label>Sort Order</label>
|
746 |
+
<frontend_type>text</frontend_type>
|
747 |
+
<config_path>payment/moneybookers_npy/sort_order</config_path>
|
748 |
+
<sort_order>3</sort_order>
|
749 |
+
<show_in_default>1</show_in_default>
|
750 |
+
<show_in_website>1</show_in_website>
|
751 |
+
<show_in_store>1</show_in_store>
|
752 |
+
</sort_order>
|
753 |
+
<title translate="label">
|
754 |
+
<label>Title</label>
|
755 |
+
<frontend_type>text</frontend_type>
|
756 |
+
<config_path>payment/moneybookers_npy/title</config_path>
|
757 |
+
<sort_order>5</sort_order>
|
758 |
+
<show_in_default>1</show_in_default>
|
759 |
+
<show_in_website>1</show_in_website>
|
760 |
+
<show_in_store>1</show_in_store>
|
761 |
+
</title>
|
762 |
+
<allowspecific translate="label">
|
763 |
+
<label>Payment from Applicable Countries</label>
|
764 |
+
<frontend_type>allowspecific</frontend_type>
|
765 |
+
<config_path>payment/moneybookers_npy/allowspecific</config_path>
|
766 |
+
<sort_order>6</sort_order>
|
767 |
+
<source_model>adminhtml/system_config_source_payment_allspecificcountries</source_model>
|
768 |
+
<show_in_default>1</show_in_default>
|
769 |
+
<show_in_website>1</show_in_website>
|
770 |
+
<show_in_store>1</show_in_store>
|
771 |
+
</allowspecific>
|
772 |
+
<specificcountry translate="label">
|
773 |
+
<label>Payment from Specific Countries</label>
|
774 |
+
<frontend_type>multiselect</frontend_type>
|
775 |
+
<config_path>payment/moneybookers_npy/specificcountry</config_path>
|
776 |
+
<sort_order>7</sort_order>
|
777 |
+
<source_model>adminhtml/system_config_source_country</source_model>
|
778 |
+
<show_in_default>1</show_in_default>
|
779 |
+
<show_in_website>1</show_in_website>
|
780 |
+
<show_in_store>1</show_in_store>
|
781 |
+
<can_be_empty>1</can_be_empty>
|
782 |
+
</specificcountry>
|
783 |
+
</fields>
|
784 |
+
</moneybookers_npy>
|
785 |
+
<moneybookers_pli translate="label" module="moneybookers">
|
786 |
+
<label>POLi (powered by Moneybookers) - Australia</label>
|
787 |
+
<frontend_type>text</frontend_type>
|
788 |
+
<sort_order>311</sort_order>
|
789 |
+
<show_in_default>1</show_in_default>
|
790 |
+
<show_in_website>1</show_in_website>
|
791 |
+
<show_in_store>1</show_in_store>
|
792 |
+
<fields>
|
793 |
+
<active translate="label">
|
794 |
+
<label>Enabled</label>
|
795 |
+
<frontend_type>select</frontend_type>
|
796 |
+
<config_path>payment/moneybookers_pli/active</config_path>
|
797 |
+
<source_model>adminhtml/system_config_source_yesno</source_model>
|
798 |
+
<sort_order>1</sort_order>
|
799 |
+
<show_in_default>1</show_in_default>
|
800 |
+
<show_in_website>1</show_in_website>
|
801 |
+
<show_in_store>1</show_in_store>
|
802 |
+
</active>
|
803 |
+
<sort_order translate="label">
|
804 |
+
<label>Sort Order</label>
|
805 |
+
<frontend_type>text</frontend_type>
|
806 |
+
<config_path>payment/moneybookers_pli/sort_order</config_path>
|
807 |
+
<sort_order>3</sort_order>
|
808 |
+
<show_in_default>1</show_in_default>
|
809 |
+
<show_in_website>1</show_in_website>
|
810 |
+
<show_in_store>1</show_in_store>
|
811 |
+
</sort_order>
|
812 |
+
<title translate="label">
|
813 |
+
<label>Title</label>
|
814 |
+
<frontend_type>text</frontend_type>
|
815 |
+
<config_path>payment/moneybookers_pli/title</config_path>
|
816 |
+
<sort_order>5</sort_order>
|
817 |
+
<show_in_default>1</show_in_default>
|
818 |
+
<show_in_website>1</show_in_website>
|
819 |
+
<show_in_store>1</show_in_store>
|
820 |
+
</title>
|
821 |
+
<allowspecific translate="label">
|
822 |
+
<label>Payment from Applicable Countries</label>
|
823 |
+
<frontend_type>allowspecific</frontend_type>
|
824 |
+
<config_path>payment/moneybookers_pli/allowspecific</config_path>
|
825 |
+
<sort_order>6</sort_order>
|
826 |
+
<source_model>adminhtml/system_config_source_payment_allspecificcountries</source_model>
|
827 |
+
<show_in_default>1</show_in_default>
|
828 |
+
<show_in_website>1</show_in_website>
|
829 |
+
<show_in_store>1</show_in_store>
|
830 |
+
</allowspecific>
|
831 |
+
<specificcountry translate="label">
|
832 |
+
<label>Payment from Specific Countries</label>
|
833 |
+
<frontend_type>multiselect</frontend_type>
|
834 |
+
<config_path>payment/moneybookers_pli/specificcountry</config_path>
|
835 |
+
<sort_order>7</sort_order>
|
836 |
+
<source_model>adminhtml/system_config_source_country</source_model>
|
837 |
+
<show_in_default>1</show_in_default>
|
838 |
+
<show_in_website>1</show_in_website>
|
839 |
+
<show_in_store>1</show_in_store>
|
840 |
+
<can_be_empty>1</can_be_empty>
|
841 |
+
</specificcountry>
|
842 |
+
</fields>
|
843 |
+
</moneybookers_pli>
|
844 |
+
<moneybookers_psp translate="label" module="moneybookers">
|
845 |
+
<label>Postepay (powered by Moneybookers) - Italy</label>
|
846 |
+
<frontend_type>text</frontend_type>
|
847 |
+
<sort_order>251</sort_order>
|
848 |
+
<show_in_default>1</show_in_default>
|
849 |
+
<show_in_website>1</show_in_website>
|
850 |
+
<show_in_store>1</show_in_store>
|
851 |
+
<fields>
|
852 |
+
<active translate="label">
|
853 |
+
<label>Enabled</label>
|
854 |
+
<frontend_type>select</frontend_type>
|
855 |
+
<config_path>payment/moneybookers_psp/active</config_path>
|
856 |
+
<source_model>adminhtml/system_config_source_yesno</source_model>
|
857 |
+
<sort_order>1</sort_order>
|
858 |
+
<show_in_default>1</show_in_default>
|
859 |
+
<show_in_website>1</show_in_website>
|
860 |
+
<show_in_store>1</show_in_store>
|
861 |
+
</active>
|
862 |
+
<sort_order translate="label">
|
863 |
+
<label>Sort Order</label>
|
864 |
+
<frontend_type>text</frontend_type>
|
865 |
+
<config_path>payment/moneybookers_psp/sort_order</config_path>
|
866 |
+
<sort_order>3</sort_order>
|
867 |
+
<show_in_default>1</show_in_default>
|
868 |
+
<show_in_website>1</show_in_website>
|
869 |
+
<show_in_store>1</show_in_store>
|
870 |
+
</sort_order>
|
871 |
+
<title translate="label">
|
872 |
+
<label>Title</label>
|
873 |
+
<frontend_type>text</frontend_type>
|
874 |
+
<config_path>payment/moneybookers_psp/title</config_path>
|
875 |
+
<sort_order>5</sort_order>
|
876 |
+
<show_in_default>1</show_in_default>
|
877 |
+
<show_in_website>1</show_in_website>
|
878 |
+
<show_in_store>1</show_in_store>
|
879 |
+
</title>
|
880 |
+
<allowspecific translate="label">
|
881 |
+
<label>Payment from Applicable Countries</label>
|
882 |
+
<frontend_type>allowspecific</frontend_type>
|
883 |
+
<config_path>payment/moneybookers_psp/allowspecific</config_path>
|
884 |
+
<sort_order>6</sort_order>
|
885 |
+
<source_model>adminhtml/system_config_source_payment_allspecificcountries</source_model>
|
886 |
+
<show_in_default>1</show_in_default>
|
887 |
+
<show_in_website>1</show_in_website>
|
888 |
+
<show_in_store>1</show_in_store>
|
889 |
+
</allowspecific>
|
890 |
+
<specificcountry translate="label">
|
891 |
+
<label>Payment from Specific Countries</label>
|
892 |
+
<frontend_type>multiselect</frontend_type>
|
893 |
+
<config_path>payment/moneybookers_psp/specificcountry</config_path>
|
894 |
+
<sort_order>7</sort_order>
|
895 |
+
<source_model>adminhtml/system_config_source_country</source_model>
|
896 |
+
<show_in_default>1</show_in_default>
|
897 |
+
<show_in_website>1</show_in_website>
|
898 |
+
<show_in_store>1</show_in_store>
|
899 |
+
<can_be_empty>1</can_be_empty>
|
900 |
+
</specificcountry>
|
901 |
+
</fields>
|
902 |
+
</moneybookers_psp>
|
903 |
+
<moneybookers_pwy translate="label" module="moneybookers">
|
904 |
+
<label>Przelewy24 (powered by Moneybookers) - Poland</label>
|
905 |
+
<frontend_type>text</frontend_type>
|
906 |
+
<sort_order>321</sort_order>
|
907 |
+
<show_in_default>1</show_in_default>
|
908 |
+
<show_in_website>1</show_in_website>
|
909 |
+
<show_in_store>1</show_in_store>
|
910 |
+
<fields>
|
911 |
+
<active translate="label">
|
912 |
+
<label>Enabled</label>
|
913 |
+
<frontend_type>select</frontend_type>
|
914 |
+
<config_path>payment/moneybookers_pwy/active</config_path>
|
915 |
+
<source_model>adminhtml/system_config_source_yesno</source_model>
|
916 |
+
<sort_order>1</sort_order>
|
917 |
+
<show_in_default>1</show_in_default>
|
918 |
+
<show_in_website>1</show_in_website>
|
919 |
+
<show_in_store>1</show_in_store>
|
920 |
+
</active>
|
921 |
+
<sort_order translate="label">
|
922 |
+
<label>Sort Order</label>
|
923 |
+
<frontend_type>text</frontend_type>
|
924 |
+
<config_path>payment/moneybookers_pwy/sort_order</config_path>
|
925 |
+
<sort_order>3</sort_order>
|
926 |
+
<show_in_default>1</show_in_default>
|
927 |
+
<show_in_website>1</show_in_website>
|
928 |
+
<show_in_store>1</show_in_store>
|
929 |
+
</sort_order>
|
930 |
+
<title translate="label">
|
931 |
+
<label>Title</label>
|
932 |
+
<frontend_type>text</frontend_type>
|
933 |
+
<config_path>payment/moneybookers_pwy/title</config_path>
|
934 |
+
<sort_order>5</sort_order>
|
935 |
+
<show_in_default>1</show_in_default>
|
936 |
+
<show_in_website>1</show_in_website>
|
937 |
+
<show_in_store>1</show_in_store>
|
938 |
+
</title>
|
939 |
+
<allowspecific translate="label">
|
940 |
+
<label>Payment from Applicable Countries</label>
|
941 |
+
<frontend_type>allowspecific</frontend_type>
|
942 |
+
<config_path>payment/moneybookers_pwy/allowspecific</config_path>
|
943 |
+
<sort_order>6</sort_order>
|
944 |
+
<source_model>adminhtml/system_config_source_payment_allspecificcountries</source_model>
|
945 |
+
<show_in_default>1</show_in_default>
|
946 |
+
<show_in_website>1</show_in_website>
|
947 |
+
<show_in_store>1</show_in_store>
|
948 |
+
</allowspecific>
|
949 |
+
<specificcountry translate="label">
|
950 |
+
<label>Payment from Specific Countries</label>
|
951 |
+
<frontend_type>multiselect</frontend_type>
|
952 |
+
<config_path>payment/moneybookers_pwy/specificcountry</config_path>
|
953 |
+
<sort_order>7</sort_order>
|
954 |
+
<source_model>adminhtml/system_config_source_country</source_model>
|
955 |
+
<show_in_default>1</show_in_default>
|
956 |
+
<show_in_website>1</show_in_website>
|
957 |
+
<show_in_store>1</show_in_store>
|
958 |
+
<can_be_empty>1</can_be_empty>
|
959 |
+
</specificcountry>
|
960 |
+
</fields>
|
961 |
+
</moneybookers_pwy>
|
962 |
+
<moneybookers_sft translate="label" module="moneybookers">
|
963 |
+
<label>Sofortüberweisung (powered by Moneybookers) - Germany</label>
|
964 |
+
<frontend_type>text</frontend_type>
|
965 |
+
<sort_order>213</sort_order>
|
966 |
+
<show_in_default>1</show_in_default>
|
967 |
+
<show_in_website>1</show_in_website>
|
968 |
+
<show_in_store>1</show_in_store>
|
969 |
+
<fields>
|
970 |
+
<active translate="label">
|
971 |
+
<label>Enabled</label>
|
972 |
+
<frontend_type>select</frontend_type>
|
973 |
+
<config_path>payment/moneybookers_sft/active</config_path>
|
974 |
+
<source_model>adminhtml/system_config_source_yesno</source_model>
|
975 |
+
<sort_order>1</sort_order>
|
976 |
+
<show_in_default>1</show_in_default>
|
977 |
+
<show_in_website>1</show_in_website>
|
978 |
+
<show_in_store>1</show_in_store>
|
979 |
+
</active>
|
980 |
+
<sort_order translate="label">
|
981 |
+
<label>Sort Order</label>
|
982 |
+
<frontend_type>text</frontend_type>
|
983 |
+
<config_path>payment/moneybookers_sft/sort_order</config_path>
|
984 |
+
<sort_order>3</sort_order>
|
985 |
+
<show_in_default>1</show_in_default>
|
986 |
+
<show_in_website>1</show_in_website>
|
987 |
+
<show_in_store>1</show_in_store>
|
988 |
+
</sort_order>
|
989 |
+
<title translate="label">
|
990 |
+
<label>Title</label>
|
991 |
+
<frontend_type>text</frontend_type>
|
992 |
+
<config_path>payment/moneybookers_sft/title</config_path>
|
993 |
+
<sort_order>5</sort_order>
|
994 |
+
<show_in_default>1</show_in_default>
|
995 |
+
<show_in_website>1</show_in_website>
|
996 |
+
<show_in_store>1</show_in_store>
|
997 |
+
</title>
|
998 |
+
<allowspecific translate="label">
|
999 |
+
<label>Payment from Applicable Countries</label>
|
1000 |
+
<frontend_type>allowspecific</frontend_type>
|
1001 |
+
<config_path>payment/moneybookers_sft/allowspecific</config_path>
|
1002 |
+
<sort_order>6</sort_order>
|
1003 |
+
<source_model>adminhtml/system_config_source_payment_allspecificcountries</source_model>
|
1004 |
+
<show_in_default>1</show_in_default>
|
1005 |
+
<show_in_website>1</show_in_website>
|
1006 |
+
<show_in_store>1</show_in_store>
|
1007 |
+
</allowspecific>
|
1008 |
+
<specificcountry translate="label">
|
1009 |
+
<label>Payment from Specific Countries</label>
|
1010 |
+
<frontend_type>multiselect</frontend_type>
|
1011 |
+
<config_path>payment/moneybookers_sft/specificcountry</config_path>
|
1012 |
+
<sort_order>7</sort_order>
|
1013 |
+
<source_model>adminhtml/system_config_source_country</source_model>
|
1014 |
+
<show_in_default>1</show_in_default>
|
1015 |
+
<show_in_website>1</show_in_website>
|
1016 |
+
<show_in_store>1</show_in_store>
|
1017 |
+
<can_be_empty>1</can_be_empty>
|
1018 |
+
</specificcountry>
|
1019 |
+
</fields>
|
1020 |
+
</moneybookers_sft>
|
1021 |
+
<moneybookers_so2 translate="label" module="moneybookers">
|
1022 |
+
<label>Nordea Solo (powered by Moneybookers) - Finland</label>
|
1023 |
+
<frontend_type>text</frontend_type>
|
1024 |
+
<sort_order>281</sort_order>
|
1025 |
+
<show_in_default>1</show_in_default>
|
1026 |
+
<show_in_website>1</show_in_website>
|
1027 |
+
<show_in_store>1</show_in_store>
|
1028 |
+
<fields>
|
1029 |
+
<active translate="label">
|
1030 |
+
<label>Enabled</label>
|
1031 |
+
<frontend_type>select</frontend_type>
|
1032 |
+
<config_path>payment/moneybookers_so2/active</config_path>
|
1033 |
+
<source_model>adminhtml/system_config_source_yesno</source_model>
|
1034 |
+
<sort_order>1</sort_order>
|
1035 |
+
<show_in_default>1</show_in_default>
|
1036 |
+
<show_in_website>1</show_in_website>
|
1037 |
+
<show_in_store>1</show_in_store>
|
1038 |
+
</active>
|
1039 |
+
<sort_order translate="label">
|
1040 |
+
<label>Sort Order</label>
|
1041 |
+
<frontend_type>text</frontend_type>
|
1042 |
+
<config_path>payment/moneybookers_so2/sort_order</config_path>
|
1043 |
+
<sort_order>3</sort_order>
|
1044 |
+
<show_in_default>1</show_in_default>
|
1045 |
+
<show_in_website>1</show_in_website>
|
1046 |
+
<show_in_store>1</show_in_store>
|
1047 |
+
</sort_order>
|
1048 |
+
<title translate="label">
|
1049 |
+
<label>Title</label>
|
1050 |
+
<frontend_type>text</frontend_type>
|
1051 |
+
<config_path>payment/moneybookers_so2/title</config_path>
|
1052 |
+
<sort_order>5</sort_order>
|
1053 |
+
<show_in_default>1</show_in_default>
|
1054 |
+
<show_in_website>1</show_in_website>
|
1055 |
+
<show_in_store>1</show_in_store>
|
1056 |
+
</title>
|
1057 |
+
<allowspecific translate="label">
|
1058 |
+
<label>Payment from Applicable Countries</label>
|
1059 |
+
<frontend_type>allowspecific</frontend_type>
|
1060 |
+
<config_path>payment/moneybookers_so2/allowspecific</config_path>
|
1061 |
+
<sort_order>6</sort_order>
|
1062 |
+
<source_model>adminhtml/system_config_source_payment_allspecificcountries</source_model>
|
1063 |
+
<show_in_default>1</show_in_default>
|
1064 |
+
<show_in_website>1</show_in_website>
|
1065 |
+
<show_in_store>1</show_in_store>
|
1066 |
+
</allowspecific>
|
1067 |
+
<specificcountry translate="label">
|
1068 |
+
<label>Payment from Specific Countries</label>
|
1069 |
+
<frontend_type>multiselect</frontend_type>
|
1070 |
+
<config_path>payment/moneybookers_so2/specificcountry</config_path>
|
1071 |
+
<sort_order>7</sort_order>
|
1072 |
+
<source_model>adminhtml/system_config_source_country</source_model>
|
1073 |
+
<show_in_default>1</show_in_default>
|
1074 |
+
<show_in_website>1</show_in_website>
|
1075 |
+
<show_in_store>1</show_in_store>
|
1076 |
+
<can_be_empty>1</can_be_empty>
|
1077 |
+
</specificcountry>
|
1078 |
+
</fields>
|
1079 |
+
</moneybookers_so2>
|
1080 |
+
<moneybookers_wlt translate="label" module="moneybookers">
|
1081 |
+
<label>Moneybookers eWallet</label>
|
1082 |
+
<frontend_type>text</frontend_type>
|
1083 |
+
<sort_order>331</sort_order>
|
1084 |
+
<show_in_default>1</show_in_default>
|
1085 |
+
<show_in_website>1</show_in_website>
|
1086 |
+
<show_in_store>1</show_in_store>
|
1087 |
+
<fields>
|
1088 |
+
<active translate="label">
|
1089 |
+
<label>Enabled</label>
|
1090 |
+
<frontend_type>select</frontend_type>
|
1091 |
+
<config_path>payment/moneybookers_wlt/active</config_path>
|
1092 |
+
<source_model>adminhtml/system_config_source_yesno</source_model>
|
1093 |
+
<sort_order>1</sort_order>
|
1094 |
+
<show_in_default>1</show_in_default>
|
1095 |
+
<show_in_website>1</show_in_website>
|
1096 |
+
<show_in_store>1</show_in_store>
|
1097 |
+
</active>
|
1098 |
+
<sort_order translate="label">
|
1099 |
+
<label>Sort Order</label>
|
1100 |
+
<frontend_type>text</frontend_type>
|
1101 |
+
<config_path>payment/moneybookers_wlt/sort_order</config_path>
|
1102 |
+
<sort_order>3</sort_order>
|
1103 |
+
<show_in_default>1</show_in_default>
|
1104 |
+
<show_in_website>1</show_in_website>
|
1105 |
+
<show_in_store>1</show_in_store>
|
1106 |
+
</sort_order>
|
1107 |
+
<title translate="label">
|
1108 |
+
<label>Title</label>
|
1109 |
+
<frontend_type>text</frontend_type>
|
1110 |
+
<config_path>payment/moneybookers_wlt/title</config_path>
|
1111 |
+
<sort_order>5</sort_order>
|
1112 |
+
<show_in_default>1</show_in_default>
|
1113 |
+
<show_in_website>1</show_in_website>
|
1114 |
+
<show_in_store>1</show_in_store>
|
1115 |
+
</title>
|
1116 |
+
<allowspecific translate="label">
|
1117 |
+
<label>Payment from Applicable Countries</label>
|
1118 |
+
<frontend_type>allowspecific</frontend_type>
|
1119 |
+
<config_path>payment/moneybookers_wlt/allowspecific</config_path>
|
1120 |
+
<sort_order>6</sort_order>
|
1121 |
+
<source_model>adminhtml/system_config_source_payment_allspecificcountries</source_model>
|
1122 |
+
<show_in_default>1</show_in_default>
|
1123 |
+
<show_in_website>1</show_in_website>
|
1124 |
+
<show_in_store>1</show_in_store>
|
1125 |
+
</allowspecific>
|
1126 |
+
<specificcountry translate="label">
|
1127 |
+
<label>Payment from Specific Countries</label>
|
1128 |
+
<frontend_type>multiselect</frontend_type>
|
1129 |
+
<config_path>payment/moneybookers_wlt/specificcountry</config_path>
|
1130 |
+
<sort_order>7</sort_order>
|
1131 |
+
<source_model>adminhtml/system_config_source_country</source_model>
|
1132 |
+
<show_in_default>1</show_in_default>
|
1133 |
+
<show_in_website>1</show_in_website>
|
1134 |
+
<show_in_store>1</show_in_store>
|
1135 |
+
<can_be_empty>1</can_be_empty>
|
1136 |
+
</specificcountry>
|
1137 |
+
</fields>
|
1138 |
+
</moneybookers_wlt>
|
1139 |
+
<moneybookers_obt translate="label" module="moneybookers">
|
1140 |
+
<label>Online Bank Transfer (powered by Moneybookers)</label>
|
1141 |
+
<frontend_type>text</frontend_type>
|
1142 |
+
<sort_order>381</sort_order>
|
1143 |
+
<show_in_default>1</show_in_default>
|
1144 |
+
<show_in_website>1</show_in_website>
|
1145 |
+
<show_in_store>1</show_in_store>
|
1146 |
+
<fields>
|
1147 |
+
<active translate="label">
|
1148 |
+
<label>Enabled</label>
|
1149 |
+
<frontend_type>select</frontend_type>
|
1150 |
+
<config_path>payment/moneybookers_obt/active</config_path>
|
1151 |
+
<source_model>adminhtml/system_config_source_yesno</source_model>
|
1152 |
+
<sort_order>1</sort_order>
|
1153 |
+
<show_in_default>1</show_in_default>
|
1154 |
+
<show_in_website>1</show_in_website>
|
1155 |
+
<show_in_store>1</show_in_store>
|
1156 |
+
</active>
|
1157 |
+
<sort_order translate="label">
|
1158 |
+
<label>Sort Order</label>
|
1159 |
+
<frontend_type>text</frontend_type>
|
1160 |
+
<config_path>payment/moneybookers_obt/sort_order</config_path>
|
1161 |
+
<sort_order>3</sort_order>
|
1162 |
+
<show_in_default>1</show_in_default>
|
1163 |
+
<show_in_website>1</show_in_website>
|
1164 |
+
<show_in_store>1</show_in_store>
|
1165 |
+
</sort_order>
|
1166 |
+
<title translate="label">
|
1167 |
+
<label>Title</label>
|
1168 |
+
<frontend_type>text</frontend_type>
|
1169 |
+
<config_path>payment/moneybookers_obt/title</config_path>
|
1170 |
+
<sort_order>5</sort_order>
|
1171 |
+
<show_in_default>1</show_in_default>
|
1172 |
+
<show_in_website>1</show_in_website>
|
1173 |
+
<show_in_store>1</show_in_store>
|
1174 |
+
</title>
|
1175 |
+
<allowspecific translate="label">
|
1176 |
+
<label>Payment from Applicable Countries</label>
|
1177 |
+
<frontend_type>allowspecific</frontend_type>
|
1178 |
+
<config_path>payment/moneybookers_obt/allowspecific</config_path>
|
1179 |
+
<sort_order>6</sort_order>
|
1180 |
+
<source_model>adminhtml/system_config_source_payment_allspecificcountries</source_model>
|
1181 |
+
<show_in_default>1</show_in_default>
|
1182 |
+
<show_in_website>1</show_in_website>
|
1183 |
+
<show_in_store>1</show_in_store>
|
1184 |
+
</allowspecific>
|
1185 |
+
<specificcountry translate="label">
|
1186 |
+
<label>Payment from Specific Countries</label>
|
1187 |
+
<frontend_type>multiselect</frontend_type>
|
1188 |
+
<config_path>payment/moneybookers_obt/specificcountry</config_path>
|
1189 |
+
<sort_order>7</sort_order>
|
1190 |
+
<source_model>adminhtml/system_config_source_country</source_model>
|
1191 |
+
<show_in_default>1</show_in_default>
|
1192 |
+
<show_in_website>1</show_in_website>
|
1193 |
+
<show_in_store>1</show_in_store>
|
1194 |
+
<can_be_empty>1</can_be_empty>
|
1195 |
+
</specificcountry>
|
1196 |
+
</fields>
|
1197 |
+
</moneybookers_obt>
|
1198 |
+
</groups>
|
1199 |
+
</moneybookers>
|
1200 |
+
</sections>
|
1201 |
+
</config>
|
app/code/community/Phoenix/Moneybookers/sql/moneybookers_setup/install-1.6.0.0.php
ADDED
@@ -0,0 +1,22 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
<?php
|
2 |
+
/**
|
3 |
+
* Magento
|
4 |
+
*
|
5 |
+
* NOTICE OF LICENSE
|
6 |
+
*
|
7 |
+
* This source file is subject to the Open Software License (OSL 3.0)
|
8 |
+
* that is bundled with this package in the file LICENSE.txt.
|
9 |
+
* It is also available through the world-wide-web at this URL:
|
10 |
+
* http://opensource.org/licenses/osl-3.0.php
|
11 |
+
* If you did not receive a copy of the license and are unable to
|
12 |
+
* obtain it through the world-wide-web, please send an email
|
13 |
+
* to license@magentocommerce.com so we can send you a copy immediately.
|
14 |
+
*
|
15 |
+
* @category Phoenix
|
16 |
+
* @package Phoenix_Moneybookers
|
17 |
+
* @copyright Copyright (c) 2015 Phoenix Medien GmbH & Co. KG (http://www.phoenix-medien.de)
|
18 |
+
* @license http://opensource.org/licenses/osl-3.0.php Open Software License (OSL 3.0)
|
19 |
+
*/
|
20 |
+
|
21 |
+
$installer = $this;
|
22 |
+
/* @var $installer Mage_Core_Model_Resource_Setup */
|
app/code/community/Phoenix/Moneybookers/sql/moneybookers_setup/mysql4-upgrade-1.2-1.2.0.1.php
ADDED
@@ -0,0 +1,41 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
<?php
|
2 |
+
/**
|
3 |
+
* Magento
|
4 |
+
*
|
5 |
+
* NOTICE OF LICENSE
|
6 |
+
*
|
7 |
+
* This source file is subject to the Open Software License (OSL 3.0)
|
8 |
+
* that is bundled with this package in the file LICENSE.txt.
|
9 |
+
* It is also available through the world-wide-web at this URL:
|
10 |
+
* http://opensource.org/licenses/osl-3.0.php
|
11 |
+
* If you did not receive a copy of the license and are unable to
|
12 |
+
* obtain it through the world-wide-web, please send an email
|
13 |
+
* to license@magentocommerce.com so we can send you a copy immediately.
|
14 |
+
*
|
15 |
+
* @category Phoenix
|
16 |
+
* @package Phoenix_Moneybookers
|
17 |
+
* @copyright Copyright (c) 2015 Phoenix Medien GmbH & Co. KG (http://www.phoenix-medien.de)
|
18 |
+
* @license http://opensource.org/licenses/osl-3.0.php Open Software License (OSL 3.0)
|
19 |
+
*/
|
20 |
+
|
21 |
+
/* @var $installer Mage_Core_Model_Resource_Setup */
|
22 |
+
$installer = $this;
|
23 |
+
|
24 |
+
$installer->startSetup();
|
25 |
+
$conn = $installer->getConnection();
|
26 |
+
|
27 |
+
$select = $conn
|
28 |
+
->select()
|
29 |
+
->from($this->getTable('core/config_data'), array('scope', 'scope_id', 'path', 'value'))
|
30 |
+
->where(new Zend_Db_Expr("path LIKE 'moneybookers/moneybookers%'"));
|
31 |
+
$data = $conn->fetchAll($select);
|
32 |
+
|
33 |
+
if (!empty($data)) {
|
34 |
+
foreach ($data as $key => $value) {
|
35 |
+
$data[$key]['path'] = preg_replace('/^moneybookers\/moneybookers/', 'payment/moneybookers', $value['path']);
|
36 |
+
}
|
37 |
+
$conn->insertOnDuplicate($this->getTable('core/config_data'), $data, array('path'));
|
38 |
+
$conn->delete($this->getTable('core/config_data'), new Zend_Db_Expr("path LIKE 'moneybookers/moneybookers%'"));
|
39 |
+
}
|
40 |
+
|
41 |
+
$installer->endSetup();
|
app/design/adminhtml/default/default/layout/payitsimple_notification.xml
DELETED
@@ -1,9 +0,0 @@
|
|
1 |
-
<?xml version="1.0"?>
|
2 |
-
<layout>
|
3 |
-
<default>
|
4 |
-
<reference name="notifications">
|
5 |
-
<block type="pis_payment/adminhtml_system_config_notification" name="notification_sip" as="notification_sip"
|
6 |
-
template="payitsimple/system/config/notification.phtml"/>
|
7 |
-
</reference>
|
8 |
-
</default>
|
9 |
-
</layout>
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
app/design/adminhtml/default/default/template/payitsimple/system/config/button.phtml
DELETED
@@ -1,14 +0,0 @@
|
|
1 |
-
<script type="text/javascript">
|
2 |
-
//<![CDATA[
|
3 |
-
function checkSip() {
|
4 |
-
new Ajax.Request('<?php echo $this->getAjaxCheckUrl() ?>', {
|
5 |
-
method: 'get',
|
6 |
-
onSuccess: function(transport){
|
7 |
-
alert(transport.responseText)
|
8 |
-
}
|
9 |
-
});
|
10 |
-
}
|
11 |
-
//]]>
|
12 |
-
</script>
|
13 |
-
|
14 |
-
<?php echo $this->getButtonHtml() ?>
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
app/design/adminhtml/default/default/template/payitsimple/system/config/notification.phtml
DELETED
@@ -1,5 +0,0 @@
|
|
1 |
-
<?php if (!$this->isConfigured()): ?>
|
2 |
-
<div class="notification-global notification-global-notice">
|
3 |
-
Thank you for installing Splitit, you need to be registered on our website in order to accept payments. Please <a href="<?php echo $this->getUrl('adminhtml/system_config/edit', array('section'=>'payment'))?>#payment_pis_cc-head">configure</a> our exstension.
|
4 |
-
</div>
|
5 |
-
<?php endif; ?>
|
|
|
|
|
|
|
|
|
|
app/design/frontend/base/default/layout/pis_payment.xml
DELETED
@@ -1,29 +0,0 @@
|
|
1 |
-
<?xml version="1.0"?>
|
2 |
-
<layout version="0.1.0">
|
3 |
-
<payitsimple_payment_help>
|
4 |
-
<reference name="root">
|
5 |
-
<action method="setTemplate">
|
6 |
-
<template>page/empty.phtml</template>
|
7 |
-
</action>
|
8 |
-
<action method="setIsHandle">
|
9 |
-
<applied>1</applied>
|
10 |
-
</action>
|
11 |
-
</reference>
|
12 |
-
<reference name="content">
|
13 |
-
<block type="core/template" name="payitsimple.help" template="payitsimple/help.phtml" />
|
14 |
-
</reference>
|
15 |
-
</payitsimple_payment_help>
|
16 |
-
<payitsimple_payment_terms>
|
17 |
-
<reference name="root">
|
18 |
-
<action method="setTemplate">
|
19 |
-
<template>page/empty.phtml</template>
|
20 |
-
</action>
|
21 |
-
<action method="setIsHandle">
|
22 |
-
<applied>1</applied>
|
23 |
-
</action>
|
24 |
-
</reference>
|
25 |
-
<reference name="content">
|
26 |
-
<block type="core/template" name="payitsimple.terms" template="payitsimple/terms.phtml" />
|
27 |
-
</reference>
|
28 |
-
</payitsimple_payment_terms>
|
29 |
-
</layout>
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
app/design/frontend/base/default/template/payitsimple/form/method_faq.phtml
DELETED
@@ -1,4 +0,0 @@
|
|
1 |
-
<?php if ($this->getPaymentInfoEnabled()):?>
|
2 |
-
<a style="float: none;" href="#" onclick="popWin('<?php echo $this->getUrl('payitsimple/payment/help')?>', 'Tell me more', 'width=503,height=700,left=0,top=0,location=no,status=no,scrollbars=no,resizable=no'); return false;"><?php echo $this->getPaymentInfoTitle() ?></a>
|
3 |
-
<?php endif; ?>
|
4 |
-
<img src="data:image/gif;base64,R0lGODlhdAAjAMQAAPv59jFPjqKfp05nnvssG/iRkfOFAsrGxqiwyvimKPFVVv7ao/lfBf20RpdQYdLU2/zDw/+gCP7q2YV+gv7IdneJsriBT6QZLrzC1eTm7hAze/edExk6gPsPDP+ZAP///yH5BAAAAAAALAAAAAB0ACMAAAX/4CSOZGmeaJo+X+u+cCtBRQ1BQKy3gLT8C0lu95oAjsikcslsOpmHA/EFoCkInayWUJMQfY2IZ0xOUILTyXTNbsce0jVEoa3bswXvS9Ig+/8eERRDMWoZA4iJiouMjY6PiBU5cFMSdHeYWwUyYYCeZBsUOmoPHBqnqKmqq6ytrhoBk3E6EFiZt3gLfZ+8Yw16LoYcw8TFxsfIycqmsR+UtLjRHQSBvdYJhB/Cy9zd3bCyOgW20pkMBgbW1r/BHxne8PHF4M6zLhDl+QzqvQ3t7xrkCeRG79mLS/nuEFjIcB+/TwtakDL1qqJFi80MtiiQEBO1CCBDinkICJu2DwAQ/6hcybKly5cwY6rE0ELjB3IdtzDYyfMcSU8R1bhxkyHb0Jr28OXM9xOQP6E6HlSYWiGDCwQVBGCYisCdgADDAlRg0ULA1AcqjbrQiHDptJ5w0zX1swBqDAAYUJEFiPVUhQ8DTg071fVD3lMCEKlF6kJCFi4F6CiogdPcyDGXx4T6sWsdBTN2dQTmYBVA4AGAA6L1WxRtjgwBAmpAkMHqDoNKBWy84ALLwjpYLtzw/ZthBwYJgC0IdDlzBANdGzQIDQNAbA4sBKgGGOCQ3xgIApr6OwV3hwuFC1hoMUcIgHEKhEgw8mFcgR50CtDQ6kyAgDM5SJBAcpwtAIAALAxIHf8Mo9EUW1faaYBaBbJJstYwFYy3hkEcXcDCe3EUMAFaVuFg2AG6VQHBBwdYpYBtNEmwAToWPIABCwvo5oxVtgEQQQILvtAghbFYFxBN3pkywIeBjaXkhrNw5AAAD6BV5QcKXGABfw8AkIEDF2xSgAMfQOBAV7QBMEFXFGBmwJZdofiBWR8ssOUHEngA5BqjZagBTaXQ485oEhoGDkADLLZWlB2QmdYDuk32ggClKdCVAgrAgEAPHejWWQOECNDVnRQYoNtye05BIQexkRdeoS6kZAp2gYk1ADOKMrZRp9pAqJsUY7p4gW4ZsEAAmQI4MIED6+Fz6hgWFHUngh9YQFP/qVK0mSoRq8JiG4UaCICXbbDBsmoA6BJj222z4NOVAzQ50CULkR2BqRFe1qfGHPfW14FQFFAgLgANSDGwA7pJMMgHfUy3RreFAUSadmJVEJsGFs+GxGhksXtPBxgAgB4AU2ZAXgs3usDfB2e6IGeHJ1dQ2BGbLmAAaSj10AAFDqt6Cmpl/TynKgEgUCshgc1W3iwAHAumA1lCfYGyDlSt7AR0KEvH1CJM7QAWDFxtgQXKkj32BAl4YEDZE1iwwc5BrqXSumjRVpN/ouagUsfOzL30Cxy59RhcPMmFjuG8yIXZfDw0QcURj1dHSBKxOl7PHpXlpPhcvIiihoADhi765eikl2766Qm8Hc5Bgm9hBwGbz+XF5xvUbvvtuOeu++68126STUq1rhDnZVhFe+/IJ6/87/bs2jrsZMTeVAIoqomn8thnf/uPq1PR1lLn+ER8IBFJdL326CdvAfM6APC9Ww4RX775MqZvf+4RWMCBBd1X935HG8hMU+ZHP9QZ8IAHtMAEQHU5IoxjKQRYEQUEyI8EENB8OXuCBjfIQV0RoRYduU9jOqOOCDCwEEdJoQrd0bz2zSEaXFhRDBZAgQ30wgzAKATedsjDHvrwh0AMIrXcIIHIYOqIkzFRJWgonSbuzEBrCAEAOw==" style="float: right; margin-left: 10px;"/>
|
|
|
|
|
|
|
|
app/design/frontend/base/default/template/payitsimple/form/pis.phtml
DELETED
@@ -1,84 +0,0 @@
|
|
1 |
-
<?php $_code=$this->getMethodCode() ?>
|
2 |
-
<ul class="form-list" id="payment_form_<?php echo $_code ?>" style="display:none;">
|
3 |
-
<li>
|
4 |
-
<label for="<?php echo $_code ?>_cc_type" class="required"><em>*</em><?php echo $this->__('Credit Card Type') ?></label>
|
5 |
-
<div class="input-box">
|
6 |
-
<select id="<?php echo $_code ?>_cc_type" name="payment[cc_type]" class="required-entry validate-cc-type-select">
|
7 |
-
<option value=""><?php echo $this->__('--Please Select--')?></option>
|
8 |
-
<?php $_ccType = $this->getInfoData('cc_type') ?>
|
9 |
-
<?php foreach ($this->getCcAvailableTypes() as $_typeCode => $_typeName): ?>
|
10 |
-
<option value="<?php echo $_typeCode ?>"<?php if($_typeCode==$_ccType): ?> selected="selected"<?php endif ?>><?php echo $_typeName ?></option>
|
11 |
-
<?php endforeach ?>
|
12 |
-
</select>
|
13 |
-
</div>
|
14 |
-
</li>
|
15 |
-
<!--li class="centinel-logos" id="<?php echo $this->getCode() ?>_centinel_logo">
|
16 |
-
<label><?php echo $this->__('To ensure the security of your transactions') ?></label>
|
17 |
-
<div class="input-box">
|
18 |
-
<a href="#" title="<?php echo $this->__('Verified by Visa') ?> " onclick="popWin('<?php echo $this->helper('centinel')->getVisaLearnMorePageUrl()?>', 'verifiedByVisa', 'width=815,height=600,left=0,top=0,location=no,status=yes,scrollbars=yes,resizable=yes'); return false;"><img src="<?php echo $this->getSkinUrl('images/centinel/vbv_ltbg_71x57.png'); ?>" alt="<?php echo $this->__('Verified by Visa') ?>" /></a>
|
19 |
-
<a href="#" title="<?php echo $this->__('MasterCard SecureCode'); ?>" onclick="popWin('<?php echo $this->helper('centinel')->getMastercardLearnMorePageUrl()?>', 'secureCode', 'width=600,height=403,left=0,top=0,location=no,status=yes,scrollbars=yes,resizable=yes'); return false;"><img src="<?php echo $this->getSkinUrl('images/centinel/sc_learn_62x34.png'); ?>" alt="<?php echo $this->__('MasterCard SecureCode') ?>" /></a>
|
20 |
-
</div>
|
21 |
-
</li-->
|
22 |
-
<li>
|
23 |
-
<label for="<?php echo $_code ?>_cc_number" class="required"><em>*</em><?php echo $this->__('Credit Card Number') ?></label>
|
24 |
-
<div class="input-box">
|
25 |
-
<input type="text" id="<?php echo $_code ?>_cc_number" name="payment[cc_number]" title="<?php echo $this->__('Credit Card Number') ?>" class="input-text validate-cc-number validate-cc-type" value="" />
|
26 |
-
</div>
|
27 |
-
</li>
|
28 |
-
<li id="<?php echo $_code ?>_cc_type_exp_div">
|
29 |
-
<label for="<?php echo $_code ?>_expiration" class="required"><em>*</em><?php echo $this->__('Expiration Date') ?></label>
|
30 |
-
<div class="input-box">
|
31 |
-
<div class="v-fix">
|
32 |
-
<select id="<?php echo $_code ?>_expiration" name="payment[cc_exp_month]" class="month validate-cc-exp required-entry">
|
33 |
-
<?php $_ccExpMonth = $this->getInfoData('cc_exp_month') ?>
|
34 |
-
<?php foreach ($this->getCcMonths() as $k=>$v): ?>
|
35 |
-
<option value="<?php echo $k?$k:'' ?>"<?php if($k==$_ccExpMonth): ?> selected="selected"<?php endif ?>><?php echo $v ?></option>
|
36 |
-
<?php endforeach ?>
|
37 |
-
</select>
|
38 |
-
</div>
|
39 |
-
<div class="v-fix">
|
40 |
-
<?php $_ccExpYear = $this->getInfoData('cc_exp_year') ?>
|
41 |
-
<select id="<?php echo $_code ?>_expiration_yr" name="payment[cc_exp_year]" class="year required-entry">
|
42 |
-
<?php foreach ($this->getCcYears() as $k=>$v): ?>
|
43 |
-
<option value="<?php echo $k?$k:'' ?>"<?php if($k==$_ccExpYear): ?> selected="selected"<?php endif ?>><?php echo $v ?></option>
|
44 |
-
<?php endforeach ?>
|
45 |
-
</select>
|
46 |
-
</div>
|
47 |
-
</div>
|
48 |
-
</li>
|
49 |
-
<?php echo $this->getChildHtml() ?>
|
50 |
-
<?php if($this->hasVerification()): ?>
|
51 |
-
<li id="<?php echo $_code ?>_cc_type_cvv_div">
|
52 |
-
<label for="<?php echo $_code ?>_cc_cid" class="required"><em>*</em><?php echo $this->__('Card Verification Number') ?></label>
|
53 |
-
<div class="input-box">
|
54 |
-
<div class="v-fix">
|
55 |
-
<input type="text" title="<?php echo $this->__('Card Verification Number') ?>" class="input-text cvv required-entry validate-cc-cvn" id="<?php echo $_code ?>_cc_cid" name="payment[cc_cid]" value="" />
|
56 |
-
</div>
|
57 |
-
<a href="#" class="cvv-what-is-this"><?php echo $this->__('What is this?') ?></a>
|
58 |
-
</div>
|
59 |
-
</li>
|
60 |
-
<?php endif; ?>
|
61 |
-
<li>
|
62 |
-
<label for="<?php echo $_code ?>_installments_no" class="required"><em>*</em><?php echo $this->__('Number of Installments ') ?></label>
|
63 |
-
<div class="input-box">
|
64 |
-
<select id="<?php echo $_code ?>_installments_no" name="payment[installments_no]" class="required-entry">
|
65 |
-
<option value=""><?php echo $this->__('--Please Select--')?></option>
|
66 |
-
<?php $_iNo = $this->getInfoData('installments_no') ?>
|
67 |
-
<?php foreach ($this->getAvailableInstallments() as $_num => $_typeName): ?>
|
68 |
-
<option value="<?php echo $_num ?>"<?php if($_num==$_iNo): ?> selected="selected"<?php endif ?>><?php echo $_typeName ?></option>
|
69 |
-
<?php endforeach ?>
|
70 |
-
</select>
|
71 |
-
</div>
|
72 |
-
</li>
|
73 |
-
<li>
|
74 |
-
<input style="float: left; margin-right: 5px; margin-top: 2px;" type="checkbox" id="<?php echo $_code ?>_terms" name="payment[terms]" class="required-entry" value="1" />
|
75 |
-
<label for="<?php echo $_code ?>_terms" class="required">
|
76 |
-
<em>*</em><?php echo $this->__('I acknowledge that I have read and agree to the %s terms and conditions %s','<a href="#" style="float:none; margin-left:0px;" onclick="popWin(\'' . 'http://www.splitit.com/legal/customers-terms-and-conditions/' . "', 'terms and conditions', 'width=750,height=607,left=0,top=0,location=no,status=no,scrollbars=yes,resizable=no'); return false;\">",'</a>') ?>
|
77 |
-
</label>
|
78 |
-
</li>
|
79 |
-
<li>
|
80 |
-
<div align="center">
|
81 |
-
<img src="data:image/png;base64,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"/>
|
82 |
-
</div>
|
83 |
-
</li>
|
84 |
-
</ul>
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
app/design/frontend/base/default/template/payitsimple/help.phtml
DELETED
@@ -1,8 +0,0 @@
|
|
1 |
-
<img src="data:image/png;base64,
|
2 |
-
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x58q5jJjmi/3XHI+nQ+le9SzOL0qI/TcFxrBxUMZT+a/yPD/AIOfFS20f4YeG7GX4ieG9Ilt7RImsdRhLzwYGNjsZ13EeuBVDXP2H5xKx0bxVsiJyE1C03svtujZc/lWUnhas3NysefiJZLjq0q7r8rfRx/4B2mt/GOybRrxB8UfCMxeFwI4bX52JU8Li5PJ7cVxmg/sQSidG1rxX5kQPzRafaeWW9tzs2Pyqf8AZYO/Nc5lTyWhNVPbuVu0V/kfNHhHwtqvi/VbHR9HspLy/mCqkI6IOAWdv4VXux/UkA/ov8PfhV4c+Gdg1tomnpbtJjzZ2JeaYju7nk/ToK2q5mkrUkexjONYxh7PB0/m/wDJDPhF8ObX4W+CrLQ7dhNMgMlzcYx50zcu/wBM8AdgAK7YDFeDUqyqy5pM/McTi62MqOrXldsWisjkCigAooAKKACigAooAKKACigAooAKKACigAooAKKACigAooAKKACigAooAKKACigAooAKKACigAooAKKACigAooAKKACigAooAKKACigAooAKKACigAooAKKACigAooAKKAAgHrRQAAYooACM0UAAGKKACigAooAKKACigAooAKKACigAooAKKAP/0v1SooAKKACigAooAKazEZoAG9q8n+Ln7RPh34VsbKQvqmtlQy6dakbkB6NIx4QfXk9ga6aeHqVPhR6mFyzF4z+BTbXe2n3nq9fDGvftjePNSuC2nQ6Vo8Of9WYGuGx/vll/9BruWW1nvZH0dPhDM5q7il6v/I+5818NaD+2P4702cHUoNK1iDPMYha2bH++Gbn/AIDSlltaO1mFThDM4K6Sfoz7mFeVfCX9obw78VT9jhLabrSrubTrojewHVo2HDj6cjuBXDUw9Wl8UT5vFZbi8H/Hptfl956vSKc1znmC0UAFFABRQAUUAFFABRQAUUAFFABRQAUUAFFABRQAUUAFFABRQAUUAFFABRQAUUAFFABRQAUUAFFABRQAUUAFFABRQAUUAFFABRQAUUAFFABRQAUUAFFABRQAUUAFFABRQAUUAFFABRQAUUAFFABRQAUUAFFABRQAUUAFFABRQAUUAFFAH//T/VKigAooAKKACigDy39oL4qf8Ks8Bz3luUOrXj/ZbFG5HmEElyO4RQWI74x3rwP9t/VpZ/G/h7Ttx+z29jJNs7b3kAz+SY/G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8OjS9Yjg1fREnhjubi0MsM0MzBpI3jDqeqxkFXBBQdQSD6JQBwPh34YnRtd0vV7jUvtt/bi/kuZDAEE8108LMygH92qiEKF5OCMsTknvqdwOFsfhu1jaaTB/aJf7Br93re7yceZ5z3L+V14x9pxu5zs6DPHdUXA8y1P4SXF1qaXkOp2koGpXV81nqVgbm2cTCMcxiRcyJ5fyuTgB2+XnI9NouB5r4S+FV54Nfws1lrMMo0nT30y6WWy4uYmkWTKbXHlMCo/vDBPHSvSqLgeZ6X8LNV8LpZy6F4ggtb9NPXTbmS8sDPFNGkkskTqgkUo6NNJ/EQQ3I4GPTKLgec2Hwhh0uz1S0tdRkMV7oEWhhpYwzqUa4YzMQQCWNyTtAAG3jrx6NRcCnpdl/ZumWlpu3+RCkW/GM7VAzj8KuUgCigAooAKKACigAooAKKACigAooAKKACigAooAKKACigAooAKKACigAooAKKACigAooAKKACigAooAKKACigAooAKKACigD//V/VKigAooAKKACigBpGSadkUAcl47+Gnh74j6aLLXdMivFXmOU5WWI+qOOVP0NdYfrWkKk4O8XY6qOJrYeXNRm4vyZ8sa3+w9ZyXDvpPie5toSciG8tlm2j0DKVJ/HNfU24etdix2IX2j3YcR5rTVlWb9bHy1of7DtlFcK+r+J7q6hByYbO3WDcPQsSxH4Yr6lyO1J46u/tCqcSZpUVnWa9LL9DlfAfw28P8Aw40z7FoWmxWUbYMkgBaSUju7nlj9a6wD3rklUlN3kzw62JrYiXNWm5PzYgGKWszlCigAooAKKACigAooAKKACigAooAKKACigAooAKKACigAooAKKACigAooAKKACigAooAKKACigAooAKKACigAooAKKACigAooAKKACigAooAKKACigAooAKKACigAooAKKACigAooAKKACigAooAKKACigAooAKKACigAooAKKACigAooA//W/VKigAooAKKACgnFAFa4uIrWJpZXWONQWZnOAAOpJr5S/bG+K0y3UfgXTZjHAYln1RkOC4P+rg/3SAWYdxtHQmvSw2CniNdkfV5Pw/XzZ8/ww7v9DY+Jn7ZNjpFzLYeELOPV5UO1tQuGK2+f9gD5pPrwD2JryL9nf4KWHxhvNbOqXtzbWlgsQCWu0NIz7jyWB4AUdPWvUnh8NhUv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"/>
|
3 |
-
<style type="text/css">
|
4 |
-
body {
|
5 |
-
padding: 0 !important;
|
6 |
-
margin: 0 !important;
|
7 |
-
}
|
8 |
-
</style>
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
app/design/frontend/base/default/template/payitsimple/terms.phtml
DELETED
@@ -1,102 +0,0 @@
|
|
1 |
-
<div class="post-content">
|
2 |
-
<div class="fusion-title title" style="padding-left: 20px;"><h1 class="title-heading-left">Customer’s Terms and Conditions</h1>
|
3 |
-
|
4 |
-
<div class="title-sep-container">
|
5 |
-
<div class="title-sep sep-double sep-solid"></div>
|
6 |
-
</div>
|
7 |
-
</div>
|
8 |
-
<ol style="list-style: outside inside; padding-left: 40px;">
|
9 |
-
<li>Buyer who’s name appears below (“Buyer”, “You”, or “Your) promises to pay the full amount of the Total
|
10 |
-
Authorized Purchase Price in the number of installment payments set forth in the Recurring Installment
|
11 |
-
Payment Authorization (“Authorization”) to Seller (“Seller”, “We” or “Us”) by authorizing Seller to charge
|
12 |
-
Buyer’s credit card in equal monthly installments as set forth in the Authorization (each an “Installment”)
|
13 |
-
each month until paid in full. Buyer further agrees that Seller will receive authorization for the
|
14 |
-
full amount of the purchase on Buyer’s credit card at the time of sale, and will authorize the remaining
|
15 |
-
balance each month thereafter until paid in full. Buyer understands that this authorization will
|
16 |
-
remain in effect until Buyer cancels it in writing.
|
17 |
-
</li>
|
18 |
-
<li> Buyer agrees to notify Seller in writing via Buyer’s user account at <a
|
19 |
-
href="https://consumer.splitit.com/">consumer.splitit.com</a> of any changes to Buyer’s
|
20 |
-
credit card account information or termination of this authorization. We will update such information and
|
21 |
-
process such requests within 30 days after our receipt of such request. Buyer understands that the
|
22 |
-
Installment payments may be authorized and charged on the next business day. Buyer further understands
|
23 |
-
that because these are electronic transactions, any authorizations and charges may be posted to Your account
|
24 |
-
as soon as the Installment payment dates.
|
25 |
-
</li>
|
26 |
-
<li>Any Installment amounts due under this contract that have been charged to Buyer’s credit card and not paid
|
27 |
-
when due, pursuant to Your agreement with Your credit card issuer (“Issuer”), will be charged interest at
|
28 |
-
the Annual Percentage Rate stated in Your Issuer’s Federal Truth-in-Lending Disclosure statement until the
|
29 |
-
Installments are fully paid. So long as You timely pay each Installment to Your Issuer when due,
|
30 |
-
Issuer will not charge Buyer interest on such Installment. Issuer may charge Buyer interest on any
|
31 |
-
other balance You may have on Your credit card in excess of the Installment amount.
|
32 |
-
</li>
|
33 |
-
<li>In the case of an authorization being rejected for any reason, Buyer understands that Seller may, in its
|
34 |
-
discretion, attempt to process the charge again within five (5) days.
|
35 |
-
</li>
|
36 |
-
<li>In the event that Buyer’s Issuer fails to pay an Installment for any reason, Seller, at its discretion, may
|
37 |
-
charge Buyer’s credit card at any time for the full outstanding amount due.
|
38 |
-
</li>
|
39 |
-
<li>In consideration for services provided by Pay It Simple USA, Inc. (“Splitit”) to Seller, Buyer agrees
|
40 |
-
that Splitit will have the right to communicate with and solicit Buyer via e-mail (or other means).
|
41 |
-
This provision is operational for not less than five (5) years from the date of the initial authorization.
|
42 |
-
</li>
|
43 |
-
<li>Buyer understands that Splitit is not a party to this Agreement, which is solely between Buyer and
|
44 |
-
Seller.
|
45 |
-
</li>
|
46 |
-
<li>Buyer understands and agrees that Splitit is not responsible for the delivery and quality of goods
|
47 |
-
purchased in this transaction.
|
48 |
-
</li>
|
49 |
-
<li>Buyer acknowledges that the origination of any authorized transactions to the Buyer’s account must comply
|
50 |
-
with the provisions of U.S. law. Buyer certifies that Buyer is an authorized user of the credit
|
51 |
-
card utilized for this transaction and the Installments and will not dispute these transactions with Buyer’s
|
52 |
-
credit card company, so long as the authorizations correspond to the terms indicated in the authorization
|
53 |
-
form.
|
54 |
-
</li>
|
55 |
-
<li>Buyer agrees that if delivery of the goods or services are not made at the time of execution of this
|
56 |
-
contract, the description of the goods or services and the due date of the first Installment may be inserted
|
57 |
-
by Seller in Seller’s counterpart of the contract after it has been signed by Buyer.
|
58 |
-
</li>
|
59 |
-
<li>If any provision of this contract is determined to be invalid, it shall not affect the remaining provisions
|
60 |
-
hereof.
|
61 |
-
</li>
|
62 |
-
<li>PRIVACY POLICY. Buyer’s privacy is important to us. You may obtain a copy of Splitit’s
|
63 |
-
Privacy Policy by visiting their website at consumer.splitit.com. As permitted by law, We and
|
64 |
-
Splitit may share information about our transactions and experiences with Buyer with other affiliated
|
65 |
-
companies and unaffiliated third parties, including consumer reporting agencies and other creditors.
|
66 |
-
However, except as permitted by law, neither We nor Splitit may share information which was obtained
|
67 |
-
from credit applications, consumer reports, and any third parties with companies affiliated with us if Buyer
|
68 |
-
instructs us not to share this information. If Buyer does not want us to share this information, Buyer
|
69 |
-
shall notify us in writing via Buyer’s user account at <a href="https://consumer.splitit.com/">consumer.splitit.com</a> using
|
70 |
-
the password Buyer was provided with for such notification and for accessing information on Splitit’s
|
71 |
-
website. Buyer shall include Buyer’s name, address, account number and the last four digits of Buyer’s
|
72 |
-
credit card number used in this transaction so such request can be honored. We may report about Your account
|
73 |
-
to consumer reporting agencies. Late payments, missed payments, or other defaults on Your credit card
|
74 |
-
account may be reflected by Your Issuer in Your credit report.
|
75 |
-
</li>
|
76 |
-
<li>ARBITRATION. Any claim, dispute or controversy (“Claim”) arising from or connected with this Agreement,
|
77 |
-
including the enforceability, validity or scope of this arbitration clause or this Agreement, shall be
|
78 |
-
governed by this provision. Upon the election of Buyer or Seller by written notice to the other party, any
|
79 |
-
Claim shall be resolved by arbitration before a single arbitrator, on an individual basis, without resort to
|
80 |
-
any form of class action (“Class Action Waiver”), pursuant to this arbitration provision and the applicable
|
81 |
-
rules of the American Arbitration Association (“AAA”) in effect at the time the Claim is filed. Any
|
82 |
-
arbitration hearing shall take place within the State of New York, County of New York. At the written
|
83 |
-
request of Buyer, any filing and administrative fees charged or assessed by the AAA which are required to be
|
84 |
-
paid by Buyer and that are in excess of any filing fee Buyer would have been required to pay to file a Claim
|
85 |
-
in state court in New York shall be advanced and paid for by Seller. The arbitrator may not award
|
86 |
-
punitive or exemplary damages against any party. IF ANY PARTY COMMENCES ARBITRATION WITH RESPECT TO A
|
87 |
-
CLAIM, NEITHER BUYER OR SELLER WILL HAVE THE RIGHT TO LITIGATE THAT CLAIM IN COURT OR HAVE A JURY TRIAL ON
|
88 |
-
THAT CLAIM, OR TO ENGAGE IN PRE-ARBITRATION DISCOVERY, EXCEPT AS PROVIDED FOR IN THE APPLICABLE ARBITRATION
|
89 |
-
RULES. FURTHER, BUYER WILL NOT HAVE THE RIGHT TO PARTICIPATE AS A REPRESENTATIVE OR MEMBER OF ANY
|
90 |
-
CLASS OF CLAIMANTS PERTAINING TO THAT CLAIM, AND BUYER WILL HAVE ONLY THOSE RIGHTS THAT ARE AVAILABLE IN AN
|
91 |
-
INDIVIDUAL ARBITRATION. THE ARBITRATOR’S DECISION WILL BE FINAL AND BINDING ON ALL PARTIES, EXCEPT AS
|
92 |
-
PROVIDED IN THE FEDERAL ARBITRATION ACT (“the FAA”). This Arbitration Provision shall be governed by
|
93 |
-
the FAA, and, if and where applicable, the internal laws of the State of New York. If any portion of this
|
94 |
-
Arbitration provision is deemed invalid or unenforceable, it shall not invalidate the remaining portions of
|
95 |
-
this Arbitration provision or the Agreement, provided however, if the Class Action Waiver is deemed invalid
|
96 |
-
or unenforceable, then this entire Arbitration provision shall be null and void and of no force or effect,
|
97 |
-
but the remaining terms of this Agreement shall remain in full force and effect. Any appropriate court
|
98 |
-
having jurisdiction may enter judgment on any award.
|
99 |
-
</li>
|
100 |
-
</ol>
|
101 |
-
|
102 |
-
</div>
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
app/etc/modules/PayItSimple_Payment.xml
DELETED
@@ -1,9 +0,0 @@
|
|
1 |
-
<?xml version="1.0"?>
|
2 |
-
<config>
|
3 |
-
<modules>
|
4 |
-
<PayItSimple_Payment>
|
5 |
-
<active>true</active>
|
6 |
-
<codePool>community</codePool>
|
7 |
-
</PayItSimple_Payment>
|
8 |
-
</modules>
|
9 |
-
</config>
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
package.xml
CHANGED
@@ -1,6 +1,20 @@
|
|
1 |
<?xml version="1.0"?>
|
2 |
-
<package
|
3 |
-
|
4 |
-
|
5 |
-
|
6 |
-
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
<?xml version="1.0"?>
|
2 |
+
<package>
|
3 |
+
<name>payitsimplepayment</name>
|
4 |
+
<version>2.0.2</version>
|
5 |
+
<stability>stable</stability>
|
6 |
+
<license>OSL</license>
|
7 |
+
<channel>community</channel>
|
8 |
+
<extends/>
|
9 |
+
<summary>Offer your customers interest-free credit card installment payments, Support multi-currency. Official extension.</summary>
|
10 |
+
<description>This extension allows ecommerce merchants to add an additional payment method to your checkout process. A Splitit button is added to your website for fast and easy checkout.
|
11 |
+
It was carefully designed to meet all Magento best development practices and is compatible with all other extensions. This extension is free of charge.
|
12 |
+
<h3>Signup for FREE</h3> <a href="http://payitsimple.com/register/">Signup with Splitit for FREE and start offering your customers interest-free installment payments on their existing credit cards.</a> <br /><br /></description>
|
13 |
+
<notes>Support multi-currency</notes>
|
14 |
+
<authors><author><name>Eric Benayoun</name><user>ericbena</user><email>ericb@splitit.com</email></author></authors>
|
15 |
+
<date>2016-11-11</date>
|
16 |
+
<time>10:43:55</time>
|
17 |
+
<contents><target name="magecommunity"><dir><dir name="Cm"><dir name="RedisSession"><dir name="Model"><file name="Session.php" hash="8a751a32ac85da38237012f6c4ac9077"/></dir><dir name="etc"><file name="config.xml" hash="6b32aa3b331c4504c44a7c01a24a0d3d"/></dir></dir></dir><dir name="PayItSimple"><dir name="Payment"><dir name="Block"><dir name="Adminhtml"><dir name="System"><dir name="Config"><dir name="Form"><file name="Button.php" hash="4f726bf958620400bac66c0757717411"/></dir><file name="Notification.php" hash="27ac86d84fe3927c28abc6da018736cd"/></dir></dir></dir><dir name="Form"><file name="Pis.php" hash="1b7804b11f2119ddd64a464ddd882a41"/></dir><dir name="Info"><file name="Pis.php" hash="42cb4edb5ff208a1a3ee7612579a6165"/></dir></dir><dir name="Helper"><file name="Data.php" hash="1fba2ce41eb4f554e365d82424323ccd"/></dir><dir name="Model"><file name="Api.php" hash="2e4e60c330e7d1aed40bff6e2e7b7b30"/><file name="PisMethod.php" hash="2c2e7ed0301976bb3b3f8e2918c90156"/><dir name="Source"><file name="Action.php" hash="1390fb3dce78cf8eff1118df2ee5b997"/><file name="Cctype.php" hash="7f77a0c6729d0896c8ec250bb7f4fd49"/><file name="Installments.php" hash="65b727e639308cba4241662a2040d6f3"/></dir></dir><dir name="controllers"><dir name="Adminhtml"><file name="PayitsimpleController.php" hash="4e7a1a3d4dfca38656aa32da9ef70df8"/></dir><file name="PaymentController.php" hash="598f81b5afec4b73d2d14bf4a309e848"/></dir><dir name="etc"><file name="config.xml" hash="e9240bd026d0e9260e26ce962bad77cb"/><file name="system.xml" hash="8acdcf4ba599f791b44e949c769ce47b"/></dir><dir name="sql"><dir name="pis_payment_setup"><file name="mysql4-install-1.0.0.php" hash="f2687e3adaa4654942a882287a0bf532"/></dir></dir></dir></dir><dir name="Phoenix"><dir name="Moneybookers"><dir name="Block"><file name="Form.php" hash="dfe9bf6c67cd7b52c692430d092ff4f7"/><file name="Info.php" hash="24d93427d6e5a634854c3a0759227695"/><file name="Jsinit.php" hash="bbef430cf0c17530bdefedf41789dc32"/><file name="Payment.php" hash="79d615a80126cb0bc49175dc6b58e7e8"/><file name="Placeform.php" hash="0af0c1486c1474bc1f19a89ec7e66543"/><file name="Redirect.php" hash="254fc3126ae8b382db23ed59feddbbbd"/></dir><dir name="Helper"><file name="Data.php" hash="6d9e63572ea96eb14623b7f9e9fefad5"/></dir><dir name="Model"><file name="Abstract.php" hash="9ff0ad44c5620ab4cac3379354bfcc75"/><file name="Acc.php" hash="1bfeb5a288e930aeaa569202c2140043"/><file name="Csi.php" hash="62130d8afa6123db300c8b37d7a66e27"/><file name="Did.php" hash="688b58504c1ecac6df78c62ec6606420"/><file name="Dnk.php" hash="18bdc48c31973710d543db4b03c507c9"/><file name="Ebt.php" hash="b7f74847a3cf1ba6dec567980f00c4d4"/><file name="Ent.php" hash="f07dba50d0662b604bdb796c99c29ef2"/><file name="Event.php" hash="a4e1a85bd3b6ea6ebb79e9ae76ae21ea"/><file name="Gcb.php" hash="54ce9085bea22bee0412cce1a651d1af"/><file name="Gir.php" hash="b4ba759aa8894195c2458ae4fe228393"/><file name="Idl.php" hash="366eeeb10b895f0caf7d82d3d44909b2"/><file name="Lsr.php" hash="c9ba044a645c71f2ccd756f5be1058e8"/><file name="Mae.php" hash="e3547f416787636638a67b389f4385b0"/><file name="Npy.php" hash="070c00c88be47148fdeff1432031c3c9"/><file name="Obt.php" hash="af3beb2362dd5f2c72ea478f22557002"/><file name="Pli.php" hash="3fd300a53fa8bde8390c6f5fd25780f9"/><file name="Psp.php" hash="117102de57264a719959161cb67344ea"/><file name="Pwy.php" hash="190b380b3243cfdf8ab94a513a92b61b"/><file name="Sft.php" hash="ac562daf9063b7562127add4f5777810"/><file name="So2.php" hash="b6d42f3a54405d980de883247e6fdb5d"/><file name="Wlt.php" hash="f9d92550082d913cc43b9dd813e40d6a"/></dir><dir name="controllers"><file name="MoneybookersController.php" hash="f506e3a4e59b94c09b07de7ac0fabe33"/><file name="ProcessingController.php" hash="8e65bd74d7c6cb70d48d105eb189a6d0"/></dir><dir name="etc"><file name="config.xml" hash="65c51211e952413f5a2cb2a7bc9c27a5"/><file name="system.xml" hash="1e951c49b60f8eac1042bb5bed050ad3"/></dir><dir name="sql"><dir name="moneybookers_setup"><file name="install-1.6.0.0.php" hash="b73c00d4f3185649efa8f04939614405"/><file name="mysql4-upgrade-1.2-1.2.0.1.php" hash="e812baf73e01a64273307137932e7972"/></dir></dir></dir></dir></dir></target></contents>
|
18 |
+
<compatible/>
|
19 |
+
<dependencies><required><php><min>5.2.0</min><max>6.0.0</max></php></required></dependencies>
|
20 |
+
</package>
|