Total_Web_Solutions_Payment_Gateway_Module - Version 1.8.3

Version Notes

Payment module for Total Web Solution's gateway

Download this release

Release Info

Developer EcomMerchant
Extension Total_Web_Solutions_Payment_Gateway_Module
Version 1.8.3
Comparing to
See all releases


Code changes from version 1.8.2 to 1.8.3

app/code/local/KuafuSoft/EcomPayment/Model/Api/Standard.php CHANGED
@@ -1,154 +1,154 @@
1
- <?php
2
- class KuafuSoft_EcomPayment_Model_Api_Standard extends KuafuSoft_EcomPayment_Model_Api_Abstract
3
- {
4
- /**
5
- * Global interface map and export filters
6
- * @var array
7
- */
8
- protected $_globalMap = array(
9
- // commands
10
- 'CustomerID' => 'business_account',
11
- 'CustomerEmail' => 'customer_email',
12
- 'TransactionCurrency' => 'currency_code',
13
- 'TransactionAmount' => 'amount',
14
- 'Notes' => 'notes',
15
- 'RedirectorSuccess' => 'redirector_success',
16
- 'RedirectorFailed' => 'redirector_failed',
17
- 'PayPageType' => 'pay_page_type',
18
- 'Amount' => 'amount1',
19
- );
20
- protected $_exportToRequestFilters = array(
21
- 'amount' => '_filterAmount',
22
- 'shipping' => '_filterAmount'
23
- );
24
-
25
- /**
26
- * Interface for common and "aggregated order" specific fields
27
- * @var array
28
- */
29
- protected $_commonRequestFields = array(
30
- 'CustomerID', 'TransactionCurrency', 'TransactionAmount', 'CustomerEmail', 'Notes', 'RedirectorSuccess', 'RedirectorFailed', 'HouseNumber', 'PostCode', 'CHCountry',
31
- 'PayPageType', 'Amount',
32
- );
33
-
34
- /**
35
- * Fields that should be replaced in debug with '***'
36
- *
37
- * @var array
38
- */
39
- protected $_debugReplacePrivateDataKeys = array('business');
40
-
41
- /**
42
- * Address export to request map
43
- * @var array
44
- */
45
- protected $_addressMap = array(
46
- 'CHCountry' => 'country_id',
47
- 'PostCode' => 'postcode',
48
- 'HouseNumber' => 'street',
49
- );
50
-
51
- /**
52
- * Generate Ecom Standard checkout request fields
53
- * Depending on whether there are cart line items set, will aggregate everything or display items specifically
54
- * Shipping amount in cart line items is implemented as a separate "fake" line item
55
- */
56
- public function getStandardCheckoutRequest()
57
- {
58
- $request = $this->_exportToRequest($this->_commonRequestFields);
59
- // payer address
60
- $this->_importAddress($request);
61
- $this->_debug(array('request' => $request)); // TODO: this is not supposed to be called in getter
62
- return $request;
63
- }
64
-
65
- /**
66
- * Merchant account ID getter
67
- * @return string
68
- */
69
- public function getBusinessAccount()
70
- {
71
- return $this->_config->customer_id;
72
- }
73
-
74
- /**
75
- * Payment action getter
76
- * @return string
77
- */
78
- public function getPaymentAction()
79
- {
80
- return strtolower(parent::getPaymentAction());
81
- }
82
-
83
- /**
84
- * @deprecated after 1.4.1.0
85
- *
86
- * @param array $request
87
- */
88
- public function debugRequest($request)
89
- {
90
- return;
91
- }
92
-
93
- /**
94
- * Import address object, if set, to the request
95
- *
96
- * @param array $request
97
- */
98
- protected function _importAddress(&$request)
99
- {
100
- $address = $this->getAddress();
101
- if (!$address) {
102
- return;
103
- }
104
- $request = Varien_Object_Mapper::accumulateByMap($address, $request, array_flip($this->_addressMap));
105
- }
106
-
107
- public function getCurrencyCode()
108
- {
109
- $code = strtoupper($this->getData('currency_code'));
110
- switch($code)
111
- {
112
- case 'AUD':
113
- return 036;
114
- case 'CAD':
115
- return 124;
116
- case 'DKK':
117
- return 208;
118
- case 'HKD':
119
- return 344;
120
- case 'ILR':
121
- return 376;
122
- case 'JPY':
123
- return 392;
124
- case 'KPW':
125
- return 578;
126
- case 'NOK':
127
- return 036;
128
- case 'GBP':
129
- return 826;
130
- case 'SAR':
131
- return 682;
132
- case 'SEK':
133
- return 752;
134
- case 'CHF':
135
- return 756;
136
- case 'USD':
137
- return 840;
138
- case 'EUR':
139
- return 978;
140
- default:
141
- Mage::throwException(Mage::helper('ecompayment')->__('Currency not supported by ecompayment, please select another payment method.'));
142
- }
143
- }
144
-
145
- public function getPayPageType()
146
- {
147
- return 4;
148
- }
149
-
150
- public function getAmount1()
151
- {
152
- return $this->getData('amount');
153
- }
154
- }
1
+ <?php
2
+ class KuafuSoft_EcomPayment_Model_Api_Standard extends KuafuSoft_EcomPayment_Model_Api_Abstract
3
+ {
4
+ /**
5
+ * Global interface map and export filters
6
+ * @var array
7
+ */
8
+ protected $_globalMap = array(
9
+ // commands
10
+ 'CustomerID' => 'business_account',
11
+ 'CustomerEmail' => 'customer_email',
12
+ 'TransactionCurrency' => 'currency_code',
13
+ 'TransactionAmount' => 'amount',
14
+ 'Notes' => 'notes',
15
+ 'RedirectorSuccess' => 'redirector_success',
16
+ 'RedirectorFailed' => 'redirector_failed',
17
+ 'PayPageType' => 'pay_page_type',
18
+ 'Amount' => 'amount1',
19
+ );
20
+ protected $_exportToRequestFilters = array(
21
+ 'amount' => '_filterAmount',
22
+ 'shipping' => '_filterAmount'
23
+ );
24
+
25
+ /**
26
+ * Interface for common and "aggregated order" specific fields
27
+ * @var array
28
+ */
29
+ protected $_commonRequestFields = array(
30
+ 'CustomerID', 'TransactionCurrency', 'TransactionAmount', 'CustomerEmail', 'Notes', 'RedirectorSuccess', 'RedirectorFailed', 'PostCode', 'CHCountry',
31
+ 'PayPageType', 'Amount',
32
+ );
33
+
34
+ /**
35
+ * Fields that should be replaced in debug with '***'
36
+ *
37
+ * @var array
38
+ */
39
+ protected $_debugReplacePrivateDataKeys = array('business');
40
+
41
+ /**
42
+ * Address export to request map
43
+ * @var array
44
+ */
45
+ protected $_addressMap = array(
46
+ 'CHCountry' => 'country_id',
47
+ 'PostCode' => 'postcode',
48
+ );
49
+
50
+ /**
51
+ * Generate Ecom Standard checkout request fields
52
+ * Depending on whether there are cart line items set, will aggregate everything or display items specifically
53
+ * Shipping amount in cart line items is implemented as a separate "fake" line item
54
+ */
55
+ public function getStandardCheckoutRequest()
56
+ {
57
+ $request = $this->_exportToRequest($this->_commonRequestFields);
58
+ // payer address
59
+ // not required $this->_importAddress($request);
60
+ $this->_debug(array('request' => $request)); // TODO: this is not supposed to be called in getter
61
+ return $request;
62
+ }
63
+
64
+ /**
65
+ * Merchant account ID getter
66
+ * @return string
67
+ */
68
+ public function getBusinessAccount()
69
+ {
70
+ return $this->_config->customer_id;
71
+ }
72
+
73
+ /**
74
+ * Payment action getter
75
+ * @return string
76
+ */
77
+ public function getPaymentAction()
78
+ {
79
+ return strtolower(parent::getPaymentAction());
80
+ }
81
+
82
+ /**
83
+ * @deprecated after 1.4.1.0
84
+ *
85
+ * @param array $request
86
+ */
87
+ public function debugRequest($request)
88
+ {
89
+ return;
90
+ }
91
+
92
+ /**
93
+ * Import address object, if set, to the request
94
+ *
95
+ * @param array $request
96
+ */
97
+ protected function _importAddress(&$request)
98
+ {
99
+ $address = $this->getAddress();
100
+ if (!$address) {
101
+ return;
102
+ }
103
+ $request = Varien_Object_Mapper::accumulateByMap($address, $request, array_flip($this->_addressMap));
104
+ }
105
+
106
+ public function getCurrencyCode()
107
+ {
108
+ $code = strtoupper($this->getData('currency_code'));
109
+ switch($code)
110
+ {
111
+ case 'AUD':
112
+ return 036;
113
+ case 'CAD':
114
+ return 124;
115
+ case 'DKK':
116
+ return 208;
117
+ case 'HKD':
118
+ return 344;
119
+ case 'ILR':
120
+ return 376;
121
+ case 'JPY':
122
+ return 392;
123
+ case 'KPW':
124
+ return 578;
125
+ case 'NOK':
126
+ return 036;
127
+ case 'GBP':
128
+ return 826;
129
+ case 'SAR':
130
+ return 682;
131
+ case 'SEK':
132
+ return 752;
133
+ case 'CHF':
134
+ return 756;
135
+ case 'USD':
136
+ return 840;
137
+ case 'EUR':
138
+ return 978;
139
+ default:
140
+ Mage::throwException(Mage::helper('ecompayment')->__('Currency not supported by payment, please select another payment method.'));
141
+ }
142
+ }
143
+
144
+ public function getPayPageType()
145
+ {
146
+ return 4;
147
+ }
148
+
149
+ public function getAmount1()
150
+ {
151
+ return $this->getData('amount');
152
+ }
153
+ }
154
+
app/code/local/KuafuSoft/EcomPayment/Model/Api/Standard.php.old ADDED
@@ -0,0 +1,154 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ <?php
2
+ class KuafuSoft_EcomPayment_Model_Api_Standard extends KuafuSoft_EcomPayment_Model_Api_Abstract
3
+ {
4
+ /**
5
+ * Global interface map and export filters
6
+ * @var array
7
+ */
8
+ protected $_globalMap = array(
9
+ // commands
10
+ 'CustomerID' => 'business_account',
11
+ 'CustomerEmail' => 'customer_email',
12
+ 'TransactionCurrency' => 'currency_code',
13
+ 'TransactionAmount' => 'amount',
14
+ 'Notes' => 'notes',
15
+ 'RedirectorSuccess' => 'redirector_success',
16
+ 'RedirectorFailed' => 'redirector_failed',
17
+ 'PayPageType' => 'pay_page_type',
18
+ 'Amount' => 'amount1',
19
+ );
20
+ protected $_exportToRequestFilters = array(
21
+ 'amount' => '_filterAmount',
22
+ 'shipping' => '_filterAmount'
23
+ );
24
+
25
+ /**
26
+ * Interface for common and "aggregated order" specific fields
27
+ * @var array
28
+ */
29
+ protected $_commonRequestFields = array(
30
+ 'CustomerID', 'TransactionCurrency', 'TransactionAmount', 'CustomerEmail', 'Notes', 'RedirectorSuccess', 'RedirectorFailed', 'HouseNumber', 'PostCode', 'CHCountry',
31
+ 'PayPageType', 'Amount',
32
+ );
33
+
34
+ /**
35
+ * Fields that should be replaced in debug with '***'
36
+ *
37
+ * @var array
38
+ */
39
+ protected $_debugReplacePrivateDataKeys = array('business');
40
+
41
+ /**
42
+ * Address export to request map
43
+ * @var array
44
+ */
45
+ protected $_addressMap = array(
46
+ 'CHCountry' => 'country_id',
47
+ 'PostCode' => 'postcode',
48
+ 'HouseNumber' => 'street',
49
+ );
50
+
51
+ /**
52
+ * Generate Ecom Standard checkout request fields
53
+ * Depending on whether there are cart line items set, will aggregate everything or display items specifically
54
+ * Shipping amount in cart line items is implemented as a separate "fake" line item
55
+ */
56
+ public function getStandardCheckoutRequest()
57
+ {
58
+ $request = $this->_exportToRequest($this->_commonRequestFields);
59
+ // payer address
60
+ $this->_importAddress($request);
61
+ $this->_debug(array('request' => $request)); // TODO: this is not supposed to be called in getter
62
+ return $request;
63
+ }
64
+
65
+ /**
66
+ * Merchant account ID getter
67
+ * @return string
68
+ */
69
+ public function getBusinessAccount()
70
+ {
71
+ return $this->_config->customer_id;
72
+ }
73
+
74
+ /**
75
+ * Payment action getter
76
+ * @return string
77
+ */
78
+ public function getPaymentAction()
79
+ {
80
+ return strtolower(parent::getPaymentAction());
81
+ }
82
+
83
+ /**
84
+ * @deprecated after 1.4.1.0
85
+ *
86
+ * @param array $request
87
+ */
88
+ public function debugRequest($request)
89
+ {
90
+ return;
91
+ }
92
+
93
+ /**
94
+ * Import address object, if set, to the request
95
+ *
96
+ * @param array $request
97
+ */
98
+ protected function _importAddress(&$request)
99
+ {
100
+ $address = $this->getAddress();
101
+ if (!$address) {
102
+ return;
103
+ }
104
+ $request = Varien_Object_Mapper::accumulateByMap($address, $request, array_flip($this->_addressMap));
105
+ }
106
+
107
+ public function getCurrencyCode()
108
+ {
109
+ $code = strtoupper($this->getData('currency_code'));
110
+ switch($code)
111
+ {
112
+ case 'AUD':
113
+ return 036;
114
+ case 'CAD':
115
+ return 124;
116
+ case 'DKK':
117
+ return 208;
118
+ case 'HKD':
119
+ return 344;
120
+ case 'ILR':
121
+ return 376;
122
+ case 'JPY':
123
+ return 392;
124
+ case 'KPW':
125
+ return 578;
126
+ case 'NOK':
127
+ return 036;
128
+ case 'GBP':
129
+ return 826;
130
+ case 'SAR':
131
+ return 682;
132
+ case 'SEK':
133
+ return 752;
134
+ case 'CHF':
135
+ return 756;
136
+ case 'USD':
137
+ return 840;
138
+ case 'EUR':
139
+ return 978;
140
+ default:
141
+ Mage::throwException(Mage::helper('ecompayment')->__('Currency not supported by ecompayment, please select another payment method.'));
142
+ }
143
+ }
144
+
145
+ public function getPayPageType()
146
+ {
147
+ return 4;
148
+ }
149
+
150
+ public function getAmount1()
151
+ {
152
+ return $this->getData('amount');
153
+ }
154
+ }
app/code/local/KuafuSoft/EcomPayment/controllers/StandardController.php CHANGED
@@ -1,132 +1,165 @@
1
- <?php
2
- class KuafuSoft_EcomPayment_StandardController extends Mage_Core_Controller_Front_Action
3
- {
4
- /**
5
- * Order instance
6
- */
7
- protected $_order;
8
-
9
- /**
10
- * Get order
11
- *
12
- * @return Mage_Sales_Model_Order
13
- */
14
- public function getOrder()
15
- {
16
- if ($this->_order == null) {
17
- }
18
- return $this->_order;
19
- }
20
-
21
- /**
22
- * Send expire header to ajax response
23
- *
24
- */
25
- protected function _expireAjax()
26
- {
27
- if (!Mage::getSingleton('checkout/session')->getQuote()->hasItems()) {
28
- $this->getResponse()->setHeader('HTTP/1.1','403 Session Expired');
29
- exit;
30
- }
31
- }
32
-
33
- /**
34
- * When a customer chooses ecom on Checkout/Payment page
35
- *
36
- */
37
- public function redirectAction()
38
- {
39
- $session = Mage::getSingleton('checkout/session');
40
- $session->setEcomPaymentStandardQuoteId($session->getQuoteId());
41
- $this->getResponse()->setBody($this->getLayout()->createBlock('ecompayment/standard_redirect')->toHtml());
42
- $session->unsQuoteId();
43
- $session->unsRedirectUrl();
44
- }
45
-
46
- /**
47
- * When a customer cancel payment from ecompayment.
48
- */
49
- public function cancelAction()
50
- {
51
- $session = Mage::getSingleton('checkout/session');
52
- $session->setQuoteId($session->getEcomPaymentStandardQuoteId(true));
53
- if ($session->getLastRealOrderId()) {
54
- $order = Mage::getModel('sales/order')->loadByIncrementId($session->getLastRealOrderId());
55
- if ($order->getId()) {
56
- $order->cancel()->save();
57
- }
58
- }
59
- $this->_redirect('checkout/cart');
60
- }
61
-
62
- /**
63
- * When ecompayment fail
64
- */
65
- public function failAction()
66
- {
67
- $session = Mage::getSingleton('checkout/session');
68
- if ($session->getLastRealOrderId()) {
69
- $order = Mage::getModel('sales/order')->loadByIncrementId($session->getLastRealOrderId());
70
- // Following lines seem to duplicate items if transaction fails
71
- // if ($order->getId()) {
72
- //reimport items into cart
73
- // $cart = Mage::getSingleton('checkout/cart');
74
- // $cartTruncated = false;
75
- // /* @var $cart Mage_Checkout_Model_Cart */
76
- //
77
- // $items = $order->getItemsCollection();
78
- // foreach ($items as $item) {
79
- // try {
80
- // $cart->addOrderItem($item);
81
- // } catch (Mage_Core_Exception $e){
82
- // ;
83
- // }
84
- // }
85
- // $cart->save();
86
-
87
- //cancel failed order
88
- $order->cancel()->save();
89
- // }
90
- }
91
- $session->addError(Mage::helper('ecompayment')->__('Ecom payment request failed, please try again'));
92
- $this->_redirect('checkout/cart');
93
- }
94
-
95
- /**
96
- * when ecompayment returns
97
- * The order information at this point is in POST
98
- * variables. However, you don't want to "process" the order until you
99
- * get validation from the IPN.
100
- */
101
- public function successAction()
102
- {
103
- $status = $this->getRequest()->getParam('Status');
104
- $transId= $this->getRequest()->getParam('TransID');
105
- $amount = $this->getRequest()->getparam('Amount');
106
- $md5Check = $this->getRequest()->getParam('Crypt');
107
- $session = Mage::getSingleton('checkout/session');
108
- if($md5Check == md5($status . $transId . $amount . Mage::getStoreConfig('payment/ecompayment_standard/secret_key')))
109
- {
110
- $session->setQuoteId($session->getEcomPaymentStandardQuoteId(true));
111
- Mage::getSingleton('checkout/session')->getQuote()->setIsActive(false)->save();
112
- $order = Mage::getModel('sales/order')->load($this->getRequest()->getParam('order_id'));
113
- $order->setState(Mage::getStoreConfig('payment/ecompayment_standard/order_status'), true)
114
- ->addStatusToHistory($order->getStatus(), '', false)
115
- ->save();
116
- $this->_redirect('checkout/onepage/success', array('_secure'=>true));
117
-
118
- // Send a confirmation email to customer
119
- $order = Mage::getModel('sales/order');
120
- $order->load(Mage::getSingleton('checkout/session')->getLastOrderId());
121
- if($order->getId()){
122
- $order->sendNewOrderEmail();
123
- }
124
-
125
- }
126
- else
127
- {
128
- $session->addError(Mage::helper('ecompayment')->__('Invalid Ecom payment request, please try again'));
129
- $this->_redirect('checkout/cart');
130
- }
131
- }
132
- }
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ <?php
2
+ class KuafuSoft_EcomPayment_StandardController extends Mage_Core_Controller_Front_Action
3
+ {
4
+ /**
5
+ * Order instance
6
+ */
7
+ protected $_order;
8
+
9
+ /**
10
+ * Get order
11
+ *
12
+ * @return Mage_Sales_Model_Order
13
+ */
14
+ public function getOrder()
15
+ {
16
+ if ($this->_order == null) {
17
+ }
18
+ return $this->_order;
19
+ }
20
+
21
+ /**
22
+ * Send expire header to ajax response
23
+ *
24
+ */
25
+ protected function _expireAjax()
26
+ {
27
+ if (!Mage::getSingleton('checkout/session')->getQuote()->hasItems()) {
28
+ $this->getResponse()->setHeader('HTTP/1.1','403 Session Expired');
29
+ exit;
30
+ }
31
+ }
32
+
33
+ /**
34
+ * When a customer chooses ecom on Checkout/Payment page
35
+ *
36
+ */
37
+ public function redirectAction()
38
+ {
39
+ $session = Mage::getSingleton('checkout/session');
40
+ $session->setEcomPaymentStandardQuoteId($session->getQuoteId());
41
+ $this->getResponse()->setBody($this->getLayout()->createBlock('ecompayment/standard_redirect')->toHtml());
42
+ $session->unsQuoteId();
43
+ $session->unsRedirectUrl();
44
+ }
45
+
46
+ /**
47
+ * When a customer cancel payment from ecompayment.
48
+ */
49
+ public function cancelAction()
50
+ {
51
+ $session = Mage::getSingleton('checkout/session');
52
+ $session->setQuoteId($session->getEcomPaymentStandardQuoteId(true));
53
+ if ($session->getLastRealOrderId()) {
54
+ $order = Mage::getModel('sales/order')->loadByIncrementId($session->getLastRealOrderId());
55
+ if ($order->getId()) {
56
+ $order->cancel()->save();
57
+ }
58
+ }
59
+ $this->_redirect('checkout/cart');
60
+ }
61
+
62
+ /**
63
+ * When ecompayment fail
64
+ */
65
+ public function failAction()
66
+ {
67
+ $session = Mage::getSingleton('checkout/session');
68
+ if ($session->getLastRealOrderId()) {
69
+ $order = Mage::getModel('sales/order')->loadByIncrementId($session->getLastRealOrderId());
70
+ // Following lines seem to duplicate items if transaction fails
71
+ // if ($order->getId()) {
72
+ //reimport items into cart
73
+ // $cart = Mage::getSingleton('checkout/cart');
74
+ // $cartTruncated = false;
75
+ // /* @var $cart Mage_Checkout_Model_Cart */
76
+ //
77
+ // $items = $order->getItemsCollection();
78
+ // foreach ($items as $item) {
79
+ // try {
80
+ // $cart->addOrderItem($item);
81
+ // } catch (Mage_Core_Exception $e){
82
+ // ;
83
+ // }
84
+ // }
85
+ // $cart->save();
86
+
87
+ //cancel failed order
88
+ $order->cancel()->save();
89
+ // }
90
+ }
91
+ $session->addError(Mage::helper('ecompayment')->__('Sorry but your payment has failed. Your card details may have been entered incorrectly or the transaction may have been declined by your bank'));
92
+ $this->_redirect('checkout/cart');
93
+ }
94
+
95
+ /**
96
+ * when ecompayment returns
97
+ * The order information at this point is in POST
98
+ * variables. However, you don't want to "process" the order until you
99
+ * get validation from the IPN.
100
+ */
101
+ public function successAction()
102
+ {
103
+ $status = $this->getRequest()->getParam('Status');
104
+ $transId= $this->getRequest()->getParam('TransID');
105
+ $amount = $this->getRequest()->getparam('Amount');
106
+ $md5Check = $this->getRequest()->getParam('Crypt');
107
+ $session = Mage::getSingleton('checkout/session');
108
+
109
+ if($md5Check == md5($status . $transId . $amount . Mage::getStoreConfig('payment/ecompayment_standard/secret_key')))
110
+ {
111
+ $session->setQuoteId($session->getEcomPaymentStandardQuoteId(true));
112
+ Mage::getSingleton('checkout/session')->getQuote()->setIsActive(false)->save();
113
+ $order = Mage::getModel('sales/order')->load($this->getRequest()->getParam('order_id'));
114
+ $order->setState(Mage::getStoreConfig('payment/ecompayment_standard/order_status'), true)
115
+ ->addStatusToHistory($order->getStatus(), '', false)
116
+ ->save();
117
+
118
+ $order->sendNewOrderEmail();
119
+
120
+ if (!$order->canInvoice()) {
121
+ $order->addStatusHistoryComment('Magento won\'t allow invoice.', false);
122
+ $order->save();
123
+ } else {
124
+
125
+ $orders = Mage::getModel('sales/order_invoice')->getCollection()
126
+ ->addAttributeToFilter('order_id', array('eq'=>$order->getId()));
127
+ $orders->getSelect()->limit(1);
128
+
129
+ if ((int)$orders->count() !== 0) {
130
+ $order->addStatusHistoryComment('Already invoiced.', false);
131
+ $order->save();
132
+ } else {
133
+
134
+ $invoice = Mage::getModel('sales/service_order', $order)->prepareInvoice();
135
+
136
+ if (!$invoice->getTotalQty()) {
137
+ $order->addStatusHistoryComment('Order has no products.', false);
138
+ $order->save();
139
+ } else {
140
+
141
+ $invoice->setRequestedCaptureCase(Mage_Sales_Model_Order_Invoice::CAPTURE_OFFLINE);
142
+ $invoice->register();
143
+
144
+ $order->addStatusHistoryComment('Automatically invoiced upon successful payment.', false);
145
+
146
+ $transactionSave = Mage::getModel('core/resource_transaction')
147
+ ->addObject($invoice)
148
+ ->addObject($invoice->getOrder());
149
+
150
+ $transactionSave->save();
151
+ }
152
+
153
+ }
154
+ }
155
+
156
+ $this->_redirect('checkout/onepage/success', array('_secure'=>true));
157
+
158
+ }
159
+ else
160
+ {
161
+ $session->addError(Mage::helper('ecompayment')->__('Invalid Ecom payment request, please try again'));
162
+ $this->_redirect('checkout/cart');
163
+ }
164
+ }
165
+ }
app/code/local/KuafuSoft/EcomPayment/controllers/StandardController.phpOriginal ADDED
@@ -0,0 +1,132 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ <?php
2
+ class KuafuSoft_EcomPayment_StandardController extends Mage_Core_Controller_Front_Action
3
+ {
4
+ /**
5
+ * Order instance
6
+ */
7
+ protected $_order;
8
+
9
+ /**
10
+ * Get order
11
+ *
12
+ * @return Mage_Sales_Model_Order
13
+ */
14
+ public function getOrder()
15
+ {
16
+ if ($this->_order == null) {
17
+ }
18
+ return $this->_order;
19
+ }
20
+
21
+ /**
22
+ * Send expire header to ajax response
23
+ *
24
+ */
25
+ protected function _expireAjax()
26
+ {
27
+ if (!Mage::getSingleton('checkout/session')->getQuote()->hasItems()) {
28
+ $this->getResponse()->setHeader('HTTP/1.1','403 Session Expired');
29
+ exit;
30
+ }
31
+ }
32
+
33
+ /**
34
+ * When a customer chooses ecom on Checkout/Payment page
35
+ *
36
+ */
37
+ public function redirectAction()
38
+ {
39
+ $session = Mage::getSingleton('checkout/session');
40
+ $session->setEcomPaymentStandardQuoteId($session->getQuoteId());
41
+ $this->getResponse()->setBody($this->getLayout()->createBlock('ecompayment/standard_redirect')->toHtml());
42
+ $session->unsQuoteId();
43
+ $session->unsRedirectUrl();
44
+ }
45
+
46
+ /**
47
+ * When a customer cancel payment from ecompayment.
48
+ */
49
+ public function cancelAction()
50
+ {
51
+ $session = Mage::getSingleton('checkout/session');
52
+ $session->setQuoteId($session->getEcomPaymentStandardQuoteId(true));
53
+ if ($session->getLastRealOrderId()) {
54
+ $order = Mage::getModel('sales/order')->loadByIncrementId($session->getLastRealOrderId());
55
+ if ($order->getId()) {
56
+ $order->cancel()->save();
57
+ }
58
+ }
59
+ $this->_redirect('checkout/cart');
60
+ }
61
+
62
+ /**
63
+ * When ecompayment fail
64
+ */
65
+ public function failAction()
66
+ {
67
+ $session = Mage::getSingleton('checkout/session');
68
+ if ($session->getLastRealOrderId()) {
69
+ $order = Mage::getModel('sales/order')->loadByIncrementId($session->getLastRealOrderId());
70
+ // Following lines seem to duplicate items if transaction fails
71
+ // if ($order->getId()) {
72
+ //reimport items into cart
73
+ // $cart = Mage::getSingleton('checkout/cart');
74
+ // $cartTruncated = false;
75
+ // /* @var $cart Mage_Checkout_Model_Cart */
76
+ //
77
+ // $items = $order->getItemsCollection();
78
+ // foreach ($items as $item) {
79
+ // try {
80
+ // $cart->addOrderItem($item);
81
+ // } catch (Mage_Core_Exception $e){
82
+ // ;
83
+ // }
84
+ // }
85
+ // $cart->save();
86
+
87
+ //cancel failed order
88
+ $order->cancel()->save();
89
+ // }
90
+ }
91
+ $session->addError(Mage::helper('ecompayment')->__('Sorry but your payment has failed. Your card details may have been entered incorrectly or the transaction may have been declined by your bank'));
92
+ $this->_redirect('checkout/cart');
93
+ }
94
+
95
+ /**
96
+ * when ecompayment returns
97
+ * The order information at this point is in POST
98
+ * variables. However, you don't want to "process" the order until you
99
+ * get validation from the IPN.
100
+ */
101
+ public function successAction()
102
+ {
103
+ $status = $this->getRequest()->getParam('Status');
104
+ $transId= $this->getRequest()->getParam('TransID');
105
+ $amount = $this->getRequest()->getparam('Amount');
106
+ $md5Check = $this->getRequest()->getParam('Crypt');
107
+ $session = Mage::getSingleton('checkout/session');
108
+ if($md5Check == md5($status . $transId . $amount . Mage::getStoreConfig('payment/ecompayment_standard/secret_key')))
109
+ {
110
+ $session->setQuoteId($session->getEcomPaymentStandardQuoteId(true));
111
+ Mage::getSingleton('checkout/session')->getQuote()->setIsActive(false)->save();
112
+ $order = Mage::getModel('sales/order')->load($this->getRequest()->getParam('order_id'));
113
+ $order->setState(Mage::getStoreConfig('payment/ecompayment_standard/order_status'), true)
114
+ ->addStatusToHistory($order->getStatus(), '', false)
115
+ ->save();
116
+ $this->_redirect('checkout/onepage/success', array('_secure'=>true));
117
+
118
+ // Send a confirmation email to customer
119
+ $order = Mage::getModel('sales/order');
120
+ $order->load(Mage::getSingleton('checkout/session')->getLastOrderId());
121
+ if($order->getId()){
122
+ $order->sendNewOrderEmail();
123
+ }
124
+
125
+ }
126
+ else
127
+ {
128
+ $session->addError(Mage::helper('ecompayment')->__('Invalid Ecom payment request, please try again'));
129
+ $this->_redirect('checkout/cart');
130
+ }
131
+ }
132
+ }
app/code/local/KuafuSoft/EcomPayment/controllers/StandardController.phpold ADDED
@@ -0,0 +1,132 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ <?php
2
+ class KuafuSoft_EcomPayment_StandardController extends Mage_Core_Controller_Front_Action
3
+ {
4
+ /**
5
+ * Order instance
6
+ */
7
+ protected $_order;
8
+
9
+ /**
10
+ * Get order
11
+ *
12
+ * @return Mage_Sales_Model_Order
13
+ */
14
+ public function getOrder()
15
+ {
16
+ if ($this->_order == null) {
17
+ }
18
+ return $this->_order;
19
+ }
20
+
21
+ /**
22
+ * Send expire header to ajax response
23
+ *
24
+ */
25
+ protected function _expireAjax()
26
+ {
27
+ if (!Mage::getSingleton('checkout/session')->getQuote()->hasItems()) {
28
+ $this->getResponse()->setHeader('HTTP/1.1','403 Session Expired');
29
+ exit;
30
+ }
31
+ }
32
+
33
+ /**
34
+ * When a customer chooses ecom on Checkout/Payment page
35
+ *
36
+ */
37
+ public function redirectAction()
38
+ {
39
+ $session = Mage::getSingleton('checkout/session');
40
+ $session->setEcomPaymentStandardQuoteId($session->getQuoteId());
41
+ $this->getResponse()->setBody($this->getLayout()->createBlock('ecompayment/standard_redirect')->toHtml());
42
+ $session->unsQuoteId();
43
+ $session->unsRedirectUrl();
44
+ }
45
+
46
+ /**
47
+ * When a customer cancel payment from ecompayment.
48
+ */
49
+ public function cancelAction()
50
+ {
51
+ $session = Mage::getSingleton('checkout/session');
52
+ $session->setQuoteId($session->getEcomPaymentStandardQuoteId(true));
53
+ if ($session->getLastRealOrderId()) {
54
+ $order = Mage::getModel('sales/order')->loadByIncrementId($session->getLastRealOrderId());
55
+ if ($order->getId()) {
56
+ $order->cancel()->save();
57
+ }
58
+ }
59
+ $this->_redirect('checkout/cart');
60
+ }
61
+
62
+ /**
63
+ * When ecompayment fail
64
+ */
65
+ public function failAction()
66
+ {
67
+ $session = Mage::getSingleton('checkout/session');
68
+ if ($session->getLastRealOrderId()) {
69
+ $order = Mage::getModel('sales/order')->loadByIncrementId($session->getLastRealOrderId());
70
+ // Following lines seem to duplicate items if transaction fails
71
+ // if ($order->getId()) {
72
+ //reimport items into cart
73
+ // $cart = Mage::getSingleton('checkout/cart');
74
+ // $cartTruncated = false;
75
+ // /* @var $cart Mage_Checkout_Model_Cart */
76
+ //
77
+ // $items = $order->getItemsCollection();
78
+ // foreach ($items as $item) {
79
+ // try {
80
+ // $cart->addOrderItem($item);
81
+ // } catch (Mage_Core_Exception $e){
82
+ // ;
83
+ // }
84
+ // }
85
+ // $cart->save();
86
+
87
+ //cancel failed order
88
+ $order->cancel()->save();
89
+ // }
90
+ }
91
+ $session->addError(Mage::helper('ecompayment')->__('Ecom payment request failed, please try again'));
92
+ $this->_redirect('checkout/cart');
93
+ }
94
+
95
+ /**
96
+ * when ecompayment returns
97
+ * The order information at this point is in POST
98
+ * variables. However, you don't want to "process" the order until you
99
+ * get validation from the IPN.
100
+ */
101
+ public function successAction()
102
+ {
103
+ $status = $this->getRequest()->getParam('Status');
104
+ $transId= $this->getRequest()->getParam('TransID');
105
+ $amount = $this->getRequest()->getparam('Amount');
106
+ $md5Check = $this->getRequest()->getParam('Crypt');
107
+ $session = Mage::getSingleton('checkout/session');
108
+ if($md5Check == md5($status . $transId . $amount . Mage::getStoreConfig('payment/ecompayment_standard/secret_key')))
109
+ {
110
+ $session->setQuoteId($session->getEcomPaymentStandardQuoteId(true));
111
+ Mage::getSingleton('checkout/session')->getQuote()->setIsActive(false)->save();
112
+ $order = Mage::getModel('sales/order')->load($this->getRequest()->getParam('order_id'));
113
+ $order->setState(Mage::getStoreConfig('payment/ecompayment_standard/order_status'), true)
114
+ ->addStatusToHistory($order->getStatus(), '', false)
115
+ ->save();
116
+ $this->_redirect('checkout/onepage/success', array('_secure'=>true));
117
+
118
+ // Send a confirmation email to customer
119
+ $order = Mage::getModel('sales/order');
120
+ $order->load(Mage::getSingleton('checkout/session')->getLastOrderId());
121
+ if($order->getId()){
122
+ $order->sendNewOrderEmail();
123
+ }
124
+
125
+ }
126
+ else
127
+ {
128
+ $session->addError(Mage::helper('ecompayment')->__('Invalid Ecom payment request, please try again'));
129
+ $this->_redirect('checkout/cart');
130
+ }
131
+ }
132
+ }
app/code/local/KuafuSoft/EcomPayment/etc/config.xml CHANGED
@@ -35,19 +35,6 @@
35
  </routers>
36
  </admin>
37
  <adminhtml>
38
- <menu>
39
- <ecompayment module="ecompayment">
40
- <title>EcomPayment</title>
41
- <sort_order>71</sort_order>
42
- <children>
43
- <items module="ecompayment">
44
- <title>Manage Items</title>
45
- <sort_order>0</sort_order>
46
- <action>ecompayment/adminhtml_ecompayment</action>
47
- </items>
48
- </children>
49
- </ecompayment>
50
- </menu>
51
  <acl>
52
  <resources>
53
  <all>
35
  </routers>
36
  </admin>
37
  <adminhtml>
 
 
 
 
 
 
 
 
 
 
 
 
 
38
  <acl>
39
  <resources>
40
  <all>
app/code/local/KuafuSoft/EcomPayment/etc/config.xmlOriginal ADDED
@@ -0,0 +1,116 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ <?xml version="1.0"?>
2
+ <config>
3
+ <modules>
4
+ <KuafuSoft_EcomPayment>
5
+ <version>0.1.0</version>
6
+ </KuafuSoft_EcomPayment>
7
+ </modules>
8
+ <frontend>
9
+ <routers>
10
+ <ecompayment>
11
+ <use>standard</use>
12
+ <args>
13
+ <module>KuafuSoft_EcomPayment</module>
14
+ <frontName>ecompayment</frontName>
15
+ </args>
16
+ </ecompayment>
17
+ </routers>
18
+ <layout>
19
+ <updates>
20
+ <ecompayment>
21
+ <file>ecompayment.xml</file>
22
+ </ecompayment>
23
+ </updates>
24
+ </layout>
25
+ </frontend>
26
+ <admin>
27
+ <routers>
28
+ <ecompayment>
29
+ <use>admin</use>
30
+ <args>
31
+ <module>KuafuSoft_EcomPayment</module>
32
+ <frontName>ecompayment</frontName>
33
+ </args>
34
+ </ecompayment>
35
+ </routers>
36
+ </admin>
37
+ <adminhtml>
38
+ <menu>
39
+ <ecompayment module="ecompayment">
40
+ <title>EcomPayment</title>
41
+ <sort_order>71</sort_order>
42
+ <children>
43
+ <items module="ecompayment">
44
+ <title>Manage Items</title>
45
+ <sort_order>0</sort_order>
46
+ <action>ecompayment/adminhtml_ecompayment</action>
47
+ </items>
48
+ </children>
49
+ </ecompayment>
50
+ </menu>
51
+ <acl>
52
+ <resources>
53
+ <all>
54
+ <title>Allow Everything</title>
55
+ </all>
56
+ <admin>
57
+ <children>
58
+ <KuafuSoft_EcomPayment>
59
+ <title>EcomPayment Module</title>
60
+ <sort_order>10</sort_order>
61
+ </KuafuSoft_EcomPayment>
62
+ </children>
63
+ </admin>
64
+ </resources>
65
+ </acl>
66
+ <layout>
67
+ <updates>
68
+ <ecompayment>
69
+ <file>ecompayment.xml</file>
70
+ </ecompayment>
71
+ </updates>
72
+ </layout>
73
+ </adminhtml>
74
+ <global>
75
+ <models>
76
+ <ecompayment>
77
+ <class>KuafuSoft_EcomPayment_Model</class>
78
+ <resourceModel>ecompayment_mysql4</resourceModel>
79
+ </ecompayment>
80
+ <ecompayment_mysql4>
81
+ <class>KuafuSoft_EcomPayment_Model_Mysql4</class>
82
+ </ecompayment_mysql4>
83
+ </models>
84
+ <resources>
85
+ <ecompayment_setup>
86
+ <setup>
87
+ <module>KuafuSoft_EcomPayment</module>
88
+ </setup>
89
+ </ecompayment_setup>
90
+ </resources>
91
+ <blocks>
92
+ <ecompayment>
93
+ <class>KuafuSoft_EcomPayment_Block</class>
94
+ </ecompayment>
95
+ </blocks>
96
+ <helpers>
97
+ <ecompayment>
98
+ <class>KuafuSoft_EcomPayment_Helper</class>
99
+ </ecompayment>
100
+ </helpers>
101
+ </global>
102
+ <default>
103
+ <payment>
104
+ <ecompayment_standard>
105
+ <active>1</active>
106
+ <customer_id></customer_id>
107
+ <secret_key></secret_key>
108
+ <model>ecompayment/standard</model>
109
+ <order_status>processing</order_status>
110
+ <test>1</test>
111
+ <debug>1</debug>
112
+ <title>Ecom Payment</title>
113
+ </ecompayment_standard>
114
+ </payment>
115
+ </default>
116
+ </config>
package.xml CHANGED
@@ -1,21 +1,18 @@
1
  <?xml version="1.0"?>
2
  <package>
3
  <name>Total_Web_Solutions_Payment_Gateway_Module</name>
4
- <version>1.8.2</version>
5
  <stability>stable</stability>
6
- <license uri="http://opensource.org/licenses/osl-3.0.php">Open Software License (OSL)</license>
7
  <channel>community</channel>
8
  <extends/>
9
- <summary>Total Web Solutions Payment Gateway Module</summary>
10
- <description>Long awaited payment module for Total Web Solution's gateway - EcomMerchant - created by Xiliang Sun
11
-
12
- Total Web Solutions offers EcomMerchant, one of the lowest priced payment gateways available in the UK. Total Web Solutions is PCI Level 1 accredited and has been providing business critical solutions to organisations of all sizes since 1995. EcomMerchant offers a customisable pay page and merchant tool for reporting, issuing refunds (full and partial) and viewing stats. Optional add-ons include Virtual Terminal, Multi-Currency, 3D Secure authentication and many others. EcomMerchant works in conjunction with an Internet Merchant Account from Barclays, HSBC or Streamline (Natwest/RBS).
13
- To learn more about the service visit: http://payments.totalwebsolutions.com/</description>
14
- <notes>Total Web Solutions Payment Gateway Module</notes>
15
- <authors><author><name>Simon Lowe</name><user>auto-converted</user><email>sales@totalwebsolutions.com</email></author></authors>
16
- <date>2011-02-02</date>
17
- <time>14:40:20</time>
18
- <contents><target name="mage"><dir name="app"><dir name="etc"><dir name="modules"><file name="KuafuSoft_EcomPayment.xml" hash="71a369f4269773b4fbcf212f9a75de6e"/></dir></dir></dir></target><target name="magedesign"><dir name="frontend"><dir name="base"><dir name="default"><dir name="template"><dir name="ecompayment"><dir name="payment"><file name="redirect.phtml" hash="f26e571f8d5cad38481b8f53c60a6e58"/></dir></dir></dir></dir></dir></dir></target><target name="magelocal"><dir name="KuafuSoft"><dir name="EcomPayment"><dir name="Block"><dir name="Payment"><file name="Info.php" hash="33f4efd0baab7e8072c9cdda22c6019e"/></dir><dir name="Standard"><file name="Form.php" hash="86a5a2dcc1354e1cbec2658952941a40"/><file name="Redirect.php" hash="6e5898a226bf107252049fd46733a6c9"/></dir></dir><dir name="controllers"><file name="StandardController.php" hash="057e657a23a663f931da4658e777e0ce"/></dir><dir name="etc"><file name="config.xml" hash="e56ac6f19bc75a5bcfdcab3d5c2bb608"/><file name="system.xml" hash="910ad97aaedc4fa2aa275e88fc7c2cc0"/></dir><dir name="Helper"><file name="Data.php" hash="0b62c17838ed0e134643d5c3c0fe3fe6"/></dir><dir name="Model"><dir name="Api"><file name="Abstract.php" hash="b766487ac87cc06b67966ecba8201cb8"/><file name="Standard.php" hash="24852e2b0992c8c32a449f979ce718bf"/></dir><dir name="sql"><dir name="ecompayment_setup"><file name="mysql4-install-0.1.0.php" hash="f84214fc43f665c79b92dc7a092b364f"/></dir></dir><file name="Config.php" hash="54380402c12f02a2207b2418f1577728"/><file name="Standard.php" hash="d6ddc5e714f87af581df13f9cbd1b4b6"/><file name="Status.php" hash="375570e3be74a06203f27e500e82e7be"/></dir></dir></dir></target></contents>
19
  <compatible/>
20
- <dependencies/>
21
  </package>
1
  <?xml version="1.0"?>
2
  <package>
3
  <name>Total_Web_Solutions_Payment_Gateway_Module</name>
4
+ <version>1.8.3</version>
5
  <stability>stable</stability>
6
+ <license uri="http://opensource.org/licenses/osl-3.0.php">Open Software License v. 3.0 (OSL-3.0)</license>
7
  <channel>community</channel>
8
  <extends/>
9
+ <summary>Payment module for Total Web Solution's gateway</summary>
10
+ <description>Long awaited payment module for Total Web Solution's gateway - EcomMerchant - created by Xiliang Sun Total Web Solutions offers EcomMerchant, one of the lowest priced payment gateways available in the UK. Total Web Solutions is PCI Level 1 accredited and has been providing business critical solutions to organisations of all sizes since 1995. EcomMerchant offers a customisable pay page and merchant tool for reporting, issuing refunds (full and partial) and viewing stats. Optional add-ons include Virtual Terminal, Multi-Currency, 3D Secure authentication and many others. EcomMerchant works in conjunction with an Internet Merchant Account from Barclays, HSBC or Streamline (Natwest/RBS). To learn more about the service visit: http://payments.totalwebsolutions.com/ </description>
11
+ <notes>Payment module for Total Web Solution's gateway</notes>
12
+ <authors><author><name>Simon Lowe</name><user>EcomMerchant</user><email>sales@totalwebsolutions.com</email></author></authors>
13
+ <date>2012-09-17</date>
14
+ <time>10:24:33</time>
15
+ <contents><target name="magelocal"><dir name="KuafuSoft"><dir name="EcomPayment"><dir name="Block"><dir name="Payment"><file name="Info.php" hash="33f4efd0baab7e8072c9cdda22c6019e"/></dir><dir name="Standard"><file name="Form.php" hash="86a5a2dcc1354e1cbec2658952941a40"/><file name="Redirect.php" hash="6e5898a226bf107252049fd46733a6c9"/></dir></dir><dir name="Helper"><file name="Data.php" hash="0b62c17838ed0e134643d5c3c0fe3fe6"/></dir><dir name="Model"><dir name="Api"><file name="Abstract.php" hash="b766487ac87cc06b67966ecba8201cb8"/><file name="Standard.php" hash="f92ece8d0a96c21c6ede880b8ef1dabd"/><file name="Standard.php.old" hash="24852e2b0992c8c32a449f979ce718bf"/></dir><file name="Config.php" hash="54380402c12f02a2207b2418f1577728"/><file name="Standard.php" hash="d6ddc5e714f87af581df13f9cbd1b4b6"/><file name="Status.php" hash="375570e3be74a06203f27e500e82e7be"/><dir name="sql"><dir name="ecompayment_setup"><file name="mysql4-install-0.1.0.php" hash="f84214fc43f665c79b92dc7a092b364f"/></dir></dir></dir><dir name="controllers"><file name="StandardController.php" hash="a857c2a65ce28757cba5636db3494f3b"/><file name="StandardController.phpOriginal" hash="b9db42af9c5144b1c821561d529152e5"/><file name="StandardController.phpold" hash="057e657a23a663f931da4658e777e0ce"/></dir><dir name="etc"><file name="config.xml" hash="f067280e066384785a9521066b06925e"/><file name="config.xmlOriginal" hash="e56ac6f19bc75a5bcfdcab3d5c2bb608"/><file name="system.xml" hash="910ad97aaedc4fa2aa275e88fc7c2cc0"/></dir></dir></dir></target><target name="magedesign"><dir name="frontend"><dir name="base"><dir name="default"><dir name="template"><dir name="ecompayment"><dir name="payment"><file name="redirect.phtml" hash="f26e571f8d5cad38481b8f53c60a6e58"/></dir></dir></dir></dir></dir></dir></target><target name="mageetc"><dir name="modules"><file name="KuafuSoft_EcomPayment.xml" hash="71a369f4269773b4fbcf212f9a75de6e"/></dir></target></contents>
 
 
 
16
  <compatible/>
17
+ <dependencies><required><php><min>5.1.0</min><max>6.0.0</max></php><package><name>Mage_Core_Modules</name><channel>community</channel><min>1.6.0.0</min><max>1.7</max></package><extension><name>gd</name><min>2.0.28</min><max>3.0</max></extension></required></dependencies>
18
  </package>