Version Notes
Fixed issues related to ThreatMetrix.
Download this release
Release Info
Developer | Demac Media |
Extension | 666999 |
Version | 0.3.3 |
Comparing to | |
See all releases |
Code changes from version 0.3.2 to 0.3.3
- app/code/community/Demac/Optimal/Model/Method/Hosted.php +31 -1
- app/code/community/Demac/Optimal/Model/Observer.php +57 -0
- app/code/community/Demac/Optimal/Model/Sales/Order.php +47 -0
- app/code/community/Demac/Optimal/etc/config.xml +17 -1
- app/design/frontend/base/default/layout/optimal.xml +1 -1
- app/design/frontend/base/default/template/{demac → optimal}/threatmeter.phtml +0 -0
- package.xml +14 -17
app/code/community/Demac/Optimal/Model/Method/Hosted.php
CHANGED
@@ -425,6 +425,18 @@ class Demac_Optimal_Model_Method_Hosted extends Mage_Payment_Model_Method_Cc
|
|
425 |
|
426 |
$client = Mage::getModel('optimal/hosted_client', array('store_id' => $order->getStoreId()));
|
427 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
428 |
|
429 |
$data = array(
|
430 |
'amount' => (int)$helper->formatAmount($amount),
|
@@ -476,7 +488,24 @@ class Demac_Optimal_Model_Method_Hosted extends Mage_Payment_Model_Method_Cc
|
|
476 |
$paymentData = unserialize($additionalInformation['transaction']);
|
477 |
$orderData = unserialize($additionalInformation['order']);
|
478 |
|
479 |
-
$
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
480 |
|
481 |
$payment
|
482 |
->setIsTransactionClosed(1)
|
@@ -484,6 +513,7 @@ class Demac_Optimal_Model_Method_Hosted extends Mage_Payment_Model_Method_Cc
|
|
484 |
|
485 |
|
486 |
$order->addStatusHistoryComment(
|
|
|
487 |
'Trans Type: ' . $response->authType .'<br/>'.
|
488 |
'Confirmation Number: ' . $response->confirmationNumber .'<br/>'.
|
489 |
'Transaction Amount: ' . $response->amount/100 .'<br/>'
|
425 |
|
426 |
$client = Mage::getModel('optimal/hosted_client', array('store_id' => $order->getStoreId()));
|
427 |
|
428 |
+
$transactionStatus = $client->retrieveOrder($orderData['id']);
|
429 |
+
|
430 |
+
if ($transactionStatus->transaction->status == 'held')
|
431 |
+
{
|
432 |
+
// Prepare api order update
|
433 |
+
$transactionData = array(
|
434 |
+
'transaction' => array(
|
435 |
+
'status' => 'success'
|
436 |
+
)
|
437 |
+
);
|
438 |
+
$response = $client->updateOrder($transactionData, $orderData['id']);
|
439 |
+
}
|
440 |
|
441 |
$data = array(
|
442 |
'amount' => (int)$helper->formatAmount($amount),
|
488 |
$paymentData = unserialize($additionalInformation['transaction']);
|
489 |
$orderData = unserialize($additionalInformation['order']);
|
490 |
|
491 |
+
$transactionStatus = $client->retrieveOrder($orderData['id']);
|
492 |
+
|
493 |
+
if ($transactionStatus->transaction->status == 'held')
|
494 |
+
{
|
495 |
+
// Prepare api order update
|
496 |
+
$data = array(
|
497 |
+
'transaction' => array(
|
498 |
+
'status' => 'cancelled'
|
499 |
+
)
|
500 |
+
);
|
501 |
+
|
502 |
+
$response = $client->updateOrder($data, $orderData['id']);
|
503 |
+
|
504 |
+
} elseif($transactionStatus->transaction->status == 'success') {
|
505 |
+
$response = $client->cancelOrder($orderData['id']);
|
506 |
+
} else {
|
507 |
+
Mage::throwException('Unable to void transaction. Please contact support@demacmedia.com');
|
508 |
+
}
|
509 |
|
510 |
$payment
|
511 |
->setIsTransactionClosed(1)
|
513 |
|
514 |
|
515 |
$order->addStatusHistoryComment(
|
516 |
+
'Transaction Voided <br/>' .
|
517 |
'Trans Type: ' . $response->authType .'<br/>'.
|
518 |
'Confirmation Number: ' . $response->confirmationNumber .'<br/>'.
|
519 |
'Transaction Amount: ' . $response->amount/100 .'<br/>'
|
app/code/community/Demac/Optimal/Model/Observer.php
CHANGED
@@ -66,4 +66,61 @@ class Demac_Optimal_Model_Observer
|
|
66 |
}
|
67 |
}
|
68 |
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
69 |
}
|
66 |
}
|
67 |
}
|
68 |
}
|
69 |
+
|
70 |
+
/**
|
71 |
+
* @param Varien_Event_Observer $observer
|
72 |
+
*/
|
73 |
+
public function orderUnholdAfter(Varien_Event_Observer $observer)
|
74 |
+
{
|
75 |
+
$data = array();
|
76 |
+
$order = $observer->getOrder();
|
77 |
+
$payment = $order->getPayment();
|
78 |
+
$client = Mage::getModel('optimal/hosted_client', array('store_id' => $order->getStoreId()));
|
79 |
+
|
80 |
+
$additionalInformation = $payment->getAdditionalInformation();
|
81 |
+
|
82 |
+
$paymentData = unserialize($additionalInformation['transaction']);
|
83 |
+
$orderData = unserialize($additionalInformation['order']);
|
84 |
+
|
85 |
+
// Check that the order status has change and is not held
|
86 |
+
|
87 |
+
if ($order->getState() != Mage_Sales_Model_Order::STATE_HOLDED)
|
88 |
+
{
|
89 |
+
// Prepare api order update
|
90 |
+
$data = array(
|
91 |
+
'transaction' => array(
|
92 |
+
'status' => 'success'
|
93 |
+
)
|
94 |
+
);
|
95 |
+
|
96 |
+
if (is_null($paymentData->associatedTransactions[0]->reference)) {
|
97 |
+
$transactionId = $payment->getLastTransId();
|
98 |
+
} else {
|
99 |
+
$transactionId = $paymentData->associatedTransactions[0]->reference;
|
100 |
+
}
|
101 |
+
|
102 |
+
// Check response from the api
|
103 |
+
$response = $client->updateOrder($data, $transactionId);
|
104 |
+
}
|
105 |
+
|
106 |
+
if($response->id)
|
107 |
+
{
|
108 |
+
// Add comment to the order
|
109 |
+
$this->updateOrderComment($order, 'SUCCESS');
|
110 |
+
}
|
111 |
+
|
112 |
+
// Avoid calling save
|
113 |
+
|
114 |
+
}
|
115 |
+
|
116 |
+
/**
|
117 |
+
* @param $order
|
118 |
+
* @param $state
|
119 |
+
*/
|
120 |
+
protected function updateOrderComment($order, $state)
|
121 |
+
{
|
122 |
+
$order->addStatusHistoryComment(
|
123 |
+
'Order status changed to: ' . $state
|
124 |
+
);
|
125 |
+
}
|
126 |
}
|
app/code/community/Demac/Optimal/Model/Sales/Order.php
ADDED
@@ -0,0 +1,47 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
<?php
|
2 |
+
/**
|
3 |
+
* @author Allan MacGregor - Magento Head Developer <amacgregor@demacmedia.com>
|
4 |
+
* @company Demac Media Inc.
|
5 |
+
* @copyright 2010-2014 Demac Media Inc.
|
6 |
+
*/
|
7 |
+
class Demac_Optimal_Model_Sales_Order extends Mage_Sales_Model_Order
|
8 |
+
{
|
9 |
+
|
10 |
+
/**
|
11 |
+
* Function override to add event dispatch
|
12 |
+
*
|
13 |
+
* @return $this
|
14 |
+
*/
|
15 |
+
public function hold()
|
16 |
+
{
|
17 |
+
if (!$this->canHold()) {
|
18 |
+
Mage::throwException(Mage::helper('sales')->__('Hold action is not available.'));
|
19 |
+
}
|
20 |
+
$this->setHoldBeforeState($this->getState());
|
21 |
+
$this->setHoldBeforeStatus($this->getStatus());
|
22 |
+
$this->setState(self::STATE_HOLDED, true);
|
23 |
+
|
24 |
+
Mage::dispatchEvent('order_hold_after', array('order' => $this));
|
25 |
+
|
26 |
+
return $this;
|
27 |
+
}
|
28 |
+
|
29 |
+
/**
|
30 |
+
* Function override to add event dispatch
|
31 |
+
*
|
32 |
+
* @return $this|Mage_Sales_Model_Order
|
33 |
+
*/
|
34 |
+
public function unhold()
|
35 |
+
{
|
36 |
+
if (!$this->canUnhold()) {
|
37 |
+
Mage::throwException(Mage::helper('sales')->__('Unhold action is not available.'));
|
38 |
+
}
|
39 |
+
$this->setState($this->getHoldBeforeState(), $this->getHoldBeforeStatus());
|
40 |
+
$this->setHoldBeforeState(null);
|
41 |
+
$this->setHoldBeforeStatus(null);
|
42 |
+
|
43 |
+
Mage::dispatchEvent('order_unhold_after', array('order' => $this));
|
44 |
+
|
45 |
+
return $this;
|
46 |
+
}
|
47 |
+
}
|
app/code/community/Demac/Optimal/etc/config.xml
CHANGED
@@ -2,7 +2,7 @@
|
|
2 |
<config>
|
3 |
<modules>
|
4 |
<Demac_Optimal>
|
5 |
-
<version>0.3.
|
6 |
</Demac_Optimal>
|
7 |
</modules>
|
8 |
|
@@ -98,6 +98,11 @@
|
|
98 |
</merchant_customer>
|
99 |
</entities>
|
100 |
</optimal_mysql4>
|
|
|
|
|
|
|
|
|
|
|
101 |
</models>
|
102 |
<blocks>
|
103 |
<optimal>
|
@@ -130,6 +135,17 @@
|
|
130 |
</connection>
|
131 |
</optimal_read>
|
132 |
</resources>
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
133 |
</global>
|
134 |
|
135 |
<admin>
|
2 |
<config>
|
3 |
<modules>
|
4 |
<Demac_Optimal>
|
5 |
+
<version>0.3.3</version>
|
6 |
</Demac_Optimal>
|
7 |
</modules>
|
8 |
|
98 |
</merchant_customer>
|
99 |
</entities>
|
100 |
</optimal_mysql4>
|
101 |
+
<sales>
|
102 |
+
<rewrite>
|
103 |
+
<order>Demac_Optimal_Model_Sales_Order</order>
|
104 |
+
</rewrite>
|
105 |
+
</sales>
|
106 |
</models>
|
107 |
<blocks>
|
108 |
<optimal>
|
135 |
</connection>
|
136 |
</optimal_read>
|
137 |
</resources>
|
138 |
+
<events>
|
139 |
+
<order_unhold_after>
|
140 |
+
<observers>
|
141 |
+
<optimal_hosted_order_unhold_after>
|
142 |
+
<type>singleton</type>
|
143 |
+
<class>Demac_Optimal_Model_Observer</class>
|
144 |
+
<method>orderUnoldAfter</method>
|
145 |
+
</optimal_hosted_order_unhold_after>
|
146 |
+
</observers>
|
147 |
+
</order_unhold_after>
|
148 |
+
</events>
|
149 |
</global>
|
150 |
|
151 |
<admin>
|
app/design/frontend/base/default/layout/optimal.xml
CHANGED
@@ -2,7 +2,7 @@
|
|
2 |
<layout version="0.1.0"> i
|
3 |
<checkout_onepage_index translate="label" module="page">
|
4 |
<reference name="before_body_end">
|
5 |
-
<block type="optimal/threat" template="
|
6 |
</reference>
|
7 |
</checkout_onepage_index>
|
8 |
|
2 |
<layout version="0.1.0"> i
|
3 |
<checkout_onepage_index translate="label" module="page">
|
4 |
<reference name="before_body_end">
|
5 |
+
<block type="optimal/threat" template="optimal/threatmeter.phtml" name="optimal_threat" as="optimal_threat"/>
|
6 |
</reference>
|
7 |
</checkout_onepage_index>
|
8 |
|
app/design/frontend/base/default/template/{demac → optimal}/threatmeter.phtml
RENAMED
File without changes
|
package.xml
CHANGED
@@ -1,29 +1,26 @@
|
|
1 |
<?xml version="1.0"?>
|
2 |
<package>
|
3 |
<name>666999</name>
|
4 |
-
<version>0.3.
|
5 |
<stability>beta</stability>
|
6 |
-
<license
|
7 |
<channel>community</channel>
|
8 |
<extends/>
|
9 |
-
<summary>Securely access and process online payments with the NETBANX payment gateway
|
10 |
-
|
11 |
-

|
12 |
-
|
13 |
-

|
|
|
14 |
This integration significantly reduces PCI compliance requirements and liability as all of the credit card information is processed in Optimal Payments Level 1 PCI compliant environment and servers leaving no sensitive customer payment information stored locally on merchant servers.
|
15 |
-
|
16 |
Through the Optimal integration merchants also have the option to enable Threatmetrix fraud detection and management services. ThreatMetrix works by collecting relevant data about the customer and the order, and validating this information during the checkout. Fully integrated into the NETBANX payment gateway, enabling the ThreatMetrix option will allow merchants to automatically hold and flag suspicious orders, drastically reducing any fraud occurrences. Depending on the Score returned by ThreatMetrix an order can be held and flagged or altogether denied during the checkout.
|
17 |
</description>
|
18 |
-
<notes>
|
19 |
-
- Minor improvements for compatibility with future Optimal API Updates
|
20 |
-
- Fixes for minor issue related to issuing refunds
|
21 |
-
- Added Profile Key option to configuration for companies that share one Optimal account while processing credit cards in multiple places
|
22 |
-
- Various Minor Improvements</notes>
|
23 |
<authors><author><name>Demac Media</name><user>demacmedia</user><email>support@demacmedia.com</email></author></authors>
|
24 |
-
<date>2014-
|
25 |
-
<time>19:
|
26 |
-
<contents><target name="magecommunity"><dir
|
27 |
<compatible/>
|
28 |
-
<dependencies><required><php><min>5.3.0</min><max>5.
|
29 |
</package>
|
1 |
<?xml version="1.0"?>
|
2 |
<package>
|
3 |
<name>666999</name>
|
4 |
+
<version>0.3.3</version>
|
5 |
<stability>beta</stability>
|
6 |
+
<license>GPL</license>
|
7 |
<channel>community</channel>
|
8 |
<extends/>
|
9 |
+
<summary>Securely access and process online payments with the NETBANX payment gateway.
|
10 |
+
</summary>
|
11 |
+
<description>The Optimal Payments NETBANX Hosted Payment Extension allows ecommerce businesses to securely accept and process online payments using Optimal’s NETBANX payment gateway and services. The integration is easy to implement and provides the ultimate in payment processing capabilities, fraud management, and reporting.
|
12 |
+
<br /> <br />
|
13 |
+
The Optimal Payments extension uses a Silent Post integration to the merchant’s website. During checkout, payment information is entered on the merchant website and then transmitted securely via Silent Post for processing to the NETBANX payment gateway. The customer remains on the merchant’s website at all times allowing the merchant to manage the customer experience. When the customer clicks on the Pay button, payment data is transmitted directly to NETBANX using a PCI-compliant process without accessing any merchant servers.
|
14 |
+
<br /> <br />
|
15 |
This integration significantly reduces PCI compliance requirements and liability as all of the credit card information is processed in Optimal Payments Level 1 PCI compliant environment and servers leaving no sensitive customer payment information stored locally on merchant servers.
|
16 |
+
<br /> <br />
|
17 |
Through the Optimal integration merchants also have the option to enable Threatmetrix fraud detection and management services. ThreatMetrix works by collecting relevant data about the customer and the order, and validating this information during the checkout. Fully integrated into the NETBANX payment gateway, enabling the ThreatMetrix option will allow merchants to automatically hold and flag suspicious orders, drastically reducing any fraud occurrences. Depending on the Score returned by ThreatMetrix an order can be held and flagged or altogether denied during the checkout.
|
18 |
</description>
|
19 |
+
<notes>Fixed issues related to ThreatMetrix.</notes>
|
|
|
|
|
|
|
|
|
20 |
<authors><author><name>Demac Media</name><user>demacmedia</user><email>support@demacmedia.com</email></author></authors>
|
21 |
+
<date>2014-09-02</date>
|
22 |
+
<time>19:15:40</time>
|
23 |
+
<contents><target name="magecommunity"><dir name="Demac"><dir name="Optimal"><dir><dir name="Block"><dir name="Adminhtml"><dir name="Risk"><dir name="Edit"><file name="Form.php" hash="25d4bcb59e33a94799bc9f6cb0509cc3"/><dir name="Tab"><file name="Form.php" hash="3731d284c28ed279eb5e00b41f494810"/></dir><file name="Tabs.php" hash="61a8d2ac9942356db313b423fc3c47c2"/></dir><file name="Edit.php" hash="959e8af1e6aae6d02560c98bcabea5ab"/><file name="Grid.php" hash="e999f01578aac6084520029f86852c09"/></dir><file name="Risk.php" hash="6bf5127ba14f9dd38519c6b62203f1f8"/></dir><dir name="Customer"><dir name="Cards"><file name="Form.php" hash="ce79e221d5caf995a10e47cbb4e51f8b"/><file name="Grid.php" hash="d14eb692082fe1299977e7b3ee75dcf3"/></dir><file name="Cards.php" hash="f99686c2296a850312713f6aadc4d04a"/></dir><dir name="Form"><file name="Creditcard.php" hash="d3642d432409cf55069253680bf9ee34"/></dir><dir name="Info"><file name="Creditcard.php" hash="95d59f0f6bf250685499163b2f3843e5"/></dir><file name="Threat.php" hash="69605e0b8aacc80f47b5ed91e8631248"/></dir><dir name="Helper"><file name="Data.php" hash="ed7395ffa0972314c01656f3e324dac5"/></dir><dir name="Model"><dir name="Client"><file name="Abstract.php" hash="f83275be8d3b248eb145d45c2a926d84"/></dir><dir name="Config"><file name="Mode.php" hash="798d2a9bab2c0fc2749116ac1a3fc926"/><file name="Status.php" hash="767ba25406456aae4a0bd86b11023b45"/><file name="Transaction.php" hash="e83e8427e4b14c4d3cd83058c68f8965"/></dir><dir name="Creditcard"><file name="Client.php" hash="f1014811d23c1cf5efbccf61c3c6c80c"/></dir><file name="Creditcard.php" hash="26e89a35558c0692d5f90afdcad25c12"/><dir name="Hosted"><file name="Client.php" hash="6cfcae2d6ba921df9d3f3afd700661aa"/></dir><dir name="Merchant"><file name="Customer.php" hash="be743a5c7aababb9752bf961570b0c27"/></dir><dir name="Method"><file name="Hosted.php" hash="bfc62175f3009fc5fee0047e1922609d"/></dir><dir name="Mysql4"><dir name="Creditcard"><file name="Collection.php" hash="700985c287355082a3966d4b3f74838f"/></dir><file name="Creditcard.php" hash="a4e5ea4090d2f127edd19de9d2feb343"/><dir name="Merchant"><dir name="Customer"><file name="Collection.php" hash="aa0fbf9c0cc0a3207565443e35ae3779"/></dir><file name="Customer.php" hash="fe991d98537b7b3a07160d5b9b10802d"/></dir><dir name="Profile"><file name="Collection.php" hash="f5cd814fe62d2af8fbcc2214f94bfeb4"/></dir><file name="Profile.php" hash="6944c811248ef955a51357989ca11dd3"/><dir name="Risk"><file name="Collection.php" hash="558dc26690672dc09ae6fbfa8e780302"/></dir><file name="Risk.php" hash="5c77111382678451da4dde209a43b0fa"/></dir><file name="Observer.php" hash="32ded6b8987067943ac349b6bab4ccea"/><dir name="Profile"><file name="Client.php" hash="4358736ced5bdc7d2a7fbbf53e2ff07d"/></dir><file name="Profile.php" hash="798cef09bbc0556545edf1f00bae9bf0"/><dir name="Resource"><dir name="Mysql4"><file name="Setup.php" hash="e936830d9e4f74badc3b7663f60436dc"/></dir></dir><file name="Risk.php" hash="fab5519b0e257b8ef2f66f5f76d49f2b"/><dir name="Sales"><file name="Order.php" hash="32320888ae209b1ea3208da59312da5c"/></dir><dir name="Source"><file name="Cctype.php" hash="dd21379a29444a4c58e33e90ddeb300e"/></dir><dir name="Web"><file name="Client.php" hash="d565e254fc281e7c246cc9cfe8c2f39d"/></dir></dir><dir name="Test"><dir name="Model"><dir name="Hosted"><file name="Client.php" hash="83e69edc0636294a7e6a93e8cd745b33"/></dir><dir name="Method"><file name="Hosted.php" hash="2acc5b7427dc4bb36b8ec8f75987cd1e"/></dir><file name="Observer.php" hash="581a5f9151aaffad292670af5118926f"/></dir></dir><dir name="controllers"><dir name="Adminhtml"><file name="ThreatController.php" hash="5db39713fbd0ae13e943a891940bb22c"/></dir><dir name="Frontend"><file name="OptimalController.php" hash="c370c3a30a6563ed15a6596246e2d725"/></dir></dir><dir name="etc"><file name="adminhtml.xml" hash="964295d91c6f5e1fcbebda18b9ad54b5"/><file name="config.xml" hash="28bce461961e991844147b047982ac7d"/><file name="system.xml" hash="cd61f9cdb9b368fca29ab683d5350c93"/></dir><dir name="sql"><dir name="optimal_setup"><file name="install-0.1.1.php" hash="422b6afb2d2320f5d9c59cd5bff0dc3d"/><file name="install-0.2.0.php" hash="71dbb515c55c34f1910463d72f66f9d2"/><file name="install-0.2.1.php" hash="0bd65edba72966cffce19dd3c480863b"/><file name="install-0.2.2.php" hash="33bb51df7561eb747ee07d8e8aa43ce4"/><file name="install-0.2.3.php" hash="abafde589308828b601c306b45f1aa41"/><file name="install-0.2.4.php" hash="abafde589308828b601c306b45f1aa41"/><file name="install-0.2.5.php" hash="9a0bb5235e982cfc1794dd8d0172e26d"/><file name="install-0.2.6.php" hash="0a8eb965fa5af575593d09722b6712b1"/><file name="install-0.2.7.php" hash="0a8eb965fa5af575593d09722b6712b1"/><file name="install-0.2.9.php" hash="0a8eb965fa5af575593d09722b6712b1"/><file name="mysql4-install-0.1.1.php" hash="422b6afb2d2320f5d9c59cd5bff0dc3d"/><file name="mysql4-install-0.2.0.php" hash="71dbb515c55c34f1910463d72f66f9d2"/><file name="mysql4-install-0.2.1.php" hash="0bd65edba72966cffce19dd3c480863b"/><file name="mysql4-install-0.2.2.php" hash="33bb51df7561eb747ee07d8e8aa43ce4"/><file name="mysql4-install-0.2.3.php" hash="abafde589308828b601c306b45f1aa41"/><file name="mysql4-install-0.2.4.php" hash="abafde589308828b601c306b45f1aa41"/><file name="mysql4-install-0.2.5.php" hash="9a0bb5235e982cfc1794dd8d0172e26d"/><file name="mysql4-install-0.2.6.php" hash="0a8eb965fa5af575593d09722b6712b1"/><file name="mysql4-install-0.2.7.php" hash="0a8eb965fa5af575593d09722b6712b1"/><file name="mysql4-install-0.2.9.php" hash="0a8eb965fa5af575593d09722b6712b1"/><file name="mysql4-upgrade-0.1.1-0.2.7.php" hash="0a8eb965fa5af575593d09722b6712b1"/><file name="upgrade-0.1.1-0.2.7.php" hash="0a8eb965fa5af575593d09722b6712b1"/><file name="upgrade-0.2.9-0.3.0.php" hash="989e6c4043fccfa6cdcba0a09938dd07"/><file name="upgrade-0.3.1-0.3.2.php" hash="aea721b40772c92db786b96fbb9c8bda"/></dir></dir></dir></dir></dir></target><target name="mageetc"><dir name="modules"><file name="Demac_Optimal.xml" hash="2ebfc5a3a1c5688639c0cc5eb34fded0"/></dir></target><target name="magedesign"><dir name="adminhtml"><dir name="default"><dir name="default"><dir name="template"><dir name="optimal"><dir><dir name="form"><file name="creditcard.phtml" hash="550c80a4e0dc4224946de029f4c3ecf6"/></dir><dir name="info"><file name="creditcard.phtml" hash="642dd94f8c1b1e43fe89226b3a0eb02a"/></dir></dir></dir></dir></dir></dir></dir><dir name="frontend"><dir name="base"><dir name="default"><dir name="template"><dir name="optimal"><dir><dir name="customer"><dir name="cards"><file name="form.phtml" hash="969544827b5e5765b6bb2bea2f62392a"/><file name="grid.phtml" hash="9a160522aa31ed44eb2f5751f40718c8"/></dir><file name="cards.phtml" hash="ed3f6e56b134674e7d8ddcb6a1deac59"/></dir><dir name="form"><file name="creditcard.phtml" hash="be04e0511fc1686ed7ea81c6e61e89ad"/></dir><dir name="info"><file name="creditcard.phtml" hash="d886bd24ae993548a3663b537e2456df"/></dir></dir><file name="threatmeter.phtml" hash="3dd0ea7621038895aa1dd1e322ba7d99"/></dir></dir><dir name="layout"><file name="optimal.xml" hash="d1154efa9a293770c76b98be4023ff08"/></dir></dir></dir></dir></target></contents>
|
24 |
<compatible/>
|
25 |
+
<dependencies><required><php><min>5.3.0</min><max>5.5.16</max></php></required></dependencies>
|
26 |
</package>
|