CDev_XPaymentsConnector - Version 1.5.5

Version Notes

Version number: 1.5.5

Download this release

Release Info

Developer Valerii Demidov
Extension CDev_XPaymentsConnector
Version 1.5.5
Comparing to
See all releases


Code changes from version 1.4.11 to 1.5.5

Files changed (37) hide show
  1. app/code/community/Cdev/XPaymentsConnector/Block/Adminhtml/Customer/Edit/Renderer/Cardnumber.php +41 -0
  2. app/code/community/Cdev/XPaymentsConnector/Block/Adminhtml/Sales/Order/View.php +66 -0
  3. app/code/community/Cdev/XPaymentsConnector/Block/Adminhtml/Sales/Order/View/Tab/Xporderstate.php +9 -5
  4. app/code/community/Cdev/XPaymentsConnector/Block/Adminhtml/Usercards/Grid.php +3 -3
  5. app/code/community/Cdev/XPaymentsConnector/Block/Checkout/Onepage/Success.php +90 -0
  6. app/code/community/Cdev/XPaymentsConnector/Block/Customer/Cardadd.php +7 -2
  7. app/code/community/Cdev/XPaymentsConnector/Block/Info/Cc.php +10 -0
  8. app/code/community/Cdev/XPaymentsConnector/Block/Info/Savedcards.php +15 -3
  9. app/code/community/Cdev/XPaymentsConnector/Helper/Data.php +81 -17
  10. app/code/community/Cdev/XPaymentsConnector/Model/Observer.php +10 -6
  11. app/code/community/Cdev/XPaymentsConnector/Model/Payment/Cc.php +111 -28
  12. app/code/community/Cdev/XPaymentsConnector/Model/Payment/Savedcards.php +5 -1
  13. app/code/community/Cdev/XPaymentsConnector/controllers/Adminhtml/Sales/Order/FraudController.php +91 -0
  14. app/code/community/Cdev/XPaymentsConnector/controllers/CustomerController.php +19 -11
  15. app/code/community/Cdev/XPaymentsConnector/controllers/ProcessingController.php +85 -159
  16. app/code/community/Cdev/XPaymentsConnector/etc/config.xml +15 -1
  17. app/code/community/Cdev/XPaymentsConnector/sql/xpaymentsconnector_setup/mysql4-upgrade-1.1.1-1.1.2.php +101 -0
  18. app/design/adminhtml/default/default/template/xpaymentsconnector/form/savedcards.phtml +17 -6
  19. app/design/adminhtml/default/default/template/xpaymentsconnector/info/cc.phtml +13 -7
  20. app/design/adminhtml/default/default/template/xpaymentsconnector/info/savedcards.phtml +8 -10
  21. app/design/adminhtml/default/default/template/xpaymentsconnector/order/view/tab/xporderstate.phtml +5 -5
  22. app/design/frontend/default/default/layout/xpaymentsconnector.xml +6 -0
  23. app/design/frontend/default/default/template/xpaymentsconnector/checkout/success.phtml +79 -0
  24. app/design/frontend/default/default/template/xpaymentsconnector/customer/usercards/list.phtml +23 -8
  25. app/design/frontend/default/default/template/xpaymentsconnector/form/savedcards.phtml +15 -3
  26. app/design/frontend/default/default/template/xpaymentsconnector/info/cc.phtml +13 -13
  27. app/design/frontend/default/default/template/xpaymentsconnector/info/savedcards.phtml +6 -4
  28. app/design/frontend/rwd/default/layout/xpaymentsconnector.xml +6 -0
  29. app/design/frontend/rwd/default/template/xpaymentsconnector/checkout/success.phtml +79 -0
  30. app/design/frontend/rwd/default/template/xpaymentsconnector/customer/usercards/list.phtml +23 -8
  31. app/design/frontend/rwd/default/template/xpaymentsconnector/form/savedcards.phtml +15 -3
  32. app/design/frontend/rwd/default/template/xpaymentsconnector/info/cc.phtml +13 -8
  33. app/design/frontend/rwd/default/template/xpaymentsconnector/info/savedcards.phtml +6 -4
  34. app/locale/en_US/Cdev_XPaymentsConnector.csv +15 -2
  35. js/xpayment/images/btn_bg_fraud.png +0 -0
  36. js/xpayment/settings.css +9 -2
  37. package.xml +5 -5
app/code/community/Cdev/XPaymentsConnector/Block/Adminhtml/Customer/Edit/Renderer/Cardnumber.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
+ * @author Valerii Demidov
16
+ * @category Cdev
17
+ * @package Cdev_XPaymentsConnector
18
+ * @copyright (c) Qualiteam Software Ltd. <info@qtmsoft.com>. All rights reserved.
19
+ * @license http://opensource.org/licenses/osl-3.0.php Open Software License (OSL 3.0)
20
+ */
21
+
22
+ /**
23
+ * Grid column rendering for'Card Type'
24
+ */
25
+
26
+ class Cdev_XPaymentsConnector_Block_Adminhtml_Customer_Edit_Renderer_Cardnumber extends Mage_Adminhtml_Block_Widget_Grid_Column_Renderer_Action
27
+ {
28
+
29
+ public function render(Varien_Object $row){
30
+
31
+ $row = $row->getData();
32
+ $cardNumber = $this->__('%s******%s',
33
+ $row['first6'],
34
+ $row['last_4_cc_num']
35
+ );
36
+ if (!is_null($row['expire_month']) && !is_null($row['expire_year'])) {
37
+ $cardNumber .= $this->__(' ( %s/%s )', $row['expire_month'], $row['expire_year']);
38
+ }
39
+ return "<span>$cardNumber</span>";
40
+ }
41
+ }
app/code/community/Cdev/XPaymentsConnector/Block/Adminhtml/Sales/Order/View.php ADDED
@@ -0,0 +1,66 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
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
+ * @author Valerii Demidov
16
+ * @category Cdev
17
+ * @package Cdev_XPaymentsConnector
18
+ * @copyright (c) Qualiteam Software Ltd. <info@qtmsoft.com>. All rights reserved.
19
+ * @license http://opensource.org/licenses/osl-3.0.php Open Software License (OSL 3.0)
20
+ */
21
+
22
+ class Cdev_XPaymentsConnector_Block_Adminhtml_Sales_Order_View extends Mage_Adminhtml_Block_Sales_Order_View
23
+ {
24
+
25
+ public function __construct()
26
+ {
27
+
28
+ parent::__construct();
29
+
30
+ $order = $this->getOrder();
31
+ $txnid = $order->getData('xpc_txnid');
32
+ list($transactionStatus, $transactionInfo)
33
+ = Mage::getModel('xpaymentsconnector/payment_cc')->requestPaymentInfo($txnid, false, true);
34
+
35
+ if ($transactionStatus) {
36
+ if(isset($transactionInfo['payment']['isFraudStatus']) && $transactionInfo['payment']['isFraudStatus']){
37
+ $admSession = Mage::getSingleton('adminhtml/session');
38
+ $messageText = "This transaction has been identified as possibly fraudulent, press 'Accept'".
39
+ " to confirm the acceptance of the transaction or 'Decline' to cancel it.";
40
+ $message = $this->__($messageText);
41
+ $admSession->addNotice($message);
42
+
43
+ $activeMessage = Mage::helper('xpaymentsconnector')->__('Are you sure you want to accept this order transaction?');
44
+ $this->_addButton('active', array(
45
+ 'label' => Mage::helper('xpaymentsconnector')->__('Accept'),
46
+ 'onclick' => "confirmSetLocation('{$activeMessage}', '{$this->getRequestFraudUrl('accept')}')",
47
+ 'class' => 'fraud-button'
48
+ ), -1);
49
+
50
+ $cancelMessage = Mage::helper('xpaymentsconnector')->__('Are you sure you want to decline this order transaction?');
51
+ $this->_addButton('decline', array(
52
+ 'label' => Mage::helper('xpaymentsconnector')->__('Decline'),
53
+ 'onclick' => "confirmSetLocation('{$cancelMessage}', '{$this->getRequestFraudUrl('decline')}')",
54
+ 'class' => 'fraud-button'
55
+ ), -1);
56
+ }
57
+
58
+ }
59
+ }
60
+
61
+
62
+ public function getRequestFraudUrl($action)
63
+ {
64
+ return $this->getUrl('*/sales_order_fraud/'.$action);
65
+ }
66
+ }
app/code/community/Cdev/XPaymentsConnector/Block/Adminhtml/Sales/Order/View/Tab/Xporderstate.php CHANGED
@@ -105,10 +105,14 @@ class Cdev_XPaymentsConnector_Block_Adminhtml_Sales_Order_View_Tab_Xporderstate
105
  $currentOrder = $this->getOrder();
106
  $currentPaymentCode = $currentOrder->getPayment()->getMethodInstance()->getCode();
107
  $isXpaymentsMethod = Mage::helper('xpaymentsconnector')->isXpaymentsMethod($currentPaymentCode);
 
 
108
  if($isXpaymentsMethod){
 
 
109
  if($this->txnid){
110
  list($this->transactionStatus, $this->transactionInfo[$currentOrder->getIncrementId()])
111
- = Mage::getModel('xpaymentsconnector/payment_cc')->requestPaymentInfo($this->txnid,false,true);
112
  if($this->transactionStatus){
113
  $this->transactionInfo[$currentOrder->getIncrementId()]['payment']['xpc_txnid'] = $this->txnid;
114
  }
@@ -120,7 +124,7 @@ class Cdev_XPaymentsConnector_Block_Adminhtml_Sales_Order_View_Tab_Xporderstate
120
  $txnid = $currentOrder->getData('xpc_txnid');
121
  if($txnid){
122
  list($transactionStatus, $transactionInfo)
123
- = Mage::getModel('xpaymentsconnector/payment_cc')->requestPaymentInfo($txnid, false, true);
124
  if ($transactionStatus) {
125
  $this->transactionInfo[$currentOrder->getIncrementId()] = $transactionInfo;
126
  $this->transactionInfo[$currentOrder->getIncrementId()]['payment']['xpc_txnid'] = $txnid;
@@ -142,11 +146,11 @@ class Cdev_XPaymentsConnector_Block_Adminhtml_Sales_Order_View_Tab_Xporderstate
142
  public function getCurrentActionAmount($xpOrderStateData){
143
  $actionAmount = 0.00;
144
  switch (true) {
145
- case ($xpOrderStateData['capturedAmountAvailGateway'] > 0 && $xpOrderStateData['refundedAmountAvailGateway'] < 0.01):
146
  $actionAmount = $xpOrderStateData['capturedAmountAvailGateway'];
147
  break;
148
- case ($xpOrderStateData['refundedAmountAvailGateway'] > 0 && $xpOrderStateData['capturedAmountAvailGateway'] < 0.01):
149
- $actionAmount = $xpOrderStateData['refundedAmountAvailGateway'];
150
  break;
151
  case ($actionAmount < 0.01 && $xpOrderStateData['chargedAmount'] > 0):
152
  $actionAmount = $xpOrderStateData['chargedAmount'];
105
  $currentOrder = $this->getOrder();
106
  $currentPaymentCode = $currentOrder->getPayment()->getMethodInstance()->getCode();
107
  $isXpaymentsMethod = Mage::helper('xpaymentsconnector')->isXpaymentsMethod($currentPaymentCode);
108
+
109
+
110
  if($isXpaymentsMethod){
111
+ $xpPaymentCcModel = Mage::getModel('xpaymentsconnector/payment_cc');
112
+
113
  if($this->txnid){
114
  list($this->transactionStatus, $this->transactionInfo[$currentOrder->getIncrementId()])
115
+ = $xpPaymentCcModel->requestPaymentInfo($this->txnid,false,true);
116
  if($this->transactionStatus){
117
  $this->transactionInfo[$currentOrder->getIncrementId()]['payment']['xpc_txnid'] = $this->txnid;
118
  }
124
  $txnid = $currentOrder->getData('xpc_txnid');
125
  if($txnid){
126
  list($transactionStatus, $transactionInfo)
127
+ = $xpPaymentCcModel->requestPaymentInfo($txnid, false, true);
128
  if ($transactionStatus) {
129
  $this->transactionInfo[$currentOrder->getIncrementId()] = $transactionInfo;
130
  $this->transactionInfo[$currentOrder->getIncrementId()]['payment']['xpc_txnid'] = $txnid;
146
  public function getCurrentActionAmount($xpOrderStateData){
147
  $actionAmount = 0.00;
148
  switch (true) {
149
+ case ($xpOrderStateData['capturedAmountAvail'] > 0 && $xpOrderStateData['refundedAmountAvail'] < 0.01):
150
  $actionAmount = $xpOrderStateData['capturedAmountAvailGateway'];
151
  break;
152
+ case ($xpOrderStateData['refundedAmountAvail'] > 0 && $xpOrderStateData['capturedAmountAvail'] < 0.01):
153
+ $actionAmount = $xpOrderStateData['refundedAmountAvail'];
154
  break;
155
  case ($actionAmount < 0.01 && $xpOrderStateData['chargedAmount'] > 0):
156
  $actionAmount = $xpOrderStateData['chargedAmount'];
app/code/community/Cdev/XPaymentsConnector/Block/Adminhtml/Usercards/Grid.php CHANGED
@@ -93,11 +93,11 @@ class Cdev_XPaymentsConnector_Block_Adminhtml_Usercards_Grid extends Mage_Adminh
93
  'escape' => true
94
  ));
95
 
96
- $this->addColumn('last_4_cc_num', array(
97
- 'header' => Mage::helper('xpaymentsconnector')->__('Card number (last 4 digits)'),
98
- 'index' => 'last_4_cc_num',
99
  'type' => 'text',
100
  'width' => '1',
 
101
  'escape' => true,
102
 
103
  ));
93
  'escape' => true
94
  ));
95
 
96
+ $this->addColumn('card_number', array(
97
+ 'header' => Mage::helper('xpaymentsconnector')->__('Card number'),
 
98
  'type' => 'text',
99
  'width' => '1',
100
+ 'renderer' => 'xpaymentsconnector/adminhtml_customer_edit_renderer_cardnumber',
101
  'escape' => true,
102
 
103
  ));
app/code/community/Cdev/XPaymentsConnector/Block/Checkout/Onepage/Success.php ADDED
@@ -0,0 +1,90 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
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
+ * @author Valerii Demidov
16
+ * @category Cdev
17
+ * @package Cdev_XPaymentsConnector
18
+ * @copyright (c) Qualiteam Software Ltd. <info@qtmsoft.com>. All rights reserved.
19
+ * @license http://opensource.org/licenses/osl-3.0.php Open Software License (OSL 3.0)
20
+ */
21
+
22
+ /**
23
+ * Rewrite for success block for failed order transaction.
24
+ */
25
+
26
+ class Cdev_XPaymentsConnector_Block_Checkout_Onepage_Success extends Mage_Checkout_Block_Onepage_Success
27
+ {
28
+
29
+ protected function _prepareLastOrder()
30
+ {
31
+ $orderId = Mage::getSingleton('checkout/session')->getLastOrderId();
32
+ if ($orderId) {
33
+ $order = Mage::getModel('sales/order')->load($orderId);
34
+ if ($order->getId()) {
35
+ $isVisible = !in_array($order->getState(),
36
+ Mage::getSingleton('sales/order_config')->getInvisibleOnFrontStates());
37
+ $this->addData(array(
38
+ 'is_order_visible' => $isVisible,
39
+ 'view_order_id' => $this->getUrl('sales/order/view/', array('order_id' => $orderId)),
40
+ 'print_url' => $this->getUrl('sales/order/print', array('order_id'=> $orderId)),
41
+ 'can_print_order' => $isVisible,
42
+ 'can_view_order' => Mage::getSingleton('customer/session')->isLoggedIn() && $isVisible,
43
+ 'order_id' => $order->getIncrementId(),
44
+ 'order_status'=> $order->getStatus(),
45
+ 'order_entity_id' => $orderId
46
+ ));
47
+ }
48
+ }
49
+ }
50
+
51
+ /**
52
+ * This function check (Is the order was successful?)
53
+ * @return bool
54
+ */
55
+ public function checkOrderSuccess()
56
+ {
57
+ if (Mage_Sales_Model_Order::STATE_CANCELED == $this->_getData('order_status')) {
58
+ return false;
59
+ }
60
+ return true;
61
+
62
+ }
63
+
64
+ /**
65
+ * @return string
66
+ */
67
+ public function getButtonUrl()
68
+ {
69
+ if ($this->getOrderId()) {
70
+ if (!$this->checkOrderSuccess()) {
71
+ return $this->getUrl('sales/order/reorder',
72
+ array('order_id' => $this->getData('order_entity_id'), '_secure' => true));
73
+ }
74
+ }
75
+ return $this->getUrl();
76
+ }
77
+
78
+ /**
79
+ * @return string
80
+ */
81
+ public function getButtonLabel()
82
+ {
83
+ if ($this->checkOrderSuccess()) {
84
+ return $this->__('Continue Shopping');
85
+ } else {
86
+ return $this->__('Return to checkout');
87
+ }
88
+ }
89
+
90
+ }
app/code/community/Cdev/XPaymentsConnector/Block/Customer/Cardadd.php CHANGED
@@ -48,8 +48,13 @@ class Cdev_XPaymentsConnector_Block_Customer_Cardadd extends Mage_Core_Block_Tem
48
  $refId = 'authorization';
49
  $updateSendData = array();
50
 
51
- $updateSendData['returnUrl'] = Mage::getUrl('xpaymentsconnector/customer/cardadd', array('order_refid' => $refId,'_secure' => true));
52
- $updateSendData['callbackUrl'] = Mage::getUrl('xpaymentsconnector/processing/callback', array('order_refid' => $refId, '_secure' => true));
 
 
 
 
 
53
  $updateSendData['refId'] = $refId;
54
  $updateSendData['template'] = 'magento_iframe';
55
 
48
  $refId = 'authorization';
49
  $updateSendData = array();
50
 
51
+ $customerSession = Mage::getSingleton('customer/session');
52
+ $customerId = $customerSession->getId();
53
+
54
+ $updateSendData['returnUrl'] = Mage::getUrl('xpaymentsconnector/customer/cardadd',
55
+ array('order_refid' => $refId,'customer_id' => $customerId,'_secure' => true));
56
+ $updateSendData['callbackUrl'] = Mage::getUrl('xpaymentsconnector/processing/callback',
57
+ array('order_refid' => $refId,'customer_id' => $customerId,'_secure' => true));
58
  $updateSendData['refId'] = $refId;
59
  $updateSendData['template'] = 'magento_iframe';
60
 
app/code/community/Cdev/XPaymentsConnector/Block/Info/Cc.php CHANGED
@@ -83,4 +83,14 @@ class Cdev_XPaymentsConnector_Block_Info_Cc extends Mage_Payment_Block_Info
83
  return preg_replace('/\/+$/Ss', '', $this->getMethod()->getConfig('xpay_url'))
84
  . '/admin.php?target=payment&amp;txnid=' . $this->getInfo()->getLastTransId();
85
  }
 
 
 
 
 
 
 
 
 
 
86
  }
83
  return preg_replace('/\/+$/Ss', '', $this->getMethod()->getConfig('xpay_url'))
84
  . '/admin.php?target=payment&amp;txnid=' . $this->getInfo()->getLastTransId();
85
  }
86
+
87
+ public function getCardData()
88
+ {
89
+ $order = $this->getInfo()->getMethodInstance()->getOrder();
90
+ $xpCardData = unserialize($order->getXpCardData());
91
+ $xpCardDataStr = Mage::helper('xpaymentsconnector')->prepareCardDataString($xpCardData);
92
+
93
+ return $xpCardDataStr;
94
+ }
95
+
96
  }
app/code/community/Cdev/XPaymentsConnector/Block/Info/Savedcards.php CHANGED
@@ -31,6 +31,9 @@ class Cdev_XPaymentsConnector_Block_Info_Savedcards extends Mage_Payment_Block_I
31
  $this->setTemplate('xpaymentsconnector/info/savedcards.phtml');
32
  }
33
 
 
 
 
34
  public function getAdminXpPaymentCard()
35
  {
36
  $admSession = Mage::getSingleton('adminhtml/session');
@@ -39,6 +42,10 @@ class Cdev_XPaymentsConnector_Block_Info_Savedcards extends Mage_Payment_Block_I
39
  return $adminhtmlPaymentCardNumber;
40
  }
41
 
 
 
 
 
42
  public function getCardData($adminhtmlPaymentCardNumber = NULL)
43
  {
44
  $cardData = array();
@@ -50,15 +57,20 @@ class Cdev_XPaymentsConnector_Block_Info_Savedcards extends Mage_Payment_Block_I
50
  } else {
51
  $cardData = $xpUserCardsModel->load($adminhtmlPaymentCardNumber)->getData();
52
  }
 
53
 
54
- return $cardData;
55
  }
56
 
 
 
 
 
57
  public function getOrderCardData($orderId)
58
  {
59
  $orderCardData = unserialize(Mage::getModel('sales/order')->load($orderId)->getData('xp_card_data'));
 
60
 
61
- return$orderCardData;
62
  }
63
-
64
  }
31
  $this->setTemplate('xpaymentsconnector/info/savedcards.phtml');
32
  }
33
 
34
+ /**
35
+ * @return mixed
36
+ */
37
  public function getAdminXpPaymentCard()
38
  {
39
  $admSession = Mage::getSingleton('adminhtml/session');
42
  return $adminhtmlPaymentCardNumber;
43
  }
44
 
45
+ /**
46
+ * @param null $adminhtmlPaymentCardNumber
47
+ * @return array|mixe
48
+ */
49
  public function getCardData($adminhtmlPaymentCardNumber = NULL)
50
  {
51
  $cardData = array();
57
  } else {
58
  $cardData = $xpUserCardsModel->load($adminhtmlPaymentCardNumber)->getData();
59
  }
60
+ $xpCardDataStr = Mage::helper('xpaymentsconnector')->prepareCardDataString($cardData);
61
 
62
+ return $xpCardDataStr;
63
  }
64
 
65
+ /**
66
+ * @param $orderId
67
+ * @return string
68
+ */
69
  public function getOrderCardData($orderId)
70
  {
71
  $orderCardData = unserialize(Mage::getModel('sales/order')->load($orderId)->getData('xp_card_data'));
72
+ $xpCardDataStr = Mage::helper('xpaymentsconnector')->prepareCardDataString($orderCardData);
73
 
74
+ return $xpCardDataStr;
75
  }
 
76
  }
app/code/community/Cdev/XPaymentsConnector/Helper/Data.php CHANGED
@@ -34,6 +34,7 @@ class Cdev_XPaymentsConnector_Helper_Data extends Mage_Payment_Helper_Data
34
  const SEMI_MONTH_TIME_STAMP = 1209600;
35
 
36
  const STATE_XPAYMENT_PENDING_PAYMENT = 'xp_pending_payment';
 
37
  const XPAYMENTS_LOG_FILE = 'xpayments.log';
38
  const RECURRING_ORDER_TYPE = 'recurring';
39
  const SIMPLE_ORDER_TYPE = 'simple';
@@ -156,23 +157,44 @@ class Cdev_XPaymentsConnector_Helper_Data extends Mage_Payment_Helper_Data
156
  }
157
 
158
  /**
159
- * This function return saved X-Payments response data.
160
- * Xpayment Prepare Order Mas(xpayment_prepare_order):
161
- * - prepare_order_id (int)
162
- * - xpayment_response
163
- * - token
164
- * return
165
- * @return bool or int
166
  */
167
- public function getXpaymentResponse()
168
  {
169
- $xpaymentPrepareOrder = Mage::getSingleton('checkout/session')->getData('xpayment_prepare_order');
170
- if ($xpaymentPrepareOrder && isset($xpaymentPrepareOrder['xpayment_response'])) {
171
- return $xpaymentPrepareOrder['xpayment_response'];
 
 
 
 
 
 
172
  }
173
  return false;
174
  }
175
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
176
  /**
177
  * This function return 'token' for X-Payments i-frame Url.
178
  * Xpayment Prepare Order Mas(xpayment_prepare_order):
@@ -651,7 +673,8 @@ class Cdev_XPaymentsConnector_Helper_Data extends Mage_Payment_Helper_Data
651
  return true;
652
  break;
653
  case($xpaymentCCModel->getCode()):
654
- $cardData = $this->getXpaymentResponse();
 
655
  if (!is_null($this->payDeferredProfileId)) {
656
  $this->resendPayDeferredRecurringTransaction($recurringProfile, $orderAmountData, $cardData);
657
  } else {
@@ -808,13 +831,15 @@ class Cdev_XPaymentsConnector_Helper_Data extends Mage_Payment_Helper_Data
808
  Mage::getSingleton('checkout/session')->addError($errorMessage);
809
  } else {
810
  $transactionStatusLabel = Mage::getModel('xpaymentsconnector/payment_cc')->getTransactionStatusLabels();
811
- $errorMessage = $this->__("Transaction status is '%s'. The subscription has been canceled.", $transactionStatusLabel[$response['status']]);
 
812
  Mage::getSingleton('checkout/session')->addError($errorMessage);
813
  }
814
  } else {
815
  $errorMessage = $this->__('The subscription has been canceled.');
816
  Mage::getSingleton('checkout/session')->addError($errorMessage);
817
  }
 
818
  }
819
 
820
  public function setRecurringProductDiscount()
@@ -822,10 +847,12 @@ class Cdev_XPaymentsConnector_Helper_Data extends Mage_Payment_Helper_Data
822
  $quote = Mage::getSingleton('checkout/session')->getQuote();
823
  $items = $quote->getAllVisibleItems();
824
  foreach ($items as $item) {
825
- $discount = $item->getDiscountAmount();
826
- $profile = $item->getProduct()->getRecurringProfile();
827
- $profile['discount_amount'] = $discount;
828
- $item->getProduct()->setRecurringProfile($profile)->save();
 
 
829
  }
830
  }
831
 
@@ -1000,4 +1027,41 @@ class Cdev_XPaymentsConnector_Helper_Data extends Mage_Payment_Helper_Data
1000
  return $orderAmountData;
1001
  }
1002
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1003
  }
34
  const SEMI_MONTH_TIME_STAMP = 1209600;
35
 
36
  const STATE_XPAYMENT_PENDING_PAYMENT = 'xp_pending_payment';
37
+
38
  const XPAYMENTS_LOG_FILE = 'xpayments.log';
39
  const RECURRING_ORDER_TYPE = 'recurring';
40
  const SIMPLE_ORDER_TYPE = 'simple';
157
  }
158
 
159
  /**
160
+ * This function return saved card data from X-Payments response.
161
+ * @return bool or array
 
 
 
 
 
162
  */
163
+ public function getXpCardData($quoteId = null)
164
  {
165
+ if (is_null($quoteId)) {
166
+ $currentCart = Mage::getModel('checkout/cart')->getQuote();
167
+ $quoteId = $currentCart->getEntityId();
168
+ }
169
+ $cartModel = Mage::getModel('sales/quote')->load($quoteId);
170
+ $cardData = $cartModel->getXpCardData();
171
+ if (!empty($cardData)) {
172
+ $cardData = unserialize($cardData);
173
+ return $cardData;
174
  }
175
  return false;
176
  }
177
 
178
+ /**
179
+ * This function save user card data to Quote
180
+ * @param null $quoteId
181
+ * @param array $cardData
182
+ * @return array|bool|mixed
183
+ */
184
+
185
+ public function saveXpCardData($quoteId = null,$cardData = array())
186
+ {
187
+ if (is_null($quoteId)) {
188
+ $currentCart = Mage::getModel('checkout/cart')->getQuote();
189
+ $quoteId = $currentCart->getEntityId();
190
+ }
191
+ $cartModel = Mage::getModel('sales/quote')->load($quoteId);
192
+ $cardData = serialize($cardData);
193
+ $cartModel->setXpCardData($cardData);
194
+
195
+ $cartModel->save();
196
+ }
197
+
198
  /**
199
  * This function return 'token' for X-Payments i-frame Url.
200
  * Xpayment Prepare Order Mas(xpayment_prepare_order):
673
  return true;
674
  break;
675
  case($xpaymentCCModel->getCode()):
676
+ $quoteId = Mage::app()->getRequest()->getParam('quote_id');
677
+ $cardData = $this->getXpCardData($quoteId);
678
  if (!is_null($this->payDeferredProfileId)) {
679
  $this->resendPayDeferredRecurringTransaction($recurringProfile, $orderAmountData, $cardData);
680
  } else {
831
  Mage::getSingleton('checkout/session')->addError($errorMessage);
832
  } else {
833
  $transactionStatusLabel = Mage::getModel('xpaymentsconnector/payment_cc')->getTransactionStatusLabels();
834
+ $errorMessage = $this->__("Transaction status is '%s'. The subscription has been canceled.",
835
+ $transactionStatusLabel[$response['status']]);
836
  Mage::getSingleton('checkout/session')->addError($errorMessage);
837
  }
838
  } else {
839
  $errorMessage = $this->__('The subscription has been canceled.');
840
  Mage::getSingleton('checkout/session')->addError($errorMessage);
841
  }
842
+ Mage::getSingleton('checkout/session')->addNotice($this->getFailureCheckoutNoticeHelper());
843
  }
844
 
845
  public function setRecurringProductDiscount()
847
  $quote = Mage::getSingleton('checkout/session')->getQuote();
848
  $items = $quote->getAllVisibleItems();
849
  foreach ($items as $item) {
850
+ if($item->getIsNominal()){
851
+ $discount = $item->getDiscountAmount();
852
+ $profile = $item->getProduct()->getRecurringProfile();
853
+ $profile['discount_amount'] = $discount;
854
+ $item->getProduct()->setRecurringProfile($profile)->save();
855
+ }
856
  }
857
  }
858
 
1027
  return $orderAmountData;
1028
  }
1029
 
1030
+ /**
1031
+ * @return string
1032
+ */
1033
+ public function getFailureCheckoutNoticeHelper()
1034
+ {
1035
+ $noticeMessage = "Did you enter your billing info correctly? Here are a few things to double check:<br />".
1036
+ "1. Ensure your billing address matches the address on your credit or debit card statement;<br />".
1037
+ "2. Check your card verification code (CVV) for accuracy;<br />".
1038
+ "3. Confirm you've entered the correct expiration date.";
1039
+
1040
+ $noticeHelper = $this->__($noticeMessage);
1041
+
1042
+ return $noticeHelper;
1043
+ }
1044
+
1045
+ /**
1046
+ * @param array $xpCardData
1047
+ * @return string
1048
+ */
1049
+ public function prepareCardDataString($xpCardData)
1050
+ {
1051
+ $xpCardDataStr = '';
1052
+ if (!empty($xpCardData)) {
1053
+ $last4 = (isset($xpCardData['last4'])) ? $xpCardData['last4'] : $xpCardData['last_4_cc_num'];
1054
+
1055
+ $xpCardDataStr = $this->__('%s******%s',
1056
+ $xpCardData['first6'],
1057
+ $last4
1058
+ );
1059
+ if (!empty($xpCardData['expire_month']) && !empty($xpCardData['expire_year'])) {
1060
+ $xpCardDataStr .= $this->__(' ( %s/%s )', $xpCardData['expire_month'], $xpCardData['expire_year']);
1061
+ }
1062
+ }
1063
+
1064
+ return $xpCardDataStr;
1065
+ }
1066
+
1067
  }
app/code/community/Cdev/XPaymentsConnector/Model/Observer.php CHANGED
@@ -97,26 +97,28 @@ class Cdev_XPaymentsConnector_Model_Observer extends Mage_CatalogInventory_Model
97
  $useIframe = Mage::getStoreConfig('payment/xpayments/use_iframe');
98
  $quote = $observer->getQuote();
99
 
 
 
100
  if ($paymentMethod == $xpaymentPaymentCode) {
101
  $order->setCanSendNewEmailFlag(false);
102
 
103
- $request = $xpHelper->getXpaymentResponse();
104
 
105
 
106
  if ($useIframe) {
107
  /*update order table*/
108
- $order->setData('xpc_txnid', $request['txnId']);
109
- $order->setData('xp_card_data', serialize($request));
110
  $order->save();
111
 
112
- $result = $paymentCcModel->updateOrderByXpaymentResponse($order->getId(), $request['txnId']);
113
  if ($result['success']) {
114
  /* save credit card to user profile */
115
- $response = $xpHelper->getXpaymentResponse();
116
- $paymentCcModel->saveUserCard($response);
117
  /* end (save payment card) */
118
  } else {
119
  $checkoutSession->addError($result['error_message']);
 
120
  }
121
 
122
  }
@@ -135,9 +137,11 @@ class Cdev_XPaymentsConnector_Model_Observer extends Mage_CatalogInventory_Model
135
  $result = $paymentCcModel->updateOrderByXpaymentResponse($order->getId(), $response['response']['transaction_id']);
136
  if (!$result['success']) {
137
  $checkoutSession->addError($result['error_message']);
 
138
  }
139
  } else {
140
  $checkoutSession->addError($response['error_message']);
 
141
  }
142
 
143
  }
97
  $useIframe = Mage::getStoreConfig('payment/xpayments/use_iframe');
98
  $quote = $observer->getQuote();
99
 
100
+ $noticeHelper = $xpHelper->getFailureCheckoutNoticeHelper();
101
+
102
  if ($paymentMethod == $xpaymentPaymentCode) {
103
  $order->setCanSendNewEmailFlag(false);
104
 
105
+ $cardData = $xpHelper->getXpCardData();
106
 
107
 
108
  if ($useIframe) {
109
  /*update order table*/
110
+ $order->setData('xpc_txnid', $cardData['txnId']);
 
111
  $order->save();
112
 
113
+ $result = $paymentCcModel->updateOrderByXpaymentResponse($order->getId(), $cardData['txnId']);
114
  if ($result['success']) {
115
  /* save credit card to user profile */
116
+ $xpCardData = unserialize($quote->getXpCardData());
117
+ $paymentCcModel->saveUserCard($xpCardData);
118
  /* end (save payment card) */
119
  } else {
120
  $checkoutSession->addError($result['error_message']);
121
+ $checkoutSession->addNotice($noticeHelper);
122
  }
123
 
124
  }
137
  $result = $paymentCcModel->updateOrderByXpaymentResponse($order->getId(), $response['response']['transaction_id']);
138
  if (!$result['success']) {
139
  $checkoutSession->addError($result['error_message']);
140
+ $checkoutSession->addNotice($noticeHelper);
141
  }
142
  } else {
143
  $checkoutSession->addError($response['error_message']);
144
+ $checkoutSession->addNotice($noticeHelper);
145
  }
146
 
147
  }
app/code/community/Cdev/XPaymentsConnector/Model/Payment/Cc.php CHANGED
@@ -121,8 +121,7 @@ class Cdev_XPaymentsConnector_Model_Payment_Cc extends Mage_Payment_Model_Method
121
  const TRAN_TYPE_GET_INFO = 'getInfo';
122
  const TRAN_TYPE_ACCEPT = 'accept';
123
  const TRAN_TYPE_DECLINE = 'decline';
124
- const XP_API = '1.2';
125
- const XP_API_NEW = '1.2'; // change to 1.3 in a feature
126
 
127
  /**
128
  * unique internal payment method identifier
@@ -499,6 +498,12 @@ class Cdev_XPaymentsConnector_Model_Payment_Cc extends Mage_Payment_Model_Method
499
 
500
  // Prepare cart
501
  $cart = $this->prepareCart($order, $refId);
 
 
 
 
 
 
502
  $xpHelper = Mage::helper('xpaymentsconnector');
503
 
504
  // Data to send to X-Payments
@@ -506,10 +511,12 @@ class Cdev_XPaymentsConnector_Model_Payment_Cc extends Mage_Payment_Model_Method
506
  'confId' => intval($this->getPaymentConfiguration()->getData('confid')),
507
  'refId' => $refId,
508
  'cart' => $cart,
509
- 'returnUrl' => Mage::getUrl('xpaymentsconnector/processing/iframereturn', array('order_id' => $refId,'_secure' => true)),
510
- 'callbackUrl' => Mage::getUrl('xpaymentsconnector/processing/callback', array('order_id' => $refId,'_secure' => true)),
 
 
511
  'saveCard' => 'Y',
512
- 'api_version' => self::XP_API_NEW
513
  );
514
 
515
  list($status, $response) = $this->request('payment', 'init', $data);
@@ -953,8 +960,6 @@ class Cdev_XPaymentsConnector_Model_Payment_Cc extends Mage_Payment_Model_Method
953
  unset($users, $user);
954
  }
955
 
956
- $forceTransactionType = ($this->isForceAuth()) ? 'A' : 'S';
957
-
958
  $result = array(
959
  'billingAddress' => array(
960
  'email' => $order->getCustomerEmail(),
@@ -970,10 +975,13 @@ class Cdev_XPaymentsConnector_Model_Payment_Cc extends Mage_Payment_Model_Method
970
  'totalCost' => 0.00,
971
  'description' => 'Order #' . $refId,
972
  'merchantEmail' => $memail,
973
- 'forceTransactionType' => $forceTransactionType,
974
  'login' => $order->getCustomerEmail(),
975
  );
976
 
 
 
 
 
977
  $namePrefixes = array(
978
  'billing' => 'getBillingAddress',
979
  'shipping' => 'getShippingAddress',
@@ -1042,6 +1050,7 @@ class Cdev_XPaymentsConnector_Model_Payment_Cc extends Mage_Payment_Model_Method
1042
  return $result;
1043
  }
1044
 
 
1045
  /**
1046
  * Get currency code
1047
  *
@@ -1068,7 +1077,7 @@ class Cdev_XPaymentsConnector_Model_Payment_Cc extends Mage_Payment_Model_Method
1068
  * @see ____func_see____
1069
  * @since 1.0.0
1070
  */
1071
- protected function convertHash2XML(array $data, $level = 0)
1072
  {
1073
  $xml = '';
1074
 
@@ -1198,7 +1207,7 @@ class Cdev_XPaymentsConnector_Model_Payment_Cc extends Mage_Payment_Model_Method
1198
  * @see ____func_see____
1199
  * @since 1.0.0
1200
  */
1201
- protected function encrypt($data)
1202
  {
1203
  // Preprocess
1204
  srand(time());
@@ -1373,6 +1382,8 @@ class Cdev_XPaymentsConnector_Model_Payment_Cc extends Mage_Payment_Model_Method
1373
  $xPaymentDataResponse['success'] = true;
1374
 
1375
  $checkoutData = Mage::getSingleton('checkout/session');
 
 
1376
  $xpHelper = Mage::helper('xpaymentsconnector');
1377
  $refId = $xpHelper->getOrderKey();
1378
 
@@ -1387,16 +1398,28 @@ class Cdev_XPaymentsConnector_Model_Payment_Cc extends Mage_Payment_Model_Method
1387
  $cart = $this->iframePrepareCart($checkoutData, false, $isCardAuthorizePayment);
1388
  }
1389
 
 
 
 
 
 
 
 
 
 
 
 
1390
  // Data to send to X-Payments
1391
  $sendData = array(
1392
  'confId' => intval($this->getPaymentConfiguration()->getData('confid')),
1393
  'refId' => $refId,
1394
  'cart' => $cart,
1395
- 'returnUrl' => Mage::getUrl('xpaymentsconnector/processing/iframereturn', array('order_refid' => $refId,'_secure' => true)),
1396
- 'callbackUrl' => Mage::getUrl('xpaymentsconnector/processing/callback', array('order_refid' => $refId,'_secure' => true)),
 
 
1397
  );
1398
 
1399
-
1400
  foreach($updateSendData as $sendDataKey => $sendDataValue){
1401
  $sendData[$sendDataKey] = $updateSendData[$sendDataKey];
1402
  }
@@ -1544,7 +1567,6 @@ class Cdev_XPaymentsConnector_Model_Payment_Cc extends Mage_Payment_Model_Method
1544
  /*initial fee check*/
1545
  $issetRecurringProduct = $xpHelper->checkIssetRecurringOrder();
1546
 
1547
- $forceTransactionType = ($this->isForceAuth()) ? 'A' : 'S';
1548
  $minimalPayment = false;
1549
 
1550
  $quote->collectTotals();
@@ -1625,7 +1647,11 @@ class Cdev_XPaymentsConnector_Model_Payment_Cc extends Mage_Payment_Model_Method
1625
  $result['discount'] = number_format($discount, 2, '.', '');
1626
 
1627
  $result['merchantEmail'] = $customerEmail;
1628
- $result['forceTransactionType'] = $forceTransactionType;
 
 
 
 
1629
  $result['login'] = $customerEmail;
1630
 
1631
 
@@ -1805,6 +1831,11 @@ class Cdev_XPaymentsConnector_Model_Payment_Cc extends Mage_Payment_Model_Method
1805
  );
1806
  $order->setStatus(Mage_Sales_Model_Order::STATE_PROCESSING);
1807
  }
 
 
 
 
 
1808
  $order->save();
1809
  if(method_exists($order,'sendNewOrderEmail')){
1810
  $order->sendNewOrderEmail();
@@ -1827,7 +1858,10 @@ class Cdev_XPaymentsConnector_Model_Payment_Cc extends Mage_Payment_Model_Method
1827
  $result['success'] = false;
1828
  if(!empty($response['payment']['error_message'])){
1829
  $result['error_message'] = $xpaymentsHelper->__('%s. The order has been canceled.',$response['payment']['error_message']);
1830
- }else{
 
 
 
1831
  $transactionStatusLabel = $this->getTransactionStatusLabels();
1832
  $result['error_message'] = $xpaymentsHelper->__('Transaction status is "%s". The order has been canceled.',$transactionStatusLabel[$response['payment']['status']]);
1833
  }
@@ -1853,14 +1887,21 @@ class Cdev_XPaymentsConnector_Model_Payment_Cc extends Mage_Payment_Model_Method
1853
  {
1854
  if ($xpHelper->isNeedToSaveUserCard()) {
1855
  $usercards = Mage::getModel('xpaymentsconnector/usercards');
 
1856
  $usercards->setData(array(
1857
- 'user_id' => $customer->getId(),
1858
  'txnId' => $cardData['txnId'],
1859
- 'last_4_cc_num' => $cardData['last_4_cc_num'],
1860
- 'card_type' => $cardData['card_type'],
1861
- 'usage_type' => $usageType)
 
 
 
 
1862
  );
 
1863
  $xpHelper->userCardSaved();
 
1864
  return $usercards->save();
1865
  }
1866
  }
@@ -1876,10 +1917,6 @@ class Cdev_XPaymentsConnector_Model_Payment_Cc extends Mage_Payment_Model_Method
1876
  $data['target'] = 'payment';
1877
  list($status, $response) = $this->request('payment', $action, $data);
1878
 
1879
- //****************stop*****************//
1880
- /*if ( $status && (!empty($response['error_message']))) {
1881
- Mage::throwException(Mage::helper('sales')->__($response['error_message']));
1882
- }*/
1883
  return $response;
1884
 
1885
  }
@@ -1896,7 +1933,8 @@ class Cdev_XPaymentsConnector_Model_Payment_Cc extends Mage_Payment_Model_Method
1896
  public function capture(Varien_Object $payment, $amount)
1897
  {
1898
  if (!$this->canCapture()) {
1899
- Mage::throwException(Mage::helper('payment')->__('Capture action is not available.'));
 
1900
  }
1901
 
1902
  $order = $this->getOrder();
@@ -1923,7 +1961,8 @@ class Cdev_XPaymentsConnector_Model_Payment_Cc extends Mage_Payment_Model_Method
1923
  {
1924
 
1925
  if (!$this->canRefund()) {
1926
- Mage::throwException(Mage::helper('payment')->__('Refund action is not available.'));
 
1927
  }
1928
 
1929
  /*processing during create invoice*/
@@ -1966,7 +2005,7 @@ class Cdev_XPaymentsConnector_Model_Payment_Cc extends Mage_Payment_Model_Method
1966
  $xpHelper->setPrepareOrderType();
1967
 
1968
  //add txnid for all subscriptions
1969
- $cardData = $xpHelper->getXpaymentResponse();
1970
 
1971
  $useIframe = Mage::getStoreConfig('payment/xpayments/use_iframe');
1972
 
@@ -2079,7 +2118,7 @@ class Cdev_XPaymentsConnector_Model_Payment_Cc extends Mage_Payment_Model_Method
2079
  public function createFirstRecurringOrder(Mage_Payment_Model_Recurring_Profile $profile)
2080
  {
2081
  $xpHelper = Mage::helper('xpaymentsconnector');
2082
- $cardData = $xpHelper->getXpaymentResponse();
2083
  $orderId = $xpHelper->createOrder($profile, $isFirstRecurringOrder = true);
2084
 
2085
  /*update order by card data*/
@@ -2102,6 +2141,7 @@ class Cdev_XPaymentsConnector_Model_Payment_Cc extends Mage_Payment_Model_Method
2102
 
2103
  if (!$result['success']) {
2104
  Mage::getSingleton('checkout/session')->addError($result['error_message']);
 
2105
  $profile->setState(Mage_Sales_Model_Recurring_Profile::STATE_CANCELED);
2106
  } else {
2107
  $profile->setState(Mage_Sales_Model_Recurring_Profile::STATE_ACTIVE);
@@ -2123,5 +2163,48 @@ class Cdev_XPaymentsConnector_Model_Payment_Cc extends Mage_Payment_Model_Method
2123
 
2124
  }
2125
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
2126
  }
2127
 
121
  const TRAN_TYPE_GET_INFO = 'getInfo';
122
  const TRAN_TYPE_ACCEPT = 'accept';
123
  const TRAN_TYPE_DECLINE = 'decline';
124
+ const XP_API = '1.5';
 
125
 
126
  /**
127
  * unique internal payment method identifier
498
 
499
  // Prepare cart
500
  $cart = $this->prepareCart($order, $refId);
501
+
502
+ // save card data for x-payment 'callback approve' response
503
+ $quoteId = $order->getQuoteId();
504
+ $cartModel = Mage::getModel('sales/quote')->load($quoteId);
505
+ $cartModel->setData('xp_callback_approve',serialize($cart))->save();
506
+
507
  $xpHelper = Mage::helper('xpaymentsconnector');
508
 
509
  // Data to send to X-Payments
511
  'confId' => intval($this->getPaymentConfiguration()->getData('confid')),
512
  'refId' => $refId,
513
  'cart' => $cart,
514
+ 'returnUrl' => Mage::getUrl('xpaymentsconnector/processing/return',
515
+ array('order_refid' => $refId,'quote_id' => $quoteId,'_secure' => true)),
516
+ 'callbackUrl' => Mage::getUrl('xpaymentsconnector/processing/callback',
517
+ array('order_refid' => $refId,'quote_id' => $quoteId,'_secure' => true)),
518
  'saveCard' => 'Y',
519
+ 'api_version' => self::XP_API
520
  );
521
 
522
  list($status, $response) = $this->request('payment', 'init', $data);
960
  unset($users, $user);
961
  }
962
 
 
 
963
  $result = array(
964
  'billingAddress' => array(
965
  'email' => $order->getCustomerEmail(),
975
  'totalCost' => 0.00,
976
  'description' => 'Order #' . $refId,
977
  'merchantEmail' => $memail,
 
978
  'login' => $order->getCustomerEmail(),
979
  );
980
 
981
+ if ($this->isForceAuth()) {
982
+ $result['forceTransactionType'] = 'A';
983
+ }
984
+
985
  $namePrefixes = array(
986
  'billing' => 'getBillingAddress',
987
  'shipping' => 'getShippingAddress',
1050
  return $result;
1051
  }
1052
 
1053
+
1054
  /**
1055
  * Get currency code
1056
  *
1077
  * @see ____func_see____
1078
  * @since 1.0.0
1079
  */
1080
+ public function convertHash2XML(array $data, $level = 0)
1081
  {
1082
  $xml = '';
1083
 
1207
  * @see ____func_see____
1208
  * @since 1.0.0
1209
  */
1210
+ public function encrypt($data)
1211
  {
1212
  // Preprocess
1213
  srand(time());
1382
  $xPaymentDataResponse['success'] = true;
1383
 
1384
  $checkoutData = Mage::getSingleton('checkout/session');
1385
+
1386
+
1387
  $xpHelper = Mage::helper('xpaymentsconnector');
1388
  $refId = $xpHelper->getOrderKey();
1389
 
1398
  $cart = $this->iframePrepareCart($checkoutData, false, $isCardAuthorizePayment);
1399
  }
1400
 
1401
+ $currentCart = Mage::getModel('checkout/cart')->getQuote();
1402
+ $quoteId = $currentCart->getEntityId();
1403
+ if ($isCardAuthorizePayment) {
1404
+ $customerSession = Mage::getSingleton('customer/session')->getCustomer();
1405
+ $customerSession->setData("xp_buffer",serialize($cart))->save();
1406
+ } else {
1407
+ // save card data for x-payment 'callback approve' response
1408
+ $cartModel = Mage::getModel('sales/quote')->load($quoteId);
1409
+ $cartModel->setData('xp_callback_approve',serialize($cart))->save();
1410
+ }
1411
+
1412
  // Data to send to X-Payments
1413
  $sendData = array(
1414
  'confId' => intval($this->getPaymentConfiguration()->getData('confid')),
1415
  'refId' => $refId,
1416
  'cart' => $cart,
1417
+ 'returnUrl' => Mage::getUrl('xpaymentsconnector/processing/return',
1418
+ array('order_refid' => $refId,'quote_id' => $quoteId,'_secure' => true)),
1419
+ 'callbackUrl' => Mage::getUrl('xpaymentsconnector/processing/callback',
1420
+ array('order_refid' => $refId,'quote_id' => $quoteId,'_secure' => true)),
1421
  );
1422
 
 
1423
  foreach($updateSendData as $sendDataKey => $sendDataValue){
1424
  $sendData[$sendDataKey] = $updateSendData[$sendDataKey];
1425
  }
1567
  /*initial fee check*/
1568
  $issetRecurringProduct = $xpHelper->checkIssetRecurringOrder();
1569
 
 
1570
  $minimalPayment = false;
1571
 
1572
  $quote->collectTotals();
1647
  $result['discount'] = number_format($discount, 2, '.', '');
1648
 
1649
  $result['merchantEmail'] = $customerEmail;
1650
+
1651
+ if ($this->isForceAuth()) {
1652
+ $result['forceTransactionType'] = 'A';
1653
+ }
1654
+
1655
  $result['login'] = $customerEmail;
1656
 
1657
 
1831
  );
1832
  $order->setStatus(Mage_Sales_Model_Order::STATE_PROCESSING);
1833
  }
1834
+
1835
+ if(isset($response['payment']['isFraudStatus']) && $response['payment']['isFraudStatus']){
1836
+ $order->setStatus('fraud');
1837
+ }
1838
+
1839
  $order->save();
1840
  if(method_exists($order,'sendNewOrderEmail')){
1841
  $order->sendNewOrderEmail();
1858
  $result['success'] = false;
1859
  if(!empty($response['payment']['error_message'])){
1860
  $result['error_message'] = $xpaymentsHelper->__('%s. The order has been canceled.',$response['payment']['error_message']);
1861
+ } elseif (!empty($response['error_message'])) {
1862
+ $result['error_message'] = $xpaymentsHelper->__('%s. The order has been canceled.',$response['error_message']);
1863
+ }
1864
+ else{
1865
  $transactionStatusLabel = $this->getTransactionStatusLabels();
1866
  $result['error_message'] = $xpaymentsHelper->__('Transaction status is "%s". The order has been canceled.',$transactionStatusLabel[$response['payment']['status']]);
1867
  }
1887
  {
1888
  if ($xpHelper->isNeedToSaveUserCard()) {
1889
  $usercards = Mage::getModel('xpaymentsconnector/usercards');
1890
+
1891
  $usercards->setData(array(
1892
+ 'user_id' => $customer->getId(),
1893
  'txnId' => $cardData['txnId'],
1894
+ 'last_4_cc_num' => $cardData['last4'],
1895
+ 'first6' => $cardData['first6'],
1896
+ 'card_type' => $cardData['type'],
1897
+ 'expire_month' => $cardData['expire_month'],
1898
+ 'expire_year' => $cardData['expire_year'],
1899
+ 'usage_type' => $usageType,)
1900
+
1901
  );
1902
+
1903
  $xpHelper->userCardSaved();
1904
+
1905
  return $usercards->save();
1906
  }
1907
  }
1917
  $data['target'] = 'payment';
1918
  list($status, $response) = $this->request('payment', $action, $data);
1919
 
 
 
 
 
1920
  return $response;
1921
 
1922
  }
1933
  public function capture(Varien_Object $payment, $amount)
1934
  {
1935
  if (!$this->canCapture()) {
1936
+ $xpaymentsHelper = Mage::helper('xpaymentsconnector');
1937
+ Mage::throwException($xpaymentsHelper->__('Capture action is not available.'));
1938
  }
1939
 
1940
  $order = $this->getOrder();
1961
  {
1962
 
1963
  if (!$this->canRefund()) {
1964
+ $xpaymentsHelper = Mage::helper('xpaymentsconnector');
1965
+ Mage::throwException($xpaymentsHelper->__('Refund action is not available.'));
1966
  }
1967
 
1968
  /*processing during create invoice*/
2005
  $xpHelper->setPrepareOrderType();
2006
 
2007
  //add txnid for all subscriptions
2008
+ $cardData = $xpHelper->getXpCardData();
2009
 
2010
  $useIframe = Mage::getStoreConfig('payment/xpayments/use_iframe');
2011
 
2118
  public function createFirstRecurringOrder(Mage_Payment_Model_Recurring_Profile $profile)
2119
  {
2120
  $xpHelper = Mage::helper('xpaymentsconnector');
2121
+ $cardData = $xpHelper->getXpCardData();
2122
  $orderId = $xpHelper->createOrder($profile, $isFirstRecurringOrder = true);
2123
 
2124
  /*update order by card data*/
2141
 
2142
  if (!$result['success']) {
2143
  Mage::getSingleton('checkout/session')->addError($result['error_message']);
2144
+ Mage::getSingleton('checkout/session')->addNotice($xpHelper->getFailureCheckoutNoticeHelper());
2145
  $profile->setState(Mage_Sales_Model_Recurring_Profile::STATE_CANCELED);
2146
  } else {
2147
  $profile->setState(Mage_Sales_Model_Recurring_Profile::STATE_ACTIVE);
2163
 
2164
  }
2165
 
2166
+ /**
2167
+ * Processing for fraud transaction
2168
+ * @param $action (decline,accept)
2169
+ */
2170
+ public function sendFraudRequest($xpcTxnid,$action)
2171
+ {
2172
+ $status = false;
2173
+ try {
2174
+ $admSession = Mage::getSingleton('adminhtml/session');
2175
+ $xpaymentsHelper = Mage::helper('xpaymentsconnector');
2176
+
2177
+ $data = array(
2178
+ 'txnId' => $xpcTxnid
2179
+ );
2180
+
2181
+ list($status, $response) = $this->request('payment', $action, $data);
2182
+
2183
+ if ($status) {
2184
+ $message = $xpaymentsHelper->__('\'%s fraud transaction\' was successful!',ucfirst($action));
2185
+ if (isset($response['message']) && !empty($response['message'])) {
2186
+ $message .= $xpaymentsHelper->__(' ( X-Payment server response: %s )',$response['message']);
2187
+ }
2188
+ $admSession->addNotice($message);
2189
+
2190
+ } else {
2191
+ $message = $xpaymentsHelper->__('\'%s fraud transaction\' was failed!',ucfirst($action));
2192
+ if (isset($response['message']) && !empty($response['message'])) {
2193
+ $message .= $xpaymentsHelper->__(' ( X-Payment server response: %s )',$response['message']);
2194
+ }
2195
+ $admSession->addError($message);
2196
+ }
2197
+
2198
+ }
2199
+ catch (Mage_Core_Exception $e) {
2200
+ $admSession->addError($e->getMessage());
2201
+ }
2202
+ catch (Exception $e) {
2203
+ $admSession->addError($xpaymentsHelper->__('Transaction to the X-Payment server was broken!'));
2204
+ }
2205
+
2206
+ return $status;
2207
+
2208
+ }
2209
  }
2210
 
app/code/community/Cdev/XPaymentsConnector/Model/Payment/Savedcards.php CHANGED
@@ -159,11 +159,14 @@ class Cdev_XPaymentsConnector_Model_Payment_Savedcards extends Mage_Payment_Mode
159
  updateOrderByXpaymentResponse($orderId, $response['response']['transaction_id']);
160
  if (!$result['success']) {
161
  Mage::getSingleton('checkout/session')->addError($result['error_message']);
 
 
162
  $profile->setState(Mage_Sales_Model_Recurring_Profile::STATE_CANCELED);
163
  } else {
164
  // additional subscription profile setting for success transaction
165
  $newTransactionDate = new Zend_Date(time());
166
- $profile->setXpSuccessTransactionDate($newTransactionDate->toString(Varien_Date::DATETIME_INTERNAL_FORMAT));
 
167
  $profile->setXpCountSuccessTransaction(1);
168
 
169
  $profile->setState(Mage_Sales_Model_Recurring_Profile::STATE_ACTIVE);
@@ -171,6 +174,7 @@ class Cdev_XPaymentsConnector_Model_Payment_Savedcards extends Mage_Payment_Mode
171
 
172
  } else {
173
  Mage::getSingleton('checkout/session')->addError($response['error_message']);
 
174
  $profile->setState(Mage_Sales_Model_Recurring_Profile::STATE_CANCELED);
175
  }
176
  }
159
  updateOrderByXpaymentResponse($orderId, $response['response']['transaction_id']);
160
  if (!$result['success']) {
161
  Mage::getSingleton('checkout/session')->addError($result['error_message']);
162
+ Mage::getSingleton('checkout/session')
163
+ ->addNotice($xpHelper->getFailureCheckoutNoticeHelper());
164
  $profile->setState(Mage_Sales_Model_Recurring_Profile::STATE_CANCELED);
165
  } else {
166
  // additional subscription profile setting for success transaction
167
  $newTransactionDate = new Zend_Date(time());
168
+ $profile->setXpSuccessTransactionDate($newTransactionDate
169
+ ->toString(Varien_Date::DATETIME_INTERNAL_FORMAT));
170
  $profile->setXpCountSuccessTransaction(1);
171
 
172
  $profile->setState(Mage_Sales_Model_Recurring_Profile::STATE_ACTIVE);
174
 
175
  } else {
176
  Mage::getSingleton('checkout/session')->addError($response['error_message']);
177
+ Mage::getSingleton('checkout/session')->addNotice($xpHelper->getFailureCheckoutNoticeHelper());
178
  $profile->setState(Mage_Sales_Model_Recurring_Profile::STATE_CANCELED);
179
  }
180
  }
app/code/community/Cdev/XPaymentsConnector/controllers/Adminhtml/Sales/Order/FraudController.php ADDED
@@ -0,0 +1,91 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
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
+ * @author Valerii Demidov
16
+ * @category Cdev
17
+ * @package Cdev_XPaymentsConnector
18
+ * @copyright (c) Qualiteam Software Ltd. <info@qtmsoft.com>. All rights reserved.
19
+ * @license http://opensource.org/licenses/osl-3.0.php Open Software License (OSL 3.0)
20
+ */
21
+
22
+ /**
23
+ *
24
+ * Class Mage_Adminhtml_Sales_OrderController
25
+ */
26
+ class Cdev_XPaymentsConnector_Adminhtml_Sales_Order_FraudController extends Mage_Adminhtml_Controller_Action
27
+ {
28
+
29
+ public function acceptAction()
30
+ {
31
+
32
+ if ($order = $this->_initOrder()) {
33
+
34
+ $xpcTxnid = $order->getXpcTxnid();
35
+ if(!empty($xpcTxnid)){
36
+ $xpaymentCCModel = Mage::getModel('xpaymentsconnector/payment_cc');
37
+ $result = $xpaymentCCModel->sendFraudRequest($xpcTxnid,'accept');
38
+
39
+ if ($result) {
40
+ $order->setStatus(Mage_Sales_Model_Order::STATE_PROCESSING);
41
+ $order->save();
42
+ }
43
+ }
44
+
45
+
46
+ $this->_redirect('*/sales_order/view', array('order_id' => $order->getId()));
47
+ }
48
+ }
49
+
50
+ public function declineAction()
51
+ {
52
+
53
+ if ($order = $this->_initOrder()) {
54
+ $xpcTxnid = $order->getXpcTxnid();
55
+ if(!empty($xpcTxnid)){
56
+ $xpaymentCCModel = Mage::getModel('xpaymentsconnector/payment_cc');
57
+ $result = $xpaymentCCModel->sendFraudRequest($xpcTxnid,'decline');
58
+
59
+ if ($result) {
60
+ $order->cancel();
61
+ $order->save();
62
+ }
63
+ }
64
+
65
+ $this->_redirect('*/sales_order/view', array('order_id' => $order->getId()));
66
+ }
67
+ }
68
+
69
+
70
+ /**
71
+ * Initialize order model instance
72
+ *
73
+ * @return Mage_Sales_Model_Order || false
74
+ */
75
+ protected function _initOrder()
76
+ {
77
+ $id = $this->getRequest()->getParam('order_id');
78
+ $order = Mage::getModel('sales/order')->load($id);
79
+
80
+ if (!$order->getId()) {
81
+ $this->_getSession()->addError($this->__('This order no longer exists.'));
82
+ $this->_redirect('*/*/');
83
+ $this->setFlag('', self::FLAG_NO_DISPATCH, true);
84
+ return false;
85
+ }
86
+ Mage::register('sales_order', $order);
87
+ Mage::register('current_order', $order);
88
+ return $order;
89
+ }
90
+
91
+ }
app/code/community/Cdev/XPaymentsConnector/controllers/CustomerController.php CHANGED
@@ -105,9 +105,10 @@ class Cdev_XPaymentsConnector_CustomerController extends Mage_Core_Controller_Fr
105
  Mage::throwException('Missing or invalid transaction ID');
106
  }
107
 
108
- $CCPaymentModel = Mage::getModel("xpaymentsconnector/payment_cc");
 
109
  $transactionStatusLabel = $CCPaymentModel->getTransactionStatusLabels();
110
- $resultMessage = "";
111
 
112
  list($status, $response) = $CCPaymentModel->requestPaymentInfo($request['txnId']);
113
 
@@ -115,22 +116,29 @@ class Cdev_XPaymentsConnector_CustomerController extends Mage_Core_Controller_Fr
115
  !$status
116
  || !in_array($response['status'], array($CCPaymentModel::AUTH_STATUS, $CCPaymentModel::CHARGED_STATUS))
117
  ) {
118
- $errorMessage = $this->__("Transaction status is '%s'. Card authorization has been cancelled.",$transactionStatusLabel[$response['status']]);
119
- Mage::getSingleton("customer/session")->addError($errorMessage);
120
- $resultMessage = "Card authorization has been cancelled.";
 
 
 
 
 
121
  }else{
 
 
 
122
  // save user card
123
- Mage::getSingleton("checkout/session")->setData("user_card_save",true);
124
- $newCardData = $CCPaymentModel->saveUserCard($request);
125
- Mage::getSingleton("checkout/session")->unsetData("user_card_save");
126
- $resultMessage = $this->__("Payment card has been added successfully!");
127
 
128
- Mage::getSingleton("customer/session")->addSuccess( $this->__("You created card number '%s'. Transaction status is '%s'.",$newCardData->getData("xp_card_id"),$transactionStatusLabel[$response['status']]));
129
  }
130
 
131
  $this->getResponse()->setBody(
132
  $this->getLayout()
133
- ->createBlock('xpaymentsconnector/customer_success')->setData("result_message",$resultMessage)
134
  ->toHtml()
135
  );
136
  return;
105
  Mage::throwException('Missing or invalid transaction ID');
106
  }
107
 
108
+
109
+ $CCPaymentModel = Mage::getModel('xpaymentsconnector/payment_cc');
110
  $transactionStatusLabel = $CCPaymentModel->getTransactionStatusLabels();
111
+ $resultMessage = '';
112
 
113
  list($status, $response) = $CCPaymentModel->requestPaymentInfo($request['txnId']);
114
 
116
  !$status
117
  || !in_array($response['status'], array($CCPaymentModel::AUTH_STATUS, $CCPaymentModel::CHARGED_STATUS))
118
  ) {
119
+ if (isset($transactionStatusLabel[$response['status']])) {
120
+ $errorMessage = $this->__("Transaction status is '%s'. Card authorization has been cancelled.",$transactionStatusLabel[$response['status']]);
121
+ } else {
122
+ $errorMessage = $this->__('%s. Card authorization has been cancelled.',$response['error_message']);
123
+ }
124
+
125
+ Mage::getSingleton('customer/session')->addError($errorMessage);
126
+ $resultMessage = 'Card authorization has been cancelled.';
127
  }else{
128
+ $customer = Mage::getSingleton('customer/session')->getCustomer();
129
+ $cardData = unserialize($customer->getData('xp_buffer'));
130
+
131
  // save user card
132
+ Mage::getSingleton('checkout/session')->setData('user_card_save',true);
133
+ $newCardData = $CCPaymentModel->saveUserCard($cardData);
134
+ $resultMessage = $this->__('Payment card has been added successfully!');
 
135
 
136
+ Mage::getSingleton('customer/session')->addSuccess( $this->__("You created card number '%s'. Transaction status is '%s'.",$newCardData->getData('xp_card_id'),$transactionStatusLabel[$response['status']]));
137
  }
138
 
139
  $this->getResponse()->setBody(
140
  $this->getLayout()
141
+ ->createBlock('xpaymentsconnector/customer_success')->setData('result_message',$resultMessage)
142
  ->toHtml()
143
  );
144
  return;
app/code/community/Cdev/XPaymentsConnector/controllers/ProcessingController.php CHANGED
@@ -21,7 +21,7 @@
21
 
22
  /**
23
  * Process payment controller
24
- *
25
  * @package Cdev_XPaymentsConnector
26
  * @see ____class_see____
27
  * @since 1.0.0
@@ -30,7 +30,7 @@ class Cdev_XPaymentsConnector_ProcessingController extends Mage_Core_Controller_
30
  {
31
  /**
32
  * Get checkout session
33
- *
34
  * @return object
35
  * @access protected
36
  * @see ____func_see____
@@ -49,7 +49,7 @@ class Cdev_XPaymentsConnector_ProcessingController extends Mage_Core_Controller_
49
 
50
  /**
51
  * Callback request
52
- *
53
  * @return void
54
  * @access public
55
  * @see ____func_see____
@@ -57,8 +57,8 @@ class Cdev_XPaymentsConnector_ProcessingController extends Mage_Core_Controller_
57
  */
58
  public function callbackAction()
59
  {
60
- // Check request type
61
 
 
62
  if (!$this->getRequest()->isPost()) {
63
  Mage::throwException('Wrong request type.');
64
  }
@@ -68,8 +68,10 @@ class Cdev_XPaymentsConnector_ProcessingController extends Mage_Core_Controller_
68
  '/^.+$/Ss',
69
  explode(',', Mage::getStoreConfig('xpaymentsconnector/settings/xpay_allowed_ip_addresses'))
70
  );
 
71
  $api = Mage::getModel('xpaymentsconnector/payment_cc');
72
 
 
73
  if ($ips) {
74
  $helper = Mage::helper('core/http');
75
  if (method_exists($helper, 'getRemoteAddr')) {
@@ -109,6 +111,57 @@ class Cdev_XPaymentsConnector_ProcessingController extends Mage_Core_Controller_
109
  $xpaymentsHelper::XPAYMENTS_LOG_FILE,
110
  true);
111
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
112
 
113
  // Check order
114
  $order = Mage::getModel('sales/order')->loadByAttribute('xpc_txnid', $request['txnId']);
@@ -140,54 +193,12 @@ class Cdev_XPaymentsConnector_ProcessingController extends Mage_Core_Controller_
140
 
141
  }
142
 
143
- //TODO: need process 'charge response' from 'x-payment server'
144
- /*
145
- elseif (isset($request['updateData']['parentId'])) {
146
-
147
- $userCardModel = Mage::getModel('xpaymentsconnector/usercards');
148
- $userCardCollection = $userCardModel
149
- ->getCollection()
150
- ->addFieldToSelect('user_id')
151
- ->addFieldToSelect('last_4_cc_num')
152
- ->addFieldToSelect('card_type')
153
- ->addFilter('txnId', $request['updateData']['parentId']);
154
- if ($userCardCollection->getSize()) {
155
- $newPrepaidCard = $userCardCollection->getFirstItem()->getData();
156
- $newPrepaidCard['txnId'] = $request['txnId'];
157
- $newPrepaidCard['usage_type'] = Cdev_XPaymentsConnector_Model_Usercards::BALANCE_CARD;
158
- $newPrepaidCard['amount'] = $request['updateData']['amount'];
159
- $userCardModel->setData($newPrepaidCard);
160
- $userCardModel->save();
161
- } else {
162
- $order = Mage::getModel('sales/order')->loadByAttribute('xpc_txnid', $request['updateData']['parentId']);
163
- if ($order->getId()) {
164
- $newPrepaidCard = array();
165
- $newPrepaidCard['user_id'] = $order->getData('customer_id');
166
- $newPrepaidCard['txnId'] = $request['txnId'];
167
- $newPrepaidCard['usage_type'] = Cdev_XPaymentsConnector_Model_Usercards::BALANCE_CARD;
168
- $newPrepaidCard['amount'] = $request['updateData']['amount'];
169
-
170
- $parentXpaymentResponseData = unserialize($order->getData('xp_card_data'));
171
- $newPrepaidCard['last_4_cc_num'] = $parentXpaymentResponseData['last_4_cc_num'];
172
- $newPrepaidCard['card_type'] = $parentXpaymentResponseData['card_type'];
173
-
174
- $userCardModel->setData($newPrepaidCard);
175
- $userCardModel->save();
176
- } else {
177
-
178
- $errorMessage = "Unable to create 'prepaid cart' because there is no corresponding order with the number of tokens -".$request['txnId'];
179
- $api->getAPIError($errorMessage);
180
-
181
- }
182
- }
183
- }
184
- */
185
  exit(0);
186
  }
187
 
188
  /**
189
- * Payment is success
190
- *
191
  * @return void
192
  * @access public
193
  * @see ____func_see____
@@ -201,7 +212,7 @@ class Cdev_XPaymentsConnector_ProcessingController extends Mage_Core_Controller_
201
 
202
  /**
203
  * Payment is cancelled
204
- *
205
  * @return void
206
  * @access public
207
  * @see ____func_see____
@@ -219,7 +230,7 @@ class Cdev_XPaymentsConnector_ProcessingController extends Mage_Core_Controller_
219
 
220
  /**
221
  * Process cancel by customer (from X-Payments interface)
222
- *
223
  * @return void
224
  * @access protected
225
  * @see ____func_see____
@@ -235,7 +246,7 @@ class Cdev_XPaymentsConnector_ProcessingController extends Mage_Core_Controller_
235
  Mage::throwException('Missing or invalid order ID');
236
  }
237
 
238
- // Check order
239
  $order = Mage::getModel('sales/order')->loadByIncrementId(intval($query['refId']));
240
  $profileIds = Mage::getSingleton('checkout/session')->getLastRecurringProfileIds();
241
 
@@ -289,14 +300,14 @@ class Cdev_XPaymentsConnector_ProcessingController extends Mage_Core_Controller_
289
  }
290
 
291
  /**
292
- * Restore cart content on payment failure
293
- *
294
  * @return void
295
  * @access puplic
296
  * @see ____func_see____
297
  * @since 1.0.6
298
  */
299
- public function restoreCart($order)
300
  {
301
 
302
  $session = Mage::getSingleton('checkout/session');
@@ -348,7 +359,9 @@ class Cdev_XPaymentsConnector_ProcessingController extends Mage_Core_Controller_
348
  $result = $api->sendHandshakeRequest($order);
349
 
350
  if (!$result) {
351
- $this->_getCheckout()->addError('Failed to complete the payment transaction. Please use another payment method or contact the store administrator.');
 
 
352
 
353
  } else {
354
 
@@ -367,9 +380,8 @@ class Cdev_XPaymentsConnector_ProcessingController extends Mage_Core_Controller_
367
 
368
  return;
369
  }
370
-
371
-
372
  }
 
373
  $profileIds = Mage::getSingleton('checkout/session')->getLastRecurringProfileIds();
374
  if(!empty($profileIds)){
375
  $this->loadLayout();
@@ -393,6 +405,7 @@ class Cdev_XPaymentsConnector_ProcessingController extends Mage_Core_Controller_
393
  $this->_redirect('checkout/cart');
394
  }
395
 
 
396
  /**
397
  * Return customer from X-Payments
398
  *
@@ -401,7 +414,6 @@ class Cdev_XPaymentsConnector_ProcessingController extends Mage_Core_Controller_
401
  * @see ____func_see____
402
  * @since 1.0.0
403
  */
404
-
405
  public function returnAction()
406
  {
407
  if ($this->processCancel()) {
@@ -419,103 +431,6 @@ class Cdev_XPaymentsConnector_ProcessingController extends Mage_Core_Controller_
419
  Mage::throwException('Request doesn\'t contain POST elements.');
420
  }
421
 
422
- // Check order id
423
- if (empty($request['refId'])) {
424
- Mage::throwException('Missing or invalid order ID');
425
- }
426
-
427
- // Check order
428
- $order = Mage::getModel('sales/order')->loadByIncrementId(intval($request['refId']));
429
-
430
- if (!$order->getId()) {
431
- Mage::throwException('Order not found');
432
- }
433
-
434
- $refId = $request['refId'];
435
-
436
- /*make a temporary entry for cardholder data*/
437
- Mage::helper('xpaymentsconnector')->savePaymentResponse($request);
438
-
439
- if($order->getId()){
440
- /*update order table*/
441
- $customOrderId = Mage::helper('xpaymentsconnector')->getOrderKey();
442
- $order->setData('xpc_txnid', $request['txnId']);
443
- $order->setData('xp_card_data', serialize($request));
444
- $order->save();
445
- /*end (update order table)*/
446
-
447
- $result = Mage::getModel('xpaymentsconnector/payment_cc')->updateOrderByXpaymentResponse($order->getId(),$request['txnId'],$refId);
448
-
449
- if ($result['success']) {
450
- /* save credit card to user profile */
451
- Mage::getModel('xpaymentsconnector/payment_cc')->saveUserCard($request);
452
- /* end (save payment card) */
453
- $this->getResponse()->setBody(
454
- $this->getLayout()
455
- ->createBlock('xpaymentsconnector/success')
456
- ->setOrder($order)
457
- ->toHtml()
458
- );
459
- return;
460
-
461
- } else {
462
-
463
- if ($order->canCancel()) {
464
-
465
- $this->restoreCart($order);
466
-
467
- $order->cancel();
468
- $order->addStatusToHistory(
469
- Mage_Sales_Model_Order::STATE_CANCELED,
470
- Mage::helper('xpaymentsconnector')->__('The payment has been canceled')
471
- );
472
- $order->save();
473
- }
474
-
475
- $this->getResponse()->setBody(
476
- $this->getLayout()
477
- ->createBlock('xpaymentsconnector/cancel')
478
- ->setOrder($order)
479
- ->toHtml()
480
- );
481
- return;
482
-
483
- }
484
-
485
- $this->restoreCart($order);
486
-
487
- $this->getResponse()->setBody(
488
- $this->getLayout()
489
- ->createBlock('xpaymentsconnector/failure')
490
- ->setOrder($order)
491
- ->toHtml()
492
- );
493
- }
494
- }
495
-
496
-
497
- /**
498
- * Iframe return customer from X-Payments
499
- *
500
- * @return void
501
- * @access public
502
- * @see ____func_see____
503
- * @since 1.0.0
504
- */
505
- public function iframereturnAction()
506
- {
507
- if ($this->processCancel()) {
508
- return;
509
- }
510
-
511
- // Check request type
512
- if (!$this->getRequest()->isPost()) {
513
- Mage::throwException('Wrong request type.');
514
- }
515
-
516
- // Check request data
517
- $request = $this->getRequest()->getPost();
518
-
519
  $xpHelper = Mage::helper('xpaymentsconnector');
520
 
521
  if (empty($request)) {
@@ -531,25 +446,32 @@ class Cdev_XPaymentsConnector_ProcessingController extends Mage_Core_Controller_
531
  $xpHelper->savePaymentResponse($request);
532
  }
533
 
534
- $cardData = $xpHelper->getXpaymentResponse();
535
-
536
  $useIframe = Mage::getStoreConfig('payment/xpayments/use_iframe');
537
  $checkoutSession = Mage::getSingleton('checkout/session');
538
  $orderIncrementId = $checkoutSession->getLastRealOrderId();
539
  if(!$useIframe){
 
 
 
540
  $profileIds = $checkoutSession->getLastRecurringProfileIds();
541
  $paymentCcModel = Mage::getModel('xpaymentsconnector/payment_cc');
542
 
543
  if ($orderIncrementId) {
544
  $order = Mage::getModel('sales/order')->loadByIncrementId($orderIncrementId);
 
 
 
545
  $orderId = $order->getId();
546
- $order->setData('xp_card_data', serialize($request));
547
- $order->save();
548
  $refId = $request['refId'];
549
 
 
 
 
 
550
  $result = $paymentCcModel->updateOrderByXpaymentResponse($orderId,$cardData['txnId'],$refId);
551
  if (!$result['success']) {
552
  $checkoutSession->addError($result['error_message']);
 
553
  }else{
554
  if (is_null($profileIds)) {
555
  $paymentCcModel->saveUserCard($cardData);
@@ -559,6 +481,10 @@ class Cdev_XPaymentsConnector_ProcessingController extends Mage_Core_Controller_
559
  }
560
 
561
  if($profileIds){
 
 
 
 
562
  foreach($profileIds as $profileId){
563
  $profile = Mage::getModel('sales/recurring_profile')->load($profileId);
564
 
21
 
22
  /**
23
  * Process payment controller
24
+ *
25
  * @package Cdev_XPaymentsConnector
26
  * @see ____class_see____
27
  * @since 1.0.0
30
  {
31
  /**
32
  * Get checkout session
33
+ *
34
  * @return object
35
  * @access protected
36
  * @see ____func_see____
49
 
50
  /**
51
  * Callback request
52
+ *
53
  * @return void
54
  * @access public
55
  * @see ____func_see____
57
  */
58
  public function callbackAction()
59
  {
 
60
 
61
+ // Check request type
62
  if (!$this->getRequest()->isPost()) {
63
  Mage::throwException('Wrong request type.');
64
  }
68
  '/^.+$/Ss',
69
  explode(',', Mage::getStoreConfig('xpaymentsconnector/settings/xpay_allowed_ip_addresses'))
70
  );
71
+
72
  $api = Mage::getModel('xpaymentsconnector/payment_cc');
73
 
74
+
75
  if ($ips) {
76
  $helper = Mage::helper('core/http');
77
  if (method_exists($helper, 'getRemoteAddr')) {
111
  $xpaymentsHelper::XPAYMENTS_LOG_FILE,
112
  true);
113
 
114
+ $quoteId = Mage::app()->getRequest()->getParam('quote_id');
115
+ $customerId = Mage::app()->getRequest()->getParam('customer_id');
116
+
117
+ if (isset($request['action'])) {
118
+ switch ($request['action']) {
119
+ case 'check_cart':
120
+
121
+ if ($quoteId) {
122
+ $cartModel = Mage::getModel('sales/quote')->load($quoteId);
123
+ $xpCallbackApprove = $cartModel->getData('xp_callback_approve');
124
+ } elseif ($customerId) {
125
+ $customer = Mage::getModel('customer/customer')->load($customerId);
126
+ $xpCallbackApprove = $customer->getData('xp_buffer');
127
+ }
128
+
129
+ $cartData = array();
130
+ if (!empty($xpCallbackApprove)) {
131
+ $cartData = unserialize($xpCallbackApprove);
132
+ }
133
+
134
+ $cartData['ref_id'] = $request['txnId'];
135
+ Mage::log(sprintf('X-Payment approve response: %s', serialize($cartData)),
136
+ null,
137
+ $xpaymentsHelper::XPAYMENTS_LOG_FILE,
138
+ true);
139
+
140
+ $xmlCallbackApprove = $api->convertHash2XML($cartData);
141
+ // Encrypt
142
+ $xmlEncrypt = $api->encrypt($xmlCallbackApprove);
143
+ echo $xmlEncrypt;
144
+
145
+ break;
146
+
147
+ case 'callback':
148
+ if (isset($request['updateData']) && isset($request['updateData']['maskedCardData'])) {
149
+ $cardData = $request['updateData']['maskedCardData'];
150
+ $cardData['txnId'] = $request['txnId'];
151
+
152
+ if ($quoteId) {
153
+ $xpaymentsHelper->saveXpCardData($quoteId,$cardData);
154
+ } elseif ($customerId) {
155
+ $customer = Mage::getModel('customer/customer')->load($customerId);
156
+ $customer->setData('xp_buffer', serialize($cardData));
157
+ $customer->save();
158
+ }
159
+ }
160
+
161
+ break;
162
+ }
163
+
164
+ }
165
 
166
  // Check order
167
  $order = Mage::getModel('sales/order')->loadByAttribute('xpc_txnid', $request['txnId']);
193
 
194
  }
195
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
196
  exit(0);
197
  }
198
 
199
  /**
200
+ * Payment is success
201
+ *
202
  * @return void
203
  * @access public
204
  * @see ____func_see____
212
 
213
  /**
214
  * Payment is cancelled
215
+ *
216
  * @return void
217
  * @access public
218
  * @see ____func_see____
230
 
231
  /**
232
  * Process cancel by customer (from X-Payments interface)
233
+ *
234
  * @return void
235
  * @access protected
236
  * @see ____func_see____
246
  Mage::throwException('Missing or invalid order ID');
247
  }
248
 
249
+ // Check order
250
  $order = Mage::getModel('sales/order')->loadByIncrementId(intval($query['refId']));
251
  $profileIds = Mage::getSingleton('checkout/session')->getLastRecurringProfileIds();
252
 
300
  }
301
 
302
  /**
303
+ * Restore cart content on payment failure
304
+ *
305
  * @return void
306
  * @access puplic
307
  * @see ____func_see____
308
  * @since 1.0.6
309
  */
310
+ public function restoreCart($order)
311
  {
312
 
313
  $session = Mage::getSingleton('checkout/session');
359
  $result = $api->sendHandshakeRequest($order);
360
 
361
  if (!$result) {
362
+ $failedCompleteMessage = 'Failed to complete the payment transaction.'
363
+ .' Please use another payment method or contact the store administrator.';
364
+ $this->_getCheckout()->addError($failedCompleteMessage);
365
 
366
  } else {
367
 
380
 
381
  return;
382
  }
 
 
383
  }
384
+
385
  $profileIds = Mage::getSingleton('checkout/session')->getLastRecurringProfileIds();
386
  if(!empty($profileIds)){
387
  $this->loadLayout();
405
  $this->_redirect('checkout/cart');
406
  }
407
 
408
+
409
  /**
410
  * Return customer from X-Payments
411
  *
414
  * @see ____func_see____
415
  * @since 1.0.0
416
  */
 
417
  public function returnAction()
418
  {
419
  if ($this->processCancel()) {
431
  Mage::throwException('Request doesn\'t contain POST elements.');
432
  }
433
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
434
  $xpHelper = Mage::helper('xpaymentsconnector');
435
 
436
  if (empty($request)) {
446
  $xpHelper->savePaymentResponse($request);
447
  }
448
 
 
 
449
  $useIframe = Mage::getStoreConfig('payment/xpayments/use_iframe');
450
  $checkoutSession = Mage::getSingleton('checkout/session');
451
  $orderIncrementId = $checkoutSession->getLastRealOrderId();
452
  if(!$useIframe){
453
+ $quoteId = Mage::app()->getRequest()->getParam('quote_id');
454
+ $cardData = array();
455
+
456
  $profileIds = $checkoutSession->getLastRecurringProfileIds();
457
  $paymentCcModel = Mage::getModel('xpaymentsconnector/payment_cc');
458
 
459
  if ($orderIncrementId) {
460
  $order = Mage::getModel('sales/order')->loadByIncrementId($orderIncrementId);
461
+ $quoteId = $order->getQuoteId();
462
+ $cardData = $xpHelper->getXpCardData($quoteId);
463
+
464
  $orderId = $order->getId();
 
 
465
  $refId = $request['refId'];
466
 
467
+ // save card data to order from quote
468
+ $order->setData('xp_card_data', serialize($cardData));
469
+ $order->save();
470
+
471
  $result = $paymentCcModel->updateOrderByXpaymentResponse($orderId,$cardData['txnId'],$refId);
472
  if (!$result['success']) {
473
  $checkoutSession->addError($result['error_message']);
474
+ $checkoutSession->addNotice($xpHelper->getFailureCheckoutNoticeHelper());
475
  }else{
476
  if (is_null($profileIds)) {
477
  $paymentCcModel->saveUserCard($cardData);
481
  }
482
 
483
  if($profileIds){
484
+ if (empty($cardData)) {
485
+ $cardData = $xpHelper->getXpCardData($quoteId);
486
+ }
487
+
488
  foreach($profileIds as $profileId){
489
  $profile = Mage::getModel('sales/recurring_profile')->load($profileId);
490
 
app/code/community/Cdev/XPaymentsConnector/etc/config.xml CHANGED
@@ -23,7 +23,7 @@
23
  <config>
24
  <modules>
25
  <Cdev_XPaymentsConnector>
26
- <version>1.1.1</version>
27
  </Cdev_XPaymentsConnector>
28
  </modules>
29
  <global>
@@ -81,6 +81,13 @@
81
  </connection>
82
  </xpaymentsconnector_read>
83
  </resources>
 
 
 
 
 
 
 
84
  <blocks>
85
  <customer>
86
  <rewrite>
@@ -93,8 +100,14 @@
93
  <checkout>
94
  <rewrite>
95
  <onepage_payment_methods>Cdev_XPaymentsConnector_Block_Form_Container</onepage_payment_methods>
 
96
  </rewrite>
97
  </checkout>
 
 
 
 
 
98
  </blocks>
99
  <events>
100
  <sales_order_payment_cancel_invoice>
@@ -433,6 +446,7 @@
433
  <settings>
434
  <activationstatus>0</activationstatus>
435
  <xpay_minimum_payment_recurring_amount>0.5</xpay_minimum_payment_recurring_amount>
 
436
  </settings>
437
  </xpaymentsconnector>
438
  </default>
23
  <config>
24
  <modules>
25
  <Cdev_XPaymentsConnector>
26
+ <version>1.1.2</version>
27
  </Cdev_XPaymentsConnector>
28
  </modules>
29
  <global>
81
  </connection>
82
  </xpaymentsconnector_read>
83
  </resources>
84
+ <fieldsets>
85
+ <sales_convert_quote>
86
+ <xp_card_data>
87
+ <to_order>*</to_order>
88
+ </xp_card_data>
89
+ </sales_convert_quote>
90
+ </fieldsets>
91
  <blocks>
92
  <customer>
93
  <rewrite>
100
  <checkout>
101
  <rewrite>
102
  <onepage_payment_methods>Cdev_XPaymentsConnector_Block_Form_Container</onepage_payment_methods>
103
+ <onepage_success>Cdev_XPaymentsConnector_Block_Checkout_Onepage_Success</onepage_success>
104
  </rewrite>
105
  </checkout>
106
+ <adminhtml>
107
+ <rewrite>
108
+ <sales_order_view>Cdev_XPaymentsConnector_Block_Adminhtml_Sales_Order_View</sales_order_view>
109
+ </rewrite>
110
+ </adminhtml>
111
  </blocks>
112
  <events>
113
  <sales_order_payment_cancel_invoice>
446
  <settings>
447
  <activationstatus>0</activationstatus>
448
  <xpay_minimum_payment_recurring_amount>0.5</xpay_minimum_payment_recurring_amount>
449
+ <xpay_currency>USD</xpay_currency>
450
  </settings>
451
  </xpaymentsconnector>
452
  </default>
app/code/community/Cdev/XPaymentsConnector/sql/xpaymentsconnector_setup/mysql4-upgrade-1.1.1-1.1.2.php ADDED
@@ -0,0 +1,101 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
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
+ * @author Valerii Demidov
16
+ * @category Cdev
17
+ * @package Cdev_XPaymentsConnector
18
+ * @copyright (c) Qualiteam Software Ltd. <info@qtmsoft.com>. All rights reserved.
19
+ * @license http://opensource.org/licenses/osl-3.0.php Open Software License (OSL 3.0)
20
+ */
21
+
22
+ /**
23
+ * Add columns for storage 'x-payment callback' data;
24
+ * Update card data table by additional params;
25
+ * Update 'add x-payment card' functionality.
26
+ */
27
+
28
+ $installer = $this;
29
+
30
+ $quoteTable = $installer->getTable('sales/quote');
31
+
32
+
33
+ $installer->getConnection()->addColumn($quoteTable, 'xp_callback_approve', array(
34
+ 'type' => Varien_Db_Ddl_Table::TYPE_TEXT,
35
+ 'comment' => 'Response for approve callback from X-payment server in serialize format'
36
+ ));
37
+
38
+ $installer->getConnection()->addColumn($quoteTable, 'xp_card_data', array(
39
+ 'type' => Varien_Db_Ddl_Table::TYPE_TEXT,
40
+ 'comment' => 'User card data in serialize format'
41
+ ));
42
+
43
+ $userCardTable = $installer->getTable('xpayment_user_cards');
44
+
45
+ $installer->getConnection()
46
+ ->addColumn($userCardTable,'first6',array(
47
+ 'nullable' => true,
48
+ 'type' => Varien_Db_Ddl_Table::TYPE_TEXT,
49
+ 'length' => '6',
50
+ 'comment' => 'The first 6 digits of the payment card'
51
+ ));
52
+
53
+
54
+ $installer->getConnection()->addColumn($userCardTable,'expire_month',array(
55
+ 'nullable' => true,
56
+ 'type' => Varien_Db_Ddl_Table::TYPE_TEXT,
57
+ 'length' => '2',
58
+ 'comment' => 'Expiration month of the payment card'
59
+ ));
60
+
61
+ $installer->getConnection()->addColumn($userCardTable,'expire_year',array(
62
+ 'nullable' => true,
63
+ 'type' => Varien_Db_Ddl_Table::TYPE_TEXT,
64
+ 'length' => '5',
65
+ 'comment' => 'Expiration year of the payment card'
66
+ ));
67
+
68
+ $installer->getConnection()->changeColumn($userCardTable, 'last_4_cc_num', 'last_4_cc_num', array(
69
+ 'nullable' => true,
70
+ 'type' => Varien_Db_Ddl_Table::TYPE_TEXT,
71
+ 'length' => '4',
72
+ 'comment' => 'The last 4 digits of the payment card'
73
+ ));
74
+
75
+
76
+ // add attribute to customer entity for 'add x-payment card' functionality
77
+ $setup = new Mage_Eav_Model_Entity_Setup('core_setup');
78
+
79
+ $entityTypeId = $setup->getEntityTypeId('customer');
80
+ $attributeSetId = $setup->getDefaultAttributeSetId($entityTypeId);
81
+ $attributeGroupId = $setup->getDefaultAttributeGroupId($entityTypeId, $attributeSetId);
82
+
83
+ $setup->removeAttribute('catalog_product','xp_callback_approve');
84
+
85
+ $setup->addAttribute('customer', 'xp_buffer', array(
86
+ 'input' => 'text',
87
+ 'type' => 'text',
88
+ 'label' => 'Responses from X-payment server in serialize format',
89
+ 'visible' => 0,
90
+ 'required' => 0,
91
+ 'user_defined' => 1,
92
+ ));
93
+
94
+ $setup->addAttributeToGroup(
95
+ $entityTypeId,
96
+ $attributeSetId,
97
+ $attributeGroupId,
98
+ 'xp_buffer'
99
+ );
100
+
101
+ $installer->endSetup();
app/design/adminhtml/default/default/template/xpaymentsconnector/form/savedcards.phtml CHANGED
@@ -21,27 +21,38 @@
21
  ?>
22
  <?php
23
  /**
24
- * @see Cdev_XPaymentsConnector_Block_Info_Savedcards
25
  */
26
  ?>
27
  <?php $_code = $this->getMethodCode() ?>
28
  <?php $userAdminhtmlCreditCardsList = $this->getAdminhtmlUserCreditCardsList(); ?>
29
  <?php
30
  $admSession = Mage::getSingleton('adminhtml/session');
31
- $cardSelected = $admSession->getData("xp_payment_card");
32
  ?>
33
 
34
  <?php if( $userAdminhtmlCreditCardsList && ($userAdminhtmlCreditCardsList->getSize()>0)):?>
35
  <ul id="payment_form_<?php echo $_code ?>" class="adminhtml-payment-form" style="display:none;">
36
  <?php foreach($userAdminhtmlCreditCardsList as $key => $creditCard):?>
37
- <?php $checked = ($creditCard->getData("xp_card_id") == $cardSelected)?"checked":"";
 
 
38
  ?>
39
 
40
  <li>
41
  <span class="input-box">
42
- <input disabled="" type="radio" <?php echo $checked;?> title="<?php echo "'".$creditCard->getData("card_type")."'"; ?> - credit card" class="input-radio x-payment-card validate-one-required-by-name" id="<?php echo $_code."_".$creditCard->getData("xp_card_id"); ?>" name="payment[xp_payment_card]" value="<?php echo $creditCard->getData("xp_card_id");?>" />
43
- <label for="<?php echo $_code."_".$creditCard->getData("xp_card_id") ?>">Use card ( **<?php echo $creditCard->getData("last_4_cc_num");?> )</label>
44
- <span class="x-payment-card-logo <?php echo strtolower($creditCard->getData("card_type")) ?>" title="<?php echo $creditCard->getData("card_type");?>"></span>
 
 
 
 
 
 
 
 
 
45
  </span>
46
 
47
  </li>
21
  ?>
22
  <?php
23
  /**
24
+ * @see Cdev_XPaymentsConnector_Block_Form_Savedcards
25
  */
26
  ?>
27
  <?php $_code = $this->getMethodCode() ?>
28
  <?php $userAdminhtmlCreditCardsList = $this->getAdminhtmlUserCreditCardsList(); ?>
29
  <?php
30
  $admSession = Mage::getSingleton('adminhtml/session');
31
+ $cardSelected = $admSession->getData('xp_payment_card');
32
  ?>
33
 
34
  <?php if( $userAdminhtmlCreditCardsList && ($userAdminhtmlCreditCardsList->getSize()>0)):?>
35
  <ul id="payment_form_<?php echo $_code ?>" class="adminhtml-payment-form" style="display:none;">
36
  <?php foreach($userAdminhtmlCreditCardsList as $key => $creditCard):?>
37
+ <?php
38
+ $xpCardDataStr = Mage::helper('xpaymentsconnector')->prepareCardDataString($creditCard->getData());
39
+ $checked = ($creditCard->getXpCardId() == $cardSelected) ? "checked" : "";
40
  ?>
41
 
42
  <li>
43
  <span class="input-box">
44
+ <input disabled="" type="radio" <?php echo $checked;?>
45
+ title="<?php echo "'".$creditCard->getCardType()."'"; ?> - credit card"
46
+ class="input-radio x-payment-card validate-one-required-by-name"
47
+ id="<?php echo $_code."_".$creditCard->getXpCardId(); ?>"
48
+ name="payment[xp_payment_card]"
49
+ value="<?php echo $creditCard->getXpCardId();?>" />
50
+ <label for="<?php echo $_code."_".$creditCard->getData("xp_card_id") ?>">
51
+ <?php echo $this->__('Use card - %s', $xpCardDataStr); ?>
52
+ </label>
53
+
54
+ <span class="x-payment-card-logo <?php echo strtolower($creditCard->getCardType()) ?>"
55
+ title="<?php echo $creditCard->getCardType();?>"></span>
56
  </span>
57
 
58
  </li>
app/design/adminhtml/default/default/template/xpaymentsconnector/info/cc.phtml CHANGED
@@ -25,17 +25,23 @@
25
  */
26
  ?>
27
  <?php
28
- $orderCardData = unserialize($this->getInfo()->getMethodInstance()->getOrder()->getData("xp_card_data"));
29
  ?>
 
30
  <?php echo $this->getMethod()->getTitle(); ?>
31
  <br />
32
- <?php if ($this->getInfo()->getLastTransId() == '') { ?>
33
- <!--em><?php echo Mage::helper('xpaymentsconnector')->__('You will be redirected to X-Payments website when you place an order.'); ?></em-->
34
- <?php } else { ?>
35
- <?php echo Mage::helper('xpaymentsconnector')->__('X-Payments Transaction ID: %s', $this->htmlEscape($this->getInfo()->getLastTransId())); ?><br />
36
- <?php } ?>
 
 
 
 
 
37
  <?php if(!empty($orderCardData)): ?>
38
  <span id="x-payment-prepaid-card-info">
39
- <?php echo $this->__("For current order we used your payment card (**%s)",$orderCardData['last_4_cc_num']); ?>
40
  </span>
41
  <?php endif;?>
25
  */
26
  ?>
27
  <?php
28
+ $orderCardData = $this->getCardData();
29
  ?>
30
+
31
  <?php echo $this->getMethod()->getTitle(); ?>
32
  <br />
33
+ <?php if ($this->getInfo()->getLastTransId() == ''): ?>
34
+ <?php
35
+ echo $this->__('You will be redirected to X-Payments website when you place an order.');
36
+ ?>
37
+ <?php else: ?>
38
+ <?php
39
+ echo $this->__('X-Payments Transaction ID: %s', $this->htmlEscape($this->getInfo()->getLastTransId()));
40
+ ?>
41
+ <br/>
42
+ <?php endif; ?>
43
  <?php if(!empty($orderCardData)): ?>
44
  <span id="x-payment-prepaid-card-info">
45
+ <?php echo $this->__('For current order we used your payment card %s', $orderCardData); ?>
46
  </span>
47
  <?php endif;?>
app/design/adminhtml/default/default/template/xpaymentsconnector/info/savedcards.phtml CHANGED
@@ -25,28 +25,26 @@
25
  */
26
  ?>
27
  <?php
28
- $admSession = Mage::getSingleton('adminhtml/session');
29
- $adminhtmlPaymentCardNumber = $admSession->getData("xp_payment_card");
30
- $quote = Mage::getSingleton('checkout/session')->getQuote();
31
- $paymentCardNumber = $quote->getPayment()->getData("xp_payment_card");
32
- $cardData = Mage::getModel("xpaymentsconnector/usercards")->load($paymentCardNumber)->getData();
33
  ?>
 
34
  <?php echo $this->getMethod()->getTitle(); ?>
35
  <br />
36
  <?php if (!empty($cardData)): ?>
37
  <span id="x-payment-card-info">
38
- <?php echo $this->__("For current order we used your payment card (**%s)",$cardData['last_4_cc_num']); ?>
39
  </span>
40
  <?php elseif ($orderId = $this->getRequest()->getParam("order_id")): ?>
41
- <?php $orderCardData = unserialize(Mage::getModel('sales/order')->load($orderId)->getData("xp_card_data")); ?>
42
  <span id="x-payment-card-info">
43
- <?php echo $this->__("For current order we used your payment card (**%s)",$orderCardData['last_4_cc_num']); ?>
44
  </span>
45
  <?php elseif ($adminhtmlPaymentCardNumber): ?>
46
- <?php $cardData = Mage::getModel("xpaymentsconnector/usercards")->load($adminhtmlPaymentCardNumber)->getData(); ?>
47
  <?php if(!empty($cardData)): ?>
48
  <span id="x-payment-card-info">
49
- <?php echo $this->__("For current order we used your payment card (**%s)",$cardData['last_4_cc_num']); ?>
50
  </span>
51
  <?php endif; ?>
52
  <?php endif; ?>
25
  */
26
  ?>
27
  <?php
28
+ $adminhtmlPaymentCardNumber = $this->getAdminXpPaymentCard();
29
+ $cardData = $this->getCardData()
 
 
 
30
  ?>
31
+
32
  <?php echo $this->getMethod()->getTitle(); ?>
33
  <br />
34
  <?php if (!empty($cardData)): ?>
35
  <span id="x-payment-card-info">
36
+ <?php echo $this->__("For current order we used your payment card %s", $cardData); ?>
37
  </span>
38
  <?php elseif ($orderId = $this->getRequest()->getParam("order_id")): ?>
39
+ <?php $orderCardData = $this->getOrderCardData($orderId); ?>
40
  <span id="x-payment-card-info">
41
+ <?php echo $this->__("For current order we used your payment card %s", $orderCardData); ?>
42
  </span>
43
  <?php elseif ($adminhtmlPaymentCardNumber): ?>
44
+ <?php $cardData = $this->getCardData($adminhtmlPaymentCardNumber); ?>
45
  <?php if(!empty($cardData)): ?>
46
  <span id="x-payment-card-info">
47
+ <?php echo $this->__("For current order we used your payment card %s", $cardData); ?>
48
  </span>
49
  <?php endif; ?>
50
  <?php endif; ?>
app/design/adminhtml/default/default/template/xpaymentsconnector/order/view/tab/xporderstate.phtml CHANGED
@@ -218,7 +218,7 @@
218
  <input type="hidden" name="orderid" value="<?php echo $orderIncrementId;?>">
219
  <input type="hidden" name="xpc_txnid" value="<?php echo $orderStateData['xpc_txnid'];?>">
220
  <input type="hidden" name="xpaction" class="xpaction" value="">
221
- <?php if($orderStateData["capturedAmountAvailGateway"] > 0): ?>
222
  <input type="button"
223
  class="form-button xp-transaction-submit"
224
  name="capture"
@@ -230,7 +230,7 @@
230
  value="Capture">
231
  </br>
232
  <?php endif;?>
233
- <?php if($orderStateData["voidedAmountAvailGateway"] > 0): ?>
234
  <input type="button"
235
  class="form-button xp-transaction-submit"
236
  name="void"
@@ -239,11 +239,11 @@
239
  '<?php echo $cssFormId?>',
240
  '<?php echo $amountValidatorName?>',
241
  '<?php echo $requiredValidatorName?>',
242
- '<?php echo $orderStateData["voidedAmountAvailGateway"]?>')"
243
  class="form-button "
244
- value="Void (<?php echo Mage::helper('core')->currency($orderStateData["voidedAmountAvailGateway"], true, false);?>)">
245
  <?php endif;?>
246
- <?php if($orderStateData["refundedAmountAvailGateway"] > 0): ?>
247
  <input
248
  type="button"
249
  name="refund"
218
  <input type="hidden" name="orderid" value="<?php echo $orderIncrementId;?>">
219
  <input type="hidden" name="xpc_txnid" value="<?php echo $orderStateData['xpc_txnid'];?>">
220
  <input type="hidden" name="xpaction" class="xpaction" value="">
221
+ <?php if($orderStateData["capturedAmountAvail"] > 0): ?>
222
  <input type="button"
223
  class="form-button xp-transaction-submit"
224
  name="capture"
230
  value="Capture">
231
  </br>
232
  <?php endif;?>
233
+ <?php if($orderStateData["voidedAmountAvail"] > 0): ?>
234
  <input type="button"
235
  class="form-button xp-transaction-submit"
236
  name="void"
239
  '<?php echo $cssFormId?>',
240
  '<?php echo $amountValidatorName?>',
241
  '<?php echo $requiredValidatorName?>',
242
+ '<?php echo $orderStateData["voidedAmountAvail"]?>')"
243
  class="form-button "
244
+ value="Void (<?php echo Mage::helper('core')->currency($orderStateData["voidedAmountAvail"], true, false);?>)">
245
  <?php endif;?>
246
+ <?php if($orderStateData["refundedAmountAvail"] > 0): ?>
247
  <input
248
  type="button"
249
  name="refund"
app/design/frontend/default/default/layout/xpaymentsconnector.xml CHANGED
@@ -75,6 +75,12 @@
75
  </reference>
76
  </checkout_onepage_review>
77
 
 
 
 
 
 
 
78
 
79
  <xpaymentsconnector_processing_redirect>
80
  <reference name="root">
75
  </reference>
76
  </checkout_onepage_review>
77
 
78
+ <checkout_onepage_success translate="label">
79
+ <reference name="content">
80
+ <remove name="checkout.success"/>
81
+ <block type="checkout/onepage_success" name="xp.checkout.success" template="xpaymentsconnector/checkout/success.phtml"/>
82
+ </reference>
83
+ </checkout_onepage_success>
84
 
85
  <xpaymentsconnector_processing_redirect>
86
  <reference name="root">
app/design/frontend/default/default/template/xpaymentsconnector/checkout/success.phtml ADDED
@@ -0,0 +1,79 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ <?php
2
+ /**
3
+ * Magento
4
+ *
5
+ * NOTICE OF LICENSE
6
+ *
7
+ * This source file is subject to the Academic Free License (AFL 3.0)
8
+ * that is bundled with this package in the file LICENSE_AFL.txt.
9
+ * It is also available through the world-wide-web at this URL:
10
+ * http://opensource.org/licenses/afl-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@magento.com so we can send you a copy immediately.
14
+ *
15
+ * DISCLAIMER
16
+ *
17
+ * Do not edit or add to this file if you wish to upgrade Magento to newer
18
+ * versions in the future. If you wish to customize Magento for your
19
+ * needs please refer to http://www.magento.com for more information.
20
+ *
21
+ * @category design
22
+ * @package base_default
23
+ * @copyright Copyright (c) 2006-2014 X.commerce, Inc. (http://www.magento.com)
24
+ * @license http://opensource.org/licenses/afl-3.0.php Academic Free License (AFL 3.0)
25
+ */
26
+ ?>
27
+
28
+ <div class="page-title">
29
+ <h1>
30
+ <?php if ($this->checkOrderSuccess()): ?>
31
+ <?php echo $this->__('Your order has been received.') ?>
32
+ <?php else: ?>
33
+ <?php echo $this->__('Order incomplete.') ?>
34
+ <?php endif; ?>
35
+ </h1>
36
+ </div>
37
+ <?php echo $this->getMessagesBlock()->toHtml() ?>
38
+ <?php if ($this->checkOrderSuccess()): ?>
39
+ <h2 class="sub-title"><?php echo $this->__('Thank you for your purchase!') ?></h2>
40
+ <?php endif; ?>
41
+
42
+ <?php if ($this->getOrderId()):?>
43
+ <?php if ($this->checkOrderSuccess()) :?>
44
+ <?php if ($this->getCanViewOrder()) :?>
45
+ <p><?php echo $this->__('Your order # is: %s.', sprintf('<a href="%s">%s</a>', $this->escapeHtml($this->getViewOrderUrl()), $this->escapeHtml($this->getOrderId()))) ?></p>
46
+ <?php else :?>
47
+ <p><?php echo $this->__('Your order # is: %s.', $this->escapeHtml($this->getOrderId())) ?></p>
48
+ <?php endif;?>
49
+ <?php endif;?>
50
+ <?php if ($this->checkOrderSuccess()): ?>
51
+ <p><?php echo $this->__('You will receive an order confirmation email with details of your order and a link to track its progress.') ?></p>
52
+ <?php endif;?>
53
+ <?php if ($this->getCanViewOrder() && $this->getCanPrintOrder() && $this->checkOrderSuccess()) :?>
54
+ <p>
55
+ <?php echo $this->__('Click <a href="%s" onclick="this.target=\'_blank\'">here to print</a> a copy of your order confirmation.', $this->getPrintUrl()) ?>
56
+ <?php echo $this->getChildHtml() ?>
57
+ </p>
58
+ <?php endif;?>
59
+ <?php endif;?>
60
+
61
+ <?php if ($this->getAgreementRefId()): ?>
62
+ <p><?php echo $this->__('Your billing agreement # is: %s.', sprintf('<a href="%s">%s</a>', $this->escapeHtml($this->getAgreementUrl()), $this->escapeHtml($this->getAgreementRefId())))?></p>
63
+ <?php endif;?>
64
+
65
+ <?php if ($profiles = $this->getRecurringProfiles() && $this->checkOrderSuccess()):?>
66
+ <p><?php echo $this->__('Your recurring payment profiles:'); ?></p>
67
+ <ul class="disc">
68
+ <?php foreach($profiles as $profile):?>
69
+ <?php $profileIdHtml = ($this->getCanViewProfiles() ? sprintf('<a href="%s">%s</a>', $this->escapeHtml($this->getProfileUrl($profile)), $this->escapeHtml($this->getObjectData($profile, 'reference_id'))) : $this->escapeHtml($this->getObjectData($profile, 'reference_id'))); ?>
70
+ <li><?php echo $this->__('Payment profile # %s: "%s".', $profileIdHtml, $this->escapeHtml($this->getObjectData($profile, 'schedule_description'))) ?></li>
71
+ <?php endforeach;?>
72
+ </ul>
73
+ <?php endif;?>
74
+
75
+ <div class="buttons-set">
76
+ <button type="button" class="button" title="<?php echo $this->getButtonLabel() ?>"
77
+ onclick="window.location='<?php echo $this->getButtonUrl() ?>'">
78
+ <span><span><?php echo $this->getButtonLabel() ?></span></span></button>
79
+ </div>
app/design/frontend/default/default/template/xpaymentsconnector/customer/usercards/list.phtml CHANGED
@@ -46,19 +46,29 @@
46
  <a id="unselect-all-cards" href="#" onclick="removeRelatedCard(event)">Unselect all</a></th>
47
  <th><?php echo $this->__('Card id #') ?></th>
48
  <th><?php echo $this->__('Card number') ?></th>
49
- <th><?php echo $this->__('Card type') ?></th>
50
  <th><?php echo $this->__('Usage card type'); ?></th>
 
51
  </tr>
52
  </thead>
53
  <tbody>
54
  <?php $_odd = ''; ?>
55
  <?php foreach ($_items as $_item): ?>
56
  <tr>
57
- <td><input type="checkbox" class="checkbox related-checkbox" value="<?php echo $_item->getData("xp_card_id");?>" name="card[]"></td>
58
- <td><?php echo $_item->getData("xp_card_id");?></td>
59
- <td>**<?php echo $_item->getData("last_4_cc_num");?></td>
60
- <td><span class="x-payment-card-logo-list <?php echo strtolower($_item->getData("card_type")) ?>" title="<?php echo $_item->getData("card_type");?>"></span></td>
61
- <td><?php echo $cardUsageOptions[$_item->getData("usage_type")];?></td>
 
 
 
 
 
 
 
 
 
 
62
  </tr>
63
  <?php endforeach; ?>
64
  </tbody>
@@ -71,11 +81,16 @@
71
  <?php endif; ?>
72
  <?php echo $this->getChildHtml('pager'); ?>
73
  <div class="buttons-set">
74
- <p class="back-link"><a href="<?php echo $this->escapeUrl($this->getBackUrl()) ?>"><small>&laquo; </small><?php echo $this->__('Back') ?></a></p>
 
 
 
 
75
  <?php if(count($_items)): ?>
76
  <button class="button" title="Save" type="submit"><span><span>Remove</span></span></button>
77
  <?php endif; ?>
78
- <button onclick="window.location='<?php echo $this->getAddCardUrl();?>'" class="button" title="Add new card" type="button"><span><span>Add new card</span></span></button>
 
79
  </div>
80
  </form>
81
 
46
  <a id="unselect-all-cards" href="#" onclick="removeRelatedCard(event)">Unselect all</a></th>
47
  <th><?php echo $this->__('Card id #') ?></th>
48
  <th><?php echo $this->__('Card number') ?></th>
 
49
  <th><?php echo $this->__('Usage card type'); ?></th>
50
+ <th><?php echo $this->__('Card type'); ?></th>
51
  </tr>
52
  </thead>
53
  <tbody>
54
  <?php $_odd = ''; ?>
55
  <?php foreach ($_items as $_item): ?>
56
  <tr>
57
+ <td><input type="checkbox" class="checkbox related-checkbox"
58
+ value="<?php echo $_item->getXpCardId();?>" name="card[]"></td>
59
+ <td><?php echo $_item->getXpCardId();?></td>
60
+ <td>
61
+ <?php
62
+ $xpCardDataStr = Mage::helper('xpaymentsconnector')->prepareCardDataString($_item->getData());
63
+ echo $xpCardDataStr;
64
+ ?>
65
+ </td>
66
+ <td><?php echo $cardUsageOptions[$_item->getUsageType()];?></td>
67
+ <td>
68
+ <span class="x-payment-card-logo-list <?php echo strtolower($_item->getCardType()) ?>"
69
+ title="<?php echo $_item->getCardType();?>">
70
+ </span>
71
+ </td>
72
  </tr>
73
  <?php endforeach; ?>
74
  </tbody>
81
  <?php endif; ?>
82
  <?php echo $this->getChildHtml('pager'); ?>
83
  <div class="buttons-set">
84
+ <p class="back-link">
85
+ <a href="<?php echo $this->escapeUrl($this->getBackUrl()) ?>">
86
+ <small>&laquo; </small><?php echo $this->__('Back') ?>
87
+ </a>
88
+ </p>
89
  <?php if(count($_items)): ?>
90
  <button class="button" title="Save" type="submit"><span><span>Remove</span></span></button>
91
  <?php endif; ?>
92
+ <button onclick="window.location='<?php echo $this->getAddCardUrl();?>'"
93
+ class="button" title="Add new card" type="button"><span><span>Add new card</span></span></button>
94
  </div>
95
  </form>
96
 
app/design/frontend/default/default/template/xpaymentsconnector/form/savedcards.phtml CHANGED
@@ -30,11 +30,23 @@
30
  <ul id="payment_form_<?php echo $_code ?>" style="display:none;">
31
  <?php if($userCreditCardsList):?>
32
  <?php foreach($userCreditCardsList as $key => $creditCard):?>
 
 
 
33
  <li>
34
  <span class="input-box">
35
- <input type="radio" title="<?php echo "'".$creditCard->getData("card_type")."'"; ?> - credit card" class="input-radio x-payment-card validate-one-required-by-name" id="<?php echo $_code."_".$creditCard->getData("xp_card_id"); ?>" name="payment[xp_payment_card]" value="<?php echo $creditCard->getData("xp_card_id");?>" />
36
- <label for="<?php echo $_code."_".$creditCard->getData("xp_card_id") ?>">Use card ( **<?php echo $creditCard->getData("last_4_cc_num");?> )</label>
37
- <span class="x-payment-card-logo <?php echo strtolower($creditCard->getData("card_type")) ?>" title="<?php echo $creditCard->getData("card_type");?>"></span>
 
 
 
 
 
 
 
 
 
38
  </span>
39
 
40
  </li>
30
  <ul id="payment_form_<?php echo $_code ?>" style="display:none;">
31
  <?php if($userCreditCardsList):?>
32
  <?php foreach($userCreditCardsList as $key => $creditCard):?>
33
+ <?php
34
+ $xpCardDataStr = Mage::helper('xpaymentsconnector')->prepareCardDataString($creditCard->getData());
35
+ ?>
36
  <li>
37
  <span class="input-box">
38
+ <input type="radio"
39
+ title="<?php echo "'".$creditCard->getCardType()."'"; ?> - credit card"
40
+ class="input-radio x-payment-card validate-one-required-by-name"
41
+ id="<?php echo $_code.'_'.$creditCard->getXpCardId(); ?>"
42
+ name="payment[xp_payment_card]"
43
+ value="<?php echo $creditCard->getData("xp_card_id");?>" />
44
+ <label for="<?php echo $_code.'_'.$creditCard->getXpCardId() ?>">
45
+ <?php echo $this->__('Use card - %s', $xpCardDataStr); ?>
46
+ </label>
47
+ <span class="x-payment-card-logo <?php echo strtolower($creditCard->getCardType()) ?>"
48
+ title="<?php echo $creditCard->getCardType();?>">
49
+ </span>
50
  </span>
51
 
52
  </li>
app/design/frontend/default/default/template/xpaymentsconnector/info/cc.phtml CHANGED
@@ -25,23 +25,23 @@
25
  */
26
  ?>
27
  <?php
28
-
29
- $order = $this->getInfo()->getMethodInstance()->getOrder();
30
- $orderCardData = array();
31
- if($order){
32
- $orderCardData = unserialize($this->getInfo()->getMethodInstance()->getOrder()->getData("xp_card_data"));
33
- }
34
-
35
  ?>
 
36
  <?php echo $this->getMethod()->getTitle(); ?>
37
  <br />
38
- <?php if ($this->getInfo()->getLastTransId() == '') { ?>
39
- <!--em><?php echo Mage::helper('xpaymentsconnector')->__('You will be redirected to X-Payments website when you place an order.'); ?></em-->
40
- <?php } else { ?>
41
- <?php echo Mage::helper('xpaymentsconnector')->__('X-Payments Transaction ID: %s', $this->htmlEscape($this->getInfo()->getLastTransId())); ?><br />
42
- <?php } ?>
 
 
 
 
 
43
  <?php if(!empty($orderCardData)): ?>
44
  <span id="x-payment-prepaid-card-info">
45
- <?php echo $this->__("For current order we used your payment card (**%s)",$orderCardData['last_4_cc_num']); ?>
46
  </span>
47
  <?php endif;?>
25
  */
26
  ?>
27
  <?php
28
+ $orderCardData = $this->getCardData();
 
 
 
 
 
 
29
  ?>
30
+
31
  <?php echo $this->getMethod()->getTitle(); ?>
32
  <br />
33
+ <?php if ($this->getInfo()->getLastTransId() == ''): ?>
34
+ <?php
35
+ echo $this->__('You will be redirected to X-Payments website when you place an order.');
36
+ ?>
37
+ <?php else: ?>
38
+ <?php
39
+ echo $this->__('X-Payments Transaction ID: %s', $this->htmlEscape($this->getInfo()->getLastTransId()));
40
+ ?>
41
+ <br/>
42
+ <?php endif; ?>
43
  <?php if(!empty($orderCardData)): ?>
44
  <span id="x-payment-prepaid-card-info">
45
+ <?php echo $this->__('For current order we used your payment card %s', $orderCardData); ?>
46
  </span>
47
  <?php endif;?>
app/design/frontend/default/default/template/xpaymentsconnector/info/savedcards.phtml CHANGED
@@ -28,25 +28,27 @@
28
  $adminhtmlPaymentCardNumber = $this->getAdminXpPaymentCard();
29
  $cardData = $this->getCardData();
30
  ?>
 
31
  <?php echo $this->getMethod()->getTitle(); ?>
32
  <br />
33
  <?php if (!empty($cardData)): ?>
34
  <span id="x-payment-card-info">
35
- <?php echo $this->__("For current order we used your payment card (**%s)",$cardData['last_4_cc_num']); ?>
36
  </span>
37
- <?php elseif ($orderId = $this->getRequest()->getParam('order_id')): ?>
38
  <?php $orderCardData = $this->getOrderCardData($orderId); ?>
39
  <span id="x-payment-card-info">
40
- <?php echo $this->__("For current order we used your payment card (**%s)",$orderCardData['last_4_cc_num']); ?>
41
  </span>
42
  <?php elseif ($adminhtmlPaymentCardNumber): ?>
43
  <?php $cardData = $this->getCardData($adminhtmlPaymentCardNumber); ?>
44
  <?php if(!empty($cardData)): ?>
45
  <span id="x-payment-card-info">
46
- <?php echo $this->__("For current order we used your payment card (**%s)",$cardData['last_4_cc_num']); ?>
47
  </span>
48
  <?php endif; ?>
49
  <?php endif; ?>
50
 
51
 
52
 
 
28
  $adminhtmlPaymentCardNumber = $this->getAdminXpPaymentCard();
29
  $cardData = $this->getCardData();
30
  ?>
31
+
32
  <?php echo $this->getMethod()->getTitle(); ?>
33
  <br />
34
  <?php if (!empty($cardData)): ?>
35
  <span id="x-payment-card-info">
36
+ <?php echo $this->__("For current order we used your payment card %s", $cardData); ?>
37
  </span>
38
+ <?php elseif ($orderId = $this->getRequest()->getParam("order_id")): ?>
39
  <?php $orderCardData = $this->getOrderCardData($orderId); ?>
40
  <span id="x-payment-card-info">
41
+ <?php echo $this->__("For current order we used your payment card %s", $orderCardData); ?>
42
  </span>
43
  <?php elseif ($adminhtmlPaymentCardNumber): ?>
44
  <?php $cardData = $this->getCardData($adminhtmlPaymentCardNumber); ?>
45
  <?php if(!empty($cardData)): ?>
46
  <span id="x-payment-card-info">
47
+ <?php echo $this->__("For current order we used your payment card %s", $cardData); ?>
48
  </span>
49
  <?php endif; ?>
50
  <?php endif; ?>
51
 
52
 
53
 
54
+
app/design/frontend/rwd/default/layout/xpaymentsconnector.xml CHANGED
@@ -75,6 +75,12 @@
75
  </reference>
76
  </checkout_onepage_review>
77
 
 
 
 
 
 
 
78
 
79
  <xpaymentsconnector_processing_redirect>
80
  <reference name="root">
75
  </reference>
76
  </checkout_onepage_review>
77
 
78
+ <checkout_onepage_success translate="label">
79
+ <reference name="content">
80
+ <remove name="checkout.success"/>
81
+ <block type="checkout/onepage_success" name="xp.checkout.success" template="xpaymentsconnector/checkout/success.phtml"/>
82
+ </reference>
83
+ </checkout_onepage_success>
84
 
85
  <xpaymentsconnector_processing_redirect>
86
  <reference name="root">
app/design/frontend/rwd/default/template/xpaymentsconnector/checkout/success.phtml ADDED
@@ -0,0 +1,79 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ <?php
2
+ /**
3
+ * Magento
4
+ *
5
+ * NOTICE OF LICENSE
6
+ *
7
+ * This source file is subject to the Academic Free License (AFL 3.0)
8
+ * that is bundled with this package in the file LICENSE_AFL.txt.
9
+ * It is also available through the world-wide-web at this URL:
10
+ * http://opensource.org/licenses/afl-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@magento.com so we can send you a copy immediately.
14
+ *
15
+ * DISCLAIMER
16
+ *
17
+ * Do not edit or add to this file if you wish to upgrade Magento to newer
18
+ * versions in the future. If you wish to customize Magento for your
19
+ * needs please refer to http://www.magento.com for more information.
20
+ *
21
+ * @category design
22
+ * @package base_default
23
+ * @copyright Copyright (c) 2006-2014 X.commerce, Inc. (http://www.magento.com)
24
+ * @license http://opensource.org/licenses/afl-3.0.php Academic Free License (AFL 3.0)
25
+ */
26
+ ?>
27
+
28
+ <div class="page-title">
29
+ <h1>
30
+ <?php if ($this->checkOrderSuccess()): ?>
31
+ <?php echo $this->__('Your order has been received.') ?>
32
+ <?php else: ?>
33
+ <?php echo $this->__('Order incomplete.') ?>
34
+ <?php endif; ?>
35
+ </h1>
36
+ </div>
37
+ <?php echo $this->getMessagesBlock()->toHtml() ?>
38
+ <?php if ($this->checkOrderSuccess()): ?>
39
+ <h2 class="sub-title"><?php echo $this->__('Thank you for your purchase!') ?></h2>
40
+ <?php endif; ?>
41
+
42
+ <?php if ($this->getOrderId()):?>
43
+ <?php if ($this->checkOrderSuccess()) :?>
44
+ <?php if ($this->getCanViewOrder()) :?>
45
+ <p><?php echo $this->__('Your order # is: %s.', sprintf('<a href="%s">%s</a>', $this->escapeHtml($this->getViewOrderUrl()), $this->escapeHtml($this->getOrderId()))) ?></p>
46
+ <?php else :?>
47
+ <p><?php echo $this->__('Your order # is: %s.', $this->escapeHtml($this->getOrderId())) ?></p>
48
+ <?php endif;?>
49
+ <?php endif;?>
50
+ <?php if ($this->checkOrderSuccess()): ?>
51
+ <p><?php echo $this->__('You will receive an order confirmation email with details of your order and a link to track its progress.') ?></p>
52
+ <?php endif;?>
53
+ <?php if ($this->getCanViewOrder() && $this->getCanPrintOrder() && $this->checkOrderSuccess()) :?>
54
+ <p>
55
+ <?php echo $this->__('Click <a href="%s" onclick="this.target=\'_blank\'">here to print</a> a copy of your order confirmation.', $this->getPrintUrl()) ?>
56
+ <?php echo $this->getChildHtml() ?>
57
+ </p>
58
+ <?php endif;?>
59
+ <?php endif;?>
60
+
61
+ <?php if ($this->getAgreementRefId()): ?>
62
+ <p><?php echo $this->__('Your billing agreement # is: %s.', sprintf('<a href="%s">%s</a>', $this->escapeHtml($this->getAgreementUrl()), $this->escapeHtml($this->getAgreementRefId())))?></p>
63
+ <?php endif;?>
64
+
65
+ <?php if ($profiles = $this->getRecurringProfiles() && $this->checkOrderSuccess()):?>
66
+ <p><?php echo $this->__('Your recurring payment profiles:'); ?></p>
67
+ <ul class="disc">
68
+ <?php foreach($profiles as $profile):?>
69
+ <?php $profileIdHtml = ($this->getCanViewProfiles() ? sprintf('<a href="%s">%s</a>', $this->escapeHtml($this->getProfileUrl($profile)), $this->escapeHtml($this->getObjectData($profile, 'reference_id'))) : $this->escapeHtml($this->getObjectData($profile, 'reference_id'))); ?>
70
+ <li><?php echo $this->__('Payment profile # %s: "%s".', $profileIdHtml, $this->escapeHtml($this->getObjectData($profile, 'schedule_description'))) ?></li>
71
+ <?php endforeach;?>
72
+ </ul>
73
+ <?php endif;?>
74
+
75
+ <div class="buttons-set">
76
+ <button type="button" class="button" title="<?php echo $this->getButtonLabel() ?>"
77
+ onclick="window.location='<?php echo $this->getButtonUrl() ?>'">
78
+ <span><span><?php echo $this->getButtonLabel() ?></span></span></button>
79
+ </div>
app/design/frontend/rwd/default/template/xpaymentsconnector/customer/usercards/list.phtml CHANGED
@@ -46,19 +46,29 @@
46
  <a id="unselect-all-cards" href="#" onclick="removeRelatedCard(event)">Unselect all</a></th>
47
  <th><?php echo $this->__('Card id #') ?></th>
48
  <th><?php echo $this->__('Card number') ?></th>
49
- <th><?php echo $this->__('Card type') ?></th>
50
  <th><?php echo $this->__('Usage card type'); ?></th>
 
51
  </tr>
52
  </thead>
53
  <tbody>
54
  <?php $_odd = ''; ?>
55
  <?php foreach ($_items as $_item): ?>
56
  <tr>
57
- <td><input type="checkbox" class="checkbox related-checkbox" value="<?php echo $_item->getData("xp_card_id");?>" name="card[]"></td>
58
- <td><?php echo $_item->getData("xp_card_id");?></td>
59
- <td>**<?php echo $_item->getData("last_4_cc_num");?></td>
60
- <td><span class="x-payment-card-logo-list <?php echo strtolower($_item->getData("card_type")) ?>" title="<?php echo $_item->getData("card_type");?>"></span></td>
61
- <td><?php echo $cardUsageOptions[$_item->getData("usage_type")];?></td>
 
 
 
 
 
 
 
 
 
 
62
  </tr>
63
  <?php endforeach; ?>
64
  </tbody>
@@ -71,11 +81,16 @@
71
  <?php endif; ?>
72
  <?php echo $this->getChildHtml('pager'); ?>
73
  <div class="buttons-set">
74
- <p class="back-link"><a href="<?php echo $this->escapeUrl($this->getBackUrl()) ?>"><small>&laquo; </small><?php echo $this->__('Back') ?></a></p>
 
 
 
 
75
  <?php if(count($_items)): ?>
76
  <button class="button" title="Save" type="submit"><span><span>Remove</span></span></button>
77
  <?php endif; ?>
78
- <button onclick="window.location='<?php echo $this->getAddCardUrl();?>'" class="button" title="Add new card" type="button"><span><span>Add new card</span></span></button>
 
79
  </div>
80
  </form>
81
 
46
  <a id="unselect-all-cards" href="#" onclick="removeRelatedCard(event)">Unselect all</a></th>
47
  <th><?php echo $this->__('Card id #') ?></th>
48
  <th><?php echo $this->__('Card number') ?></th>
 
49
  <th><?php echo $this->__('Usage card type'); ?></th>
50
+ <th><?php echo $this->__('Card type'); ?></th>
51
  </tr>
52
  </thead>
53
  <tbody>
54
  <?php $_odd = ''; ?>
55
  <?php foreach ($_items as $_item): ?>
56
  <tr>
57
+ <td><input type="checkbox" class="checkbox related-checkbox"
58
+ value="<?php echo $_item->getXpCardId();?>" name="card[]"></td>
59
+ <td><?php echo $_item->getXpCardId();?></td>
60
+ <td>
61
+ <?php
62
+ $xpCardDataStr = Mage::helper('xpaymentsconnector')->prepareCardDataString($_item->getData());
63
+ echo $xpCardDataStr;
64
+ ?>
65
+ </td>
66
+ <td><?php echo $cardUsageOptions[$_item->getUsageType()];?></td>
67
+ <td>
68
+ <span class="x-payment-card-logo-list <?php echo strtolower($_item->getCardType()) ?>"
69
+ title="<?php echo $_item->getCardType();?>">
70
+ </span>
71
+ </td>
72
  </tr>
73
  <?php endforeach; ?>
74
  </tbody>
81
  <?php endif; ?>
82
  <?php echo $this->getChildHtml('pager'); ?>
83
  <div class="buttons-set">
84
+ <p class="back-link">
85
+ <a href="<?php echo $this->escapeUrl($this->getBackUrl()) ?>">
86
+ <small>&laquo; </small><?php echo $this->__('Back') ?>
87
+ </a>
88
+ </p>
89
  <?php if(count($_items)): ?>
90
  <button class="button" title="Save" type="submit"><span><span>Remove</span></span></button>
91
  <?php endif; ?>
92
+ <button onclick="window.location='<?php echo $this->getAddCardUrl();?>'"
93
+ class="button" title="Add new card" type="button"><span><span>Add new card</span></span></button>
94
  </div>
95
  </form>
96
 
app/design/frontend/rwd/default/template/xpaymentsconnector/form/savedcards.phtml CHANGED
@@ -30,11 +30,23 @@
30
  <ul id="payment_form_<?php echo $_code ?>" style="display:none;">
31
  <?php if($userCreditCardsList):?>
32
  <?php foreach($userCreditCardsList as $key => $creditCard):?>
 
 
 
33
  <li>
34
  <span class="input-box">
35
- <input type="radio" title="<?php echo "'".$creditCard->getData("card_type")."'"; ?> - credit card" class="input-radio x-payment-card validate-one-required-by-name" id="<?php echo $_code."_".$creditCard->getData("xp_card_id"); ?>" name="payment[xp_payment_card]" value="<?php echo $creditCard->getData("xp_card_id");?>" />
36
- <label for="<?php echo $_code."_".$creditCard->getData("xp_card_id") ?>">Use card ( **<?php echo $creditCard->getData("last_4_cc_num");?> )</label>
37
- <span class="x-payment-card-logo <?php echo strtolower($creditCard->getData("card_type")) ?>" title="<?php echo $creditCard->getData("card_type");?>"></span>
 
 
 
 
 
 
 
 
 
38
  </span>
39
 
40
  </li>
30
  <ul id="payment_form_<?php echo $_code ?>" style="display:none;">
31
  <?php if($userCreditCardsList):?>
32
  <?php foreach($userCreditCardsList as $key => $creditCard):?>
33
+ <?php
34
+ $xpCardDataStr = Mage::helper('xpaymentsconnector')->prepareCardDataString($creditCard->getData());
35
+ ?>
36
  <li>
37
  <span class="input-box">
38
+ <input type="radio"
39
+ title="<?php echo "'".$creditCard->getCardType()."'"; ?> - credit card"
40
+ class="input-radio x-payment-card validate-one-required-by-name"
41
+ id="<?php echo $_code.'_'.$creditCard->getXpCardId(); ?>"
42
+ name="payment[xp_payment_card]"
43
+ value="<?php echo $creditCard->getData("xp_card_id");?>" />
44
+ <label for="<?php echo $_code.'_'.$creditCard->getXpCardId() ?>">
45
+ <?php echo $this->__('Use card - %s', $xpCardDataStr); ?>
46
+ </label>
47
+ <span class="x-payment-card-logo <?php echo strtolower($creditCard->getCardType()) ?>"
48
+ title="<?php echo $creditCard->getCardType();?>">
49
+ </span>
50
  </span>
51
 
52
  </li>
app/design/frontend/rwd/default/template/xpaymentsconnector/info/cc.phtml CHANGED
@@ -29,19 +29,24 @@
29
  $order = $this->getInfo()->getMethodInstance()->getOrder();
30
  $orderCardData = array();
31
  if($order){
32
- $orderCardData = unserialize($this->getInfo()->getMethodInstance()->getOrder()->getData("xp_card_data"));
33
  }
34
-
35
  ?>
 
36
  <?php echo $this->getMethod()->getTitle(); ?>
37
  <br />
38
- <?php if ($this->getInfo()->getLastTransId() == '') { ?>
39
- <!--em><?php echo Mage::helper('xpaymentsconnector')->__('You will be redirected to X-Payments website when you place an order.'); ?></em-->
40
- <?php } else { ?>
41
- <?php echo Mage::helper('xpaymentsconnector')->__('X-Payments Transaction ID: %s', $this->htmlEscape($this->getInfo()->getLastTransId())); ?><br />
42
- <?php } ?>
 
 
 
 
 
43
  <?php if(!empty($orderCardData)): ?>
44
  <span id="x-payment-prepaid-card-info">
45
- <?php echo $this->__("For current order we used your payment card (**%s)",$orderCardData['last_4_cc_num']); ?>
46
  </span>
47
  <?php endif;?>
29
  $order = $this->getInfo()->getMethodInstance()->getOrder();
30
  $orderCardData = array();
31
  if($order){
32
+ $orderCardData = $this->getCardData();
33
  }
 
34
  ?>
35
+
36
  <?php echo $this->getMethod()->getTitle(); ?>
37
  <br />
38
+ <?php if ($this->getInfo()->getLastTransId() == ''): ?>
39
+ <?php
40
+ echo $this->__('You will be redirected to X-Payments website when you place an order.');
41
+ ?>
42
+ <?php else: ?>
43
+ <?php
44
+ echo $this->__('X-Payments Transaction ID: %s', $this->htmlEscape($this->getInfo()->getLastTransId()));
45
+ ?>
46
+ <br/>
47
+ <?php endif; ?>
48
  <?php if(!empty($orderCardData)): ?>
49
  <span id="x-payment-prepaid-card-info">
50
+ <?php echo $this->__('For current order we used your payment card %s', $orderCardData); ?>
51
  </span>
52
  <?php endif;?>
app/design/frontend/rwd/default/template/xpaymentsconnector/info/savedcards.phtml CHANGED
@@ -28,25 +28,27 @@
28
  $adminhtmlPaymentCardNumber = $this->getAdminXpPaymentCard();
29
  $cardData = $this->getCardData();
30
  ?>
 
31
  <?php echo $this->getMethod()->getTitle(); ?>
32
  <br />
33
  <?php if (!empty($cardData)): ?>
34
  <span id="x-payment-card-info">
35
- <?php echo $this->__("For current order we used your payment card (**%s)",$cardData['last_4_cc_num']); ?>
36
  </span>
37
- <?php elseif ($orderId = $this->getRequest()->getParam('order_id')): ?>
38
  <?php $orderCardData = $this->getOrderCardData($orderId); ?>
39
  <span id="x-payment-card-info">
40
- <?php echo $this->__("For current order we used your payment card (**%s)",$orderCardData['last_4_cc_num']); ?>
41
  </span>
42
  <?php elseif ($adminhtmlPaymentCardNumber): ?>
43
  <?php $cardData = $this->getCardData($adminhtmlPaymentCardNumber); ?>
44
  <?php if(!empty($cardData)): ?>
45
  <span id="x-payment-card-info">
46
- <?php echo $this->__("For current order we used your payment card (**%s)",$cardData['last_4_cc_num']); ?>
47
  </span>
48
  <?php endif; ?>
49
  <?php endif; ?>
50
 
51
 
52
 
 
28
  $adminhtmlPaymentCardNumber = $this->getAdminXpPaymentCard();
29
  $cardData = $this->getCardData();
30
  ?>
31
+
32
  <?php echo $this->getMethod()->getTitle(); ?>
33
  <br />
34
  <?php if (!empty($cardData)): ?>
35
  <span id="x-payment-card-info">
36
+ <?php echo $this->__("For current order we used your payment card %s", $cardData); ?>
37
  </span>
38
+ <?php elseif ($orderId = $this->getRequest()->getParam("order_id")): ?>
39
  <?php $orderCardData = $this->getOrderCardData($orderId); ?>
40
  <span id="x-payment-card-info">
41
+ <?php echo $this->__("For current order we used your payment card %s", $orderCardData); ?>
42
  </span>
43
  <?php elseif ($adminhtmlPaymentCardNumber): ?>
44
  <?php $cardData = $this->getCardData($adminhtmlPaymentCardNumber); ?>
45
  <?php if(!empty($cardData)): ?>
46
  <span id="x-payment-card-info">
47
+ <?php echo $this->__("For current order we used your payment card %s", $cardData); ?>
48
  </span>
49
  <?php endif; ?>
50
  <?php endif; ?>
51
 
52
 
53
 
54
+
app/locale/en_US/Cdev_XPaymentsConnector.csv CHANGED
@@ -20,7 +20,9 @@
20
  "Your credit card will be saved for this subscription.","Your credit card will be saved for this subscription."
21
  "You will be redirected to X-Payments website when you place an order.","You will be redirected to X-Payments website when you place an order."
22
  "X-Payments Transaction ID: %s","X-Payments Transaction ID: %s"
23
- "For current order we used your payment card (**%s)","For current order we used your payment card (**%s)"
 
 
24
  "For current order we charged funds from your payment card (**%s)","For current order we charged funds from your payment card (**%s)"
25
  "Balance:","Balance:"
26
  "Transaction list for order %s","Transaction list for order %s"
@@ -58,7 +60,7 @@
58
  "Are you sure you want to delete the selected card(s)?","Are you sure you want to delete the selected card(s)?"
59
  "Card id","Card id"
60
  "X-Payments order url","X-Payments order url"
61
- "Card number (last 4 digits)","Card number (last 4 digits)"
62
  "X-Payments connector control","X-Payments connector control"
63
  "System","System"
64
  "The test transaction has been completed successfully.","The test transaction has been completed successfully."
@@ -122,6 +124,17 @@
122
  "%s%s for recurring product '%s' in your cart.","%s%s for recurring product '%s' in your cart."
123
  "%s%s for all non-recurring products in your cart.","%s%s for all non-recurring products in your cart."
124
  "Finished","Finished"
 
 
 
 
 
 
 
 
 
 
 
125
 
126
 
127
 
20
  "Your credit card will be saved for this subscription.","Your credit card will be saved for this subscription."
21
  "You will be redirected to X-Payments website when you place an order.","You will be redirected to X-Payments website when you place an order."
22
  "X-Payments Transaction ID: %s","X-Payments Transaction ID: %s"
23
+ "For current order we used your payment card %s","For current order we used your payment card %s"
24
+ "%s******%s","%s******%s"
25
+ " ( %s/%s )"," ( %s/%s )"
26
  "For current order we charged funds from your payment card (**%s)","For current order we charged funds from your payment card (**%s)"
27
  "Balance:","Balance:"
28
  "Transaction list for order %s","Transaction list for order %s"
60
  "Are you sure you want to delete the selected card(s)?","Are you sure you want to delete the selected card(s)?"
61
  "Card id","Card id"
62
  "X-Payments order url","X-Payments order url"
63
+ "Card number","Card number"
64
  "X-Payments connector control","X-Payments connector control"
65
  "System","System"
66
  "The test transaction has been completed successfully.","The test transaction has been completed successfully."
124
  "%s%s for recurring product '%s' in your cart.","%s%s for recurring product '%s' in your cart."
125
  "%s%s for all non-recurring products in your cart.","%s%s for all non-recurring products in your cart."
126
  "Finished","Finished"
127
+ " ( X-Payment server response: %s )"," ( X-Payment server response: %s )"
128
+ "'%s fraud transaction' was successful!","'%s fraud transaction' was successful!"
129
+ "Transaction to the X-Payment server was broken!","Transaction to the X-Payment server was broken!"
130
+ "Are you sure you want to accept this order transaction?","Are you sure you want to accept this order transaction?"
131
+ "Are you sure you want to cancel this order transaction?","Are you sure you want to cancel this order transaction?"
132
+ "Accept","Accept"
133
+ "Decline","Decline"
134
+ "This transaction has been identified as possibly fraudulent, press 'Accept' to confirm the acceptance of the transaction or 'Decline' to cancel it.","This transaction has been identified as possibly fraudulent, press 'Accept' to confirm the acceptance of the transaction or 'Decline' to cancel it."
135
+ "Did you enter your billing info correctly? Here are a few things to double check:<br />1. Ensure your billing address matches the address on your credit or debit card statement;<br />2. Check your card verification code (CVV) for accuracy;<br />3. Confirm you've entered the correct expiration date.","Did you enter your billing info correctly? Here are a few things to double check:<br />1. Ensure your billing address matches the address on your credit or debit card statement;<br />2. Check your card verification code (CVV) for accuracy;<br />3. Confirm you've entered the correct expiration date."
136
+ "Return to checkout","Return to checkout"
137
+ "Order incomplete.","Order incomplete."
138
 
139
 
140
 
js/xpayment/images/btn_bg_fraud.png ADDED
Binary file
js/xpayment/settings.css CHANGED
@@ -107,7 +107,7 @@ iframe .buttonRow {
107
 
108
  #payment_form_savedcards .input-box {
109
  display: block;
110
- width: 170px;
111
  position: relative;
112
  }
113
 
@@ -461,4 +461,11 @@ iframe .buttonRow {
461
  #shopping-cart-totals-table tr td:last-child {
462
  white-space: nowrap
463
  }
464
- /* end (checkout cart page) */
 
 
 
 
 
 
 
107
 
108
  #payment_form_savedcards .input-box {
109
  display: block;
110
+ width: 295px;
111
  position: relative;
112
  }
113
 
461
  #shopping-cart-totals-table tr td:last-child {
462
  white-space: nowrap
463
  }
464
+ /* end (checkout cart page) */
465
+
466
+ /* admin order view buttons */
467
+ .fraud-button {
468
+ background-image: url("images/btn_bg_fraud.png");
469
+ }
470
+ /* end (admin order view buttons) */
471
+
package.xml CHANGED
@@ -1,7 +1,7 @@
1
  <?xml version="1.0"?>
2
  <package>
3
  <name>CDev_XPaymentsConnector</name>
4
- <version>1.4.11</version>
5
  <stability>stable</stability>
6
  <license uri="http://opensource.org/licenses/osl-3.0.php">OSL 3.0</license>
7
  <channel>community</channel>
@@ -10,11 +10,11 @@
10
  <description>X-Payments connector&#xD;
11
  This extension integrates Magento with X-Payments - a PA-DSS certified payment module.&#xD;
12
  </description>
13
- <notes>Version number: 1.4.11</notes>
14
  <authors><author><name>Valerii Demidov</name><user>Valerii</user><email>vdemidov@corp.web4pro.com.ua</email></author></authors>
15
- <date>2015-04-29</date>
16
- <time>10:19:11</time>
17
- <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="Cardtype.php" hash="62499b375fa9c7ba091ff7763d54a95d"/><file name="Txnid.php" hash="993e4c40a3bb3b55f5b1a5a99adffd78"/></dir><dir name="Tab"><file name="Usercards.php" hash="248e454bc1c43d41013fd5d077b39961"/></dir></dir></dir><dir name="Sales"><dir name="Order"><dir name="View"><dir name="Tab"><file name="Xporderstate.php" hash="aeed145a7f006c5e5720ba2588a7669b"/></dir></dir></dir></dir><dir name="System"><dir name="Config"><dir name="Form"><file name="Subselect.php" hash="c989f9ce4b9af2885c6d28e874825eab"/></dir></dir></dir><dir name="Usercards"><file name="Grid.php" hash="5250ace1bdafb448089b752df44fc9b7"/></dir></dir><file name="Beforesuccess.php" hash="4c22841e4c28e66d4d363523899b073d"/><file name="Cancel.php" hash="3283657e21047278d81ac4478ac81de6"/><dir name="Checkout"><dir name="Onepage"><file name="Orderdetail.php" hash="5a62c069916dca4cb809adb476a230dc"/><file name="Settings.php" hash="2422adb2924c023d9829f376a893d553"/></dir></dir><file name="Control.php" hash="e0ef77a236030598882937acb2a9c4e0"/><dir name="Customer"><dir name="Account"><file name="Navigation.php" hash="53fbec326cc5c61b929414df6f71e804"/></dir><file name="Cardadd.php" hash="799d8cc6ee75e691a63615204b25c6af"/><file name="Success.php" hash="54f243e60b735cdd5cd879be65838fee"/><file name="Usercards.php" hash="76de3856ad42383c008400245a3135ae"/></dir><file name="Failure.php" hash="537aec3d3ee63ff1ac2d2300c2ca259e"/><dir name="Form"><file name="Cc.php" hash="2f4fbca4ddc11b541d4a2781aae7350e"/><file name="Container.php" hash="0494ad27c46dc3f7f89342188a5448ce"/><file name="Prepaidpayments.php" hash="9a11a9423b4dfc37d607425be54c9a4a"/><file name="Savedcards.php" hash="6e7a8bbfd18a8635d31e659772e2b5ed"/></dir><dir name="Info"><file name="Cc.php" hash="80ec2f2dd7691519d481977ab7bdcec4"/><file name="Prepaidpayments.php" hash="e72742bba292982787de587f9a53ce60"/><file name="Savedcards.php" hash="14de7c069fbd68d126fc0dce72267bf4"/></dir><dir name="Recurring"><dir name="Profile"><file name="View.php" hash="5e71720c6b6817972b4970df2fd646d2"/></dir></dir><file name="Redirect.php" hash="380f772b003ba0b02e275bd44c67e751"/><file name="Success.php" hash="d2f023bc2206cbb33997b791a57b1b4e"/></dir><dir name="Helper"><file name="Data.php" hash="c5881819118297555855303193272954"/></dir><dir name="Model"><dir name="Adminhtml"><dir name="System"><dir name="Config"><dir name="Source"><file name="Placedisplay.php" hash="a42a68646dc2e1aa77502ec1be0dbaf7"/></dir></dir></dir></dir><dir name="Mysql4"><dir name="Paymentconfiguration"><file name="Collection.php" hash="98760f276af5182d42801865cb116db4"/></dir><file name="Paymentconfiguration.php" hash="ca045f953ec018c583279340c137ff71"/><dir name="Usercards"><file name="Collection.php" hash="6df6d26bef085e86c6db625487006086"/></dir><file name="Usercards.php" hash="ffb98ad5a0c252bbbf14adb086cf0d3c"/></dir><file name="Observer.php" hash="b2573550d5f487afed5f45992f705724"/><dir name="Payment"><file name="Cc.php" hash="477144b1320e8a59f308f6485bc9050a"/><file name="Prepaidpayments.php" hash="9bbab2a26748c59609d6c81d8fc37c41"/><dir name="Recurring"><file name="Profile.php" hash="1d0a2ac393a55f586a1cc8016538e5df"/></dir><file name="Savedcards.php" hash="3411a8224120800477a857a6a3dbe63b"/></dir><file name="Paymentconfiguration.php" hash="c0a6c5b610e42037f9904247e657a0e6"/><dir name="Quote"><dir name="Address"><dir name="Total"><dir name="Nominal"><dir name="Recurring"><file name="Discount.php" hash="17d12a5ac2ad95a7882ab651502ce98a"/><dir name="Initialfee"><file name="Tax.php" hash="892804e777f2e1bba1e57cd03d96e5b2"/></dir></dir></dir><file name="Nominal.php" hash="091dd174cb2b571a6739b34071fbc9a6"/></dir></dir></dir><file name="Quote.php" hash="9ddf19dfd97cbbe6423e80207f81a42f"/><dir name="Sales"><dir name="Recurring"><file name="Profile.php" hash="f2bdc6e081443ab538cb99e1f5fbe77c"/></dir></dir><dir name="Source"><file name="Paymentconfiguration.php" hash="eb9b8e1187a4a4f4614582d5f7932c37"/></dir><file name="Usercards.php" hash="049b38f03920a17d5dbd0ba5e3a834cc"/></dir><dir name="controllers"><dir name="Adminhtml"><file name="CustomerController.php" hash="8f2bc887259b9d5ae6f3a731e7a2eb6a"/></dir><file name="ControlController.php" hash="92e1380179483d97cd27be1d147833ba"/><file name="CustomerController.php" hash="075e976ce6a5b9fbe7844a4a157fc41c"/><file name="ProcessingController.php" hash="3d9efc8e82def6e652f898e9775b5fb5"/></dir><dir name="etc"><file name="config.xml" hash="337e023e1904f28b0a0de308fbba9469"/><file name="system.xml" hash="f780222505b2e4e0a086ac40469f7f4d"/></dir><dir name="sql"><dir name="xpaymentsconnector_setup"><file name="mysql4-install-1.0.0.php" hash="5b6ed901a54700d986dd81029104ed72"/><file name="mysql4-upgrade-1.0.0-1.0.1.php" hash="5e2da32a0f87b747a5e9f3d9095e962a"/><file name="mysql4-upgrade-1.0.1-1.0.2.php" hash="566cd8aa894ff488f60bd718ad8b2772"/><file name="mysql4-upgrade-1.0.2-1.0.3.php" hash="0f44cf02457c2b6a887b399e94b89e57"/><file name="mysql4-upgrade-1.0.3-1.0.4.php" hash="f353d20a6d6ac827be5cd581cc988660"/><file name="mysql4-upgrade-1.0.4-1.0.5.php" hash="9b71385496b9b42e5a79b0cbbc557dff"/><file name="mysql4-upgrade-1.0.5-1.0.6.php" hash="fa79555b4802a96579f314a670ab8ed3"/><file name="mysql4-upgrade-1.0.6-1.0.7.php" hash="b9708303f3160fc0c9347f4600e27aba"/><file name="mysql4-upgrade-1.0.7-1.0.8.php" hash="2d07945a0438bf29f1386e47b2b5498b"/><file name="mysql4-upgrade-1.0.8-1.0.9.php" hash="83a4aace7f0e389c5caaaf97675f6c24"/><file name="mysql4-upgrade-1.0.9-1.1.0.php" hash="57f95a027f6f0b4871f883e370dd1f51"/><file name="mysql4-upgrade-1.1.0-1.1.1.php" hash="61c4abd29823a909e14a9653ddd41825"/></dir></dir></dir></dir></target><target name="magedesign"><dir name="adminhtml"><dir name="default"><dir name="default"><dir name="layout"><file name="xpaymentsconnector.xml" hash="4a769cd81f4c37da59b400510c49593d"/></dir><dir name="template"><dir name="xpaymentsconnector"><file name="control.phtml" hash="2aa9353cc97a388390d779bcc0237d1b"/><dir name="form"><file name="prepaidpayments.phtml" hash="bfe70a3c62187bcd9915fb621eda58b9"/><file name="savedcards.phtml" hash="27ef4734f19ded0eb98214276a58e550"/></dir><dir name="info"><file name="cc.phtml" hash="67282ccf6f932de083bc477cc4238d22"/><file name="prepaidpayments.phtml" hash="f4bd2aa628257cb1f3450a1632a0b771"/><file name="savedcards.phtml" hash="2f79fa323b250786fb4acbee4a2a8809"/></dir><file name="info.phtml" hash="ab312e6f206c51ff3134b9a3ce5b5440"/><dir name="order"><dir name="view"><dir name="tab"><file name="xporderstate.phtml" hash="9147e963aa81731307b8c854ca8f4f64"/></dir></dir></dir><dir name="pdf"><file name="info.phtml" hash="9603c212b8efd1247ce36239d7365a73"/></dir><dir name="usercards"><dir name="tab"><file name="js.phtml" hash="ae8189ee0b9f0bd09d61692403527331"/></dir></dir></dir></dir></dir></dir></dir><dir name="frontend"><dir name="default"><dir name="default"><dir name="layout"><file name="xpaymentsconnector.xml" hash="2c071c6f81f40e45920e6b0f5cc49eea"/></dir><dir name="template"><dir name="xpaymentsconnector"><file name="blank.phtml" hash="a22778db8681a9aaee22eb2d8f8c6533"/><file name="cancel.phtml" hash="3ba9764fcbf85a3504664b342450ec2b"/><dir name="checkout"><dir name="onepage"><file name="beforesuccess.phtml" hash="8e05eff3705ac40d758c21523640f969"/><file name="order-detail.phtml" hash="ccd3d6d0dd774f939b66f602098331e5"/><dir name="review"><file name="button.phtml" hash="ed96034bc129f74af1020384499840a9"/></dir><file name="xpayment-iframe.phtml" hash="a3916b5115beff8b9a8f3338c85cdf24"/></dir></dir><dir name="customer"><file name="cardaddsuccess.phtml" hash="6771721173b99c0cf70391c22d878276"/><dir name="usercards"><file name="cardadd.phtml" hash="829efba385c66c014816cfcf6b16fe3b"/><file name="list.phtml" hash="3b727cd04f8e94e20c791a36e39e9352"/></dir></dir><file name="failure.phtml" hash="3d0691440fda2d1f3a314cd151d6ea90"/><dir name="form"><file name="cc.phtml" hash="9d6f013e0b935168865364aa99f23df4"/><file name="savedcards.phtml" hash="acbfcc5771443fcee06d715c3c049546"/></dir><dir name="info"><file name="cc.phtml" hash="9f96547c119d966eb26c67fb557cf1b8"/><file name="prepaidpayments.phtml" hash="9dfb23cb730781e45847a1422947bc9c"/><file name="savedcards.phtml" hash="3fad183168a2245f27d24848eff79cd6"/></dir><file name="redirect.phtml" hash="4c9c74e94c9a3015dee181a0ef978550"/></dir></dir></dir></dir><dir name="rwd"><dir name="default"><dir name="layout"><file name="xpaymentsconnector.xml" hash="2c071c6f81f40e45920e6b0f5cc49eea"/></dir><dir name="template"><dir name="xpaymentsconnector"><file name="blank.phtml" hash="a22778db8681a9aaee22eb2d8f8c6533"/><file name="cancel.phtml" hash="3ba9764fcbf85a3504664b342450ec2b"/><dir name="checkout"><dir name="onepage"><file name="beforesuccess.phtml" hash="8e05eff3705ac40d758c21523640f969"/><file name="order-detail.phtml" hash="ccd3d6d0dd774f939b66f602098331e5"/><dir name="review"><file name="button.phtml" hash="ed96034bc129f74af1020384499840a9"/></dir><file name="xpayment-iframe.phtml" hash="a3916b5115beff8b9a8f3338c85cdf24"/></dir></dir><dir name="customer"><file name="cardaddsuccess.phtml" hash="6771721173b99c0cf70391c22d878276"/><dir name="usercards"><file name="cardadd.phtml" hash="829efba385c66c014816cfcf6b16fe3b"/><file name="list.phtml" hash="3b727cd04f8e94e20c791a36e39e9352"/></dir></dir><file name="failure.phtml" hash="3d0691440fda2d1f3a314cd151d6ea90"/><dir name="form"><file name="cc.phtml" hash="9d6f013e0b935168865364aa99f23df4"/><file name="savedcards.phtml" hash="acbfcc5771443fcee06d715c3c049546"/></dir><dir name="info"><file name="cc.phtml" hash="9f96547c119d966eb26c67fb557cf1b8"/><file name="prepaidpayments.phtml" hash="9dfb23cb730781e45847a1422947bc9c"/><file name="savedcards.phtml" hash="3fad183168a2245f27d24848eff79cd6"/></dir><file name="redirect.phtml" hash="4c9c74e94c9a3015dee181a0ef978550"/></dir></dir></dir></dir></dir></target><target name="mageetc"><dir name="modules"><file name="Cdev_XPaymentsConnector.xml" hash="3b87bc5a9c17519d38e7de93b5ad13b9"/></dir></target><target name="mage"><dir name="js"><dir name="xpayment"><file name="backend-xpayment.js" hash="adb23ae4c5a320318d9e3cf26558fffd"/><file name="checkout-submit.js" hash="e5a6861f279564f63c73cbb110f06938"/><dir name="images"><file name="arrow-down.png" hash="a0beb6cd0ca4dd686ee5bf772432176e"/><file name="arrow-up.png" hash="df40115c816a7e08016c04120ac22e53"/><file name="card_types.png" hash="d35ba97c55e2cc1273a0dd1d7862d84c"/><file name="loader.gif" hash="e67d85a8d2d4021514815d0ff4d65173"/></dir><file name="settings.css" hash="e3cf33ee22c2a9d76f257a950c877a45"/></dir></dir></target><target name="magelocale"><dir><dir name="en_US"><file name="Cdev_XPaymentsConnector.csv" hash="b957ec641977907f3af1efcaed06c794"/></dir></dir></target></contents>
18
  <compatible/>
19
  <dependencies><required><php><min>5.1.0</min><max>6.0.0</max></php></required></dependencies>
20
  </package>
1
  <?xml version="1.0"?>
2
  <package>
3
  <name>CDev_XPaymentsConnector</name>
4
+ <version>1.5.5</version>
5
  <stability>stable</stability>
6
  <license uri="http://opensource.org/licenses/osl-3.0.php">OSL 3.0</license>
7
  <channel>community</channel>
10
  <description>X-Payments connector&#xD;
11
  This extension integrates Magento with X-Payments - a PA-DSS certified payment module.&#xD;
12
  </description>
13
+ <notes>Version number: 1.5.5</notes>
14
  <authors><author><name>Valerii Demidov</name><user>Valerii</user><email>vdemidov@corp.web4pro.com.ua</email></author></authors>
15
+ <date>2015-09-03</date>
16
+ <time>14:18:03</time>
17
+ <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="dabd9b1044add431fe4f838b6e3881bc"/><file name="Cardtype.php" hash="62499b375fa9c7ba091ff7763d54a95d"/><file name="Txnid.php" hash="993e4c40a3bb3b55f5b1a5a99adffd78"/></dir><dir name="Tab"><file name="Usercards.php" hash="248e454bc1c43d41013fd5d077b39961"/></dir></dir></dir><dir name="Sales"><dir name="Order"><dir name="View"><dir name="Tab"><file name="Xporderstate.php" hash="939602c0f0a5caf9217673c9ebcc7c7f"/></dir></dir><file name="View.php" hash="ba604dc5e8e58b047e7f95bde35eb934"/></dir></dir><dir name="System"><dir name="Config"><dir name="Form"><file name="Subselect.php" hash="c989f9ce4b9af2885c6d28e874825eab"/></dir></dir></dir><dir name="Usercards"><file name="Grid.php" hash="f9dc7cb51008ff14eb82e8dcb6bb0d3f"/></dir></dir><file name="Beforesuccess.php" hash="4c22841e4c28e66d4d363523899b073d"/><file name="Cancel.php" hash="3283657e21047278d81ac4478ac81de6"/><dir name="Checkout"><dir name="Onepage"><file name="Orderdetail.php" hash="5a62c069916dca4cb809adb476a230dc"/><file name="Settings.php" hash="2422adb2924c023d9829f376a893d553"/><file name="Success.php" hash="14196839f8daecb7d9f2276043769d5a"/></dir></dir><file name="Control.php" hash="e0ef77a236030598882937acb2a9c4e0"/><dir name="Customer"><dir name="Account"><file name="Navigation.php" hash="53fbec326cc5c61b929414df6f71e804"/></dir><file name="Cardadd.php" hash="fc8820f0a2bf8df850400971e3c9fdaf"/><file name="Success.php" hash="54f243e60b735cdd5cd879be65838fee"/><file name="Usercards.php" hash="76de3856ad42383c008400245a3135ae"/></dir><file name="Failure.php" hash="537aec3d3ee63ff1ac2d2300c2ca259e"/><dir name="Form"><file name="Cc.php" hash="2f4fbca4ddc11b541d4a2781aae7350e"/><file name="Container.php" hash="0494ad27c46dc3f7f89342188a5448ce"/><file name="Prepaidpayments.php" hash="9a11a9423b4dfc37d607425be54c9a4a"/><file name="Savedcards.php" hash="6e7a8bbfd18a8635d31e659772e2b5ed"/></dir><dir name="Info"><file name="Cc.php" hash="9b9dbaa783301e93ba1dc15cbf9bc3bb"/><file name="Prepaidpayments.php" hash="e72742bba292982787de587f9a53ce60"/><file name="Savedcards.php" hash="94b1a8ea03c07dbcfaef9cebb552ce29"/></dir><dir name="Recurring"><dir name="Profile"><file name="View.php" hash="5e71720c6b6817972b4970df2fd646d2"/></dir></dir><file name="Redirect.php" hash="380f772b003ba0b02e275bd44c67e751"/><file name="Success.php" hash="d2f023bc2206cbb33997b791a57b1b4e"/></dir><dir name="Helper"><file name="Data.php" hash="76d2b641ef71a62a82e5eb0c8ee1c6ce"/></dir><dir name="Model"><dir name="Adminhtml"><dir name="System"><dir name="Config"><dir name="Source"><file name="Placedisplay.php" hash="a42a68646dc2e1aa77502ec1be0dbaf7"/></dir></dir></dir></dir><dir name="Mysql4"><dir name="Paymentconfiguration"><file name="Collection.php" hash="98760f276af5182d42801865cb116db4"/></dir><file name="Paymentconfiguration.php" hash="ca045f953ec018c583279340c137ff71"/><dir name="Usercards"><file name="Collection.php" hash="6df6d26bef085e86c6db625487006086"/></dir><file name="Usercards.php" hash="ffb98ad5a0c252bbbf14adb086cf0d3c"/></dir><file name="Observer.php" hash="1ffdb21f996044b7698b25e02a152b10"/><dir name="Payment"><file name="Cc.php" hash="ef73b6a08ad385d218d4ca09db87d254"/><file name="Prepaidpayments.php" hash="9bbab2a26748c59609d6c81d8fc37c41"/><dir name="Recurring"><file name="Profile.php" hash="1d0a2ac393a55f586a1cc8016538e5df"/></dir><file name="Savedcards.php" hash="ca1a15b746d0a7d32bb53b3bea19c5be"/></dir><file name="Paymentconfiguration.php" hash="c0a6c5b610e42037f9904247e657a0e6"/><dir name="Quote"><dir name="Address"><dir name="Total"><dir name="Nominal"><dir name="Recurring"><file name="Discount.php" hash="17d12a5ac2ad95a7882ab651502ce98a"/><dir name="Initialfee"><file name="Tax.php" hash="892804e777f2e1bba1e57cd03d96e5b2"/></dir></dir></dir><file name="Nominal.php" hash="091dd174cb2b571a6739b34071fbc9a6"/></dir></dir></dir><file name="Quote.php" hash="9ddf19dfd97cbbe6423e80207f81a42f"/><dir name="Sales"><dir name="Recurring"><file name="Profile.php" hash="f2bdc6e081443ab538cb99e1f5fbe77c"/></dir></dir><dir name="Source"><file name="Paymentconfiguration.php" hash="eb9b8e1187a4a4f4614582d5f7932c37"/></dir><file name="Usercards.php" hash="049b38f03920a17d5dbd0ba5e3a834cc"/></dir><dir name="controllers"><dir name="Adminhtml"><file name="CustomerController.php" hash="8f2bc887259b9d5ae6f3a731e7a2eb6a"/><dir name="Sales"><dir name="Order"><file name="FraudController.php" hash="eb934598d3f116bd1f5c12744915edce"/></dir></dir></dir><file name="ControlController.php" hash="92e1380179483d97cd27be1d147833ba"/><file name="CustomerController.php" hash="1c59020cb500a059b60f3f871e79fcb7"/><file name="ProcessingController.php" hash="e836eada5566a1e41b6c593ccd32d504"/></dir><dir name="etc"><file name="config.xml" hash="6982f46b995ff25be99f2d9bbbdd0bc4"/><file name="system.xml" hash="f780222505b2e4e0a086ac40469f7f4d"/></dir><dir name="sql"><dir name="xpaymentsconnector_setup"><file name="mysql4-install-1.0.0.php" hash="5b6ed901a54700d986dd81029104ed72"/><file name="mysql4-upgrade-1.0.0-1.0.1.php" hash="5e2da32a0f87b747a5e9f3d9095e962a"/><file name="mysql4-upgrade-1.0.1-1.0.2.php" hash="566cd8aa894ff488f60bd718ad8b2772"/><file name="mysql4-upgrade-1.0.2-1.0.3.php" hash="0f44cf02457c2b6a887b399e94b89e57"/><file name="mysql4-upgrade-1.0.3-1.0.4.php" hash="f353d20a6d6ac827be5cd581cc988660"/><file name="mysql4-upgrade-1.0.4-1.0.5.php" hash="9b71385496b9b42e5a79b0cbbc557dff"/><file name="mysql4-upgrade-1.0.5-1.0.6.php" hash="fa79555b4802a96579f314a670ab8ed3"/><file name="mysql4-upgrade-1.0.6-1.0.7.php" hash="b9708303f3160fc0c9347f4600e27aba"/><file name="mysql4-upgrade-1.0.7-1.0.8.php" hash="2d07945a0438bf29f1386e47b2b5498b"/><file name="mysql4-upgrade-1.0.8-1.0.9.php" hash="83a4aace7f0e389c5caaaf97675f6c24"/><file name="mysql4-upgrade-1.0.9-1.1.0.php" hash="57f95a027f6f0b4871f883e370dd1f51"/><file name="mysql4-upgrade-1.1.0-1.1.1.php" hash="61c4abd29823a909e14a9653ddd41825"/><file name="mysql4-upgrade-1.1.1-1.1.2.php" hash="684c48c888faef382060798b1198dea9"/></dir></dir></dir></dir></target><target name="magedesign"><dir name="adminhtml"><dir name="default"><dir name="default"><dir name="layout"><file name="xpaymentsconnector.xml" hash="4a769cd81f4c37da59b400510c49593d"/></dir><dir name="template"><dir name="xpaymentsconnector"><file name="control.phtml" hash="2aa9353cc97a388390d779bcc0237d1b"/><dir name="form"><file name="prepaidpayments.phtml" hash="bfe70a3c62187bcd9915fb621eda58b9"/><file name="savedcards.phtml" hash="3a13d7c828f488795e99941334860596"/></dir><dir name="info"><file name="cc.phtml" hash="870cfba200e46f8c46a759e72f73de7e"/><file name="prepaidpayments.phtml" hash="f4bd2aa628257cb1f3450a1632a0b771"/><file name="savedcards.phtml" hash="4951f551284289728feb57ff3eef86e9"/></dir><file name="info.phtml" hash="ab312e6f206c51ff3134b9a3ce5b5440"/><dir name="order"><dir name="view"><dir name="tab"><file name="xporderstate.phtml" hash="17b3304885b4715e26aed1d4bd6c7746"/></dir></dir></dir><dir name="pdf"><file name="info.phtml" hash="9603c212b8efd1247ce36239d7365a73"/></dir><dir name="usercards"><dir name="tab"><file name="js.phtml" hash="ae8189ee0b9f0bd09d61692403527331"/></dir></dir></dir></dir></dir></dir></dir><dir name="frontend"><dir name="default"><dir name="default"><dir name="layout"><file name="xpaymentsconnector.xml" hash="800d5202b0260343cc71a93d150d32c2"/></dir><dir name="template"><dir name="xpaymentsconnector"><file name="blank.phtml" hash="a22778db8681a9aaee22eb2d8f8c6533"/><file name="cancel.phtml" hash="3ba9764fcbf85a3504664b342450ec2b"/><dir name="checkout"><dir name="onepage"><file name="beforesuccess.phtml" hash="8e05eff3705ac40d758c21523640f969"/><file name="order-detail.phtml" hash="ccd3d6d0dd774f939b66f602098331e5"/><dir name="review"><file name="button.phtml" hash="ed96034bc129f74af1020384499840a9"/></dir><file name="xpayment-iframe.phtml" hash="a3916b5115beff8b9a8f3338c85cdf24"/></dir><file name="success.phtml" hash="a6b5926f1675b4dcec5867bd40f3ac86"/></dir><dir name="customer"><file name="cardaddsuccess.phtml" hash="6771721173b99c0cf70391c22d878276"/><dir name="usercards"><file name="cardadd.phtml" hash="829efba385c66c014816cfcf6b16fe3b"/><file name="list.phtml" hash="e79d4126ad2e585816bb8f5eed444e59"/></dir></dir><file name="failure.phtml" hash="3d0691440fda2d1f3a314cd151d6ea90"/><dir name="form"><file name="cc.phtml" hash="9d6f013e0b935168865364aa99f23df4"/><file name="savedcards.phtml" hash="6ffc897b61368538d7d89f5e781bb055"/></dir><dir name="info"><file name="cc.phtml" hash="870cfba200e46f8c46a759e72f73de7e"/><file name="prepaidpayments.phtml" hash="9dfb23cb730781e45847a1422947bc9c"/><file name="savedcards.phtml" hash="0af3d140b3c407e4748a0514533c49af"/></dir><file name="redirect.phtml" hash="4c9c74e94c9a3015dee181a0ef978550"/></dir></dir></dir></dir><dir name="rwd"><dir name="default"><dir name="layout"><file name="xpaymentsconnector.xml" hash="800d5202b0260343cc71a93d150d32c2"/></dir><dir name="template"><dir name="xpaymentsconnector"><file name="blank.phtml" hash="a22778db8681a9aaee22eb2d8f8c6533"/><file name="cancel.phtml" hash="3ba9764fcbf85a3504664b342450ec2b"/><dir name="checkout"><dir name="onepage"><file name="beforesuccess.phtml" hash="8e05eff3705ac40d758c21523640f969"/><file name="order-detail.phtml" hash="ccd3d6d0dd774f939b66f602098331e5"/><dir name="review"><file name="button.phtml" hash="ed96034bc129f74af1020384499840a9"/></dir><file name="xpayment-iframe.phtml" hash="a3916b5115beff8b9a8f3338c85cdf24"/></dir><file name="success.phtml" hash="a6b5926f1675b4dcec5867bd40f3ac86"/></dir><dir name="customer"><file name="cardaddsuccess.phtml" hash="6771721173b99c0cf70391c22d878276"/><dir name="usercards"><file name="cardadd.phtml" hash="829efba385c66c014816cfcf6b16fe3b"/><file name="list.phtml" hash="e79d4126ad2e585816bb8f5eed444e59"/></dir></dir><file name="failure.phtml" hash="3d0691440fda2d1f3a314cd151d6ea90"/><dir name="form"><file name="cc.phtml" hash="9d6f013e0b935168865364aa99f23df4"/><file name="savedcards.phtml" hash="6ffc897b61368538d7d89f5e781bb055"/></dir><dir name="info"><file name="cc.phtml" hash="5ff15d39d4063751fdefa5a50bf1ec47"/><file name="prepaidpayments.phtml" hash="9dfb23cb730781e45847a1422947bc9c"/><file name="savedcards.phtml" hash="0af3d140b3c407e4748a0514533c49af"/></dir><file name="redirect.phtml" hash="4c9c74e94c9a3015dee181a0ef978550"/></dir></dir></dir></dir></dir></target><target name="mageetc"><dir name="modules"><file name="Cdev_XPaymentsConnector.xml" hash="3b87bc5a9c17519d38e7de93b5ad13b9"/></dir></target><target name="mage"><dir name="js"><dir name="xpayment"><file name="backend-xpayment.js" hash="adb23ae4c5a320318d9e3cf26558fffd"/><file name="checkout-submit.js" hash="e5a6861f279564f63c73cbb110f06938"/><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="d35ba97c55e2cc1273a0dd1d7862d84c"/><file name="loader.gif" hash="e67d85a8d2d4021514815d0ff4d65173"/></dir><file name="settings.css" hash="62f06a2cc47f9467feb96a08b0e4a99c"/></dir></dir></target><target name="magelocale"><dir><dir name="en_US"><file name="Cdev_XPaymentsConnector.csv" hash="99a5be6e080a11c8e17a07ed3d817125"/></dir></dir></target></contents>
18
  <compatible/>
19
  <dependencies><required><php><min>5.1.0</min><max>6.0.0</max></php></required></dependencies>
20
  </package>