eWAY_Payment_Rapid31 - Version 1.3.0

Version Notes

Fixes and updates:

- Fix for using Transparent Redirect with OneStepCheckout.com
- Fix for not sending invoice emails
- Minor fix for recurring orders
- Fix for new fraud codes not processing correctly
- Improved transaction failure handling

Download this release

Release Info

Developer eWAY Payments
Extension eWAY_Payment_Rapid31
Version 1.3.0
Comparing to
See all releases


Code changes from version 1.2.0 to 1.3.0

Files changed (26) hide show
  1. app/code/community/Eway/Rapid31/Block/Admin/Version.php +8 -0
  2. app/code/community/Eway/Rapid31/Block/Form/Sharedpage/Notsaved.php +2 -0
  3. app/code/community/Eway/Rapid31/Block/Form/Sharedpage/Saved.php +2 -0
  4. app/code/community/Eway/Rapid31/Block/Form/Transparent/Notsaved.php +1 -1
  5. app/code/community/Eway/Rapid31/Block/Form/Transparent/Saved.php +1 -1
  6. app/code/community/Eway/Rapid31/Helper/Data.php +6 -1
  7. app/code/community/Eway/Rapid31/Model/Method/Notsaved.php +13 -3
  8. app/code/community/Eway/Rapid31/Model/Observer.php +16 -8
  9. app/code/community/Eway/Rapid31/Model/Request/Abstract.php +5 -1
  10. app/code/community/Eway/Rapid31/Model/Request/Direct.php +2 -1
  11. app/code/community/Eway/Rapid31/Model/Request/Sharedpage.php +8 -1
  12. app/code/community/Eway/Rapid31/Model/Request/Token.php +12 -7
  13. app/code/community/Eway/Rapid31/Model/Request/Transparent.php +4 -2
  14. app/code/community/Eway/Rapid31/Model/Response.php +20 -4
  15. app/code/community/Eway/Rapid31/controllers/SharedpageController.php +13 -0
  16. app/code/community/Eway/Rapid31/controllers/TransparentController.php +12 -8
  17. app/code/community/Eway/Rapid31/etc/config.xml +11 -3
  18. app/code/community/Eway/Rapid31/etc/system.xml +9 -0
  19. app/code/community/Eway/Rapid31/sql/ewayrapid_setup/install-0.1.0.php +1 -4
  20. app/design/frontend/base/default/template/ewayrapid/form/transparent_notsaved.phtml +1 -1
  21. app/design/frontend/base/default/template/ewayrapid/js.phtml +7 -0
  22. app/design/frontend/base/default/template/ewayrapid/redirect/transparent.phtml +1 -1
  23. js/ewayrapid/eCrypt.js +50 -53
  24. js/ewayrapid/ewayrapid.js +4 -1
  25. package.xml +9 -12
  26. skin/frontend/base/default/css/ewayrapid.css +2 -1
app/code/community/Eway/Rapid31/Block/Admin/Version.php ADDED
@@ -0,0 +1,8 @@
 
 
 
 
 
 
 
 
1
+ <?php
2
+ class Eway_Rapid31_Block_Admin_Version extends Mage_Adminhtml_Block_System_Config_Form_Field
3
+ {
4
+ protected function _getElementHtml(Varien_Data_Form_Element_Abstract $element)
5
+ {
6
+ return (string) Mage::helper('ewayrapid')->getExtensionVersion();
7
+ }
8
+ }
app/code/community/Eway/Rapid31/Block/Form/Sharedpage/Notsaved.php CHANGED
@@ -5,5 +5,7 @@ class Eway_Rapid31_Block_Form_Sharedpage_Notsaved extends Mage_Payment_Block_For
5
  {
6
  parent::_construct();
7
  $this->setTemplate('ewayrapid/form/sharedpage_notsaved.phtml');
 
 
8
  }
9
  }
5
  {
6
  parent::_construct();
7
  $this->setTemplate('ewayrapid/form/sharedpage_notsaved.phtml');
8
+ // unset all session's sharedpage
9
+ Mage::helper('ewayrapid')->clearSessionSharedpage();
10
  }
11
  }
app/code/community/Eway/Rapid31/Block/Form/Sharedpage/Saved.php CHANGED
@@ -5,6 +5,8 @@ class Eway_Rapid31_Block_Form_Sharedpage_Saved extends Mage_Payment_Block_Form_C
5
  {
6
  parent::_construct();
7
  $this->setTemplate('ewayrapid/form/sharedpage_saved.phtml');
 
 
8
  }
9
 
10
  /**
5
  {
6
  parent::_construct();
7
  $this->setTemplate('ewayrapid/form/sharedpage_saved.phtml');
8
+ // unset all session's sharedpage
9
+ Mage::helper('ewayrapid')->clearSessionSharedpage();
10
  }
11
 
12
  /**
app/code/community/Eway/Rapid31/Block/Form/Transparent/Notsaved.php CHANGED
@@ -7,7 +7,7 @@ class Eway_Rapid31_Block_Form_Transparent_Notsaved extends Mage_Payment_Block_Fo
7
  parent::_construct();
8
 
9
  //unset all session's transaparent;
10
- Mage::getModel('ewayrapid/request_transparent')->unsetSessionData();
11
 
12
  $this->setTemplate('ewayrapid/form/transparent_notsaved.phtml');
13
  }
7
  parent::_construct();
8
 
9
  //unset all session's transaparent;
10
+ //Mage::getModel('ewayrapid/request_transparent')->unsetSessionData();
11
 
12
  $this->setTemplate('ewayrapid/form/transparent_notsaved.phtml');
13
  }
app/code/community/Eway/Rapid31/Block/Form/Transparent/Saved.php CHANGED
@@ -9,7 +9,7 @@ class Eway_Rapid31_Block_Form_Transparent_Saved extends Mage_Payment_Block_Form_
9
  $this->setTemplate('ewayrapid/form/transparent_saved.phtml');
10
 
11
  //unset all session's transaparent
12
- Mage::getModel('ewayrapid/request_transparent')->unsetSessionData();
13
  }
14
 
15
  /**
9
  $this->setTemplate('ewayrapid/form/transparent_saved.phtml');
10
 
11
  //unset all session's transaparent
12
+ //Mage::getModel('ewayrapid/request_transparent')->unsetSessionData();
13
  }
14
 
15
  /**
app/code/community/Eway/Rapid31/Helper/Data.php CHANGED
@@ -15,7 +15,12 @@ class Eway_Rapid31_Helper_Data extends Mage_Core_Helper_Abstract
15
  {
16
  return Mage::app()->getStore()->isAdmin();
17
  }
18
-
 
 
 
 
 
19
  public function serializeInfoInstance(&$info)
20
  {
21
  $fieldsToSerialize = array('is_new_token', 'is_update_token', 'saved_token');
15
  {
16
  return Mage::app()->getStore()->isAdmin();
17
  }
18
+
19
+ public function getExtensionVersion()
20
+ {
21
+ return (string) Mage::getConfig()->getModuleConfig("Eway_Rapid31")->version;
22
+ }
23
+
24
  public function serializeInfoInstance(&$info)
25
  {
26
  $fieldsToSerialize = array('is_new_token', 'is_update_token', 'saved_token');
app/code/community/Eway/Rapid31/Model/Method/Notsaved.php CHANGED
@@ -29,6 +29,7 @@ class Eway_Rapid31_Model_Method_Notsaved extends Mage_Payment_Model_Method_Abstr
29
  protected $_connectionType;
30
  protected $_isBackendOrder;
31
 
 
32
  public function __construct()
33
  {
34
  parent::__construct();
@@ -88,9 +89,12 @@ class Eway_Rapid31_Model_Method_Notsaved extends Mage_Payment_Model_Method_Abstr
88
  $info = $this->getInfoInstance();
89
 
90
  if (!$this->_isBackendOrder && $this->_connectionType === Eway_Rapid31_Model_Config::CONNECTION_SHARED_PAGE) {
91
- Mage::helper('ewayrapid')->clearSessionSharedpage();
92
  //Mage::getSingleton('core/session')->setData('sharedpagePaypal', $data->getSharedpageNotsaved());
93
- Mage::getSingleton('core/session')->setData('sharedpagePaypal', 'paypal');
 
 
 
94
  } elseif (!$this->_isBackendOrder && $this->_connectionType === Eway_Rapid31_Model_Config::CONNECTION_TRANSPARENT) {
95
  $info->setTransparentNotsaved($data->getTransparentNotsaved());
96
 
@@ -469,6 +473,12 @@ class Eway_Rapid31_Model_Method_Notsaved extends Mage_Payment_Model_Method_Abstr
469
  }
470
  elseif (Mage::getStoreConfig('payment/ewayrapid_general/connection_type')
471
  === Eway_Rapid31_Model_Config::CONNECTION_TRANSPARENT
 
 
 
 
 
 
472
  && (Mage::getStoreConfig('onestepcheckout/general/active')
473
  || Mage::getStoreConfig('opc/global/status')
474
  || Mage::getStoreConfig('firecheckout/general/enabled')
@@ -476,7 +486,7 @@ class Eway_Rapid31_Model_Method_Notsaved extends Mage_Payment_Model_Method_Abstr
476
  || Mage::getStoreConfig('onestepcheckout/general/rewrite_checkout_links'))
477
  ) {
478
  return Mage::getUrl('ewayrapid/transparent/build', array('_secure'=>true));
479
- }
480
  return null;
481
  }
482
  }
29
  protected $_connectionType;
30
  protected $_isBackendOrder;
31
 
32
+ public static $_extension = false;
33
  public function __construct()
34
  {
35
  parent::__construct();
89
  $info = $this->getInfoInstance();
90
 
91
  if (!$this->_isBackendOrder && $this->_connectionType === Eway_Rapid31_Model_Config::CONNECTION_SHARED_PAGE) {
92
+ // Mage::helper('ewayrapid')->clearSessionSharedpage();
93
  //Mage::getSingleton('core/session')->setData('sharedpagePaypal', $data->getSharedpageNotsaved());
94
+ // Mage::getSingleton('core/session')->setData('sharedpagePaypal', 'paypal');
95
+ if ($data->getMethod()) {
96
+ Mage::getSingleton('core/session')->setData('ewayMethod', $data->getMethod());
97
+ }
98
  } elseif (!$this->_isBackendOrder && $this->_connectionType === Eway_Rapid31_Model_Config::CONNECTION_TRANSPARENT) {
99
  $info->setTransparentNotsaved($data->getTransparentNotsaved());
100
 
473
  }
474
  elseif (Mage::getStoreConfig('payment/ewayrapid_general/connection_type')
475
  === Eway_Rapid31_Model_Config::CONNECTION_TRANSPARENT
476
+ && Mage::getSingleton('core/session')->getCheckoutExtension()
477
+ ) {
478
+ return Mage::getUrl('ewayrapid/transparent/build', array('_secure'=>true));
479
+ }
480
+ /*elseif (Mage::getStoreConfig('payment/ewayrapid_general/connection_type')
481
+ === Eway_Rapid31_Model_Config::CONNECTION_TRANSPARENT
482
  && (Mage::getStoreConfig('onestepcheckout/general/active')
483
  || Mage::getStoreConfig('opc/global/status')
484
  || Mage::getStoreConfig('firecheckout/general/enabled')
486
  || Mage::getStoreConfig('onestepcheckout/general/rewrite_checkout_links'))
487
  ) {
488
  return Mage::getUrl('ewayrapid/transparent/build', array('_secure'=>true));
489
+ }*/
490
  return null;
491
  }
492
  }
app/code/community/Eway/Rapid31/Model/Observer.php CHANGED
@@ -1,12 +1,12 @@
1
  <?php
2
  /**
3
- * Created by PhpStorm.
4
- * User: Administrator PC
5
- * Date: 7/18/14
6
- * Time: 2:26 PM
7
  */
8
  class Eway_Rapid31_Model_Observer {
9
 
 
 
 
10
  public function myCards() {
11
 
12
  }
@@ -21,10 +21,6 @@ class Eway_Rapid31_Model_Observer {
21
  && $fraud_enabled
22
  && (int)$unblock === 0
23
  ) {
24
- //echo 'You can\'t create new order. Please contact admin site.';
25
- // do something here
26
- // .....
27
-
28
  Mage::app()->getResponse()->setRedirect(Mage::getUrl('checkout/cart'));
29
  Mage::app()->getResponse()->sendResponse();
30
  Mage::getSingleton('core/session')->addError(Mage::helper('ewayrapid')->__('Your latest payment is being reviewed and you cannot place a new order temporarily. Please try again later.'));
@@ -59,6 +55,18 @@ class Eway_Rapid31_Model_Observer {
59
 
60
  }
61
  }
 
 
 
 
 
 
 
 
 
 
 
 
62
 
63
  public function checkout_submit_all_after(Varien_Event_Observer $observer) {
64
  $fraud = Mage::getSingleton('core/session')->getData('fraud');
1
  <?php
2
  /**
3
+ *
 
 
 
4
  */
5
  class Eway_Rapid31_Model_Observer {
6
 
7
+ /* @var Magento_Sales_Model_Order_Invoice*/
8
+ var $_invoice;
9
+
10
  public function myCards() {
11
 
12
  }
21
  && $fraud_enabled
22
  && (int)$unblock === 0
23
  ) {
 
 
 
 
24
  Mage::app()->getResponse()->setRedirect(Mage::getUrl('checkout/cart'));
25
  Mage::app()->getResponse()->sendResponse();
26
  Mage::getSingleton('core/session')->addError(Mage::helper('ewayrapid')->__('Your latest payment is being reviewed and you cannot place a new order temporarily. Please try again later.'));
55
 
56
  }
57
  }
58
+
59
+ public function sales_order_invoice_save_after($observer)
60
+ {
61
+ try {
62
+ /* @var $order Magento_Sales_Model_Order_Invoice */
63
+ $this->_invoice = $observer->getEvent()->getInvoice();
64
+ $this->_invoice->sendEmail();
65
+ } catch (Mage_Core_Exception $e) {
66
+ Mage::log("Error sending invoice email: " . $e->getMessage());
67
+ }
68
+ return $this;
69
+ }
70
 
71
  public function checkout_submit_all_after(Varien_Event_Observer $observer) {
72
  $fraud = Mage::getSingleton('core/session')->getData('fraud');
app/code/community/Eway/Rapid31/Model/Request/Abstract.php CHANGED
@@ -96,7 +96,7 @@ abstract class Eway_Rapid31_Model_Request_Abstract extends Eway_Rapid31_Model_Js
96
  if (curl_errno($ch) != CURLE_OK) {
97
  $response->isSuccess(false);
98
  $response->setMessage(Mage::helper('ewayrapid')->__("There is an error in making API request: %s", curl_error($ch)));
99
- $this->_log("There is an error in making API request: %s", curl_error($ch));
100
  } else {
101
  $info = curl_getinfo($ch);
102
  $http_code = intval(trim($info['http_code']));
@@ -104,6 +104,10 @@ abstract class Eway_Rapid31_Model_Request_Abstract extends Eway_Rapid31_Model_Js
104
  $response->isSuccess(false);
105
  $response->setMessage(Mage::helper('ewayrapid')->__("Please check the API Key and Password %s", $mode));
106
  $this->_log('Access denied. HTTP_CODE = ' . $info['http_code']);
 
 
 
 
107
  } else {
108
  $response->isSuccess(true);
109
  $response->decodeJSON($result);
96
  if (curl_errno($ch) != CURLE_OK) {
97
  $response->isSuccess(false);
98
  $response->setMessage(Mage::helper('ewayrapid')->__("There is an error in making API request: %s", curl_error($ch)));
99
+ $this->_log("There is an error in making API request: " . curl_error($ch));
100
  } else {
101
  $info = curl_getinfo($ch);
102
  $http_code = intval(trim($info['http_code']));
104
  $response->isSuccess(false);
105
  $response->setMessage(Mage::helper('ewayrapid')->__("Please check the API Key and Password %s", $mode));
106
  $this->_log('Access denied. HTTP_CODE = ' . $info['http_code']);
107
+ } elseif ($http_code != 200) {
108
+ $response->isSuccess(false);
109
+ $response->setMessage(Mage::helper('ewayrapid')->__("Error connecting to payment gateway, please try again"));
110
+ $this->_log('Error connecting to payment gateway. HTTP_CODE = ' . $info['http_code']);
111
  } else {
112
  $response->isSuccess(true);
113
  $response->decodeJSON($result);
app/code/community/Eway/Rapid31/Model/Request/Direct.php CHANGED
@@ -196,7 +196,8 @@ class Eway_Rapid31_Model_Request_Direct extends Eway_Rapid31_Model_Request_Abstr
196
  } else {
197
  $this->setTransactionType(Eway_Rapid31_Model_Config::TRANSACTION_PURCHASE);
198
  }
199
- $this->setDeviceID('Magento ' . Mage::getEdition() . ' ' . Mage::getVersion());
 
200
  $this->setShippingMethod('Other');
201
 
202
  $paymentParam = Mage::getModel('ewayrapid/field_payment');
196
  } else {
197
  $this->setTransactionType(Eway_Rapid31_Model_Config::TRANSACTION_PURCHASE);
198
  }
199
+ $version = Mage::helper('ewayrapid')->getExtensionVersion();
200
+ $this->setDeviceID('Magento ' . Mage::getEdition() . ' ' . Mage::getVersion().' - eWAY Official '.$version);
201
  $this->setShippingMethod('Other');
202
 
203
  $paymentParam = Mage::getModel('ewayrapid/field_payment');
app/code/community/Eway/Rapid31/Model/Request/Sharedpage.php CHANGED
@@ -39,6 +39,7 @@ class Eway_Rapid31_Model_Request_Sharedpage extends Eway_Rapid31_Model_Request_A
39
  $paypal = null;
40
  $totalAmount = 0;
41
 
 
42
  if ($this->_isNewToken()) {
43
  $returnUrl .= '?newToken=1';
44
  $method = Eway_Rapid31_Model_Config::METHOD_CREATE_TOKEN;
@@ -46,6 +47,7 @@ class Eway_Rapid31_Model_Request_Sharedpage extends Eway_Rapid31_Model_Request_A
46
  $returnUrl .= '?editToken=' . $token;
47
  $token = Mage::helper('ewayrapid/customer')->getCustomerTokenId($token);
48
  $method = Eway_Rapid31_Model_Config::METHOD_UPDATE_TOKEN;
 
49
  } else {
50
  if (Mage::helper('ewayrapid')->getPaymentAction() === Mage_Payment_Model_Method_Abstract::ACTION_AUTHORIZE_CAPTURE) {
51
  $method = Eway_Rapid31_Model_Config::METHOD_PROCESS_PAYMENT;
@@ -210,7 +212,8 @@ class Eway_Rapid31_Model_Request_Sharedpage extends Eway_Rapid31_Model_Request_A
210
  // prepare API
211
  $this->setShippingMethod('Other');
212
  $this->setCustomerIP(Mage::helper('core/http')->getRemoteAddr());
213
- $this->setDeviceID('Magento ' . Mage::getEdition() . ' ' . Mage::getVersion());
 
214
  if (Mage::helper('ewayrapid')->isBackendOrder()) {
215
  $this->setTransactionType(Eway_Rapid31_Model_Config::TRANSACTION_MOTO);
216
  } else {
@@ -520,4 +523,8 @@ class Eway_Rapid31_Model_Request_Sharedpage extends Eway_Rapid31_Model_Request_A
520
  }
521
  return false;
522
  }
 
 
 
 
523
  }
39
  $paypal = null;
40
  $totalAmount = 0;
41
 
42
+ if ($this->getMethod() == Eway_Rapid31_Model_Config::PAYMENT_SAVED_METHOD) {
43
  if ($this->_isNewToken()) {
44
  $returnUrl .= '?newToken=1';
45
  $method = Eway_Rapid31_Model_Config::METHOD_CREATE_TOKEN;
47
  $returnUrl .= '?editToken=' . $token;
48
  $token = Mage::helper('ewayrapid/customer')->getCustomerTokenId($token);
49
  $method = Eway_Rapid31_Model_Config::METHOD_UPDATE_TOKEN;
50
+ }
51
  } else {
52
  if (Mage::helper('ewayrapid')->getPaymentAction() === Mage_Payment_Model_Method_Abstract::ACTION_AUTHORIZE_CAPTURE) {
53
  $method = Eway_Rapid31_Model_Config::METHOD_PROCESS_PAYMENT;
212
  // prepare API
213
  $this->setShippingMethod('Other');
214
  $this->setCustomerIP(Mage::helper('core/http')->getRemoteAddr());
215
+ $version = Mage::helper('ewayrapid')->getExtensionVersion();
216
+ $this->setDeviceID('Magento ' . Mage::getEdition() . ' ' . Mage::getVersion().' - eWAY Official '.$version);
217
  if (Mage::helper('ewayrapid')->isBackendOrder()) {
218
  $this->setTransactionType(Eway_Rapid31_Model_Config::TRANSACTION_MOTO);
219
  } else {
523
  }
524
  return false;
525
  }
526
+ public function getMethod()
527
+ {
528
+ return Mage::getSingleton('core/session')->getData('ewayMethod');
529
+ }
530
  }
app/code/community/Eway/Rapid31/Model/Request/Token.php CHANGED
@@ -158,8 +158,10 @@ class Eway_Rapid31_Model_Request_Token extends Eway_Rapid31_Model_Request_Direct
158
  $shipping = $quote->getBillingAddress();
159
  }
160
  }
161
-
162
- $this->setCustomerIP(Mage::helper('core/http')->getRemoteAddr());
 
 
163
  if (Mage::helper('ewayrapid')->isBackendOrder()) {
164
  $this->setTransactionType(Eway_Rapid31_Model_Config::TRANSACTION_MOTO);
165
  } elseif ($payment->getIsRecurring()) {
@@ -167,7 +169,8 @@ class Eway_Rapid31_Model_Request_Token extends Eway_Rapid31_Model_Request_Direct
167
  } else {
168
  $this->setTransactionType(Eway_Rapid31_Model_Config::TRANSACTION_PURCHASE);
169
  }
170
- $this->setDeviceID('Magento ' . Mage::getEdition() . ' ' . Mage::getVersion());
 
171
  $this->setShippingMethod('Other');
172
 
173
  $paymentParam = Mage::getModel('ewayrapid/field_payment');
@@ -302,8 +305,9 @@ class Eway_Rapid31_Model_Request_Token extends Eway_Rapid31_Model_Request_Direct
302
  $this->setRedirectUrl($returnUrl);
303
  $this->setCancelUrl($returnUrl);
304
  $this->setMethod(!empty($tokenCustomerID) ? 'UpdateTokenCustomer' : 'CreateTokenCustomer');
305
- $this->setCustomerIP($_SERVER["REMOTE_ADDR"]);
306
- $this->setDeviceID('');
 
307
  $this->setTransactionType("Purchase");
308
  $this->setCustomerReadOnly(true);
309
 
@@ -338,8 +342,9 @@ class Eway_Rapid31_Model_Request_Token extends Eway_Rapid31_Model_Request_Direct
338
  $this->setRedirectUrl($returnUrl);
339
  $this->setMethod('');
340
  $this->setTransactionType('');
341
- $this->setDeviceID('');
342
- $this->setCustomerIP($_SERVER["REMOTE_ADDR"]);
 
343
 
344
  $response = $this->_doRapidAPI('AccessCodes');
345
 
158
  $shipping = $quote->getBillingAddress();
159
  }
160
  }
161
+
162
+ if (!$payment->getIsRecurring()) {
163
+ $this->setCustomerIP(Mage::helper('core/http')->getRemoteAddr());
164
+ }
165
  if (Mage::helper('ewayrapid')->isBackendOrder()) {
166
  $this->setTransactionType(Eway_Rapid31_Model_Config::TRANSACTION_MOTO);
167
  } elseif ($payment->getIsRecurring()) {
169
  } else {
170
  $this->setTransactionType(Eway_Rapid31_Model_Config::TRANSACTION_PURCHASE);
171
  }
172
+ $version = Mage::helper('ewayrapid')->getExtensionVersion();
173
+ $this->setDeviceID('Magento ' . Mage::getEdition() . ' ' . Mage::getVersion().' - eWAY Official '.$version);
174
  $this->setShippingMethod('Other');
175
 
176
  $paymentParam = Mage::getModel('ewayrapid/field_payment');
305
  $this->setRedirectUrl($returnUrl);
306
  $this->setCancelUrl($returnUrl);
307
  $this->setMethod(!empty($tokenCustomerID) ? 'UpdateTokenCustomer' : 'CreateTokenCustomer');
308
+ $this->setCustomerIP(Mage::helper('core/http')->getRemoteAddr());
309
+ $version = Mage::helper('ewayrapid')->getExtensionVersion();
310
+ $this->setDeviceID('Magento ' . Mage::getEdition() . ' ' . Mage::getVersion().' - eWAY Official '.$version);
311
  $this->setTransactionType("Purchase");
312
  $this->setCustomerReadOnly(true);
313
 
342
  $this->setRedirectUrl($returnUrl);
343
  $this->setMethod('');
344
  $this->setTransactionType('');
345
+ $version = Mage::helper('ewayrapid')->getExtensionVersion();
346
+ $this->setDeviceID('Magento ' . Mage::getEdition() . ' ' . Mage::getVersion().' - eWAY Official '.$version);
347
+ $this->setCustomerIP(Mage::helper('core/http')->getRemoteAddr());
348
 
349
  $response = $this->_doRapidAPI('AccessCodes');
350
 
app/code/community/Eway/Rapid31/Model/Request/Transparent.php CHANGED
@@ -110,7 +110,8 @@ class Eway_Rapid31_Model_Request_Transparent extends Eway_Rapid31_Model_Request_
110
  $this->setMethod($method);
111
  $this->setShippingMethod('Other');
112
  $this->setCustomerIP(Mage::helper('core/http')->getRemoteAddr());
113
- $this->setDeviceID('Magento ' . Mage::getEdition() . ' ' . Mage::getVersion());
 
114
  if (Mage::helper('ewayrapid')->isBackendOrder()) {
115
  $this->setTransactionType(Eway_Rapid31_Model_Config::TRANSACTION_MOTO);
116
  } else {
@@ -524,7 +525,8 @@ class Eway_Rapid31_Model_Request_Transparent extends Eway_Rapid31_Model_Request_
524
  } else {
525
  $this->setTransactionType(Eway_Rapid31_Model_Config::TRANSACTION_PURCHASE);
526
  }
527
- $this->setDeviceID('Magento ' . Mage::getEdition() . ' ' . Mage::getVersion());
 
528
  $this->setShippingMethod('Other');
529
 
530
  $paymentParam = Mage::getModel('ewayrapid/field_payment');
110
  $this->setMethod($method);
111
  $this->setShippingMethod('Other');
112
  $this->setCustomerIP(Mage::helper('core/http')->getRemoteAddr());
113
+ $version = Mage::helper('ewayrapid')->getExtensionVersion();
114
+ $this->setDeviceID('Magento ' . Mage::getEdition() . ' ' . Mage::getVersion().' - eWAY Official '.$version);
115
  if (Mage::helper('ewayrapid')->isBackendOrder()) {
116
  $this->setTransactionType(Eway_Rapid31_Model_Config::TRANSACTION_MOTO);
117
  } else {
525
  } else {
526
  $this->setTransactionType(Eway_Rapid31_Model_Config::TRANSACTION_PURCHASE);
527
  }
528
+ $version = Mage::helper('ewayrapid')->getExtensionVersion();
529
+ $this->setDeviceID('Magento ' . Mage::getEdition() . ' ' . Mage::getVersion().' - eWAY Official '.$version);
530
  $this->setShippingMethod('Other');
531
 
532
  $paymentParam = Mage::getModel('ewayrapid/field_payment');
app/code/community/Eway/Rapid31/Model/Response.php CHANGED
@@ -139,6 +139,10 @@ class Eway_Rapid31_Model_Response extends Varien_Object
139
  'V6142' => 'Authorise not available for Bank/Branch',
140
  'V6150' => 'Invalid Refund Amount',
141
  'V6151' => 'Refund amount greater than original transaction',
 
 
 
 
142
 
143
  'D4401' => 'Refer to Issuer',
144
  'D4402' => 'Refer to Issuer, special',
@@ -245,6 +249,7 @@ class Eway_Rapid31_Model_Response extends Varien_Object
245
  'F9033' => 'Invalid Billing Street',
246
  'F9034' => 'Invalid Shipping Street',
247
  'F9037' => 'Suspicious Customer Email Address',
 
248
  );
249
 
250
  public function getMessage() {
@@ -306,12 +311,17 @@ class Eway_Rapid31_Model_Response extends Varien_Object
306
  if (isset($json['ResponseMessage']) && $this->isSuccess()) {
307
  $codeMessage = str_replace(' ', '', $json['ResponseMessage']);
308
  $codeMessage = explode(',', $codeMessage);
309
- $codeMessage = array_flip($codeMessage);
310
 
311
- $result = array_intersect_key($this->_messageCode, $codeMessage);
 
312
  if (!empty($result)) {
 
 
 
 
313
  Mage::getSingleton('core/session')->setData('fraud', 1);
314
- $fraudMessage = implode(', ', $result);
315
  Mage::getSingleton('core/session')->setData('fraudMessage', $fraudMessage);
316
  }
317
  }
@@ -348,13 +358,19 @@ class Eway_Rapid31_Model_Response extends Varien_Object
348
  public function replaceMessage($message)
349
  {
350
  $results = $message;
 
351
  if($this->_codes) {
352
  foreach ($this->_codes as $code => $mess) {
353
  if(strpos($message, $code) !== false) {
 
354
  $results = str_replace( $results, $code, $mess );
355
  }
356
  }
357
  }
358
- return $results;
 
 
 
 
359
  }
360
  }
139
  'V6142' => 'Authorise not available for Bank/Branch',
140
  'V6150' => 'Invalid Refund Amount',
141
  'V6151' => 'Refund amount greater than original transaction',
142
+ 'V6152' => 'Original transaction already refunded for total amount',
143
+ 'V6153' => 'Card type not support by merchant',
144
+ 'V6160' => 'Encryption Method Not Supported',
145
+ 'V6165' => 'Invalid Visa Checkout data or decryption failed',
146
 
147
  'D4401' => 'Refer to Issuer',
148
  'D4402' => 'Refer to Issuer, special',
249
  'F9033' => 'Invalid Billing Street',
250
  'F9034' => 'Invalid Shipping Street',
251
  'F9037' => 'Suspicious Customer Email Address',
252
+ 'F9050' => 'High Risk Email Address and amount',
253
  );
254
 
255
  public function getMessage() {
311
  if (isset($json['ResponseMessage']) && $this->isSuccess()) {
312
  $codeMessage = str_replace(' ', '', $json['ResponseMessage']);
313
  $codeMessage = explode(',', $codeMessage);
314
+ //$codeMessage = array_flip($codeMessage);
315
 
316
+ //$result = array_intersect_key($this->_messageCode, $codeMessage);
317
+ $result = preg_grep("/^F.*/", $codeMessage);
318
  if (!empty($result)) {
319
+ $codes = array_flip($result);
320
+ $resultMatched = array_intersect_key($this->_messageCode, $codes);
321
+ $resultDefault = array_fill_keys(array_keys($codes), "Unknown fraud rule");
322
+ $resultMessages = array_merge($resultDefault,$resultMatched);
323
  Mage::getSingleton('core/session')->setData('fraud', 1);
324
+ $fraudMessage = implode(', ', $resultMessages);
325
  Mage::getSingleton('core/session')->setData('fraudMessage', $fraudMessage);
326
  }
327
  }
358
  public function replaceMessage($message)
359
  {
360
  $results = $message;
361
+ $found = false;
362
  if($this->_codes) {
363
  foreach ($this->_codes as $code => $mess) {
364
  if(strpos($message, $code) !== false) {
365
+ $found = true;
366
  $results = str_replace( $results, $code, $mess );
367
  }
368
  }
369
  }
370
+ if ($found) {
371
+ return $results;
372
+ } else {
373
+ return Mage::helper('ewayrapid')->__('Transaction failed.');
374
+ }
375
  }
376
  }
app/code/community/Eway/Rapid31/controllers/SharedpageController.php CHANGED
@@ -122,6 +122,19 @@ class Eway_Rapid31_SharedpageController extends Mage_Checkout_OnepageController
122
  $payment->setAdditionalInformation('successType', $successType);
123
  Mage::getSingleton('core/session')->setData('ewayTransactionID', $response->getTransactionID());
124
  $orderId = $this->getOnepage()->saveOrder()->getLastOrderId();
 
 
 
 
 
 
 
 
 
 
 
 
 
125
  $this->getOnepage()->getQuote()->save();
126
  return $orderId;
127
  } catch (Exception $e) {
122
  $payment->setAdditionalInformation('successType', $successType);
123
  Mage::getSingleton('core/session')->setData('ewayTransactionID', $response->getTransactionID());
124
  $orderId = $this->getOnepage()->saveOrder()->getLastOrderId();
125
+ $this->getOnepage()->getQuote()->setIsActive(1);
126
+ try {
127
+ $cartHelper = Mage::helper('checkout/cart');
128
+ //Get all items from cart
129
+ $items = $cartHelper->getCart()->getItems();
130
+ //Loop through all of cart items
131
+ foreach ($items as $item) {
132
+ $itemId = $item->getItemId();
133
+ //Remove items, one by one
134
+ $cartHelper->getCart()->removeItem($itemId)->save();
135
+ }
136
+ } catch (Exception $e) {
137
+ }
138
  $this->getOnepage()->getQuote()->save();
139
  return $orderId;
140
  } catch (Exception $e) {
app/code/community/Eway/Rapid31/controllers/TransparentController.php CHANGED
@@ -106,11 +106,12 @@ class Eway_Rapid31_TransparentController extends Mage_Checkout_OnepageController
106
  }
107
  if (Mage::getStoreConfig('payment/ewayrapid_general/connection_type')
108
  === Eway_Rapid31_Model_Config::CONNECTION_TRANSPARENT
109
- && (Mage::getStoreConfig('onestepcheckout/general/active')
 
110
  || Mage::getStoreConfig('opc/global/status')
111
  || Mage::getStoreConfig('firecheckout/general/enabled')
112
  || Mage::getStoreConfig('gomage_checkout/general/enabled')
113
- || Mage::getStoreConfig('onestepcheckout/general/rewrite_checkout_links'))
114
  ) {
115
  $this->_redirectUrl($urlRedirect);
116
  return;
@@ -127,14 +128,14 @@ class Eway_Rapid31_TransparentController extends Mage_Checkout_OnepageController
127
  } catch (Exception $e) {
128
  Mage::getSingleton('core/session')->addError(Mage::helper('ewayrapid')->__('An error occurred while connecting to payment gateway. Please try again later.'));
129
  $this->transparentModel()->unsetSessionData();
130
- $this->transparentModel()->unsetSessionData();
131
  if (Mage::getStoreConfig('payment/ewayrapid_general/connection_type')
132
  === Eway_Rapid31_Model_Config::CONNECTION_TRANSPARENT
133
- && (Mage::getStoreConfig('onestepcheckout/general/active')
 
134
  || Mage::getStoreConfig('opc/global/status')
135
  || Mage::getStoreConfig('firecheckout/general/enabled')
136
  || Mage::getStoreConfig('gomage_checkout/general/enabled')
137
- || Mage::getStoreConfig('onestepcheckout/general/rewrite_checkout_links'))
138
  ) {
139
  $this->_redirectUrl(Mage::getUrl('checkout/cart/'));
140
  return;
@@ -242,17 +243,19 @@ class Eway_Rapid31_TransparentController extends Mage_Checkout_OnepageController
242
  $this->transparentModel()->unsetSessionData();
243
  if (Mage::getStoreConfig('payment/ewayrapid_general/connection_type')
244
  === Eway_Rapid31_Model_Config::CONNECTION_TRANSPARENT
245
- && (Mage::getStoreConfig('onestepcheckout/general/active')
 
246
  || Mage::getStoreConfig('opc/global/status')
247
  || Mage::getStoreConfig('firecheckout/general/enabled')
248
  || Mage::getStoreConfig('gomage_checkout/general/enabled')
249
- || Mage::getStoreConfig('onestepcheckout/general/rewrite_checkout_links'))
250
  ) {
251
  $this->_redirectUrl(Mage::getUrl('checkout/cart/'));
252
  return;
253
  }
254
  else {
255
- echo Mage::getUrl('checkout/cart/');
 
256
  }
257
  return;
258
  }
@@ -334,6 +337,7 @@ class Eway_Rapid31_TransparentController extends Mage_Checkout_OnepageController
334
 
335
  $this->getOnepage()->getQuote()->save();
336
  Mage::getSingleton('core/session')->unsetData('transparentCheckout');
 
337
  return $orderId;
338
  } catch (Exception $e) {
339
  Mage::throwException($e->getMessage());
106
  }
107
  if (Mage::getStoreConfig('payment/ewayrapid_general/connection_type')
108
  === Eway_Rapid31_Model_Config::CONNECTION_TRANSPARENT
109
+ && Mage::getSingleton('core/session')->getCheckoutExtension()
110
+ /*(Mage::getStoreConfig('onestepcheckout/general/active')
111
  || Mage::getStoreConfig('opc/global/status')
112
  || Mage::getStoreConfig('firecheckout/general/enabled')
113
  || Mage::getStoreConfig('gomage_checkout/general/enabled')
114
+ || Mage::getStoreConfig('onestepcheckout/general/rewrite_checkout_links'))*/
115
  ) {
116
  $this->_redirectUrl($urlRedirect);
117
  return;
128
  } catch (Exception $e) {
129
  Mage::getSingleton('core/session')->addError(Mage::helper('ewayrapid')->__('An error occurred while connecting to payment gateway. Please try again later.'));
130
  $this->transparentModel()->unsetSessionData();
 
131
  if (Mage::getStoreConfig('payment/ewayrapid_general/connection_type')
132
  === Eway_Rapid31_Model_Config::CONNECTION_TRANSPARENT
133
+ && Mage::getSingleton('core/session')->getCheckoutExtension()
134
+ /*(Mage::getStoreConfig('onestepcheckout/general/active')
135
  || Mage::getStoreConfig('opc/global/status')
136
  || Mage::getStoreConfig('firecheckout/general/enabled')
137
  || Mage::getStoreConfig('gomage_checkout/general/enabled')
138
+ || Mage::getStoreConfig('onestepcheckout/general/rewrite_checkout_links'))*/
139
  ) {
140
  $this->_redirectUrl(Mage::getUrl('checkout/cart/'));
141
  return;
243
  $this->transparentModel()->unsetSessionData();
244
  if (Mage::getStoreConfig('payment/ewayrapid_general/connection_type')
245
  === Eway_Rapid31_Model_Config::CONNECTION_TRANSPARENT
246
+ && Mage::getSingleton('core/session')->getCheckoutExtension()
247
+ /*(Mage::getStoreConfig('onestepcheckout/general/active')
248
  || Mage::getStoreConfig('opc/global/status')
249
  || Mage::getStoreConfig('firecheckout/general/enabled')
250
  || Mage::getStoreConfig('gomage_checkout/general/enabled')
251
+ || Mage::getStoreConfig('onestepcheckout/general/rewrite_checkout_links'))*/
252
  ) {
253
  $this->_redirectUrl(Mage::getUrl('checkout/cart/'));
254
  return;
255
  }
256
  else {
257
+ //echo Mage::getUrl('checkout/cart/');
258
+ $this->_redirectUrl(Mage::getUrl('checkout/cart/'));
259
  }
260
  return;
261
  }
337
 
338
  $this->getOnepage()->getQuote()->save();
339
  Mage::getSingleton('core/session')->unsetData('transparentCheckout');
340
+ Mage::getSingleton('core/session')->unsCheckoutExtension();
341
  return $orderId;
342
  } catch (Exception $e) {
343
  Mage::throwException($e->getMessage());
app/code/community/Eway/Rapid31/etc/config.xml CHANGED
@@ -2,7 +2,7 @@
2
  <config>
3
  <modules>
4
  <Eway_Rapid31>
5
- <version>1.0.3</version>
6
  </Eway_Rapid31>
7
  </modules>
8
  <global>
@@ -147,6 +147,14 @@
147
  </observers>
148
  </sales_order_place_after>
149
 
 
 
 
 
 
 
 
 
150
  <checkout_type_onepage_save_order_after>
151
  <observers>
152
  <checkout_type_onepage_save_order_after>
@@ -283,7 +291,7 @@
283
  <jobs>
284
  <eway_recurring_order>
285
  <schedule>
286
- <cron_expr>0 0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23 * * *</cron_expr>
287
  </schedule>
288
  <run>
289
  <model>ewayrapid/observer::cronRecurringOrder</model>
@@ -291,7 +299,7 @@
291
  </eway_recurring_order>
292
  <eway_rapid31>
293
  <schedule>
294
- <cron_expr>0 0,3,6,9,12,15,18,21 * * *</cron_expr>
295
  </schedule>
296
  <run>
297
  <model>ewayrapid/ewayCron::querySuspectFraud</model>
2
  <config>
3
  <modules>
4
  <Eway_Rapid31>
5
+ <version>1.3.0</version>
6
  </Eway_Rapid31>
7
  </modules>
8
  <global>
147
  </observers>
148
  </sales_order_place_after>
149
 
150
+ <sales_order_invoice_save_after>
151
+ <observers>
152
+ <sales_order_invoice_save_after>
153
+ <class>ewayrapid/observer</class>
154
+ <method>sales_order_invoice_save_after</method>
155
+ </sales_order_invoice_save_after>
156
+ </observers>
157
+ </sales_order_invoice_save_after>
158
  <checkout_type_onepage_save_order_after>
159
  <observers>
160
  <checkout_type_onepage_save_order_after>
291
  <jobs>
292
  <eway_recurring_order>
293
  <schedule>
294
+ <cron_expr>0 * * * *</cron_expr>
295
  </schedule>
296
  <run>
297
  <model>ewayrapid/observer::cronRecurringOrder</model>
299
  </eway_recurring_order>
300
  <eway_rapid31>
301
  <schedule>
302
+ <cron_expr>0 */3 * * *</cron_expr>
303
  </schedule>
304
  <run>
305
  <model>ewayrapid/ewayCron::querySuspectFraud</model>
app/code/community/Eway/Rapid31/etc/system.xml CHANGED
@@ -10,6 +10,15 @@
10
  <show_in_website>1</show_in_website>
11
  <show_in_store>1</show_in_store>
12
  <fields>
 
 
 
 
 
 
 
 
 
13
  <active translate="label">
14
  <label>Enable this solution</label>
15
  <frontend_type>select</frontend_type>
10
  <show_in_website>1</show_in_website>
11
  <show_in_store>1</show_in_store>
12
  <fields>
13
+ <version translate="label">
14
+ <label>eWAY extension version</label>
15
+ <frontend_type>select</frontend_type>
16
+ <frontend_model>Eway_Rapid31_Block_Admin_Version</frontend_model>
17
+ <sort_order>5</sort_order>
18
+ <show_in_default>1</show_in_default>
19
+ <show_in_website>1</show_in_website>
20
+ <show_in_store>1</show_in_store>
21
+ </version>
22
  <active translate="label">
23
  <label>Enable this solution</label>
24
  <frontend_type>select</frontend_type>
app/code/community/Eway/Rapid31/sql/ewayrapid_setup/install-0.1.0.php CHANGED
@@ -1,9 +1,6 @@
1
  <?php
2
  /**
3
- * Created by PhpStorm.
4
- * User: hiephm
5
- * Date: 4/23/14
6
- * Time: 5:30 PM
7
  */
8
  /* @var $installer Mage_Core_Model_Resource_Setup */
9
  $installer = $this;
1
  <?php
2
  /**
3
+ *
 
 
 
4
  */
5
  /* @var $installer Mage_Core_Model_Resource_Setup */
6
  $installer = $this;
app/design/frontend/base/default/template/ewayrapid/form/transparent_notsaved.phtml CHANGED
@@ -2,7 +2,7 @@
2
  $_code = $this->getMethodCode();
3
  ?>
4
  <ul class="sp-methods" id="payment_form_<?php echo $_code ?>"
5
- style="display:none; padding-left: 16px; padding-bottom: 8px; border: 1px solid rgb(193, 193, 193);">
6
 
7
  <li>
8
  <input id="p_method_ewayrapid_transparent_mastercard"
2
  $_code = $this->getMethodCode();
3
  ?>
4
  <ul class="sp-methods" id="payment_form_<?php echo $_code ?>"
5
+ style="display:none; padding-left: 16px; padding-bottom: 8px; border: 1px solid rgb(193, 193, 193); float: left; width:100%;">
6
 
7
  <li>
8
  <input id="p_method_ewayrapid_transparent_mastercard"
app/design/frontend/base/default/template/ewayrapid/js.phtml CHANGED
@@ -85,6 +85,11 @@
85
  <?php endif; ?>
86
 
87
  <?php if ($_config->isTransparentConnection() && !$_backend): ?>
 
 
 
 
 
88
  <script type="text/javascript">
89
  var creditcard = '<?php echo Eway_Rapid31_Model_Config::CREDITCARD_METHOD ?>';
90
 
@@ -112,6 +117,7 @@
112
 
113
  $('ul_payment_form_ewayrapid_notsaved') && $('ul_payment_form_ewayrapid_notsaved').setStyle({'margin-left': '-2px'});
114
  $('ul_payment_form_ewayrapid_saved') && $('ul_payment_form_ewayrapid_saved').setStyle({'margin-left': '-2px'});
 
115
  $$('#container_payment_method_ewayrapid_notsaved ul li').each(function (element) {
116
  element.writeAttribute('style', 'float: left; width: 100%');
117
  });
@@ -134,6 +140,7 @@
134
  $('ul_payment_form_ewayrapid_notsaved') && $('ul_payment_form_ewayrapid_notsaved').setStyle({'margin-left': '-2px'});
135
  $('ul_payment_form_ewayrapid_saved') && $('ul_payment_form_ewayrapid_saved').setStyle({'margin-left': '-2px'});
136
  $('payment_form_ewayrapid_saved') && $('payment_form_ewayrapid_saved').setStyle({'margin-left': '-2px'});
 
137
 
138
  $('ewayrapid_notsaved_cc_type_cvv_div') && $$('#ewayrapid_notsaved_cc_type_cvv_div div.v-fix')[0].writeAttribute('style', 'width: 35% !important');
139
  $('ewayrapid_saved_cc_type_cvv_div') && $$('#ewayrapid_saved_cc_type_cvv_div div.v-fix')[0].writeAttribute('style', 'width: 35% !important');
85
  <?php endif; ?>
86
 
87
  <?php if ($_config->isTransparentConnection() && !$_backend): ?>
88
+ <?php if($_checkoutExtension) {
89
+ Mage::getSingleton('core/session')->setCheckoutExtension($_checkoutExtension);
90
+ } else {
91
+ Mage::getSingleton('core/session')->unsCheckoutExtension();
92
+ }?>
93
  <script type="text/javascript">
94
  var creditcard = '<?php echo Eway_Rapid31_Model_Config::CREDITCARD_METHOD ?>';
95
 
117
 
118
  $('ul_payment_form_ewayrapid_notsaved') && $('ul_payment_form_ewayrapid_notsaved').setStyle({'margin-left': '-2px'});
119
  $('ul_payment_form_ewayrapid_saved') && $('ul_payment_form_ewayrapid_saved').setStyle({'margin-left': '-2px'});
120
+ $('ul-eway-saved-div-box') && $('ul-eway-saved-div-box').setStyle({'margin-left': '-2px'});
121
  $$('#container_payment_method_ewayrapid_notsaved ul li').each(function (element) {
122
  element.writeAttribute('style', 'float: left; width: 100%');
123
  });
140
  $('ul_payment_form_ewayrapid_notsaved') && $('ul_payment_form_ewayrapid_notsaved').setStyle({'margin-left': '-2px'});
141
  $('ul_payment_form_ewayrapid_saved') && $('ul_payment_form_ewayrapid_saved').setStyle({'margin-left': '-2px'});
142
  $('payment_form_ewayrapid_saved') && $('payment_form_ewayrapid_saved').setStyle({'margin-left': '-2px'});
143
+ $('ul-eway-saved-div-box') && $('ul-eway-saved-div-box').setStyle({'margin-left': '-2px'});
144
 
145
  $('ewayrapid_notsaved_cc_type_cvv_div') && $$('#ewayrapid_notsaved_cc_type_cvv_div div.v-fix')[0].writeAttribute('style', 'width: 35% !important');
146
  $('ewayrapid_saved_cc_type_cvv_div') && $$('#ewayrapid_saved_cc_type_cvv_div div.v-fix')[0].writeAttribute('style', 'width: 35% !important');
app/design/frontend/base/default/template/ewayrapid/redirect/transparent.phtml CHANGED
@@ -28,7 +28,7 @@
28
  $_code = $this->methodPayment;
29
  if (!$_code) $_code = 'ewayrapid_notsaved';
30
 
31
- $infoCard = Mage::getSingleton('core/session')->getInfoCard();;
32
  if (is_numeric($this->savedToken)) {
33
  $infoCardData = Mage::helper('ewayrapid/customer')->getTokenById($this->savedToken);
34
  if($infoCard->getOwner()) {
28
  $_code = $this->methodPayment;
29
  if (!$_code) $_code = 'ewayrapid_notsaved';
30
 
31
+ $infoCard = Mage::getSingleton('core/session')->getInfoCard();
32
  if (is_numeric($this->savedToken)) {
33
  $infoCardData = Mage::helper('ewayrapid/customer')->getTokenById($this->savedToken);
34
  if($infoCard->getOwner()) {
js/ewayrapid/eCrypt.js CHANGED
@@ -1,8 +1,8 @@
1
- // eWAY RSA Client Cryptography
2
- // Version 0.6 Alpha
3
 
4
  function eCrypt() {
5
  this.init = null;
 
 
6
  this.doEncrypt = null;
7
  }
8
 
@@ -17,21 +17,45 @@ function eCrypt() {
17
 
18
  var isAjaxCall = false;
19
 
20
- // TODO: How should we handle form not found...
21
  var form = findFormToEncrypt();
 
22
  extractPublicKey(form);
23
  addSubmitEvent(form);
 
24
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
25
  function encryptForm(event) {
 
 
 
 
 
 
 
 
 
 
 
 
26
  try {
27
- var target;
28
- // the form is not the event target in ajax call, so we use form variable found before
29
- if(form != null) {
30
- target = form;
31
- } else {
32
- event = event || window.event; // event is undefined in IE
33
- target = event.target || event.srcElement; // IE uses srcElement, everything else uses target
34
- }
35
  var rsa = new RSAKey();
36
  rsa.setPublic(PUBLIC_KEY_N, PUBLIC_KEY_E);
37
  var newForm = cloneForm(target);
@@ -53,10 +77,10 @@ function eCrypt() {
53
  form.parentNode.appendChild(newForm); //IE and FF will not submit form without it being inserted into the DOM
54
  if(isAjaxCall) {
55
  return newForm;
56
- } else {
57
- var formProxy = document.createElement('form');
58
- formProxy.submit.apply(newForm); // To guard against a form with a button named 'submit'
59
  }
 
 
 
60
  }
61
  catch (err) {
62
  // Debugging - In case console not open in IE
@@ -152,18 +176,18 @@ function eCrypt() {
152
  return encryptForm();
153
  }
154
  }
 
 
 
155
  };
156
 
157
 
158
 
159
- // Start jsbn.js
160
  var dbits;
161
 
162
- // JavaScript engine analysis
163
  var canary = 0xdeadbeefcafe;
164
  var j_lm = ((canary & 0xffffff) == 0xefcafe);
165
 
166
- // (public) Constructor
167
  function BigInteger(a, b, c) {
168
  if (a != null)
169
  if ("number" == typeof a) this.fromNumber(a, b, c);
@@ -171,17 +195,10 @@ function eCrypt() {
171
  else this.fromString(a, b);
172
  }
173
 
174
- // return new, unset BigInteger
175
  function nbi() { return new BigInteger(null); }
176
 
177
- // am: Compute w_j += (x*this_i), propagate carries,
178
- // c is initial carry, returns final carry.
179
- // c < 3*dvalue, x < 2*dvalue, this_i < dvalue
180
- // We need to select the fastest one that works in this environment.
181
 
182
- // am1: use a single mult and divide to get the high bits,
183
- // max digit bits should be 26 because
184
- // max internal value = 2*dvalue^2-2*dvalue (< 2^53)
185
  function am1(i, x, w, j, c, n) {
186
  while (--n >= 0) {
187
  var v = x * this[i++] + w[j] + c;
@@ -190,9 +207,7 @@ function eCrypt() {
190
  }
191
  return c;
192
  }
193
- // am2 avoids a big mult-and-extract completely.
194
- // Max digit bits should be <= 30 because we do bitwise ops
195
- // on values up to 2*hdvalue^2-hdvalue-1 (< 2^31)
196
  function am2(i, x, w, j, c, n) {
197
  var xl = x & 0x7fff, xh = x >> 15;
198
  while (--n >= 0) {
@@ -205,8 +220,7 @@ function eCrypt() {
205
  }
206
  return c;
207
  }
208
- // Alternately, set max digit bits to 28 since some
209
- // browsers slow down when dealing with 32-bit numbers.
210
  function am3(i, x, w, j, c, n) {
211
  var xl = x & 0x3fff, xh = x >> 14;
212
  while (--n >= 0) {
@@ -258,14 +272,14 @@ function eCrypt() {
258
  return (c == null) ? -1 : c;
259
  }
260
 
261
- // (protected) copy this to r
262
  function bnpCopyTo(r) {
263
  for (var i = this.t - 1; i >= 0; --i) r[i] = this[i];
264
  r.t = this.t;
265
  r.s = this.s;
266
  }
267
 
268
- // (protected) set from integer value x, -DV <= x < DV
269
  function bnpFromInt(x) {
270
  this.t = 1;
271
  this.s = (x < 0) ? -1 : 0;
@@ -274,7 +288,6 @@ function eCrypt() {
274
  else this.t = 0;
275
  }
276
 
277
- // return bigint initialized to value
278
  function nbv(i) { var r = nbi(); r.fromInt(i); return r; }
279
 
280
  // (protected) set from string and radix
@@ -575,15 +588,7 @@ function eCrypt() {
575
  Classic.prototype.sqrTo = cSqrTo;
576
 
577
  // (protected) return "-1/this % 2^DB"; useful for Mont. reduction
578
- // justification:
579
- // xy == 1 (mod m)
580
- // xy = 1+km
581
- // xy(2-xy) = (1+km)(1-km)
582
- // x[y(2-xy)] = 1-k^2m^2
583
- // x[y(2-xy)] == 1 (mod m^2)
584
- // if y is 1/x mod m, then y(2-xy) is 1/x mod m^2
585
- // should reduce x and y(2-xy) by m^2 at each step to keep size bounded.
586
- // JS multiply "overflows" differently from C/C++, so care is needed here.
587
  function bnpInvDigit() {
588
  if (this.t < 1) return 0;
589
  var x = this[0];
@@ -753,15 +758,10 @@ function eCrypt() {
753
  return new Arcfour();
754
  }
755
 
756
- // Pool size must be a multiple of 4 and greater than 32.
757
- // An array of bytes the size of the pool will be passed to init()
758
  var rng_psize = 256;
759
 
760
- // Random number generator - requires a PRNG backend, e.g. prng4.js
761
 
762
- // For best results, put code like
763
- // <body onClick='rng_seed_time();' onKeyPress='rng_seed_time();'>
764
- // in your main HTML document.
765
 
766
  var rng_state;
767
  var rng_pool;
@@ -820,7 +820,7 @@ function eCrypt() {
820
  rng_pptr = 0;
821
  //rng_pool = null;
822
  }
823
- // TODO: allow reseeding after first request
824
  return rng_state.next();
825
  }
826
 
@@ -834,11 +834,8 @@ function eCrypt() {
834
  SecureRandom.prototype.nextBytes = rng_get_bytes;
835
 
836
 
837
- // Depends on jsbn.js and rng.js
838
 
839
- // Version 1.1: support utf-8 encoding in pkcs1pad2
840
 
841
- // convert a (hex) string to a bignum object
842
  function parseBigInt(str, r) {
843
  return new BigInteger(str, r);
844
  }
@@ -1021,4 +1018,4 @@ function eCrypt() {
1021
  }
1022
 
1023
  eCrypt.init = eCryptInit;
1024
- })(eCrypt);
 
 
1
 
2
  function eCrypt() {
3
  this.init = null;
4
+ this.submitForm = null;
5
+ this.encryptValue = null;
6
  this.doEncrypt = null;
7
  }
8
 
17
 
18
  var isAjaxCall = false;
19
 
 
20
  var form = findFormToEncrypt();
21
+ if (form) {
22
  extractPublicKey(form);
23
  addSubmitEvent(form);
24
+ }
25
 
26
+ //API Entrypoint for JS to submit the form manually
27
+ function submitFormApi() {
28
+ var form = findFormToEncrypt();
29
+ if (form)
30
+ return submitForm(form);
31
+ else
32
+ return false;
33
+ }
34
+ function encryptValueApi(val, key) {
35
+ var keyToUse = null;
36
+ if (key) keyToUse = b64tohex(key);
37
+ if (!keyToUse) keyToUse = PUBLIC_KEY_N;
38
+ if (keyToUse) {
39
+ var rsa = new RSAKey();
40
+ rsa.setPublic(keyToUse, PUBLIC_KEY_E);
41
+ return "eCrypted:" + rsa.encrypt(val);
42
+ } else
43
+ return null;
44
+ }
45
  function encryptForm(event) {
46
+ var target;
47
+ // the form is not the event target in ajax call, so we use form variable found before
48
+ if(form != null) {
49
+ target = form;
50
+ } else {
51
+ event = event || window.event; // event is undefined in IE
52
+ target = event.target || event.srcElement; // IE uses srcElement, everything else uses target
53
+ }
54
+ return submitForm(target);
55
+ }
56
+ // Clones and submuits the form, running it's original submit handler
57
+ function submitForm(target) {
58
  try {
 
 
 
 
 
 
 
 
59
  var rsa = new RSAKey();
60
  rsa.setPublic(PUBLIC_KEY_N, PUBLIC_KEY_E);
61
  var newForm = cloneForm(target);
77
  form.parentNode.appendChild(newForm); //IE and FF will not submit form without it being inserted into the DOM
78
  if(isAjaxCall) {
79
  return newForm;
 
 
 
80
  }
81
+ var formProxy = document.createElement('form');
82
+ formProxy.submit.apply(newForm); // To guard against a form with a button named 'submit'
83
+
84
  }
85
  catch (err) {
86
  // Debugging - In case console not open in IE
176
  return encryptForm();
177
  }
178
  }
179
+ // Add Public API Entry Points into these functions
180
+ eCrypt.submitForm = submitFormApi;
181
+ eCrypt.encryptValue = encryptValueApi;
182
  };
183
 
184
 
185
 
 
186
  var dbits;
187
 
 
188
  var canary = 0xdeadbeefcafe;
189
  var j_lm = ((canary & 0xffffff) == 0xefcafe);
190
 
 
191
  function BigInteger(a, b, c) {
192
  if (a != null)
193
  if ("number" == typeof a) this.fromNumber(a, b, c);
195
  else this.fromString(a, b);
196
  }
197
 
198
+
199
  function nbi() { return new BigInteger(null); }
200
 
 
 
 
 
201
 
 
 
 
202
  function am1(i, x, w, j, c, n) {
203
  while (--n >= 0) {
204
  var v = x * this[i++] + w[j] + c;
207
  }
208
  return c;
209
  }
210
+
 
 
211
  function am2(i, x, w, j, c, n) {
212
  var xl = x & 0x7fff, xh = x >> 15;
213
  while (--n >= 0) {
220
  }
221
  return c;
222
  }
223
+
 
224
  function am3(i, x, w, j, c, n) {
225
  var xl = x & 0x3fff, xh = x >> 14;
226
  while (--n >= 0) {
272
  return (c == null) ? -1 : c;
273
  }
274
 
275
+
276
  function bnpCopyTo(r) {
277
  for (var i = this.t - 1; i >= 0; --i) r[i] = this[i];
278
  r.t = this.t;
279
  r.s = this.s;
280
  }
281
 
282
+
283
  function bnpFromInt(x) {
284
  this.t = 1;
285
  this.s = (x < 0) ? -1 : 0;
288
  else this.t = 0;
289
  }
290
 
 
291
  function nbv(i) { var r = nbi(); r.fromInt(i); return r; }
292
 
293
  // (protected) set from string and radix
588
  Classic.prototype.sqrTo = cSqrTo;
589
 
590
  // (protected) return "-1/this % 2^DB"; useful for Mont. reduction
591
+
 
 
 
 
 
 
 
 
592
  function bnpInvDigit() {
593
  if (this.t < 1) return 0;
594
  var x = this[0];
758
  return new Arcfour();
759
  }
760
 
761
+
 
762
  var rng_psize = 256;
763
 
 
764
 
 
 
 
765
 
766
  var rng_state;
767
  var rng_pool;
820
  rng_pptr = 0;
821
  //rng_pool = null;
822
  }
823
+
824
  return rng_state.next();
825
  }
826
 
834
  SecureRandom.prototype.nextBytes = rng_get_bytes;
835
 
836
 
 
837
 
 
838
 
 
839
  function parseBigInt(str, r) {
840
  return new BigInteger(str, r);
841
  }
1018
  }
1019
 
1020
  eCrypt.init = eCryptInit;
1021
+ })(eCrypt);
js/ewayrapid/ewayrapid.js CHANGED
@@ -119,7 +119,7 @@ EwayPayment.prototype = {
119
  this.prototype.ewaysavedOldOrder();
120
  }
121
  },
122
- subMitForm: function () {alert(12121212);
123
  form = eCrypt.doEncrypt();
124
  form.submit();
125
  },
@@ -159,6 +159,9 @@ EwayPayment.prototype = {
159
  var elements = form.select('input').concat(form.select('select')).concat(form.select('textarea'));
160
  for (var i=0; i<elements.length; i++) elements[i].disabled = false;
161
  this.currentMethod = method;
 
 
 
162
  }
163
  }
164
  },
119
  this.prototype.ewaysavedOldOrder();
120
  }
121
  },
122
+ subMitForm: function () {
123
  form = eCrypt.doEncrypt();
124
  form.submit();
125
  },
159
  var elements = form.select('input').concat(form.select('select')).concat(form.select('textarea'));
160
  for (var i=0; i<elements.length; i++) elements[i].disabled = false;
161
  this.currentMethod = method;
162
+ if ($('ul_payment_form_'+method)) {
163
+ $('ul_payment_form_'+method).show();
164
+ }
165
  }
166
  }
167
  },
package.xml CHANGED
@@ -1,7 +1,7 @@
1
  <?xml version="1.0"?>
2
  <package>
3
  <name>eWAY_Payment_Rapid31</name>
4
- <version>1.2.0</version>
5
  <stability>stable</stability>
6
  <license>OSL v3.0</license>
7
  <channel>community</channel>
@@ -22,18 +22,15 @@
22
  Discover more at http://www.eway.com.au - payments made smarter!</description>
23
  <notes>Fixes and updates:&#xD;
24
  &#xD;
25
- - Fixed virtual products causing errors in checkout&#xD;
26
- - Fixed customer comments sometimes not being added to orders&#xD;
27
- - Transparent Redirect now works with the Fire Checkout one page checkout extension&#xD;
28
- - Transparent Redirect now works with the IWD One Page Checkout extension&#xD;
29
- - Added support for MageStore One Step Checkout&#xD;
30
- - Added support for GoMage LightCheckout&#xD;
31
- - Added payment details to the invoice print format&#xD;
32
- </notes>
33
  <authors><author><name>eWAY Payments</name><user>eWAYPayments</user><email>partner@eway.com.au</email></author></authors>
34
- <date>2015-01-09</date>
35
- <time>00:20:35</time>
36
- <contents><target name="magecommunity"><dir name="Eway"><dir name="Rapid31"><dir name="Block"><dir name="Customer"><file name="Edit.php" hash="d7b1373e21796578ff7b6be9d0bf051d"/><file name="Mycards.php" hash="34df399b9c3e8a2752cf2989b188ae80"/></dir><dir name="Form"><dir name="Direct"><file name="Notsaved.php" hash="82a649f61fb2c4cc1d02a492aed401a2"/><file name="Saved.php" hash="1ce47a1e6edb31dda3388a9d0966f80d"/></dir><dir name="Sharedpage"><file name="Notsaved.php" hash="adde0646618931ee2f61eb107fa5bdd6"/><file name="Saved.php" hash="8de32b94291d6ce778adff5e5cb8bd0c"/></dir><dir name="Transparent"><file name="Notsaved.php" hash="c53c26ce01caaa88f7b66f5e4193cb46"/><file name="Saved.php" hash="46e0fc182e8f51fc84733c75e147038c"/></dir></dir><dir name="Info"><dir name="Direct"><file name="Notsaved.php" hash="76857a644cafc5b880a8a6930e9c8246"/><file name="Saved.php" hash="a9b1a08db461a9875cb67c24ec0d341d"/></dir><dir name="Sharedpage"><file name="Notsaved.php" hash="64fbfb7ad75b2eaec7cc55ca0189d4dc"/><file name="Saved.php" hash="6122e7f28b5086e5944e825dc50fd191"/></dir><dir name="Transparent"><file name="Notsaved.php" hash="743f4227532db7a4bcc706260b552e99"/><file name="Saved.php" hash="31de55ee9e7a015662b112d3c77bcd99"/></dir></dir><dir name="Redirect"><file name="PaypalReview.php" hash="bdfff05cf75ce9739a5022ce9fd553ed"/><file name="Transparent.php" hash="d0f589b3e1d19ec02fbea141ff0aaa2e"/><file name="TransparentCheckout.php" hash="458b1b10da66953fe38a82af8832f136"/></dir><dir name="Sales"><dir name="Order"><file name="Grid.php" hash="aa7b83ca6d666a9fe34a1d762bd10eae"/></dir></dir></dir><dir name="Helper"><file name="Customer.php" hash="c056f18f4dd474e94a10d066a56f6bf3"/><file name="Data.php" hash="aa7918f91c120e76dcab166581d64e69"/></dir><dir name="Model"><dir name="Backend"><file name="Savedtokens.php" hash="55c209484a4ee56caadcde3633cb68dc"/></dir><file name="Config.php" hash="070d408e0e6f7b2c654c70d73b63714a"/><dir name="Customer"><file name="Savedtokens.php" hash="fec7133470f1c26cb284c12fd56e7991"/><file name="Token.php" hash="698166a7b2f9906a08842d15f01dc86c"/></dir><file name="EwayCron.php" hash="ea9d865930b880f77e11e3e8d1567bcc"/><dir name="Field"><file name="CardDetails.php" hash="15d10ff8dec0590335b5c576df00554b"/><file name="Customer.php" hash="a5c32b1f06070ec3fe419ff9bc1a298a"/><file name="LineItem.php" hash="0ba66e9b1ecd1acb95c91d6192f9a8df"/><file name="Payment.php" hash="5226334c0d5fe39f27466b6113e8c091"/><file name="ShippingAddress.php" hash="3e46233fa343875dd061a158b3363c32"/></dir><file name="JsonSerializable.php" hash="630af4fb2b90d9e7808615bcca2b968a"/><file name="JsonSerializableAbstract.php" hash="15f72821079c02efe2f31ce52be22193"/><dir name="Method"><file name="Notsaved.php" hash="43b2012fd545997f8124d4cc3664a4a3"/><file name="Saved.php" hash="8b0772ea5731ec3c21b6e23968d59c85"/></dir><file name="Observer.php" hash="ba6b24c6061cae8700731413cd99b7f1"/><file name="RecurringProfile.php" hash="66bf152dadaa09aeeb875fb92e66b543"/><dir name="Request"><file name="Abstract.php" hash="2b338f1123ee11b0612a50d16cd8e07e"/><file name="Direct.php" hash="45a4c73434fd29de97ce4211d324edb0"/><file name="Sharedpage.php" hash="ca588f17077ae30827a258906b5ec0b2"/><file name="Token.php" hash="3cf175946d39213ca7c27520a1467909"/><file name="Transparent.php" hash="44b57650b86ed175b7a6cdf8617ed20d"/></dir><file name="Response.php" hash="94346cfea6521bb45d8424dd1d54f750"/><dir name="System"><dir name="Config"><dir name="Backend"><file name="Orderstatus.php" hash="26a90ac9556ba210a73685a2b6edc5cd"/><file name="Validation.php" hash="39a895e6083f47872425e1616e75bee5"/></dir><dir name="Source"><file name="Cctype.php" hash="1b31bfaae980669c5ac0ba7e644ea515"/><file name="ConnectionType.php" hash="9060bb5013246eaf08c8ebf215b70a7d"/><file name="Mode.php" hash="a3f1dffc58540b31c5ab43a32452cce5"/><file name="Orderstatus.php" hash="75524debbd930498e278abd74c635fb9"/><file name="PaymentAction.php" hash="eaca860975abf97aa3ca49ba5f57d21b"/><file name="VerifyStatus.php" hash="28ff5c7c66c6b70c3923379ce3b82671"/></dir></dir></dir></dir><dir name="Test"><dir name="Model"><file name="Abstract.php" hash="5683575f264336a8c5f4c71768883b73"/><file name="Config.php" hash="98cc66555893a2a29a2ac093795dde17"/><file name="CustomerToken.php" hash="ed2f390b4579a33da70835356a718a79"/><file name="JsonSerializable.php" hash="d0735fda26a7461885c3cf8a5afcca2a"/><dir name="Request"><dir name="fixtures"><file name="default.yaml" hash="51c7dc1c509fcd1e4cf8dc0c49c9126a"/></dir></dir><file name="Request.php" hash="e19218a48cfd0fe5c8abaa0a99d5da08"/><file name="Response.php" hash="fd7b02d0e0f7a4a50862b6649d9faf41"/><dir name="TokenRequest"><dir name="fixtures"><file name="default.yaml" hash="51c7dc1c509fcd1e4cf8dc0c49c9126a"/></dir></dir><file name="TokenRequest.php" hash="965cc4efc952fd9d612d0a6dc924e43e"/></dir></dir><dir name="controllers"><dir name="Adminhtml"><file name="IndexController.php" hash="58cfc001c2e14938e5232cae17ae9cf0"/></dir><file name="MycardsController.php" hash="6f91776f56decab5beedda246c54437f"/><file name="SharedpageController.php" hash="7849327dbe3e459a9c1d0a3de3eafd2f"/><file name="TestController.php" hash="68c0eed4d6142f00e6d67c719cd08abc"/><file name="TransparentController.php" hash="680a4cb25f9388e25e2e58122057a229"/></dir><dir name="etc"><file name="config.xml" hash="f97a0d466bc0d900b96cab9615f75ad1"/><file name="system.xml" hash="2f1d7c65d3d0678b395d61c799693ec0"/></dir><dir name="sql"><dir name="ewayrapid_setup"><file name="install-0.1.0.php" hash="238872bb63449ea347177d594e63af59"/><file name="upgrade-0.1.0-1.0.0.php" hash="5183123b924cd233ee739c710da05bc2"/><file name="upgrade-1.0.0-1.0.1.php" hash="78aa6c5bf4704f65b0ced6d007539d0c"/><file name="upgrade-1.0.1-1.0.3.php" hash="9b7d1892e813b70bf82a79cd9a16ed29"/></dir></dir></dir></dir></target><target name="magedesign"><dir name="adminhtml"><dir name="default"><dir name="default"><dir name="layout"><dir name="ewayrapid"><file name="layout.xml" hash="b5ce2f60041814eb192c75deec216647"/></dir></dir><dir name="template"><dir name="ewayrapid"><dir name="form"><file name="direct_notsaved.phtml" hash="5a3aac5acc635e03083773b706330b4f"/><file name="direct_saved.phtml" hash="8c7516529ace83e8d177a5fc9a8e9cd9"/></dir><dir name="info"><file name="direct_notsaved.phtml" hash="7378da27e6fc9432317686c5b05c52e3"/><file name="direct_saved.phtml" hash="fe943996b2eff65e72f594d34a2ddc89"/></dir><dir name="pdf"><file name="direct_notsaved.phtml" hash="bf22201062b76225e130323584646238"/></dir></dir></dir></dir></dir></dir><dir name="frontend"><dir name="base"><dir name="default"><dir name="layout"><dir name="ewayrapid"><file name="layout.xml" hash="b95b4baa764c5cb65c4c9ec91065ce17"/></dir></dir><dir name="template"><dir name="ewayrapid"><dir name="customer"><file name="edit.phtml" hash="b34376162df56abcdbbe81fdd78e75d7"/><file name="mycards.phtml" hash="edef4b70420c7225e9ee0e8098a686e0"/></dir><dir name="form"><file name="direct_notsaved.phtml" hash="c1bbc7f299e8ba2166256146f568320b"/><file name="direct_saved.phtml" hash="989b05758da7db9f51875e5e29145053"/><file name="sharedpage_notsaved.phtml" hash="84bcdff59da4888fde3d68b0e0044854"/><file name="sharedpage_saved.phtml" hash="08963dc603cef32fba9fb48d01536f5f"/><file name="transparent_notsaved.phtml" hash="54eb28a1ccc234a03a0a7ffd4199e1f8"/><file name="transparent_saved.phtml" hash="db8446efcca8fdef0fc65ecbaa1679e1"/></dir><dir name="info"><file name="direct_notsaved.phtml" hash="e3e6de0f60921687690a5c6225ddf8b6"/><file name="direct_saved.phtml" hash="e3e6de0f60921687690a5c6225ddf8b6"/><file name="sharedpage_notsaved.phtml" hash="e3e6de0f60921687690a5c6225ddf8b6"/><file name="sharedpage_saved.phtml" hash="b14f24a69d19129b34e5369dc075298d"/><file name="transparent_notsaved.phtml" hash="3b7c42bfbf960a89ebb5988c8c3f0e2d"/></dir><file name="js.phtml" hash="1145fe2a6d6326bbd2016990a28a89ec"/><dir name="redirect"><file name="review.phtml" hash="8f64dfebe347f45cc9cfa6be3554d7e7"/><file name="transparent.phtml" hash="cbebd7e80098232886a8b854b8c6bde5"/><file name="transparent_checkout.phtml" hash="20ae7dc582a9c430c84b381c9be8148d"/></dir></dir></dir></dir></dir></dir></target><target name="mageetc"><dir name="modules"><file name="Eway_Rapid31.xml" hash="2c1fefb7319ecbd86d3904afd35ac4c7"/></dir></target><target name="magelocale"><dir name="en_US"><file name="Eway_Rapid31.csv" hash="4cecdb8c8152a113467fb2ca48b5062f"/></dir></target><target name="mageskin"><dir name="adminhtml"><dir name="default"><dir name="default"><file name="ewayrapid.css" hash="d41d8cd98f00b204e9800998ecf8427e"/></dir></dir></dir><dir name="frontend"><dir name="base"><dir name="default"><dir name="css"><file name="ewayrapid.css" hash="aa2534816e01321db409a4c833ba56d0"/></dir></dir></dir></dir></target><target name="mageweb"><dir name="js"><dir name="ewayrapid"><file name="eCrypt.js" hash="bbd9ff93a03209520659bd354080c20e"/><file name="ewayrapid.js" hash="fba1e683db7461a1ab772ad8c7f53642"/></dir></dir></target></contents>
37
  <compatible/>
38
  <dependencies><required><php><min>5.2.0</min><max>6.0.0</max></php><extension><name>curl</name><min/><max/></extension></required></dependencies>
39
  </package>
1
  <?xml version="1.0"?>
2
  <package>
3
  <name>eWAY_Payment_Rapid31</name>
4
+ <version>1.3.0</version>
5
  <stability>stable</stability>
6
  <license>OSL v3.0</license>
7
  <channel>community</channel>
22
  Discover more at http://www.eway.com.au - payments made smarter!</description>
23
  <notes>Fixes and updates:&#xD;
24
  &#xD;
25
+ - Fix for using Transparent Redirect with OneStepCheckout.com&#xD;
26
+ - Fix for not sending invoice emails&#xD;
27
+ - Minor fix for recurring orders &#xD;
28
+ - Fix for new fraud codes not processing correctly&#xD;
29
+ - Improved transaction failure handling</notes>
 
 
 
30
  <authors><author><name>eWAY Payments</name><user>eWAYPayments</user><email>partner@eway.com.au</email></author></authors>
31
+ <date>2015-04-08</date>
32
+ <time>03:51:26</time>
33
+ <contents><target name="magecommunity"><dir name="Eway"><dir name="Rapid31"><dir name="Block"><dir name="Admin"><file name="Version.php" hash="7b5b41f31c14413c87e4e16cefab5748"/></dir><dir name="Customer"><file name="Edit.php" hash="d7b1373e21796578ff7b6be9d0bf051d"/><file name="Mycards.php" hash="34df399b9c3e8a2752cf2989b188ae80"/></dir><dir name="Form"><dir name="Direct"><file name="Notsaved.php" hash="82a649f61fb2c4cc1d02a492aed401a2"/><file name="Saved.php" hash="1ce47a1e6edb31dda3388a9d0966f80d"/></dir><dir name="Sharedpage"><file name="Notsaved.php" hash="8b8dc22e210f8d812c879cd0f0b85a03"/><file name="Saved.php" hash="af30582c5260c6edef41ac13daad6da0"/></dir><dir name="Transparent"><file name="Notsaved.php" hash="be64d2e56a205f2e2005770b92d294dd"/><file name="Saved.php" hash="4489ebedf0fd6a7c22311e6d01ca6a47"/></dir></dir><dir name="Info"><dir name="Direct"><file name="Notsaved.php" hash="76857a644cafc5b880a8a6930e9c8246"/><file name="Saved.php" hash="a9b1a08db461a9875cb67c24ec0d341d"/></dir><dir name="Sharedpage"><file name="Notsaved.php" hash="64fbfb7ad75b2eaec7cc55ca0189d4dc"/><file name="Saved.php" hash="6122e7f28b5086e5944e825dc50fd191"/></dir><dir name="Transparent"><file name="Notsaved.php" hash="743f4227532db7a4bcc706260b552e99"/><file name="Saved.php" hash="31de55ee9e7a015662b112d3c77bcd99"/></dir></dir><dir name="Redirect"><file name="PaypalReview.php" hash="bdfff05cf75ce9739a5022ce9fd553ed"/><file name="Transparent.php" hash="d0f589b3e1d19ec02fbea141ff0aaa2e"/><file name="TransparentCheckout.php" hash="458b1b10da66953fe38a82af8832f136"/></dir><dir name="Sales"><dir name="Order"><file name="Grid.php" hash="aa7b83ca6d666a9fe34a1d762bd10eae"/></dir></dir></dir><dir name="Helper"><file name="Customer.php" hash="c056f18f4dd474e94a10d066a56f6bf3"/><file name="Data.php" hash="17145883a7fe7434271e625ea53952a1"/></dir><dir name="Model"><dir name="Backend"><file name="Savedtokens.php" hash="55c209484a4ee56caadcde3633cb68dc"/></dir><file name="Config.php" hash="070d408e0e6f7b2c654c70d73b63714a"/><dir name="Customer"><file name="Savedtokens.php" hash="fec7133470f1c26cb284c12fd56e7991"/><file name="Token.php" hash="698166a7b2f9906a08842d15f01dc86c"/></dir><file name="EwayCron.php" hash="ea9d865930b880f77e11e3e8d1567bcc"/><dir name="Field"><file name="CardDetails.php" hash="15d10ff8dec0590335b5c576df00554b"/><file name="Customer.php" hash="a5c32b1f06070ec3fe419ff9bc1a298a"/><file name="LineItem.php" hash="0ba66e9b1ecd1acb95c91d6192f9a8df"/><file name="Payment.php" hash="5226334c0d5fe39f27466b6113e8c091"/><file name="ShippingAddress.php" hash="3e46233fa343875dd061a158b3363c32"/></dir><file name="JsonSerializable.php" hash="630af4fb2b90d9e7808615bcca2b968a"/><file name="JsonSerializableAbstract.php" hash="15f72821079c02efe2f31ce52be22193"/><dir name="Method"><file name="Notsaved.php" hash="f23183119533925cae5eb79e73a3fdfe"/><file name="Saved.php" hash="8b0772ea5731ec3c21b6e23968d59c85"/></dir><file name="Observer.php" hash="fa01d269218f6ee5e77d608829d3a357"/><file name="RecurringProfile.php" hash="66bf152dadaa09aeeb875fb92e66b543"/><dir name="Request"><file name="Abstract.php" hash="90ae6a7b39ca934749a32a75a5402f3f"/><file name="Direct.php" hash="8a5584acf0c717bb56eec30b8d6a5421"/><file name="Sharedpage.php" hash="aea0b6dcfd888410d2e32a6c244bd7be"/><file name="Token.php" hash="73a5f6273fc80887ccda4fca11b765a8"/><file name="Transparent.php" hash="188996608883bc28356cbb1e5aa3997e"/></dir><file name="Response.php" hash="03977513b56c2698d44ac578756f9c8e"/><dir name="System"><dir name="Config"><dir name="Backend"><file name="Orderstatus.php" hash="26a90ac9556ba210a73685a2b6edc5cd"/><file name="Validation.php" hash="39a895e6083f47872425e1616e75bee5"/></dir><dir name="Source"><file name="Cctype.php" hash="1b31bfaae980669c5ac0ba7e644ea515"/><file name="ConnectionType.php" hash="9060bb5013246eaf08c8ebf215b70a7d"/><file name="Mode.php" hash="a3f1dffc58540b31c5ab43a32452cce5"/><file name="Orderstatus.php" hash="75524debbd930498e278abd74c635fb9"/><file name="PaymentAction.php" hash="eaca860975abf97aa3ca49ba5f57d21b"/><file name="VerifyStatus.php" hash="28ff5c7c66c6b70c3923379ce3b82671"/></dir></dir></dir></dir><dir name="Test"><dir name="Model"><file name="Abstract.php" hash="5683575f264336a8c5f4c71768883b73"/><file name="Config.php" hash="98cc66555893a2a29a2ac093795dde17"/><file name="CustomerToken.php" hash="ed2f390b4579a33da70835356a718a79"/><file name="JsonSerializable.php" hash="d0735fda26a7461885c3cf8a5afcca2a"/><dir name="Request"><dir name="fixtures"><file name="default.yaml" hash="51c7dc1c509fcd1e4cf8dc0c49c9126a"/></dir></dir><file name="Request.php" hash="e19218a48cfd0fe5c8abaa0a99d5da08"/><file name="Response.php" hash="fd7b02d0e0f7a4a50862b6649d9faf41"/><dir name="TokenRequest"><dir name="fixtures"><file name="default.yaml" hash="51c7dc1c509fcd1e4cf8dc0c49c9126a"/></dir></dir><file name="TokenRequest.php" hash="965cc4efc952fd9d612d0a6dc924e43e"/></dir></dir><dir name="controllers"><dir name="Adminhtml"><file name="IndexController.php" hash="58cfc001c2e14938e5232cae17ae9cf0"/></dir><file name="MycardsController.php" hash="6f91776f56decab5beedda246c54437f"/><file name="SharedpageController.php" hash="69629e3f89512f2b8c70a5aa2dcfb04d"/><file name="TestController.php" hash="68c0eed4d6142f00e6d67c719cd08abc"/><file name="TransparentController.php" hash="38c5a81509ab91153784bde0be27dc22"/></dir><dir name="etc"><file name="config.xml" hash="378faf81bf9d6b85ba9dc0dc84f2b455"/><file name="system.xml" hash="4d968adda6fbdba3460814c7cc47d1d7"/></dir><dir name="sql"><dir name="ewayrapid_setup"><file name="install-0.1.0.php" hash="ca019c7e662566d1e4e8c5e844f85247"/><file name="upgrade-0.1.0-1.0.0.php" hash="5183123b924cd233ee739c710da05bc2"/><file name="upgrade-1.0.0-1.0.1.php" hash="78aa6c5bf4704f65b0ced6d007539d0c"/><file name="upgrade-1.0.1-1.0.3.php" hash="9b7d1892e813b70bf82a79cd9a16ed29"/></dir></dir></dir></dir></target><target name="magedesign"><dir name="adminhtml"><dir name="default"><dir name="default"><dir name="layout"><dir name="ewayrapid"><file name="layout.xml" hash="b5ce2f60041814eb192c75deec216647"/></dir></dir><dir name="template"><dir name="ewayrapid"><dir name="form"><file name="direct_notsaved.phtml" hash="5a3aac5acc635e03083773b706330b4f"/><file name="direct_saved.phtml" hash="8c7516529ace83e8d177a5fc9a8e9cd9"/></dir><dir name="info"><file name="direct_notsaved.phtml" hash="7378da27e6fc9432317686c5b05c52e3"/><file name="direct_saved.phtml" hash="fe943996b2eff65e72f594d34a2ddc89"/></dir><dir name="pdf"><file name="direct_notsaved.phtml" hash="bf22201062b76225e130323584646238"/></dir></dir></dir></dir></dir></dir><dir name="frontend"><dir name="base"><dir name="default"><dir name="layout"><dir name="ewayrapid"><file name="layout.xml" hash="b95b4baa764c5cb65c4c9ec91065ce17"/></dir></dir><dir name="template"><dir name="ewayrapid"><dir name="customer"><file name="edit.phtml" hash="b34376162df56abcdbbe81fdd78e75d7"/><file name="mycards.phtml" hash="edef4b70420c7225e9ee0e8098a686e0"/></dir><dir name="form"><file name="direct_notsaved.phtml" hash="c1bbc7f299e8ba2166256146f568320b"/><file name="direct_saved.phtml" hash="989b05758da7db9f51875e5e29145053"/><file name="sharedpage_notsaved.phtml" hash="84bcdff59da4888fde3d68b0e0044854"/><file name="sharedpage_saved.phtml" hash="08963dc603cef32fba9fb48d01536f5f"/><file name="transparent_notsaved.phtml" hash="8d5263c29c5d799f5f6aa10990a85fdc"/><file name="transparent_saved.phtml" hash="db8446efcca8fdef0fc65ecbaa1679e1"/></dir><dir name="info"><file name="direct_notsaved.phtml" hash="e3e6de0f60921687690a5c6225ddf8b6"/><file name="direct_saved.phtml" hash="e3e6de0f60921687690a5c6225ddf8b6"/><file name="sharedpage_notsaved.phtml" hash="e3e6de0f60921687690a5c6225ddf8b6"/><file name="sharedpage_saved.phtml" hash="b14f24a69d19129b34e5369dc075298d"/><file name="transparent_notsaved.phtml" hash="3b7c42bfbf960a89ebb5988c8c3f0e2d"/></dir><file name="js.phtml" hash="c9284649181f10838b982e956e506fc0"/><dir name="redirect"><file name="review.phtml" hash="8f64dfebe347f45cc9cfa6be3554d7e7"/><file name="transparent.phtml" hash="23813476dc656d857efe6f2b50b5e710"/><file name="transparent_checkout.phtml" hash="20ae7dc582a9c430c84b381c9be8148d"/></dir></dir></dir></dir></dir></dir></target><target name="mageetc"><dir name="modules"><file name="Eway_Rapid31.xml" hash="2c1fefb7319ecbd86d3904afd35ac4c7"/></dir></target><target name="magelocale"><dir name="en_US"><file name="Eway_Rapid31.csv" hash="4cecdb8c8152a113467fb2ca48b5062f"/></dir></target><target name="mageskin"><dir name="adminhtml"><dir name="default"><dir name="default"><file name="ewayrapid.css" hash="d41d8cd98f00b204e9800998ecf8427e"/></dir></dir></dir><dir name="frontend"><dir name="base"><dir name="default"><dir name="css"><file name="ewayrapid.css" hash="b8dda3f195eb10b86f1ebd5d349ac0db"/></dir></dir></dir></dir></target><target name="mageweb"><dir name="js"><dir name="ewayrapid"><file name="eCrypt.js" hash="b79ff8bbb306e667872ae5862f82058c"/><file name="ewayrapid.js" hash="70de77639398b4745594de1933115752"/></dir></dir></target></contents>
34
  <compatible/>
35
  <dependencies><required><php><min>5.2.0</min><max>6.0.0</max></php><extension><name>curl</name><min/><max/></extension></required></dependencies>
36
  </package>
skin/frontend/base/default/css/ewayrapid.css CHANGED
@@ -58,4 +58,5 @@
58
  #one-step-checkout-form #onestepcheckout-payment-methods #ul-eway-saved-div-box #ewayrapid_saved_token { width: 48% !important;margin-left: 5px !important;margin-right: 5px !important;float: left; }
59
  #container_payment_method_ewayrapid_saved label,
60
  #container_payment_method_ewayrapid_notsaved label{ text-align: left; }
61
- .eway-saved-label-box { width: auto !important; }
 
58
  #one-step-checkout-form #onestepcheckout-payment-methods #ul-eway-saved-div-box #ewayrapid_saved_token { width: 48% !important;margin-left: 5px !important;margin-right: 5px !important;float: left; }
59
  #container_payment_method_ewayrapid_saved label,
60
  #container_payment_method_ewayrapid_notsaved label{ text-align: left; }
61
+ .eway-saved-label-box { width: auto !important; }
62
+ #ul-eway-saved-div-box { display: block !important; }