666999 - Version 0.3.3

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 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
- $response = $client->cancelOrder($orderData['id']);
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
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.2</version>
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="demac/threatmeter.phtml" name="optimal_threat" as="optimal_threat"/>
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.2</version>
5
  <stability>beta</stability>
6
- <license uri="http://opensource.org/licenses/GPL-3.0">GPL 3.0</license>
7
  <channel>community</channel>
8
  <extends/>
9
- <summary>Securely access and process online payments with the NETBANX payment gateway</summary>
10
- <description>The Optimal Payments Magento 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.&#xD;
11
- &#xD;
12
- 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.&#xD;
13
- &#xD;
 
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.&#xD;
15
- &#xD;
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.&#xD;
17
  </description>
18
- <notes> - Send basic user information to Optimal for improved Fraud Detection&#xD;
19
- - Minor improvements for compatibility with future Optimal API Updates&#xD;
20
- - Fixes for minor issue related to issuing refunds&#xD;
21
- - Added Profile Key option to configuration for companies that share one Optimal account while processing credit cards in multiple places&#xD;
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-07-14</date>
25
- <time>19:11:28</time>
26
- <contents><target name="magecommunity"><dir><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="109064dd9492b5251d00617eeba0b528"/></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="8c8d058b70dae31e828a4455bd6437aa"/><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="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="0515298670f1cf73ebe15cb3aa004dbe"/><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></dir></target><target name="mageetc"><dir><dir name="modules"><file name="Demac_Optimal.xml" hash="2ebfc5a3a1c5688639c0cc5eb34fded0"/></dir></dir></target><target name="magedesign"><dir><dir name="frontend"><dir name="base"><dir name="default"><dir name="template"><dir name="demac"><file name="threatmeter.phtml" hash="3dd0ea7621038895aa1dd1e322ba7d99"/></dir><dir name="optimal"><dir><dir name="customer"><dir name="cards"><file name="form.phtml" hash="969544827b5e5765b6bb2bea2f62392a"/><file name="grid.phtml" hash="9a160522aa31ed44eb2f5751f40718c8"/><file name="form.phtml" hash="969544827b5e5765b6bb2bea2f62392a"/><file name="grid.phtml" hash="9a160522aa31ed44eb2f5751f40718c8"/></dir><file name="cards.phtml" hash="ed3f6e56b134674e7d8ddcb6a1deac59"/><file name="cards.phtml" hash="ed3f6e56b134674e7d8ddcb6a1deac59"/></dir><dir name="form"><file name="creditcard.phtml" hash="be04e0511fc1686ed7ea81c6e61e89ad"/><file name="creditcard.phtml" hash="be04e0511fc1686ed7ea81c6e61e89ad"/></dir><dir name="info"><file name="creditcard.phtml" hash="d886bd24ae993548a3663b537e2456df"/><file name="creditcard.phtml" hash="d886bd24ae993548a3663b537e2456df"/></dir></dir></dir></dir><dir name="layout"><file name="optimal.xml" hash="a07172addfaad63e7a9aeded9de8baa8"/></dir></dir></dir></dir><dir name="adminhtml"><dir name="default"><dir name="default"><dir name="template"><dir name="optimal"><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></target></contents>
27
  <compatible/>
28
- <dependencies><required><php><min>5.3.0</min><max>5.4.30</max></php></required></dependencies>
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.&#xD;
10
+ </summary>
11
+ <description>The Optimal Payments NETBANX Hosted Payment Extension allows ecommerce businesses to securely accept and process online payments using Optimal&#x2019;s NETBANX payment gateway and services. The integration is easy to implement and provides the ultimate in payment processing capabilities, fraud management, and reporting.&#xD;
12
+ &lt;br /&gt; &lt;br /&gt;&#xD;
13
+ The Optimal Payments extension uses a Silent Post integration to the merchant&#x2019;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&#x2019;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.&#xD;
14
+ &lt;br /&gt; &lt;br /&gt;&#xD;
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.&#xD;
16
+ &lt;br /&gt; &lt;br /&gt;&#xD;
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.&#xD;
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>