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
- app/code/community/Cdev/XPaymentsConnector/Block/Adminhtml/Customer/Edit/Renderer/Cardnumber.php +41 -0
- app/code/community/Cdev/XPaymentsConnector/Block/Adminhtml/Sales/Order/View.php +66 -0
- app/code/community/Cdev/XPaymentsConnector/Block/Adminhtml/Sales/Order/View/Tab/Xporderstate.php +9 -5
- app/code/community/Cdev/XPaymentsConnector/Block/Adminhtml/Usercards/Grid.php +3 -3
- app/code/community/Cdev/XPaymentsConnector/Block/Checkout/Onepage/Success.php +90 -0
- app/code/community/Cdev/XPaymentsConnector/Block/Customer/Cardadd.php +7 -2
- app/code/community/Cdev/XPaymentsConnector/Block/Info/Cc.php +10 -0
- app/code/community/Cdev/XPaymentsConnector/Block/Info/Savedcards.php +15 -3
- app/code/community/Cdev/XPaymentsConnector/Helper/Data.php +81 -17
- app/code/community/Cdev/XPaymentsConnector/Model/Observer.php +10 -6
- app/code/community/Cdev/XPaymentsConnector/Model/Payment/Cc.php +111 -28
- app/code/community/Cdev/XPaymentsConnector/Model/Payment/Savedcards.php +5 -1
- app/code/community/Cdev/XPaymentsConnector/controllers/Adminhtml/Sales/Order/FraudController.php +91 -0
- app/code/community/Cdev/XPaymentsConnector/controllers/CustomerController.php +19 -11
- app/code/community/Cdev/XPaymentsConnector/controllers/ProcessingController.php +85 -159
- app/code/community/Cdev/XPaymentsConnector/etc/config.xml +15 -1
- app/code/community/Cdev/XPaymentsConnector/sql/xpaymentsconnector_setup/mysql4-upgrade-1.1.1-1.1.2.php +101 -0
- app/design/adminhtml/default/default/template/xpaymentsconnector/form/savedcards.phtml +17 -6
- app/design/adminhtml/default/default/template/xpaymentsconnector/info/cc.phtml +13 -7
- app/design/adminhtml/default/default/template/xpaymentsconnector/info/savedcards.phtml +8 -10
- app/design/adminhtml/default/default/template/xpaymentsconnector/order/view/tab/xporderstate.phtml +5 -5
- app/design/frontend/default/default/layout/xpaymentsconnector.xml +6 -0
- app/design/frontend/default/default/template/xpaymentsconnector/checkout/success.phtml +79 -0
- app/design/frontend/default/default/template/xpaymentsconnector/customer/usercards/list.phtml +23 -8
- app/design/frontend/default/default/template/xpaymentsconnector/form/savedcards.phtml +15 -3
- app/design/frontend/default/default/template/xpaymentsconnector/info/cc.phtml +13 -13
- app/design/frontend/default/default/template/xpaymentsconnector/info/savedcards.phtml +6 -4
- app/design/frontend/rwd/default/layout/xpaymentsconnector.xml +6 -0
- app/design/frontend/rwd/default/template/xpaymentsconnector/checkout/success.phtml +79 -0
- app/design/frontend/rwd/default/template/xpaymentsconnector/customer/usercards/list.phtml +23 -8
- app/design/frontend/rwd/default/template/xpaymentsconnector/form/savedcards.phtml +15 -3
- app/design/frontend/rwd/default/template/xpaymentsconnector/info/cc.phtml +13 -8
- app/design/frontend/rwd/default/template/xpaymentsconnector/info/savedcards.phtml +6 -4
- app/locale/en_US/Cdev_XPaymentsConnector.csv +15 -2
- js/xpayment/images/btn_bg_fraud.png +0 -0
- js/xpayment/settings.css +9 -2
- 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 |
-
=
|
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 |
-
=
|
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['
|
146 |
$actionAmount = $xpOrderStateData['capturedAmountAvailGateway'];
|
147 |
break;
|
148 |
-
case ($xpOrderStateData['
|
149 |
-
$actionAmount = $xpOrderStateData['
|
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('
|
97 |
-
'header' => Mage::helper('xpaymentsconnector')->__('Card number
|
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 |
-
$
|
52 |
-
$
|
|
|
|
|
|
|
|
|
|
|
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&txnid=' . $this->getInfo()->getLastTransId();
|
85 |
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
86 |
}
|
83 |
return preg_replace('/\/+$/Ss', '', $this->getMethod()->getConfig('xpay_url'))
|
84 |
. '/admin.php?target=payment&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 $
|
55 |
}
|
56 |
|
|
|
|
|
|
|
|
|
57 |
public function getOrderCardData($orderId)
|
58 |
{
|
59 |
$orderCardData = unserialize(Mage::getModel('sales/order')->load($orderId)->getData('xp_card_data'));
|
|
|
60 |
|
61 |
-
return$
|
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
|
160 |
-
*
|
161 |
-
* - prepare_order_id (int)
|
162 |
-
* - xpayment_response
|
163 |
-
* - token
|
164 |
-
* return
|
165 |
-
* @return bool or int
|
166 |
*/
|
167 |
-
public function
|
168 |
{
|
169 |
-
|
170 |
-
|
171 |
-
|
|
|
|
|
|
|
|
|
|
|
|
|
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 |
-
$
|
|
|
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.",
|
|
|
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 |
-
$
|
826 |
-
|
827 |
-
|
828 |
-
|
|
|
|
|
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 |
-
$
|
104 |
|
105 |
|
106 |
if ($useIframe) {
|
107 |
/*update order table*/
|
108 |
-
$order->setData('xpc_txnid', $
|
109 |
-
$order->setData('xp_card_data', serialize($request));
|
110 |
$order->save();
|
111 |
|
112 |
-
$result = $paymentCcModel->updateOrderByXpaymentResponse($order->getId(), $
|
113 |
if ($result['success']) {
|
114 |
/* save credit card to user profile */
|
115 |
-
$
|
116 |
-
$paymentCcModel->saveUserCard($
|
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.
|
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/
|
510 |
-
|
|
|
|
|
511 |
'saveCard' => 'Y',
|
512 |
-
'api_version' => self::
|
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 |
-
|
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 |
-
|
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/
|
1396 |
-
|
|
|
|
|
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 |
-
|
|
|
|
|
|
|
|
|
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 |
-
}
|
|
|
|
|
|
|
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' =>
|
1858 |
'txnId' => $cardData['txnId'],
|
1859 |
-
'last_4_cc_num' => $cardData['
|
1860 |
-
'
|
1861 |
-
'
|
|
|
|
|
|
|
|
|
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::
|
|
|
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::
|
|
|
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->
|
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->
|
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
|
|
|
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 |
-
|
|
|
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 |
-
|
119 |
-
|
120 |
-
|
|
|
|
|
|
|
|
|
|
|
121 |
}else{
|
|
|
|
|
|
|
122 |
// save user card
|
123 |
-
Mage::getSingleton(
|
124 |
-
$newCardData = $CCPaymentModel->saveUserCard($
|
125 |
-
|
126 |
-
$resultMessage = $this->__("Payment card has been added successfully!");
|
127 |
|
128 |
-
Mage::getSingleton(
|
129 |
}
|
130 |
|
131 |
$this->getResponse()->setBody(
|
132 |
$this->getLayout()
|
133 |
-
->createBlock('xpaymentsconnector/customer_success')->setData(
|
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 |
-
|
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 |
-
$
|
|
|
|
|
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.
|
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
|
25 |
*/
|
26 |
?>
|
27 |
<?php $_code = $this->getMethodCode() ?>
|
28 |
<?php $userAdminhtmlCreditCardsList = $this->getAdminhtmlUserCreditCardsList(); ?>
|
29 |
<?php
|
30 |
$admSession = Mage::getSingleton('adminhtml/session');
|
31 |
-
$cardSelected = $admSession->getData(
|
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 |
?>
|
39 |
|
40 |
<li>
|
41 |
<span class="input-box">
|
42 |
-
<input disabled="" type="radio" <?php echo $checked;?>
|
43 |
-
|
44 |
-
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
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 =
|
29 |
?>
|
|
|
30 |
<?php echo $this->getMethod()->getTitle(); ?>
|
31 |
<br />
|
32 |
-
<?php if ($this->getInfo()->getLastTransId() == '')
|
33 |
-
|
34 |
-
|
35 |
-
|
36 |
-
<?php
|
|
|
|
|
|
|
|
|
|
|
37 |
<?php if(!empty($orderCardData)): ?>
|
38 |
<span id="x-payment-prepaid-card-info">
|
39 |
-
<?php echo $this->__(
|
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 |
-
$
|
29 |
-
$
|
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
|
39 |
</span>
|
40 |
<?php elseif ($orderId = $this->getRequest()->getParam("order_id")): ?>
|
41 |
-
<?php $orderCardData =
|
42 |
<span id="x-payment-card-info">
|
43 |
-
<?php echo $this->__("For current order we used your payment card
|
44 |
</span>
|
45 |
<?php elseif ($adminhtmlPaymentCardNumber): ?>
|
46 |
-
<?php $cardData =
|
47 |
<?php if(!empty($cardData)): ?>
|
48 |
<span id="x-payment-card-info">
|
49 |
-
<?php echo $this->__("For current order we used your payment card
|
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["
|
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["
|
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["
|
243 |
class="form-button "
|
244 |
-
value="Void (<?php echo Mage::helper('core')->currency($orderStateData["
|
245 |
<?php endif;?>
|
246 |
-
<?php if($orderStateData["
|
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"
|
58 |
-
|
59 |
-
<td
|
60 |
-
<td
|
61 |
-
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
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"
|
|
|
|
|
|
|
|
|
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();?>'"
|
|
|
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>« </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"
|
36 |
-
|
37 |
-
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
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 |
-
|
40 |
-
|
41 |
-
|
42 |
-
<?php
|
|
|
|
|
|
|
|
|
|
|
43 |
<?php if(!empty($orderCardData)): ?>
|
44 |
<span id="x-payment-prepaid-card-info">
|
45 |
-
<?php echo $this->__(
|
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
|
36 |
</span>
|
37 |
-
<?php elseif ($orderId = $this->getRequest()->getParam(
|
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
|
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
|
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"
|
58 |
-
|
59 |
-
<td
|
60 |
-
<td
|
61 |
-
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
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"
|
|
|
|
|
|
|
|
|
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();?>'"
|
|
|
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>« </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"
|
36 |
-
|
37 |
-
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
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 =
|
33 |
}
|
34 |
-
|
35 |
?>
|
|
|
36 |
<?php echo $this->getMethod()->getTitle(); ?>
|
37 |
<br />
|
38 |
-
<?php if ($this->getInfo()->getLastTransId() == '')
|
39 |
-
|
40 |
-
|
41 |
-
|
42 |
-
<?php
|
|
|
|
|
|
|
|
|
|
|
43 |
<?php if(!empty($orderCardData)): ?>
|
44 |
<span id="x-payment-prepaid-card-info">
|
45 |
-
<?php echo $this->__(
|
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
|
36 |
</span>
|
37 |
-
<?php elseif ($orderId = $this->getRequest()->getParam(
|
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
|
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
|
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
|
|
|
|
|
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
|
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:
|
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.
|
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
|
11 |
This extension integrates Magento with X-Payments - a PA-DSS certified payment module.
|
12 |
</description>
|
13 |
-
<notes>Version number: 1.
|
14 |
<authors><author><name>Valerii Demidov</name><user>Valerii</user><email>vdemidov@corp.web4pro.com.ua</email></author></authors>
|
15 |
-
<date>2015-
|
16 |
-
<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
|
11 |
This extension integrates Magento with X-Payments - a PA-DSS certified payment module.
|
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>
|