payitsimplepayment - Version 2.0.2

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

Files changed (47) hide show
  1. app/code/community/Cm/RedisSession/Model/Session.php +695 -0
  2. app/code/community/Cm/RedisSession/etc/config.xml +48 -0
  3. app/code/community/PayItSimple/Payment/Model/PisMethod.php +2 -1
  4. app/code/community/Phoenix/Moneybookers/Block/Form.php +93 -0
  5. app/code/community/Phoenix/Moneybookers/Block/Info.php +51 -0
  6. app/code/community/Phoenix/Moneybookers/Block/Jsinit.php +49 -0
  7. app/code/community/Phoenix/Moneybookers/Block/Payment.php +39 -0
  8. app/code/community/Phoenix/Moneybookers/Block/Placeform.php +67 -0
  9. app/code/community/Phoenix/Moneybookers/Block/Redirect.php +30 -0
  10. app/code/community/Phoenix/Moneybookers/Helper/Data.php +130 -0
  11. app/code/community/Phoenix/Moneybookers/Model/Abstract.php +208 -0
  12. app/code/community/Phoenix/Moneybookers/Model/Acc.php +27 -0
  13. app/code/community/Phoenix/Moneybookers/Model/Csi.php +27 -0
  14. app/code/community/Phoenix/Moneybookers/Model/Did.php +27 -0
  15. app/code/community/Phoenix/Moneybookers/Model/Dnk.php +27 -0
  16. app/code/community/Phoenix/Moneybookers/Model/Ebt.php +27 -0
  17. app/code/community/Phoenix/Moneybookers/Model/Ent.php +27 -0
  18. app/code/community/Phoenix/Moneybookers/Model/Event.php +274 -0
  19. app/code/community/Phoenix/Moneybookers/Model/Gcb.php +27 -0
  20. app/code/community/Phoenix/Moneybookers/Model/Gir.php +27 -0
  21. app/code/community/Phoenix/Moneybookers/Model/Idl.php +27 -0
  22. app/code/community/Phoenix/Moneybookers/Model/Lsr.php +27 -0
  23. app/code/community/Phoenix/Moneybookers/Model/Mae.php +27 -0
  24. app/code/community/Phoenix/Moneybookers/Model/Npy.php +27 -0
  25. app/code/community/Phoenix/Moneybookers/Model/Obt.php +27 -0
  26. app/code/community/Phoenix/Moneybookers/Model/Pli.php +27 -0
  27. app/code/community/Phoenix/Moneybookers/Model/Psp.php +27 -0
  28. app/code/community/Phoenix/Moneybookers/Model/Pwy.php +27 -0
  29. app/code/community/Phoenix/Moneybookers/Model/Sft.php +27 -0
  30. app/code/community/Phoenix/Moneybookers/Model/So2.php +27 -0
  31. app/code/community/Phoenix/Moneybookers/Model/Wlt.php +28 -0
  32. app/code/community/Phoenix/Moneybookers/controllers/MoneybookersController.php +97 -0
  33. app/code/community/Phoenix/Moneybookers/controllers/ProcessingController.php +146 -0
  34. app/code/community/Phoenix/Moneybookers/etc/config.xml +306 -0
  35. app/code/community/Phoenix/Moneybookers/etc/system.xml +1201 -0
  36. app/code/community/Phoenix/Moneybookers/sql/moneybookers_setup/install-1.6.0.0.php +22 -0
  37. app/code/community/Phoenix/Moneybookers/sql/moneybookers_setup/mysql4-upgrade-1.2-1.2.0.1.php +41 -0
  38. app/design/adminhtml/default/default/layout/payitsimple_notification.xml +0 -9
  39. app/design/adminhtml/default/default/template/payitsimple/system/config/button.phtml +0 -14
  40. app/design/adminhtml/default/default/template/payitsimple/system/config/notification.phtml +0 -5
  41. app/design/frontend/base/default/layout/pis_payment.xml +0 -29
  42. app/design/frontend/base/default/template/payitsimple/form/method_faq.phtml +0 -4
  43. app/design/frontend/base/default/template/payitsimple/form/pis.phtml +0 -84
  44. app/design/frontend/base/default/template/payitsimple/help.phtml +0 -8
  45. app/design/frontend/base/default/template/payitsimple/terms.phtml +0 -102
  46. app/etc/modules/PayItSimple_Payment.xml +0 -9
  47. 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.&nbsp; 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.&nbsp; Buyer understands that this authorization will
16
- remain in effect until Buyer cancels it in writing.
17
- </li>
18
- <li>&nbsp;Buyer agrees to notify Seller in writing via Buyer’s user account at&nbsp;<a
19
- href="https://consumer.splitit.com/">consumer.splitit.com</a>&nbsp;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.&nbsp; Buyer understands that the
22
- Installment payments may be authorized and charged on the next business day.&nbsp; 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.&nbsp; So long as You timely pay each Installment to Your Issuer when due,
30
- Issuer will not charge Buyer interest on such Installment.&nbsp; 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).&nbsp;
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.&nbsp;&nbsp;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.&nbsp; Buyer’s privacy is important to us.&nbsp; You may obtain a copy of Splitit’s
63
- Privacy Policy by visiting their website at consumer.splitit.com.&nbsp; 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.&nbsp; If Buyer does not want us to share this information, Buyer
69
- shall notify us in writing via Buyer’s user account at&nbsp;<a href="https://consumer.splitit.com/">consumer.splitit.com</a>&nbsp;using
70
- the password Buyer was provided with for such notification and for accessing information on Splitit’s
71
- website.&nbsp; 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.&nbsp; 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.&nbsp; 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.&nbsp; The arbitrator may not award
86
- punitive or exemplary damages against any party.&nbsp; 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.&nbsp; 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.&nbsp; THE ARBITRATOR’S DECISION WILL BE FINAL AND BINDING ON ALL PARTIES, EXCEPT AS
92
- PROVIDED IN THE FEDERAL ARBITRATION ACT (“the FAA”).&nbsp; 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.&nbsp; 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><name>payitsimplepayment</name><version>2.0.1</version><stability>stable</stability><license>OSL</license><channel>community</channel><extends></extends><summary>Offer your customers interest-free credit card installment payments. Official extension.</summary><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.&lt;br /&gt;
3
- It was carefully designed to meet all Magento best development practices and is compatible with all other extensions. This extension is free of charge.&lt;br /&gt;&lt;br /&gt;
4
-
5
- &lt;h3&gt;Signup for FREE&lt;/h3&gt;
6
- &lt;a href="http://payitsimple.com/register/"&gt;Signup with Splitit for FREE and start offering your customers interest-free installment payments on their existing credit cards.&lt;/a&gt; &lt;br /&gt;&lt;br /&gt;</description><notes>Some fixes.</notes><authors><author><name>Eric Benayoun</name><user>ericbena</user><email>ericb@splitit.com</email></author></authors><date>2015-11-18</date><time>23:51:46</time><compatible></compatible><dependencies><required><php><min>5.2.0</min><max>6.0.0</max></php></required></dependencies><contents><target name="mage"><dir name="app"><dir name="design"><dir name="adminhtml"><dir name="default"><dir name="default"><dir name="template"><dir name="payitsimple"><dir name="system"><dir name="config"><file name="button.phtml" hash="99d600397e180a6f91510109c26ad03b"/><file name="notification.phtml" hash="86940d0b8a6695c54daaf6b7918633dc"/></dir></dir></dir></dir><dir name="layout"><file name="payitsimple_notification.xml" hash="13bdcf50121ad5a009bf34793501fe76"/></dir></dir></dir></dir><dir name="frontend"><dir name="base"><dir name="default"><dir name="template"><dir name="payitsimple"><file name="help.phtml" hash="a68dd09ca9db72591cf602c0a5345e77"/><file name="terms.phtml" hash="f5a8ea332b4179622810fa759291e424"/><dir name="form"><file name="method_faq.phtml" hash="82adc787e203202bbeb56051d9714f5d"/><file name="pis.phtml" hash="aba55dc0f0a5db797f9b30b9ed99015a"/></dir></dir></dir><dir name="layout"><file name="pis_payment.xml" hash="9f0521aea108f9e3f9b9c777c6aefee3"/></dir></dir></dir></dir></dir><dir name="etc"><dir name="modules"><file name="PayItSimple_Payment.xml" hash="608e164d747a215efa2cf4d062693236"/></dir></dir><dir name="code"><dir name="community"><dir name="PayItSimple"><dir name="Payment"><dir name="sql"><dir name="pis_payment_setup"><file name="mysql4-install-1.0.0.php" hash="f2687e3adaa4654942a882287a0bf532"/></dir></dir><dir name="Block"><dir name="Info"><file name="Pis.php" hash="42cb4edb5ff208a1a3ee7612579a6165"/></dir><dir name="Adminhtml"><dir name="System"><dir name="Config"><file name="Notification.php" hash="27ac86d84fe3927c28abc6da018736cd"/><dir name="Form"><file name="Button.php" hash="4f726bf958620400bac66c0757717411"/></dir></dir></dir></dir><dir name="Form"><file name="Pis.php" hash="1b7804b11f2119ddd64a464ddd882a41"/></dir></dir><dir name="Helper"><file name="Data.php" hash="1fba2ce41eb4f554e365d82424323ccd"/></dir><dir name="etc"><file name="config.xml" hash="e9240bd026d0e9260e26ce962bad77cb"/><file name="system.xml" hash="8acdcf4ba599f791b44e949c769ce47b"/></dir><dir name="controllers"><file name="PaymentController.php" hash="598f81b5afec4b73d2d14bf4a309e848"/><dir name="Adminhtml"><file name="PayitsimpleController.php" hash="4e7a1a3d4dfca38656aa32da9ef70df8"/></dir></dir><dir name="Model"><file name="Api.php" hash="2e4e60c330e7d1aed40bff6e2e7b7b30"/><file name="PisMethod.php" hash="9f2265397225368969926d73d7d6617a"/><dir name="Source"><file name="Action.php" hash="1390fb3dce78cf8eff1118df2ee5b997"/><file name="Cctype.php" hash="7f77a0c6729d0896c8ec250bb7f4fd49"/><file name="Installments.php" hash="65b727e639308cba4241662a2040d6f3"/></dir></dir></dir></dir></dir></dir></dir></target></contents></package>
 
 
 
 
 
 
 
 
 
 
 
 
 
 
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.&#xD;
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.&#xD;
12
+ &lt;h3&gt;Signup for FREE&lt;/h3&gt; &lt;a href="http://payitsimple.com/register/"&gt;Signup with Splitit for FREE and start offering your customers interest-free installment payments on their existing credit cards.&lt;/a&gt; &lt;br /&gt;&lt;br /&gt;</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>