CDev_XPaymentsConnector - Version 1.8.1

Version Notes

What's new?

- Corrected email notifications
- Implemented ability to process the orders which were modified by the store admin
- Implemented multi-store support
- Speed up the callback requests processing
- Corrected operating with coupons (Shopping cart price rules)
- Minor bug-fixes and improvements

Download this release

Release Info

Developer Alexander Mulin
Extension CDev_XPaymentsConnector
Version 1.8.1
Comparing to
See all releases


Code changes from version 1.8.0 to 1.8.1

app/code/community/Cdev/XPaymentsConnector/Block/Adminhtml/Sales/Order/View/Tab/Xporderstate.php CHANGED
@@ -232,21 +232,31 @@ class Cdev_XPaymentsConnector_Block_Adminhtml_Sales_Order_View_Tab_Xporderstate
232
$amount = 0.00;
233
234
if (
235
- $data['capturedAmountAvail'] > 0
236
- && $data['refundedAmountAvail'] < 0.01
237
) {
238
239
- $amount = $data['capturedAmountAvailGateway'];
240
241
- } elseif (
242
- $data['refundedAmountAvail'] > 0
243
- && $data['capturedAmountAvail'] < 0.01
244
- ) {
245
246
- $amount = $data['refundedAmountAvail'];
247
}
248
249
- if ($amount < 0.01 && $data['chargedAmount'] > 0) {
250
251
$amount = $data['chargedAmount'];
252
}
232
$amount = 0.00;
233
234
if (
235
+ isset($data['capturedAmountAvail'])
236
+ && ($data['refundedAmountAvail'])
237
) {
238
239
+ if (
240
+ $data['capturedAmountAvail'] > 0
241
+ && $data['refundedAmountAvail'] < 0.01
242
+ ) {
243
244
+ $amount = $data['capturedAmountAvailGateway'];
245
246
+ } elseif (
247
+ $data['refundedAmountAvail'] > 0
248
+ && $data['capturedAmountAvail'] < 0.01
249
+ ) {
250
+
251
+ $amount = $data['refundedAmountAvail'];
252
+ }
253
}
254
255
+ if (
256
+ isset($data['chargedAmount'])
257
+ && $amount < 0.01
258
+ && $data['chargedAmount'] > 0
259
+ ) {
260
261
$amount = $data['chargedAmount'];
262
}
app/code/community/Cdev/XPaymentsConnector/Helper/Cart/Data.php CHANGED
@@ -41,7 +41,7 @@ class Cdev_XPaymentsConnector_Helper_Cart_Data extends Cdev_XPaymentsConnector_H
41
if (
42
isset($totals[$key])
43
&& is_object($totals[$key])
44
- && method_exists($totals[$key], 'getValue')
45
) {
46
$value = abs($totals[$key]->getValue());
47
}
@@ -70,7 +70,18 @@ class Cdev_XPaymentsConnector_Helper_Cart_Data extends Cdev_XPaymentsConnector_H
70
71
} else {
72
73
- $quote->collectTotals();
74
$totals = $quote->getTotals();
75
76
$result['totalCost'] = $this->preparePrice($quote->getGrandTotal());
41
if (
42
isset($totals[$key])
43
&& is_object($totals[$key])
44
+ && is_callable(array($totals[$key], 'getValue'))
45
) {
46
$value = abs($totals[$key]->getValue());
47
}
70
71
} else {
72
73
+ try {
74
+
75
+ if ('savedcards' != $quote->getPayment()->getMethodInstance()->getCode()) {
76
+ // Re-collecting totals erases single-use coupon from the "recharge" quote
77
+ $quote->collectTotals();
78
+ }
79
+
80
+ } catch (Exception $e) {
81
+
82
+ // Method is not set in the quote model yet. Do nothing.
83
+ }
84
+
85
$totals = $quote->getTotals();
86
87
$result['totalCost'] = $this->preparePrice($quote->getGrandTotal());
app/code/community/Cdev/XPaymentsConnector/Helper/Data.php CHANGED
@@ -712,16 +712,18 @@ class Cdev_XPaymentsConnector_Helper_Data extends Cdev_XPaymentsConnector_Helper
712
*
713
* @param string $entityId Quote ID or Cutomer ID
714
* @param int $xpcSlot Slot index of the XPC payment method
715
* @param bool $isZeroAuth Is it zero auth request
716
*
717
* @return array
718
*/
719
- public function getCallbackUrl($entityId, $xpcSlot, $isZeroAuth = false)
720
{
721
$params = array(
722
'_secure' => !Mage::helper('settings_xpc')->getXpcConfig('xpay_force_http'),
723
'_nosid' => true,
724
'xpc_slot' => $xpcSlot,
725
);
726
727
if ($isZeroAuth) {
@@ -873,6 +875,7 @@ class Cdev_XPaymentsConnector_Helper_Data extends Cdev_XPaymentsConnector_Helper
873
// Check if external checkout module is enabled
874
$isOscModuleEnabled = Mage::helper('settings_xpc')->checkOscModuleEnabled();
875
$isFirecheckoutModuleEnabled = Mage::helper('settings_xpc')->checkFirecheckoutModuleEnabled();
876
877
// Grab data saved at checkout
878
$data = unserialize($quote->getXpcData()->getData('checkout_data'));
@@ -913,9 +916,13 @@ class Cdev_XPaymentsConnector_Helper_Data extends Cdev_XPaymentsConnector_Helper
913
// Save shipping method
914
if (!empty($data['shipping_method'])) {
915
916
- if ($isFirecheckoutModuleEnabled) {
917
// Necessary for the FC.
918
// See TM_FireCheckout_IndexController::saveShippingAction()
919
$quote->collectTotals();
920
}
921
@@ -1028,7 +1035,10 @@ class Cdev_XPaymentsConnector_Helper_Data extends Cdev_XPaymentsConnector_Helper
1028
$result = isset($data['create_account'])
1029
&& (bool)$data['create_account'];
1030
1031
- } elseif ($settings->checkFirecheckoutModuleEnabled()) {
1032
1033
// For Firecheckout module
1034
$data = unserialize($quote->getXpcData()->getData('checkout_data'));
712
*
713
* @param string $entityId Quote ID or Cutomer ID
714
* @param int $xpcSlot Slot index of the XPC payment method
715
+ * @param int $storeId Store ID
716
* @param bool $isZeroAuth Is it zero auth request
717
*
718
* @return array
719
*/
720
+ public function getCallbackUrl($entityId, $xpcSlot, $storeId = 0, $isZeroAuth = false)
721
{
722
$params = array(
723
'_secure' => !Mage::helper('settings_xpc')->getXpcConfig('xpay_force_http'),
724
'_nosid' => true,
725
'xpc_slot' => $xpcSlot,
726
+ 'store_id' => $storeId,
727
);
728
729
if ($isZeroAuth) {
875
// Check if external checkout module is enabled
876
$isOscModuleEnabled = Mage::helper('settings_xpc')->checkOscModuleEnabled();
877
$isFirecheckoutModuleEnabled = Mage::helper('settings_xpc')->checkFirecheckoutModuleEnabled();
878
+ $isIwdModuleEnabled = Mage::helper('settings_xpc')->checkIwdModuleEnabled();
879
880
// Grab data saved at checkout
881
$data = unserialize($quote->getXpcData()->getData('checkout_data'));
916
// Save shipping method
917
if (!empty($data['shipping_method'])) {
918
919
+ if (
920
+ $isFirecheckoutModuleEnabled
921
+ || $isIwdModuleEnabled
922
+ ) {
923
// Necessary for the FC.
924
// See TM_FireCheckout_IndexController::saveShippingAction()
925
+ // And for the IWD checkout module/Venedor theme
926
$quote->collectTotals();
927
}
928
1035
$result = isset($data['create_account'])
1036
&& (bool)$data['create_account'];
1037
1038
+ } elseif (
1039
+ $settings->checkFirecheckoutModuleEnabled()
1040
+ || $settings->checkIwdModuleEnabled()
1041
+ ) {
1042
1043
// For Firecheckout module
1044
$data = unserialize($quote->getXpcData()->getData('checkout_data'));
app/code/community/Cdev/XPaymentsConnector/Helper/Settings/Data.php CHANGED
@@ -281,7 +281,7 @@ class Cdev_XPaymentsConnector_Helper_Settings_Data extends Cdev_XPaymentsConnect
281
}
282
283
/**
284
- * Check if some external checkout module is enablled and activated
285
*
286
* @param string $name Module name
287
* @param string $configPath Configuration path to activate the module
@@ -308,7 +308,7 @@ class Cdev_XPaymentsConnector_Helper_Settings_Data extends Cdev_XPaymentsConnect
308
}
309
310
/**
311
- * Check if Idev OneStepCheckout module is enablled and activated
312
*
313
* @return bool
314
*/
@@ -321,7 +321,7 @@ class Cdev_XPaymentsConnector_Helper_Settings_Data extends Cdev_XPaymentsConnect
321
}
322
323
/**
324
- * Check if Firecheckout module is enablled and activated
325
*
326
* @return bool
327
*/
@@ -333,6 +333,19 @@ class Cdev_XPaymentsConnector_Helper_Settings_Data extends Cdev_XPaymentsConnect
333
);
334
}
335
336
/**
337
* Check if iframe should be used or not
338
*
281
}
282
283
/**
284
+ * Check if some external checkout module is enabled and activated
285
*
286
* @param string $name Module name
287
* @param string $configPath Configuration path to activate the module
308
}
309
310
/**
311
+ * Check if Idev OneStepCheckout module is enabled and activated
312
*
313
* @return bool
314
*/
321
}
322
323
/**
324
+ * Check if Firecheckout module is enabled and activated
325
*
326
* @return bool
327
*/
333
);
334
}
335
336
+ /**
337
+ * Check IWD One Page Checkout is enabled and activated
338
+ *
339
+ * @return bool
340
+ */
341
+ public function checkIwdModuleEnabled()
342
+ {
343
+ return $this->checkExternalCheckoutModuleEnabled(
344
+ 'IWD_OnepageCheckout',
345
+ 'onepagecheckout/general/enabled'
346
+ );
347
+ }
348
+
349
/**
350
* Check if iframe should be used or not
351
*
app/code/community/Cdev/XPaymentsConnector/Model/Payment/Cc.php CHANGED
@@ -120,6 +120,8 @@ abstract class Cdev_XPaymentsConnector_Model_Payment_Cc extends Cdev_XPaymentsCo
120
$refId = 'authorization';
121
$entityId = $customer->getId();
122
123
$preparedCart = Mage::helper('cart_xpc')->prepareFakeCart($customer, $this->getXpcSlot());
124
125
$isBackend = (bool)$customer->getXpBufer();
@@ -128,6 +130,8 @@ abstract class Cdev_XPaymentsConnector_Model_Payment_Cc extends Cdev_XPaymentsCo
128
129
$entityId = $quote->getEntityId();
130
131
if ($quote->isBackendOrderQuote()) {
132
$refId = $quote->getXpcData()->getData('backend_orderid');
133
$isBackend = true;
@@ -145,7 +149,7 @@ abstract class Cdev_XPaymentsConnector_Model_Payment_Cc extends Cdev_XPaymentsCo
145
'refId' => $refId,
146
'cart' => $preparedCart,
147
'returnUrl' => $helper->getReturnUrl($entityId, $this->getXpcSlot(), $isZeroAuth, $isBackend),
148
- 'callbackUrl' => $helper->getCallbackUrl($entityId, $this->getXpcSlot(), $isZeroAuth),
149
);
150
151
$response = Mage::helper('api_xpc')->initPayment($data);
120
$refId = 'authorization';
121
$entityId = $customer->getId();
122
123
+ $storeId = 0; // TODO. Consider this later.
124
+
125
$preparedCart = Mage::helper('cart_xpc')->prepareFakeCart($customer, $this->getXpcSlot());
126
127
$isBackend = (bool)$customer->getXpBufer();
130
131
$entityId = $quote->getEntityId();
132
133
+ $storeId = $quote->getStoreId();
134
+
135
if ($quote->isBackendOrderQuote()) {
136
$refId = $quote->getXpcData()->getData('backend_orderid');
137
$isBackend = true;
149
'refId' => $refId,
150
'cart' => $preparedCart,
151
'returnUrl' => $helper->getReturnUrl($entityId, $this->getXpcSlot(), $isZeroAuth, $isBackend),
152
+ 'callbackUrl' => $helper->getCallbackUrl($entityId, $this->getXpcSlot(), $storeId, $isZeroAuth),
153
);
154
155
$response = Mage::helper('api_xpc')->initPayment($data);
app/code/community/Cdev/XPaymentsConnector/Model/Payment/Savedcards.php CHANGED
@@ -131,7 +131,7 @@ class Cdev_XPaymentsConnector_Model_Payment_Savedcards extends Cdev_XPaymentsCon
131
'amount' => $amount,
132
'description' => $description,
133
'cart' => $preparedCart,
134
- 'callbackUrl' => Mage::helper('xpaymentsconnector')->getCallbackUrl($entityId, $this->getXpcSlot(), false),
135
);
136
137
$response = Mage::helper('api_xpc')->requestPaymentRecharge($data);
@@ -148,23 +148,32 @@ class Cdev_XPaymentsConnector_Model_Payment_Savedcards extends Cdev_XPaymentsCon
148
*/
149
public function isAvailable($quote = null)
150
{
151
if (
152
parent::isAvailable($quote)
153
&& $quote
154
- && $quote->getData('customer_id')
155
) {
156
157
- $cardsCount = Mage::getModel('xpaymentsconnector/usercards')
158
->getCollection()
159
- ->addFieldToFilter('user_id', $quote->getData('customer_id'))
160
- ->addFieldToFilter('usage_type', Cdev_XPaymentsConnector_Model_Usercards::SIMPLE_CARD)
161
- ->count();
162
163
- $result = (bool)$cardsCount;
164
165
- } else {
166
167
- $result = false;
168
}
169
170
return $result;
@@ -191,6 +200,14 @@ class Cdev_XPaymentsConnector_Model_Payment_Savedcards extends Cdev_XPaymentsCon
191
$cardId = $request['xp_payment_card'];
192
$customerId = $session->getQuote()->getCustomerId();
193
194
$card = Mage::getModel('xpaymentsconnector/usercards')->load($cardId);
195
196
// Make sure this card belongs to the current customer
@@ -203,7 +220,7 @@ class Cdev_XPaymentsConnector_Model_Payment_Savedcards extends Cdev_XPaymentsCon
203
} catch (Exception $exception) {
204
205
// Save error to display
206
- $session->addError($e->getMessage());
207
208
// And throw it further
209
throw $exception;
131
'amount' => $amount,
132
'description' => $description,
133
'cart' => $preparedCart,
134
+ 'callbackUrl' => Mage::helper('xpaymentsconnector')->getCallbackUrl($entityId, $this->getXpcSlot(), $this->getStoreId(), false),
135
);
136
137
$response = Mage::helper('api_xpc')->requestPaymentRecharge($data);
148
*/
149
public function isAvailable($quote = null)
150
{
151
+ $result = false;
152
+
153
if (
154
parent::isAvailable($quote)
155
&& $quote
156
+ && !empty($quote->getCustomer()->getEmail())
157
) {
158
159
+ $email = $quote->getCustomer()->getEmail();
160
+ $list = Mage::getModel('customer/customer')
161
->getCollection()
162
+ ->addFieldToFilter('email', $email);
163
164
+ foreach ($list as $customer) {
165
166
+ $cardsCount = Mage::getModel('xpaymentsconnector/usercards')
167
+ ->getCollection()
168
+ ->addFieldToFilter('user_id', $customer->getEntityId())
169
+ ->addFieldToFilter('usage_type', Cdev_XPaymentsConnector_Model_Usercards::SIMPLE_CARD)
170
+ ->count();
171
172
+ if ($cardsCount) {
173
+ $result = true;
174
+ break;
175
+ }
176
+ }
177
}
178
179
return $result;
200
$cardId = $request['xp_payment_card'];
201
$customerId = $session->getQuote()->getCustomerId();
202
203
+ if (empty($customerId)) {
204
+
205
+ // Occasionally customer can be undefined at checkout session.
206
+ // Try taking it from the customer session.
207
+ $customer = Mage::getSingleton('customer/session')->getCustomer();
208
+ $customerId = $customer->getEntityId();
209
+ }
210
+
211
$card = Mage::getModel('xpaymentsconnector/usercards')->load($cardId);
212
213
// Make sure this card belongs to the current customer
220
} catch (Exception $exception) {
221
222
// Save error to display
223
+ $session->addError($exception->getMessage());
224
225
// And throw it further
226
throw $exception;
app/code/community/Cdev/XPaymentsConnector/Model/Quote.php CHANGED
@@ -245,11 +245,15 @@ class Cdev_XPaymentsConnector_Model_Quote extends Mage_Sales_Model_Quote
245
246
if (
247
count($addresses) > 2
248
- && Mage::helper('settings_xpc')->checkFirecheckoutModuleEnabled()
249
) {
250
251
// Remove "extra" addresses for the Firecheckout module
252
// See XP-659
253
254
$shippingFound = $billingFound = false;
255
245
246
if (
247
count($addresses) > 2
248
+ && (
249
+ Mage::helper('settings_xpc')->checkFirecheckoutModuleEnabled()
250
+ || Mage::helper('settings_xpc')->checkIwdModuleEnabled()
251
+ )
252
) {
253
254
// Remove "extra" addresses for the Firecheckout module
255
// See XP-659
256
+ // And for the IWD checkout module/Venedor theme
257
258
$shippingFound = $billingFound = false;
259
app/code/community/Cdev/XPaymentsConnector/controllers/Adminhtml/Sales/Order/CreateController.php CHANGED
@@ -54,12 +54,12 @@ class Cdev_XPaymentsConnector_Adminhtml_Sales_Order_CreateController extends Mag
54
55
if (
56
isset($payment['method'])
57
- && $order->getId()
58
) {
59
if (Mage::helper('settings_xpc')->isXpcMethod($payment['method'], false)) {
60
61
// Redirect user to the payment page
62
- $this->_redirect('adminhtml/sales_order_payment/pay', array('order_id' => $order->getId()));
63
64
} elseif (Mage::helper('settings_xpc')->isSavedCardsMethod($payment['method'])) {
65
@@ -67,7 +67,7 @@ class Cdev_XPaymentsConnector_Adminhtml_Sales_Order_CreateController extends Mag
67
// Redirect to the different controller to process the recharge action
68
69
$params = array(
70
- 'order_id' => $order->getId(),
71
'card_id' => $payment['xp_payment_card'],
72
);
73
54
55
if (
56
isset($payment['method'])
57
+ && $order->getEntityId()
58
) {
59
if (Mage::helper('settings_xpc')->isXpcMethod($payment['method'], false)) {
60
61
// Redirect user to the payment page
62
+ $this->_redirect('adminhtml/sales_order_payment/pay', array('order_id' => $order->getEntityId()));
63
64
} elseif (Mage::helper('settings_xpc')->isSavedCardsMethod($payment['method'])) {
65
67
// Redirect to the different controller to process the recharge action
68
69
$params = array(
70
+ 'order_id' => $order->getEntityId(),
71
'card_id' => $payment['xp_payment_card'],
72
);
73
app/code/community/Cdev/XPaymentsConnector/controllers/Adminhtml/Sales/Order/EditController.php ADDED
@@ -0,0 +1,78 @@
1
+ <?php
2
+ // vim: set ts=4 sw=4 sts=4 et:
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
+ * @author Qualiteam Software <info@x-cart.com>
17
+ * @category Cdev
18
+ * @package Cdev_XPaymentsConnector
19
+ * @copyright (c) 2010-present Qualiteam software Ltd <info@x-cart.com>. All rights reserved
20
+ * @license http://opensource.org/licenses/osl-3.0.php Open Software License (OSL 3.0)
21
+ */
22
+
23
+ /**
24
+ * Edit order controller
25
+ */
26
+ require_once 'Mage/Adminhtml/controllers/Sales/Order/EditController.php';
27
+
28
+ class Cdev_XPaymentsConnector_Adminhtml_Sales_Order_EditController extends Mage_Adminhtml_Sales_Order_EditController
29
+ {
30
+ /**
31
+ * Check if pay for order is allowed for user
32
+ *
33
+ * @return bool
34
+ */
35
+ protected function _isAllowed()
36
+ {
37
+ return Mage::getSingleton('admin/session')->isAllowed('system/xpaymentsconnector/pay_orders');
38
+ }
39
+
40
+ /**
41
+ * Saving quote and create order
42
+ *
43
+ * @return void
44
+ */
45
+ public function saveAction()
46
+ {
47
+ parent::saveAction();
48
+
49
+ $quote = Mage::getSingleton('adminhtml/session_quote')->getQuote();
50
+ $incrementId = $quote->getData('reserved_order_id');
51
+ $order = Mage::getModel('sales/order')->load($incrementId, 'increment_id');
52
+
53
+ $payment = $this->getRequest()->getPost('payment');
54
+
55
+ if (
56
+ isset($payment['method'])
57
+ && $order->getEntityId()
58
+ ) {
59
+ if (Mage::helper('settings_xpc')->isXpcMethod($payment['method'], false)) {
60
+
61
+ // Redirect user to the payment page
62
+ $this->_redirect('adminhtml/sales_order_payment/pay', array('order_id' => $order->getEntityId()));
63
+
64
+ } elseif (Mage::helper('settings_xpc')->isSavedCardsMethod($payment['method'])) {
65
+
66
+ // Process payment by saved card
67
+ // Redirect to the different controller to process the recharge action
68
+
69
+ $params = array(
70
+ 'order_id' => $order->getEntityId(),
71
+ 'card_id' => $payment['xp_payment_card'],
72
+ );
73
+
74
+ $this->_redirect('adminhtml/sales_order_payment/recharge', $params);
75
+ }
76
+ }
77
+ }
78
+ }
app/code/community/Cdev/XPaymentsConnector/controllers/Adminhtml/Sales/Order/PaymentController.php CHANGED
@@ -61,6 +61,8 @@ class Cdev_XPaymentsConnector_Adminhtml_Sales_Order_PaymentController extends Ma
61
*/
62
public function payAction()
63
{
64
try {
65
66
$order = $this->getOrder();
@@ -77,7 +79,7 @@ class Cdev_XPaymentsConnector_Adminhtml_Sales_Order_PaymentController extends Ma
77
78
// For some reason quote is empty here. But we actually need only its ID.
79
// All the necessary data is taken from the quote XPC data
80
- $quote->setEntityId($order->getQuoteId());
81
82
$quote->getXpcData()->setData('backend_orderid', $order->getIncrementId())->save();
83
@@ -94,11 +96,9 @@ class Cdev_XPaymentsConnector_Adminhtml_Sales_Order_PaymentController extends Ma
94
echo $block->toHtml();
95
exit;
96
97
- } catch (Exception $e) {
98
-
99
- $this->_getSession()->addError($this->__($e->getMessage()));
100
101
- $this->_redirect('*/sales_order/view', array('order_id' => $this->getRequest()->getParam('order_id')));
102
}
103
}
104
@@ -122,9 +122,9 @@ class Cdev_XPaymentsConnector_Adminhtml_Sales_Order_PaymentController extends Ma
122
$this->_getSession()->addError('Order was not paid');
123
}
124
125
- $this->_redirect('*/sales_order/view', array('order_id' => $order->getId()));
126
127
- } catch (Exception $e) {
128
129
$this->_getSession()->addError($this->__($e->getMessage()));
130
$this->_redirect('*/*/');
@@ -155,7 +155,34 @@ class Cdev_XPaymentsConnector_Adminhtml_Sales_Order_PaymentController extends Ma
155
throw new Exception($message);
156
}
157
158
- $this->_redirect('*/sales_order/view', array('order_id' => $this->getOrder()->getId()));
159
}
160
161
/**
@@ -165,6 +192,8 @@ class Cdev_XPaymentsConnector_Adminhtml_Sales_Order_PaymentController extends Ma
165
*/
166
public function secondaryAction()
167
{
168
try {
169
170
// Model is not necessary to perform the action
@@ -202,16 +231,9 @@ class Cdev_XPaymentsConnector_Adminhtml_Sales_Order_PaymentController extends Ma
202
'Operation failed'
203
);
204
205
- } catch (Exception $e) {
206
-
207
- $this->_getSession()->addError($this->__($e->getMessage()));
208
209
- if ($order) {
210
- $this->_redirect('*/sales_order/view', array('order_id' => $order->getId()));
211
- } else {
212
- $this->_redirect('*/*/');
213
- $this->setFlag('', self::FLAG_NO_DISPATCH, true);
214
- }
215
}
216
}
217
@@ -222,6 +244,8 @@ class Cdev_XPaymentsConnector_Adminhtml_Sales_Order_PaymentController extends Ma
222
*/
223
public function acceptAction()
224
{
225
try {
226
227
$order = $this->getOrder();
@@ -234,16 +258,9 @@ class Cdev_XPaymentsConnector_Adminhtml_Sales_Order_PaymentController extends Ma
234
'Transaction was not accepted'
235
);
236
237
- } catch (Exception $e) {
238
-
239
- $this->_getSession()->addError($this->__($e->getMessage()));
240
241
- if ($order) {
242
- $this->_redirect('*/sales_order/view', array('order_id' => $order->getId()));
243
- } else {
244
- $this->_redirect('*/*/');
245
- $this->setFlag('', self::FLAG_NO_DISPATCH, true);
246
- }
247
}
248
}
249
@@ -254,6 +271,8 @@ class Cdev_XPaymentsConnector_Adminhtml_Sales_Order_PaymentController extends Ma
254
*/
255
public function declineAction()
256
{
257
try {
258
259
$order = $this->getOrder();
@@ -266,16 +285,9 @@ class Cdev_XPaymentsConnector_Adminhtml_Sales_Order_PaymentController extends Ma
266
'Transaction was not declined'
267
);
268
269
- } catch (Exception $e) {
270
-
271
- $this->_getSession()->addError($this->__($e->getMessage()));
272
273
- if ($order) {
274
- $this->_redirect('*/sales_order/view', array('order_id' => $order->getId()));
275
- } else {
276
- $this->_redirect('*/*/');
277
- $this->setFlag('', self::FLAG_NO_DISPATCH, true);
278
- }
279
}
280
}
281
@@ -286,6 +298,8 @@ class Cdev_XPaymentsConnector_Adminhtml_Sales_Order_PaymentController extends Ma
286
*/
287
public function rechargeAction()
288
{
289
try {
290
291
$helper = Mage::helper('xpaymentsconnector');
@@ -318,16 +332,9 @@ class Cdev_XPaymentsConnector_Adminhtml_Sales_Order_PaymentController extends Ma
318
'Order was not paid'
319
);
320
321
- } catch (Exception $e) {
322
-
323
- $this->_getSession()->addError($this->__($e->getMessage()));
324
325
- if ($order) {
326
- $this->_redirect('*/sales_order/view', array('order_id' => $order->getId()));
327
- } else {
328
- $this->_redirect('*/*/');
329
- $this->setFlag('', self::FLAG_NO_DISPATCH, true);
330
- }
331
}
332
}
333
61
*/
62
public function payAction()
63
{
64
+ $order = null;
65
+
66
try {
67
68
$order = $this->getOrder();
79
80
// For some reason quote is empty here. But we actually need only its ID.
81
// All the necessary data is taken from the quote XPC data
82
+ $quote->setEntityId($order->getQuoteId())->setStoreId($order->getStoreId());
83
84
$quote->getXpcData()->setData('backend_orderid', $order->getIncrementId())->save();
85
96
echo $block->toHtml();
97
exit;
98
99
+ } catch (Exception $exception) {
100
101
+ $this->processExceptionAndRedirect($exception, $order);
102
}
103
}
104
122
$this->_getSession()->addError('Order was not paid');
123
}
124
125
+ $this->_redirect('*/sales_order/view', array('order_id' => $order->getEntityId()));
126
127
+ } catch (Exception $exception) {
128
129
$this->_getSession()->addError($this->__($e->getMessage()));
130
$this->_redirect('*/*/');
155
throw new Exception($message);
156
}
157
158
+ $this->_redirect('*/sales_order/view', array('order_id' => $this->getOrder()->getEntityId()));
159
+ }
160
+
161
+ /**
162
+ * Process X-Payments response and redirect
163
+ *
164
+ * @param Exception $exception
165
+ * @param Mage_Sales_Model_Order $order
166
+ *
167
+ * @return void
168
+ */
169
+ private function processExceptionAndRedirect(Exception $exception, Mage_Sales_Model_Order $order = null)
170
+ {
171
+ $this->_getSession()->addError($this->__($exception->getMessage()));
172
+
173
+ if ($order) {
174
+
175
+ $this->_redirect('*/sales_order/view', array('order_id' => $order->getEntityId()));
176
+
177
+ } elseif ($this->getRequest()->getParam('order_id')) {
178
+
179
+ $this->_redirect('*/sales_order/view', array('order_id' => $this->getRequest()->getParam('order_id')));
180
+
181
+ } else {
182
+
183
+ $this->_redirect('*/sales_order/');
184
+ $this->setFlag('', self::FLAG_NO_DISPATCH, true);
185
+ }
186
}
187
188
/**
192
*/
193
public function secondaryAction()
194
{
195
+ $order = null;
196
+
197
try {
198
199
// Model is not necessary to perform the action
231
'Operation failed'
232
);
233
234
+ } catch (Exception $exception) {
235
236
+ $this->processExceptionAndRedirect($exception, $order);
237
}
238
}
239
244
*/
245
public function acceptAction()
246
{
247
+ $order = null;
248
+
249
try {
250
251
$order = $this->getOrder();
258
'Transaction was not accepted'
259
);
260
261
+ } catch (Exception $exception) {
262
263
+ $this->processExceptionAndRedirect($exception, $order);
264
}
265
}
266
271
*/
272
public function declineAction()
273
{
274
+ $order = null;
275
+
276
try {
277
278
$order = $this->getOrder();
285
'Transaction was not declined'
286
);
287
288
+ } catch (Exception $exception) {
289
290
+ $this->processExceptionAndRedirect($exception, $order);
291
}
292
}
293
298
*/
299
public function rechargeAction()
300
{
301
+ $order = null;
302
+
303
try {
304
305
$helper = Mage::helper('xpaymentsconnector');
332
'Order was not paid'
333
);
334
335
+ } catch (Exception $exception) {
336
337
+ $this->processExceptionAndRedirect($exception, $order);
338
}
339
}
340
app/code/community/Cdev/XPaymentsConnector/controllers/ProcessingController.php CHANGED
@@ -557,15 +557,24 @@ class Cdev_XPaymentsConnector_ProcessingController extends Mage_Core_Controller_
557
*
558
* @param string $quoteId
559
* @param int $xpcSlot Slot index of the XPC payment method
560
*
561
* @return array
562
*/
563
- protected function getQuoteCheckCartResponse($quoteId, $xpcSlot)
564
{
565
$helper = Mage::helper('xpaymentsconnector');
566
567
- $quote = Mage::getModel('xpaymentsconnector/quote')->load($quoteId)
568
- ->setXpcSlot($xpcSlot);
569
570
if ($quote->isBackendOrderQuote()) {
571
@@ -655,10 +664,17 @@ class Cdev_XPaymentsConnector_ProcessingController extends Mage_Core_Controller_
655
$size = ob_get_length();
656
657
header('Content-Length: ' . $size);
658
659
ob_end_flush();
660
flush();
661
662
exit;
663
}
664
@@ -695,6 +711,7 @@ class Cdev_XPaymentsConnector_ProcessingController extends Mage_Core_Controller_
695
$quoteId = Mage::app()->getRequest()->getParam('quote_id');
696
$customerId = Mage::app()->getRequest()->getParam('customer_id');
697
$xpcSlot = Mage::app()->getRequest()->getParam('xpc_slot');
698
$confId = Mage::helper('settings_xpc')->getConfidByXpcSlot($xpcSlot);
699
700
if (
@@ -709,7 +726,7 @@ class Cdev_XPaymentsConnector_ProcessingController extends Mage_Core_Controller_
709
// Process check-cart callback request
710
711
$data = $quoteId
712
- ? $this->getQuoteCheckCartResponse($quoteId, $xpcSlot)
713
: $this->getCustomerCheckCartResponse($customerId, $request['txnId']);
714
715
$helper->writeLog('Response for check-cart request', $data);
@@ -820,13 +837,25 @@ class Cdev_XPaymentsConnector_ProcessingController extends Mage_Core_Controller_
820
*/
821
private function saveAddress($data, $customerId)
822
{
823
- $newAddress = Mage::getModel('customer/address');
824
825
- $newAddress->setData($data)
826
- ->setCustomerId($customerId)
827
- ->setSaveInAddressBook(true);
828
829
- $newAddress->save();
830
}
831
832
/**
@@ -1032,15 +1061,15 @@ class Cdev_XPaymentsConnector_ProcessingController extends Mage_Core_Controller_
1032
// Process return after successful payment
1033
$this->processReturnSuccess($quote, $order);
1034
1035
} else {
1036
1037
// Process return after declined payment
1038
$this->processReturnDecline($quote, $order);
1039
}
1040
1041
- // Send confirmation email
1042
- $this->processConfirmationEmail($order);
1043
-
1044
$order->save();
1045
1046
} catch (Mage_Core_Exception $e) {
@@ -1175,6 +1204,9 @@ class Cdev_XPaymentsConnector_ProcessingController extends Mage_Core_Controller_
1175
// Auto create invoice if necessary
1176
Mage::helper('xpaymentsconnector')->processCreateInvoice($order);
1177
1178
$this->_redirect('checkout/onepage/success');
1179
}
1180
}
557
*
558
* @param string $quoteId
559
* @param int $xpcSlot Slot index of the XPC payment method
560
+ * @param int $storeId Store ID
561
*
562
* @return array
563
*/
564
+ protected function getQuoteCheckCartResponse($quoteId, $xpcSlot, $storeId = 0)
565
{
566
$helper = Mage::helper('xpaymentsconnector');
567
568
+ $quote = Mage::getModel('xpaymentsconnector/quote');
569
+
570
+ if (!empty($storeId)) {
571
+
572
+ // Set current store (if passed)
573
+ $store = Mage::getSingleton('core/store')->load($storeId);
574
+ $quote->setStore($store);
575
+ }
576
+
577
+ $quote->load($quoteId)->setXpcSlot($xpcSlot);
578
579
if ($quote->isBackendOrderQuote()) {
580
664
$size = ob_get_length();
665
666
header('Content-Length: ' . $size);
667
+ header('Content-Encoding: none');
668
669
ob_end_flush();
670
flush();
671
672
+ if (is_callable('fastcgi_finish_request')) {
673
+ // Required for nginx
674
+ session_write_close();
675
+ fastcgi_finish_request();
676
+ }
677
+
678
exit;
679
}
680
711
$quoteId = Mage::app()->getRequest()->getParam('quote_id');
712
$customerId = Mage::app()->getRequest()->getParam('customer_id');
713
$xpcSlot = Mage::app()->getRequest()->getParam('xpc_slot');
714
+ $storeId = Mage::app()->getRequest()->getParam('store_id');
715
$confId = Mage::helper('settings_xpc')->getConfidByXpcSlot($xpcSlot);
716
717
if (
726
// Process check-cart callback request
727
728
$data = $quoteId
729
+ ? $this->getQuoteCheckCartResponse($quoteId, $xpcSlot, $storeId)
730
: $this->getCustomerCheckCartResponse($customerId, $request['txnId']);
731
732
$helper->writeLog('Response for check-cart request', $data);
837
*/
838
private function saveAddress($data, $customerId)
839
{
840
+ if (!is_numeric($customerId)) {
841
+ return;
842
+ }
843
+
844
+ try {
845
846
+ $newAddress = Mage::getModel('customer/address');
847
848
+ $newAddress->setData($data)
849
+ ->setCustomerId($customerId)
850
+ ->setSaveInAddressBook(true);
851
+
852
+ $newAddress->save();
853
+
854
+ } catch (Exception $e) {
855
+
856
+ // Unable to save address for some reason
857
+ Mage::helper('xpaymentsconnector')->writeLog('Error saving address in address book', $e->getMessage());
858
+ }
859
}
860
861
/**
1061
// Process return after successful payment
1062
$this->processReturnSuccess($quote, $order);
1063
1064
+ // Send confirmation email
1065
+ $this->processConfirmationEmail($order);
1066
+
1067
} else {
1068
1069
// Process return after declined payment
1070
$this->processReturnDecline($quote, $order);
1071
}
1072
1073
$order->save();
1074
1075
} catch (Mage_Core_Exception $e) {
1204
// Auto create invoice if necessary
1205
Mage::helper('xpaymentsconnector')->processCreateInvoice($order);
1206
1207
+ // Send confirmation email
1208
+ $this->processConfirmationEmail($order);
1209
+
1210
$this->_redirect('checkout/onepage/success');
1211
}
1212
}
app/code/community/Cdev/XPaymentsConnector/etc/config.xml CHANGED
@@ -24,7 +24,7 @@
24
<config>
25
<modules>
26
<Cdev_XPaymentsConnector>
27
- <version>1.8.0</version>
28
</Cdev_XPaymentsConnector>
29
</modules>
30
<global>
@@ -294,7 +294,7 @@
294
<xpay_api_version>1.7</xpay_api_version>
295
<xpay_use_iframe>1</xpay_use_iframe>
296
<xpay_iframe_place>payment</xpay_iframe_place>
297
- <xpay_zero_auth_amount>0.5</xpay_zero_auth_amount>
298
<xpay_zero_auth_description>Card setup</xpay_zero_auth_description>
299
</settings>
300
</xpaymentsconnector>
24
<config>
25
<modules>
26
<Cdev_XPaymentsConnector>
27
+ <version>1.8.1</version>
28
</Cdev_XPaymentsConnector>
29
</modules>
30
<global>
294
<xpay_api_version>1.7</xpay_api_version>
295
<xpay_use_iframe>1</xpay_use_iframe>
296
<xpay_iframe_place>payment</xpay_iframe_place>
297
+ <xpay_zero_auth_amount>1.0</xpay_zero_auth_amount>
298
<xpay_zero_auth_description>Card setup</xpay_zero_auth_description>
299
</settings>
300
</xpaymentsconnector>
app/code/community/Cdev/XPaymentsConnector/sql/xpaymentsconnector_setup/mysql4-upgrade-1.8.0-1.8.1.php ADDED
@@ -0,0 +1,33 @@
1
+ <?php
2
+ // vim: set ts=4 sw=4 sts=4 et:
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
+ * @author Qualiteam Software <info@x-cart.com>
17
+ * @category Cdev
18
+ * @package Cdev_XPaymentsConnector
19
+ * @copyright (c) 2010-present Qualiteam software Ltd <info@x-cart.com>. All rights reserved
20
+ * @license http://opensource.org/licenses/osl-3.0.php Open Software License (OSL 3.0)
21
+ */
22
+
23
+ /**
24
+ * Used to store saved customer payment cards
25
+ */
26
+
27
+ $installer = $this;
28
+ $installer->startSetup();
29
+
30
+ $quoteXpcDataTable = $installer->getTable('xpaymentsconnector/quote_xpcdata');
31
+ $installer->getConnection()->modifyColumn($quoteXpcDataTable, 'backend_orderid', 'VARCHAR(255) NOT NULL');
32
+
33
+ $installer->endSetup();
app/design/frontend/base/default/layout/xpaymentsconnector.xml CHANGED
@@ -122,6 +122,23 @@ vim: set ts=4 sw=4 sts=4 et:
122
</reference>
123
</checkout_onepage_review>
124
125
<checkout_onepage_success>
126
<reference name="content">
127
<reference name="checkout.success">
122
</reference>
123
</checkout_onepage_review>
124
125
+ <onepagecheckout_index_index translate="label">
126
+ <block type="core/template" name="xpc_data" template="xpaymentsconnector/checkout/xpc_data.phtml"/>
127
+ <reference name="head">
128
+ <action method="addItem" module="xpaymentsconnector" ifconfig="xpaymentsconnector/settings/xpay_is_configured">
129
+ <type>js_css</type>
130
+ <name>xpayment/settings.css</name>
131
+ </action>
132
+ <action method="addItem" module="xpaymentsconnector" ifconfig="xpaymentsconnector/settings/xpay_is_configured">
133
+ <type>js</type>
134
+ <name>xpayment/checkout-submit.js</name>
135
+ </action>
136
+ <action method="append" module="xpaymentsconnector" ifconfig="xpaymentsconnector/settings/xpay_is_configured">
137
+ <block>xpc_data</block>
138
+ </action>
139
+ </reference>
140
+ </onepagecheckout_index_index>
141
+
142
<checkout_onepage_success>
143
<reference name="content">
144
<reference name="checkout.success">
js/xpayment/checkout-submit.js CHANGED
@@ -51,9 +51,20 @@ function sendSubmitMessage()
51
*/
52
function isXpcMethod()
53
{
54
- var block = $('input:checked[type=radio][name=payment[method]][value^=xpayments]');
55
56
- return Boolean(block.length);
57
}
58
59
function getCurrentXpcMethod()
@@ -64,6 +75,8 @@ function getCurrentXpcMethod()
64
65
if (block.length) {
66
code = block[0].value;
67
}
68
69
return code;
@@ -405,7 +418,11 @@ document.observe('dom:loaded', function () {
405
}
406
407
// This is for Firecheckout
408
- if ($('firecheckout-form')) {
409
410
checkout.setLoadWaiting(false);
411
$('review-please-wait').hide();
@@ -675,6 +692,56 @@ document.observe('dom:loaded', function () {
675
}
676
);
677
}
678
});
679
680
51
*/
52
function isXpcMethod()
53
{
54
+ var result = false;
55
+
56
+ if ($('input:checked[type=radio][name=payment[method]][value^=xpayments]').length) {
57
+
58
+ // This is for other checkout modules
59
+ result = true;
60
+
61
+ } else if (null != $('iwd_opc_payment_method_select')) {
62
+
63
+ // This is for IWD Checkout suite
64
+ result = $('iwd_opc_payment_method_select').value.match(/xpayments/);
65
+ }
66
67
+ return result;
68
}
69
70
function getCurrentXpcMethod()
75
76
if (block.length) {
77
code = block[0].value;
78
+ } else if (null != $('iwd_opc_payment_method_select')) {
79
+ code = $('iwd_opc_payment_method_select').value;
80
}
81
82
return code;
418
}
419
420
// This is for Firecheckout
421
+ // And Venedor Theme 1.6.3
422
+ if (
423
+ $('firecheckout-form')
424
+ || $('onepagecheckout_orderform')
425
+ ) {
426
427
checkout.setLoadWaiting(false);
428
$('review-please-wait').hide();
692
}
693
);
694
}
695
+
696
+ // This is for Venedor Theme (1.6.3) and Onepagecheckout
697
+ if ($('onepagecheckout_orderform')) {
698
+
699
+ // Checkout is loaded
700
+ document.fire('xpc:checkoutChanged', 'loaded');
701
+
702
+ payment.switchMethod = payment.switchMethod.wrap(
703
+ function(parentMethod) {
704
+ parentMethod();
705
+
706
+ // Payment method changed
707
+ document.fire('xpc:checkoutChanged', 'payment');
708
+ }
709
+ );
710
+
711
+ OPC.prototype.save = OPC.prototype.save.wrap(
712
+ function(parentMethod) {
713
+
714
+ if (isXpcMethod()) {
715
+
716
+ if (this.loadWaiting != false) {
717
+ return;
718
+ }
719
+
720
+ // Save original "save" URL
721
+ this.savedSaveUrl = this.saveUrl;
722
+
723
+ this.saveUrl = xpcData.url[getCurrentXpcMethod()].saveCheckoutData;
724
+
725
+ parentMethod();
726
+
727
+ checkout.setLoadWaiting(true);
728
+ $('review-please-wait').show();
729
+
730
+ this.saveUrl = this.savedSaveUrl;
731
+
732
+ if (xpcData.useIframe) {
733
+ sendSubmitMessage();
734
+ } else {
735
+ window.location.href = xpcData.url[getCurrentXpcMethod()].dropTokenAndRedirect;
736
+ }
737
+
738
+ } else {
739
+
740
+ return parentMethod();
741
+ }
742
+ }
743
+ );
744
+ }
745
});
746
747
package.xml CHANGED
@@ -1,7 +1,7 @@
1
<?xml version="1.0"?>
2
<package>
3
<name>CDev_XPaymentsConnector</name>
4
- <version>1.8.0</version>
5
<stability>stable</stability>
6
<license uri="http://opensource.org/licenses/osl-3.0.php">OSL 3.0</license>
7
<channel>community</channel>
@@ -11,37 +11,16 @@
11
This extension integrates Magento with X-Payments - a PA-DSS certified payment module.</description>
12
<notes>What's new?&#xD;
13
&#xD;
14
- 1) Magento admin back-end&#xD;
15
- - Major improvement and revamp of connection and configuration - instead of multiple configuration pages admin user can do whole X-Payments connection and configuration on the same page now.&#xD;
16
- - Now you can configure up to 3 payment gateways supported by X-Payments in your Magento checkout.&#xD;
17
- - Admin user can save credit cards into customer profiles on behalf of customers.&#xD;
18
- - Admin can enter a new credit card to pay for a new order created in Magento back-end.&#xD;
19
- - &#x201C;Saving credit card&#x201D; setup is now available to Magento admin user.&#xD;
20
- - &#x201C;X-Payments Order State&#x201D; page redesigned. This page allows to do partial refunds/voids and capture authorized funds.&#xD;
21
- - Now the access to the X-Payments Connector features can be partially or completely restricted with the help of the Magento&#x2019;s Roles and Permissions.&#xD;
22
- - Added support of the Developer Mode (Use HTTP protocol) for the. testing/development environment which do not have valid SSL certificate.&#xD;
23
- &#xD;
24
- 2) Customer front-end&#xD;
25
- - Checkout can have up to three X-Payments payment methods.&#xD;
26
- - Saving credit cards by customers has been revamped and improved.&#xD;
27
- - Support of the One step Checkout module by Ahead Works (beta).&#xD;
28
- - Automatically unset used coupon for the declined payments.&#xD;
29
- - Corrected free shipping calculation for the FireCheckout extension.&#xD;
30
- - Increased speed of the callback requests processing, which makes checkout. faster.&#xD;
31
- - Corrected store operation if the extension is switched off.&#xD;
32
- &#xD;
33
- 3) Code re-factoring (for the developers who extend the module features)&#xD;
34
- - Decomposed common extension helper. Now the different features such as API communication, preparing cart data, address processing and the module settings are separated by the different sequestered helpers.&#xD;
35
- - Reworked functionality which was handled by the observer. Instead it was changed according to the MVC design. E.g. request to charge the card again is executed by special API request from the certain controller.&#xD;
36
- - Corrected and simplified the inheritance tree. Internal quote model is used to transport data during the payment processing, and it doesn&#x2019;t affect the quote class extensions made by other modules.&#xD;
37
- - Removed the unused legacy code. Code-style is improved&#xD;
38
- - Corrected version in the internal config file. &#xD;
39
- - Other minor bug-fixes and improvements.&#xD;
40
- </notes>
41
<authors><author><name>Alexander Mulin</name><user>xpayments</user><email>alex.mulin@x-payments.com</email></author></authors>
42
- <date>2017-04-28</date>
43
- <time>13:21:24</time>
44
- <contents><target name="magecommunity"><dir name="Cdev"><dir name="XPaymentsConnector"><dir name="Block"><dir name="Adminhtml"><dir name="Customer"><dir name="Edit"><dir name="Renderer"><file name="Cardnumber.php" hash="aaa40254a1b52d301f685237a5236a63"/><file name="Cardtype.php" hash="ddedf8207c0c01e576f7612de0298b66"/><file name="Txnid.php" hash="4abe68a1ee9286ad11e852441c860d08"/></dir><dir name="Tab"><file name="Usercards.php" hash="338ae39eae4d32f8be53e61bb7fc32ad"/></dir></dir></dir><dir name="Sales"><dir name="Order"><file name="Pay.php" hash="3ea7ea845356e1b7dbee7f23e975391c"/><dir name="View"><dir name="Tab"><file name="Xporderstate.php" hash="227b12fa8235c66aac15a2ebe66a99c1"/></dir></dir><file name="View.php" hash="d061d2ba0f31b311b88cfe33102da053"/></dir></dir><dir name="Settings"><file name="Help.php" hash="846a5274e57954e3a88feb8968617ead"/><dir name="Tab"><file name="Connection.php" hash="6290fff818f73a5039477f25e6a8acd6"/><file name="PaymentMethods.php" hash="db92f73ce1539109e1ed7644e7029d92"/><file name="Welcome.php" hash="6e31f739b5e7ee2eeb0a05953f3996b8"/><file name="ZeroAuth.php" hash="138dd6ec97485473ff611b095d06eb8e"/></dir><file name="Tab.php" hash="83eab5a75ae26be7d42026e7c45cd4f9"/><file name="Tabs.php" hash="3dffcbd26112d9395893f3844693b7de"/><file name="Xpc.php" hash="e2984fdc1910dc4de164407a62ad8230"/></dir><dir name="Usercards"><file name="Add.php" hash="d37c99d20229ff99e59bc2b87f24e6cd"/><file name="Grid.php" hash="da0b87349dc121a009b9ab64652fe9ba"/><file name="Iframe.php" hash="2cf7d0840339e8c7bf9c4adbc78d3969"/></dir></dir><dir name="Checkout"><dir name="Onepage"><file name="Orderdetail.php" hash="78dac8d8c6fca33640812973a92aa690"/><dir name="Review"><file name="Cc.php" hash="4250b4eaa9f220912a0be949bd9a9135"/></dir><file name="Success.php" hash="fb5aa9b8ae9422984e4f308085615965"/></dir><file name="Redirect.php" hash="36ab6fe76bb1be00144f1864ee6ebaff"/><file name="Return.php" hash="fb06e7b45aa467af0f0a3fb821ebdee7"/></dir><dir name="Customer"><dir name="Usercards"><file name="Add.php" hash="c0d718c85085af9e71089a3954f4a680"/><file name="Iframe.php" hash="d910b54614e93a4c00729c221a2d1a34"/><file name="List.php" hash="2a0c2cbe1fcf7a4cd362867f7dc8582c"/></dir></dir><dir name="Form"><file name="Cc.php" hash="abb21204c6bd54f17ca8f59456e06453"/><file name="Savedcards.php" hash="3165da4531d2878af73072cfadf76ace"/></dir><dir name="Info"><file name="Cc.php" hash="34a4ab8b987706aac6dc01cc5a303170"/><file name="Prepaidpayments.php" hash="17621a3dcfa5bc6f6f86e8c95033466e"/><file name="Savedcards.php" hash="6ae9e49561755ce92d7fd0930aadfda3"/></dir><dir name="Recurring"><dir name="Profile"><file name="View.php" hash="99f8f97567ada3edc6fd64ac29a17b83"/></dir></dir></dir><dir name="Helper"><file name="Abstract.php" hash="2e42ec3ecf8f4ec144350039b607c8d9"/><dir name="Address"><file name="Data.php" hash="f6db4d33d974dade9b7823d6b8b5d0a5"/></dir><dir name="Api"><file name="Data.php" hash="2a502e1747e5de5d7db24283c5187c6f"/></dir><dir name="Cart"><file name="Data.php" hash="bfae3d1ba405bc4eed326a7b33e3f290"/></dir><file name="Data.php" hash="a215685c6e7d188b912fc65ae4cfc9f9"/><dir name="Settings"><file name="Data.php" hash="2a19d5c2bb40cfc61b2744d512006d5f"/></dir></dir><dir name="Model"><dir name="Adminhtml"><dir name="System"><dir name="Config"><dir name="Source"><file name="Placedisplay.php" hash="e8d7d8c93a02eb373f0301a4ef087a1f"/></dir></dir></dir></dir><file name="Fraudcheckdata.php" hash="67ec2c9416b758da8a595e1b9f4d1cfc"/><dir name="Mysql4"><dir name="Coupon"><file name="Usage.php" hash="550bbc526828c943cd94c1014f62f480"/></dir><dir name="Fraudcheckdata"><file name="Collection.php" hash="65be31250429aac5c657e0d6905c8b7a"/></dir><file name="Fraudcheckdata.php" hash="4e21b50a5f7df50409c9098fe330df84"/><dir name="Paymentconfiguration"><file name="Collection.php" hash="4f8029d4d23c5f31fb877b4d28250798"/></dir><file name="Paymentconfiguration.php" hash="2289772e650bde075a581a57e90ccdb4"/><dir name="Quote"><dir name="Xpcdata"><file name="Collection.php" hash="6cec9e95afd39e87012cb896c84a26a6"/></dir><file name="Xpcdata.php" hash="743b47d77181eac0060ae18b7b3091c7"/></dir><dir name="Usercards"><file name="Collection.php" hash="d408cb3f3bac4fd7f8f982b9271311b4"/></dir><file name="Usercards.php" hash="76b2c6211e494a589f62b2e7efd9fcf2"/></dir><file name="Observer.php" hash="4417002f7f3e4decedf952ec6084e47e"/><dir name="Payment"><file name="Abstract.php" hash="73fc353305d5247f9d63b517a4719584"/><file name="Cc.php" hash="89d80674e8c775384ade29b7af84b1e3"/><file name="Cc1.php" hash="b75ec36b087723a37e05889072a75e6c"/><file name="Cc2.php" hash="e8b83d62206e400bed6ad961222509ec"/><file name="Cc3.php" hash="6998dec58c419d666382c2e793446a40"/><dir name="Recurring"><file name="Profile.php" hash="136d1c070a47b4df2b8387d812457975"/></dir><file name="Savedcards.php" hash="215f9fd4bf2c2bd81aed18879a8390a7"/></dir><file name="Paymentconfiguration.php" hash="20745abddc071a2a1a67f04dc9407297"/><dir name="Quote"><dir name="Address"><dir name="Total"><dir name="Nominal"><dir name="Recurring"><file name="Discount.php" hash="e00831a19d3dc3984a988442f898045d"/><dir name="Initialfee"><file name="Tax.php" hash="df2e35cd60fb9b072a4a45582c4baf4a"/></dir></dir></dir><file name="Nominal.php" hash="67d677b941e01156e25bde52afd3452f"/></dir></dir><file name="Xpcdata.php" hash="18e4eed0bd2ded95eeb9fce580cd75e9"/></dir><file name="Quote.php" hash="b6f245417906a61b3383f565e1690358"/><dir name="Sales"><dir name="Recurring"><file name="Profile.php" hash="4b42debdef8853eafb2a2fad69648374"/></dir></dir><dir name="Source"><file name="Paymentconfiguration.php" hash="93eacabe0c8db27ee32f6e939d2a6d25"/></dir><file name="Usercards.php" hash="928d309bc2e3964891a32e6355b3d98a"/></dir><dir name="Transport"><file name="ApiResponse.php" hash="9798265b06eae6292ac9cf8f892911ed"/></dir><dir name="controllers"><dir name="Adminhtml"><file name="AddnewcardController.php" hash="8dc065cdb27a8f2f2bfd153b5489fdc0"/><file name="CustomerController.php" hash="89bb3462fde3308a6ec2b8a8b963fe81"/><dir name="Sales"><dir name="Order"><file name="CreateController.php" hash="369a5e97490e1fe5011490f195b47ef4"/><file name="PaymentController.php" hash="8e487447f5253983e93e1c9eed957114"/></dir></dir><dir name="Settings"><file name="XpcController.php" hash="9c26442bc3de95f3e36af321968f2d31"/></dir></dir><file name="CustomerController.php" hash="87866f3feb3bd2fcd2b9915689dbc5ea"/><file name="ProcessingController.php" hash="236beafeed2b2b9a7cf36e156397f152"/></dir><dir name="etc"><file name="adminhtml.xml" hash="ae219070bda0fec0797fbe400fa74d8f"/><file name="config.xml" hash="2b90273abc6ba0ca928c99f05decfc91"/><file name="system.xml" hash="5ea77283425202f6ee5f8f1581bb9583"/></dir><dir name="sql"><dir name="xpaymentsconnector_setup"><file name="mysql4-install-1.0.0.php" hash="65499bf19d3160b294943ba66c35806a"/><file name="mysql4-upgrade-1.0.0-1.0.1.php" hash="947960c070b098218808b95b8773d410"/><file name="mysql4-upgrade-1.0.1-1.0.2.php" hash="fabef89153591eeae3933ec8f478de51"/><file name="mysql4-upgrade-1.0.2-1.0.3.php" hash="cdf4d24d4bbd68aad2cf0ed586aa5710"/><file name="mysql4-upgrade-1.0.3-1.0.4.php" hash="d7f8ad91db27cfb83bec9e2162751b9c"/><file name="mysql4-upgrade-1.0.4-1.0.5.php" hash="ed59d38aa5fa9c70eb5ac5399e7430b8"/><file name="mysql4-upgrade-1.0.5-1.0.6.php" hash="d69cf11809ff724fd43eab4e6450cf94"/><file name="mysql4-upgrade-1.0.6-1.0.7.php" hash="afe29b79e383b2bf8d91035fc0ba5939"/><file name="mysql4-upgrade-1.0.7-1.0.8.php" hash="36914c857f46f3cf1f921f18ca7aa435"/><file name="mysql4-upgrade-1.0.8-1.0.9.php" hash="eecb339e90a5eb1033425d0d9c5ab60a"/><file name="mysql4-upgrade-1.0.9-1.1.0.php" hash="404757e176b56a089aa0d8c3a0384a51"/><file name="mysql4-upgrade-1.1.0-1.1.1.php" hash="50406b4966e81d44d914134aed88bf3e"/><file name="mysql4-upgrade-1.1.1-1.1.2.php" hash="69ff2db057f6e102b3219f10b5ad1e88"/><file name="mysql4-upgrade-1.1.2-1.1.3.php" hash="411047613212e6dce7df98798fdbee9d"/><file name="mysql4-upgrade-1.1.3-1.8.0.php" hash="f60fc38a73442b853614035c37aa9a88"/></dir></dir></dir></dir></target><target name="mage"><dir name="js"><dir name="xpayment"><file name="add-new-card.css" hash="50e744658fb135d4f2e22eae5c78feb5"/><file name="add-new-card.js" hash="5ef66621ba2c45e0591f65220a0babe4"/><file name="backend-xpayment.js" hash="9cdcb40212f976fbb6626e79f565b819"/><file name="checkout-submit.js" hash="37922beb46d42d89124ccb4c914101e4"/><dir name="images"><file name="arrow-down.png" hash="a0beb6cd0ca4dd686ee5bf772432176e"/><file name="arrow-up.png" hash="df40115c816a7e08016c04120ac22e53"/><file name="btn_bg_fraud.png" hash="028ca5db7bdc7a5327e5cafa8747e079"/><file name="card_types.png" hash="0e50345d855268c0396a740fcf37df92"/><file name="loader.gif" hash="e67d85a8d2d4021514815d0ff4d65173"/><file name="pci_dss_compliance.png" hash="db4e8b0e5eaa6779db9a73e66c136670"/><file name="step-arrow.png" hash="99b20583434330394fb2302b9b9f7331"/><file name="xpayment-logo.png" hash="a46be1bc2589a988172a104c11bed332"/></dir><file name="settings-xpc.css" hash="9a15cbafff63e93950d4fd839c0c5a03"/><file name="settings-xpc.js" hash="f8474c94344434fadda42a7d04cd8335"/><file name="settings.css" hash="1e0235171cd10198ce9334e67467a8c3"/></dir></dir></target><target name="magelocale"><dir name="en_US"><file name="Cdev_XPaymentsConnector.csv" hash="9c4ff78f5c159b2e98f2db51fcbc864c"/></dir></target><target name="mageetc"><dir name="modules"><file name="Cdev_XPaymentsConnector.xml" hash="6553887d9368d89585de4508b02eb0f7"/></dir></target><target name="magedesign"><dir name="adminhtml"><dir name="default"><dir name="default"><dir name="template"><dir name="xpaymentsconnector"><dir><dir name="form"><file name="cc.phtml" hash="a082a166647d2e850937aa4a1721cc9b"/><file name="prepaidpayments.phtml" hash="d2af544b65ae496be0f6465f7500549b"/><file name="savedcards.phtml" hash="377bdc79eb740329be215d933a204f6f"/></dir><dir name="info"><file name="cc.phtml" hash="2c0647d013182c158f0615e6788f57b1"/><file name="prepaidpayments.phtml" hash="63a15ae6dd0e3d1f7aa56bda95813dc9"/><file name="savedcards.phtml" hash="93de9ff106a72972861e93bd010bdf9a"/></dir><dir name="order"><file name="pay.phtml" hash="b5753ed33f7998acc097023089d7ad43"/><dir name="view"><dir name="tab"><file name="xporderstate.phtml" hash="d0d3795d3ad9e428bd3ae013f6fc495d"/></dir></dir></dir><dir name="pdf"><file name="info.phtml" hash="14dfc11d70bfc47614fe345e7d542e25"/></dir><dir name="settings"><file name="help.phtml" hash="701542e3a4cfc1fe4b8da81f118ceeee"/><dir name="tabs"><file name="connection.phtml" hash="2dc816bdf75caef351e4edf3b101b8bd"/><file name="payment_methods.phtml" hash="04ff2cb22cac2bb1184e0f90504a9352"/><file name="welcome.phtml" hash="28f15bb1031ff1e4ccddb3cd925091bc"/><file name="zero_auth.phtml" hash="8fc3b0b30090b39742d93941b039b8b8"/></dir><file name="xpc.phtml" hash="eded46dbbb2657a2ac9df2658acc4c42"/></dir><dir name="usercards"><file name="add.phtml" hash="eb3d93c62f542192ca041be2d223e6c5"/><file name="iframe.phtml" hash="b6cb88eeec648a31b77c4bff38bcfc09"/><dir name="tab"><file name="js.phtml" hash="a5f221fa7e8772352b14867947871fd8"/></dir></dir></dir><file name="info.phtml" hash="1f1dde8ac842af5e77460ad8316063a2"/></dir></dir><dir name="layout"><file name="xpaymentsconnector.xml" hash="3f2143b8c10a6284569b8ec6b31c427b"/></dir></dir></dir></dir><dir name="frontend"><dir name="base"><dir name="default"><dir name="template"><dir name="xpaymentsconnector"><dir name="checkout"><file name="blank.phtml" hash="7eec31175dc5516d73ef00b5634ba645"/><dir name="onepage"><file name="order-detail.phtml" hash="f5b8746678af65f95e0eb7fa1a8fad8b"/><dir name="review"><file name="button.phtml" hash="a1e2d615c019950d32b99c7cfc85da23"/><file name="cc.phtml" hash="fc8579a2877de308de4d75c105ff8137"/></dir></dir><file name="redirect.phtml" hash="99583bd93ed8b839b9758eebfb04f2f3"/><file name="return.phtml" hash="8468d24da3aaf06b44278315ace4cc8d"/><file name="success.phtml" hash="a2a2097281d67372887770b7810846df"/><file name="xpc_data.phtml" hash="b68322c7b86436fa83d241bb1ef43a26"/></dir><dir name="customer"><dir name="usercards"><file name="add.phtml" hash="8e5740f2f7f864c990b62852afd7e212"/><file name="iframe.phtml" hash="f5517759de042157921daf82764cf2ca"/><file name="list.phtml" hash="81f636155dc0605369b689838be81b5a"/></dir></dir><dir name="form"><file name="cc.phtml" hash="d8e0f65ce865838bfce9a6a603dc20f3"/><file name="savedcards.phtml" hash="c7909e538d7b3f65699005dcc26a0338"/></dir><dir name="info"><file name="cc.phtml" hash="3be1a8d0af0f362bed14f8a596319eda"/><file name="prepaidpayments.phtml" hash="7981ab636d54ccc28d678161a1bd1f26"/><file name="savedcards.phtml" hash="94b4f35db16f7814c39a9e64a8e2f055"/></dir></dir></dir><dir name="layout"><file name="xpaymentsconnector.xml" hash="7de99a56ac04621483eb4c6cf177b2b0"/></dir></dir></dir></dir></target></contents>
45
<compatible/>
46
<dependencies><required><php><min>5.5.0</min><max>7.2.0</max></php></required></dependencies>
47
</package>
1
<?xml version="1.0"?>
2
<package>
3
<name>CDev_XPaymentsConnector</name>
4
+ <version>1.8.1</version>
5
<stability>stable</stability>
6
<license uri="http://opensource.org/licenses/osl-3.0.php">OSL 3.0</license>
7
<channel>community</channel>
11
This extension integrates Magento with X-Payments - a PA-DSS certified payment module.</description>
12
<notes>What's new?&#xD;
13
&#xD;
14
+ - Corrected email notifications&#xD;
15
+ - Implemented ability to process the orders which were modified by the store admin&#xD;
16
+ - Implemented multi-store support&#xD;
17
+ - Speed up the callback requests processing&#xD;
18
+ - Corrected operating with coupons (Shopping cart price rules) &#xD;
19
+ - Minor bug-fixes and improvements</notes>
20
<authors><author><name>Alexander Mulin</name><user>xpayments</user><email>alex.mulin@x-payments.com</email></author></authors>
21
+ <date>2017-09-07</date>
22
+ <time>03:08:21</time>
23
+ <contents><target name="magecommunity"><dir name="Cdev"><dir name="XPaymentsConnector"><dir name="Block"><dir name="Adminhtml"><dir name="Customer"><dir name="Edit"><dir name="Renderer"><file name="Cardnumber.php" hash="aaa40254a1b52d301f685237a5236a63"/><file name="Cardtype.php" hash="ddedf8207c0c01e576f7612de0298b66"/><file name="Txnid.php" hash="4abe68a1ee9286ad11e852441c860d08"/></dir><dir name="Tab"><file name="Usercards.php" hash="338ae39eae4d32f8be53e61bb7fc32ad"/></dir></dir></dir><dir name="Sales"><dir name="Order"><file name="Pay.php" hash="3ea7ea845356e1b7dbee7f23e975391c"/><dir name="View"><dir name="Tab"><file name="Xporderstate.php" hash="970bf6cdfda16eb408c7a41ebc0b704e"/></dir></dir><file name="View.php" hash="d061d2ba0f31b311b88cfe33102da053"/></dir></dir><dir name="Settings"><file name="Help.php" hash="846a5274e57954e3a88feb8968617ead"/><dir name="Tab"><file name="Connection.php" hash="6290fff818f73a5039477f25e6a8acd6"/><file name="PaymentMethods.php" hash="db92f73ce1539109e1ed7644e7029d92"/><file name="Welcome.php" hash="6e31f739b5e7ee2eeb0a05953f3996b8"/><file name="ZeroAuth.php" hash="138dd6ec97485473ff611b095d06eb8e"/></dir><file name="Tab.php" hash="83eab5a75ae26be7d42026e7c45cd4f9"/><file name="Tabs.php" hash="3dffcbd26112d9395893f3844693b7de"/><file name="Xpc.php" hash="e2984fdc1910dc4de164407a62ad8230"/></dir><dir name="Usercards"><file name="Add.php" hash="d37c99d20229ff99e59bc2b87f24e6cd"/><file name="Grid.php" hash="da0b87349dc121a009b9ab64652fe9ba"/><file name="Iframe.php" hash="2cf7d0840339e8c7bf9c4adbc78d3969"/></dir></dir><dir name="Checkout"><dir name="Onepage"><file name="Orderdetail.php" hash="78dac8d8c6fca33640812973a92aa690"/><dir name="Review"><file name="Cc.php" hash="4250b4eaa9f220912a0be949bd9a9135"/></dir><file name="Success.php" hash="fb5aa9b8ae9422984e4f308085615965"/></dir><file name="Redirect.php" hash="36ab6fe76bb1be00144f1864ee6ebaff"/><file name="Return.php" hash="fb06e7b45aa467af0f0a3fb821ebdee7"/></dir><dir name="Customer"><dir name="Usercards"><file name="Add.php" hash="c0d718c85085af9e71089a3954f4a680"/><file name="Iframe.php" hash="d910b54614e93a4c00729c221a2d1a34"/><file name="List.php" hash="2a0c2cbe1fcf7a4cd362867f7dc8582c"/></dir></dir><dir name="Form"><file name="Cc.php" hash="abb21204c6bd54f17ca8f59456e06453"/><file name="Savedcards.php" hash="3165da4531d2878af73072cfadf76ace"/></dir><dir name="Info"><file name="Cc.php" hash="34a4ab8b987706aac6dc01cc5a303170"/><file name="Prepaidpayments.php" hash="17621a3dcfa5bc6f6f86e8c95033466e"/><file name="Savedcards.php" hash="6ae9e49561755ce92d7fd0930aadfda3"/></dir><dir name="Recurring"><dir name="Profile"><file name="View.php" hash="99f8f97567ada3edc6fd64ac29a17b83"/></dir></dir></dir><dir name="Helper"><file name="Abstract.php" hash="2e42ec3ecf8f4ec144350039b607c8d9"/><dir name="Address"><file name="Data.php" hash="f6db4d33d974dade9b7823d6b8b5d0a5"/></dir><dir name="Api"><file name="Data.php" hash="2a502e1747e5de5d7db24283c5187c6f"/></dir><dir name="Cart"><file name="Data.php" hash="7ac41495ee8196f0f44b52b95967545e"/></dir><file name="Data.php" hash="8dd39f5b17b8a58a9694181ae1fdcd29"/><dir name="Settings"><file name="Data.php" hash="5381ff7b6a69e3a742ef5b6c6366a5ad"/></dir></dir><dir name="Model"><dir name="Adminhtml"><dir name="System"><dir name="Config"><dir name="Source"><file name="Placedisplay.php" hash="e8d7d8c93a02eb373f0301a4ef087a1f"/></dir></dir></dir></dir><file name="Fraudcheckdata.php" hash="67ec2c9416b758da8a595e1b9f4d1cfc"/><dir name="Mysql4"><dir name="Coupon"><file name="Usage.php" hash="550bbc526828c943cd94c1014f62f480"/></dir><dir name="Fraudcheckdata"><file name="Collection.php" hash="65be31250429aac5c657e0d6905c8b7a"/></dir><file name="Fraudcheckdata.php" hash="4e21b50a5f7df50409c9098fe330df84"/><dir name="Paymentconfiguration"><file name="Collection.php" hash="4f8029d4d23c5f31fb877b4d28250798"/></dir><file name="Paymentconfiguration.php" hash="2289772e650bde075a581a57e90ccdb4"/><dir name="Quote"><dir name="Xpcdata"><file name="Collection.php" hash="6cec9e95afd39e87012cb896c84a26a6"/></dir><file name="Xpcdata.php" hash="743b47d77181eac0060ae18b7b3091c7"/></dir><dir name="Usercards"><file name="Collection.php" hash="d408cb3f3bac4fd7f8f982b9271311b4"/></dir><file name="Usercards.php" hash="76b2c6211e494a589f62b2e7efd9fcf2"/></dir><file name="Observer.php" hash="4417002f7f3e4decedf952ec6084e47e"/><dir name="Payment"><file name="Abstract.php" hash="73fc353305d5247f9d63b517a4719584"/><file name="Cc.php" hash="f524db48ee7135457d68c96b8134b965"/><file name="Cc1.php" hash="b75ec36b087723a37e05889072a75e6c"/><file name="Cc2.php" hash="e8b83d62206e400bed6ad961222509ec"/><file name="Cc3.php" hash="6998dec58c419d666382c2e793446a40"/><dir name="Recurring"><file name="Profile.php" hash="136d1c070a47b4df2b8387d812457975"/></dir><file name="Savedcards.php" hash="4dd1fe169aa623a030f8c311f91dd6aa"/></dir><file name="Paymentconfiguration.php" hash="20745abddc071a2a1a67f04dc9407297"/><dir name="Quote"><dir name="Address"><dir name="Total"><dir name="Nominal"><dir name="Recurring"><file name="Discount.php" hash="e00831a19d3dc3984a988442f898045d"/><dir name="Initialfee"><file name="Tax.php" hash="df2e35cd60fb9b072a4a45582c4baf4a"/></dir></dir></dir><file name="Nominal.php" hash="67d677b941e01156e25bde52afd3452f"/></dir></dir><file name="Xpcdata.php" hash="18e4eed0bd2ded95eeb9fce580cd75e9"/></dir><file name="Quote.php" hash="62745034a635f174eb2ae52a434363c1"/><dir name="Sales"><dir name="Recurring"><file name="Profile.php" hash="4b42debdef8853eafb2a2fad69648374"/></dir></dir><dir name="Source"><file name="Paymentconfiguration.php" hash="93eacabe0c8db27ee32f6e939d2a6d25"/></dir><file name="Usercards.php" hash="928d309bc2e3964891a32e6355b3d98a"/></dir><dir name="Transport"><file name="ApiResponse.php" hash="9798265b06eae6292ac9cf8f892911ed"/></dir><dir name="controllers"><dir name="Adminhtml"><file name="AddnewcardController.php" hash="8dc065cdb27a8f2f2bfd153b5489fdc0"/><file name="CustomerController.php" hash="89bb3462fde3308a6ec2b8a8b963fe81"/><dir name="Sales"><dir name="Order"><file name="CreateController.php" hash="f56c255a9178620bc12be627e35f21f1"/><file name="EditController.php" hash="eaf72fc44b5ec85e216b0df9126d36d1"/><file name="PaymentController.php" hash="3db75642760038bc17b8d920855b5712"/></dir></dir><dir name="Settings"><file name="XpcController.php" hash="9c26442bc3de95f3e36af321968f2d31"/></dir></dir><file name="CustomerController.php" hash="87866f3feb3bd2fcd2b9915689dbc5ea"/><file name="ProcessingController.php" hash="7ea2cee1245e6431080ee8c031344ab0"/></dir><dir name="etc"><file name="adminhtml.xml" hash="ae219070bda0fec0797fbe400fa74d8f"/><file name="config.xml" hash="e9bba691ee27231b05df21547636a4e8"/><file name="system.xml" hash="5ea77283425202f6ee5f8f1581bb9583"/></dir><dir name="sql"><dir name="xpaymentsconnector_setup"><file name="mysql4-install-1.0.0.php" hash="65499bf19d3160b294943ba66c35806a"/><file name="mysql4-upgrade-1.0.0-1.0.1.php" hash="947960c070b098218808b95b8773d410"/><file name="mysql4-upgrade-1.0.1-1.0.2.php" hash="fabef89153591eeae3933ec8f478de51"/><file name="mysql4-upgrade-1.0.2-1.0.3.php" hash="cdf4d24d4bbd68aad2cf0ed586aa5710"/><file name="mysql4-upgrade-1.0.3-1.0.4.php" hash="d7f8ad91db27cfb83bec9e2162751b9c"/><file name="mysql4-upgrade-1.0.4-1.0.5.php" hash="ed59d38aa5fa9c70eb5ac5399e7430b8"/><file name="mysql4-upgrade-1.0.5-1.0.6.php" hash="d69cf11809ff724fd43eab4e6450cf94"/><file name="mysql4-upgrade-1.0.6-1.0.7.php" hash="afe29b79e383b2bf8d91035fc0ba5939"/><file name="mysql4-upgrade-1.0.7-1.0.8.php" hash="36914c857f46f3cf1f921f18ca7aa435"/><file name="mysql4-upgrade-1.0.8-1.0.9.php" hash="eecb339e90a5eb1033425d0d9c5ab60a"/><file name="mysql4-upgrade-1.0.9-1.1.0.php" hash="404757e176b56a089aa0d8c3a0384a51"/><file name="mysql4-upgrade-1.1.0-1.1.1.php" hash="50406b4966e81d44d914134aed88bf3e"/><file name="mysql4-upgrade-1.1.1-1.1.2.php" hash="69ff2db057f6e102b3219f10b5ad1e88"/><file name="mysql4-upgrade-1.1.2-1.1.3.php" hash="411047613212e6dce7df98798fdbee9d"/><file name="mysql4-upgrade-1.1.3-1.8.0.php" hash="f60fc38a73442b853614035c37aa9a88"/><file name="mysql4-upgrade-1.8.0-1.8.1.php" hash="be20b12e641298da720eef5a1d804f01"/></dir></dir></dir></dir></target><target name="mage"><dir name="js"><dir name="xpayment"><file name="add-new-card.css" hash="50e744658fb135d4f2e22eae5c78feb5"/><file name="add-new-card.js" hash="5ef66621ba2c45e0591f65220a0babe4"/><file name="backend-xpayment.js" hash="9cdcb40212f976fbb6626e79f565b819"/><file name="checkout-submit.js" hash="af4bc5f33291688c6820ad74ef643041"/><dir name="images"><file name="arrow-down.png" hash="a0beb6cd0ca4dd686ee5bf772432176e"/><file name="arrow-up.png" hash="df40115c816a7e08016c04120ac22e53"/><file name="btn_bg_fraud.png" hash="028ca5db7bdc7a5327e5cafa8747e079"/><file name="card_types.png" hash="0e50345d855268c0396a740fcf37df92"/><file name="loader.gif" hash="e67d85a8d2d4021514815d0ff4d65173"/><file name="pci_dss_compliance.png" hash="db4e8b0e5eaa6779db9a73e66c136670"/><file name="step-arrow.png" hash="99b20583434330394fb2302b9b9f7331"/><file name="xpayment-logo.png" hash="a46be1bc2589a988172a104c11bed332"/></dir><file name="settings-xpc.css" hash="9a15cbafff63e93950d4fd839c0c5a03"/><file name="settings-xpc.js" hash="f8474c94344434fadda42a7d04cd8335"/><file name="settings.css" hash="1e0235171cd10198ce9334e67467a8c3"/></dir></dir></target><target name="magelocale"><dir name="en_US"><file name="Cdev_XPaymentsConnector.csv" hash="9c4ff78f5c159b2e98f2db51fcbc864c"/></dir></target><target name="mageetc"><dir name="modules"><file name="Cdev_XPaymentsConnector.xml" hash="6553887d9368d89585de4508b02eb0f7"/></dir></target><target name="magedesign"><dir name="adminhtml"><dir name="default"><dir name="default"><dir name="template"><dir name="xpaymentsconnector"><dir><dir name="form"><file name="cc.phtml" hash="a082a166647d2e850937aa4a1721cc9b"/><file name="prepaidpayments.phtml" hash="d2af544b65ae496be0f6465f7500549b"/><file name="savedcards.phtml" hash="377bdc79eb740329be215d933a204f6f"/></dir><dir name="info"><file name="cc.phtml" hash="2c0647d013182c158f0615e6788f57b1"/><file name="prepaidpayments.phtml" hash="63a15ae6dd0e3d1f7aa56bda95813dc9"/><file name="savedcards.phtml" hash="93de9ff106a72972861e93bd010bdf9a"/></dir><dir name="order"><file name="pay.phtml" hash="b5753ed33f7998acc097023089d7ad43"/><dir name="view"><dir name="tab"><file name="xporderstate.phtml" hash="d0d3795d3ad9e428bd3ae013f6fc495d"/></dir></dir></dir><dir name="pdf"><file name="info.phtml" hash="14dfc11d70bfc47614fe345e7d542e25"/></dir><dir name="settings"><file name="help.phtml" hash="701542e3a4cfc1fe4b8da81f118ceeee"/><dir name="tabs"><file name="connection.phtml" hash="2dc816bdf75caef351e4edf3b101b8bd"/><file name="payment_methods.phtml" hash="04ff2cb22cac2bb1184e0f90504a9352"/><file name="welcome.phtml" hash="28f15bb1031ff1e4ccddb3cd925091bc"/><file name="zero_auth.phtml" hash="8fc3b0b30090b39742d93941b039b8b8"/></dir><file name="xpc.phtml" hash="eded46dbbb2657a2ac9df2658acc4c42"/></dir><dir name="usercards"><file name="add.phtml" hash="eb3d93c62f542192ca041be2d223e6c5"/><file name="iframe.phtml" hash="b6cb88eeec648a31b77c4bff38bcfc09"/><dir name="tab"><file name="js.phtml" hash="a5f221fa7e8772352b14867947871fd8"/></dir></dir></dir><file name="info.phtml" hash="1f1dde8ac842af5e77460ad8316063a2"/></dir></dir><dir name="layout"><file name="xpaymentsconnector.xml" hash="3f2143b8c10a6284569b8ec6b31c427b"/></dir></dir></dir></dir><dir name="frontend"><dir name="base"><dir name="default"><dir name="template"><dir name="xpaymentsconnector"><dir name="checkout"><file name="blank.phtml" hash="7eec31175dc5516d73ef00b5634ba645"/><dir name="onepage"><file name="order-detail.phtml" hash="f5b8746678af65f95e0eb7fa1a8fad8b"/><dir name="review"><file name="button.phtml" hash="a1e2d615c019950d32b99c7cfc85da23"/><file name="cc.phtml" hash="fc8579a2877de308de4d75c105ff8137"/></dir></dir><file name="redirect.phtml" hash="99583bd93ed8b839b9758eebfb04f2f3"/><file name="return.phtml" hash="8468d24da3aaf06b44278315ace4cc8d"/><file name="success.phtml" hash="a2a2097281d67372887770b7810846df"/><file name="xpc_data.phtml" hash="b68322c7b86436fa83d241bb1ef43a26"/></dir><dir name="customer"><dir name="usercards"><file name="add.phtml" hash="8e5740f2f7f864c990b62852afd7e212"/><file name="iframe.phtml" hash="f5517759de042157921daf82764cf2ca"/><file name="list.phtml" hash="81f636155dc0605369b689838be81b5a"/></dir></dir><dir name="form"><file name="cc.phtml" hash="d8e0f65ce865838bfce9a6a603dc20f3"/><file name="savedcards.phtml" hash="c7909e538d7b3f65699005dcc26a0338"/></dir><dir name="info"><file name="cc.phtml" hash="3be1a8d0af0f362bed14f8a596319eda"/><file name="prepaidpayments.phtml" hash="7981ab636d54ccc28d678161a1bd1f26"/><file name="savedcards.phtml" hash="94b4f35db16f7814c39a9e64a8e2f055"/></dir></dir></dir><dir name="layout"><file name="xpaymentsconnector.xml" hash="80f2c4c93167d29255cd13a45e4e8e83"/></dir></dir></dir></dir></target></contents>
24
<compatible/>
25
<dependencies><required><php><min>5.5.0</min><max>7.2.0</max></php></required></dependencies>
26
</package>