Pagantis_Pagantis - Version 3.2.3

Version Notes

Solved bug that avoids cancelling an order after being paid

Download this release

Release Info

Developer Albert Fatsini
Extension Pagantis_Pagantis
Version 3.2.3
Comparing to
See all releases


Code changes from version 3.2.2 to 3.2.3

app/code/community/Pagantis/Pagantis/Model/Webservice/Requestloan.php CHANGED
@@ -493,7 +493,8 @@ class Pagantis_Pagantis_Model_Webservice_Requestloan
493
  */
494
  public function setUrlCancelled($urlKo = '')
495
  {
496
- $urlCancel = Mage::helper('checkout/url')->getCheckoutUrl();
 
497
  $have_params = strpos($urlCancel,'?');
498
  if ($have_params !== false){
499
  $urlCancel = substr($urlCancel,0,$have_params);
493
  */
494
  public function setUrlCancelled($urlKo = '')
495
  {
496
+ #$urlCancel = Mage::helper('checkout/url')->getCheckoutUrl();
497
+ $urlCancel = $this->getUrl('cancel');
498
  $have_params = strpos($urlCancel,'?');
499
  if ($have_params !== false){
500
  $urlCancel = substr($urlCancel,0,$have_params);
app/code/community/Pagantis/Pagantis/controllers/PagantisController.php CHANGED
@@ -16,33 +16,29 @@ class Pagantis_Pagantis_PagantisController extends Mage_Core_Controller_Front_Ac
16
  */
17
  public function redirectAction()
18
  {
19
- $state = Mage_Sales_Model_Order::STATE_PENDING_PAYMENT;
20
  $session = Mage::getSingleton('checkout/session');
21
  $order = Mage::getModel('sales/order')->load($session->getLastOrderId());
22
- $order->setState($state, $state, Mage::helper('pagantis_pagantis')->__('Redirected to Pagantis'), false);
23
- $order->setPagantisTransaction('pmt_pending_order');
24
- $order->save();
25
-
26
- //$session->getQuote()->setIsActive(false)->save();
27
- //$session->clear();
28
-
29
- $cart = Mage::getSingleton('checkout/cart');
30
- $items = $order->getItemsCollection();
31
- if ($cart->getItemsCount()<=0){
32
- foreach ($items as $item) {
33
- try {
34
- $cart->addOrderItem($item);
35
- } catch (Mage_Core_Exception $e) {
36
- $session->addError($this->__($e->getMessage()));
37
- Mage::logException($e);
38
- continue;
39
- }
40
- }
41
- $cart->save();
42
- }
43
-
44
- $this->loadLayout();
45
- $this->renderLayout();
46
  }
47
 
48
  /**
@@ -52,16 +48,25 @@ class Pagantis_Pagantis_PagantisController extends Mage_Core_Controller_Front_Ac
52
  public function cancelAction()
53
  {
54
  $session = Mage::getSingleton('checkout/session');
55
- //Mage::getSingleton(‘core/session’)->addError(‘Error message’);
56
- $session->addError('Lo sentimos, se ha producido algún error en el pago, le agradeceríamos que volviera a intentarlo.');
57
- if ($session->getLastRealOrderId()) {
58
- $order = Mage::getModel('sales/order')->loadByIncrementId($session->getLastRealOrderId());
59
- if ($order->getId()) {
 
 
 
 
 
 
60
  $order->cancel()->save();
 
61
  }
62
- Mage::helper('pagantis_pagantis')->restoreQuote();
 
 
 
63
  }
64
- $this->_redirect('checkout/cart');
65
  }
66
 
67
  public function notificationAction(){
@@ -101,7 +106,8 @@ class Pagantis_Pagantis_PagantisController extends Mage_Core_Controller_Front_Ac
101
  $this->_processOrder($order);
102
  break;
103
  case 'charge.failed':
104
- if ( $order->getState != Mage_Sales_Model_Order::STATE_PROCESSING ) {
 
105
  $order->setPagantisTransaction($data['id']);
106
  $order->setState(Mage_Sales_Model_Order::STATE_CANCELED,true);
107
  $order->save();
@@ -224,4 +230,20 @@ class Pagantis_Pagantis_PagantisController extends Mage_Core_Controller_Front_Ac
224
  return $invoice;
225
  }
226
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
227
  }
16
  */
17
  public function redirectAction()
18
  {
 
19
  $session = Mage::getSingleton('checkout/session');
20
  $order = Mage::getModel('sales/order')->load($session->getLastOrderId());
21
+ //we came back from previous order
22
+ if ($order->getState() == Mage_Sales_Model_Order::STATE_PENDING_PAYMENT
23
+ && $order->getPagantisTransaction() == 'pmt_pending_order') {
24
+ $this->_restore_cart($order);
25
+ $this->loadLayout();
26
+ $this->renderLayout();
27
+ }
28
+ // if order is not paid yet, redirect to payment page
29
+ else if($order->getState() != Mage_Sales_Model_Order::STATE_COMPLETE &&
30
+ $order->getState() !=Mage_Sales_Model_Order::STATE_PROCESSING) {
31
+ $state = Mage_Sales_Model_Order::STATE_PENDING_PAYMENT;
32
+ $order->setState($state, $state, Mage::helper('pagantis_pagantis')->__('Redirected to Pagantis'), false);
33
+ $order->setPagantisTransaction('pmt_pending_order');
34
+ $order->save();
35
+ $this->_restore_cart($order);
36
+ $this->loadLayout();
37
+ $this->renderLayout();
38
+ } else {
39
+ //order is paid
40
+ $this->successAction();
41
+ }
 
 
 
42
  }
43
 
44
  /**
48
  public function cancelAction()
49
  {
50
  $session = Mage::getSingleton('checkout/session');
51
+ $order = Mage::getModel('sales/order')->loadByIncrementId($session->getLastRealOrderId());
52
+ if ( !$order->getId()) {
53
+ $session->addError('Lo sentimos, se ha producido algún error en el pago, le agradeceríamos que volviera a intentarlo.');
54
+ Mage::helper('pagantis_pagantis')->restoreQuote();
55
+ $this->_redirect('checkout/cart');
56
+ } elseif ($order->getId() &&
57
+ $order->getState() != Mage_Sales_Model_Order::STATE_COMPLETE &&
58
+ $order->getState() !=Mage_Sales_Model_Order::STATE_PROCESSING) {
59
+ //Mage::getSingleton(‘core/session’)->addError(‘Error message’);
60
+ $session->addError('Lo sentimos, se ha producido algún error en el pago, le agradeceríamos que volviera a intentarlo.');
61
+ if ($session->getLastRealOrderId()) {
62
  $order->cancel()->save();
63
+ Mage::helper('pagantis_pagantis')->restoreQuote();
64
  }
65
+ $this->_redirect('checkout/cart');
66
+ } else {
67
+ //order is paid
68
+ $this->successAction();
69
  }
 
70
  }
71
 
72
  public function notificationAction(){
106
  $this->_processOrder($order);
107
  break;
108
  case 'charge.failed':
109
+ if ( $order->getState != Mage_Sales_Model_Order::STATE_PROCESSING &&
110
+ $order->getState != Mage_Sales_Model_Order::STATE_COMPLETE) {
111
  $order->setPagantisTransaction($data['id']);
112
  $order->setState(Mage_Sales_Model_Order::STATE_CANCELED,true);
113
  $order->save();
230
  return $invoice;
231
  }
232
 
233
+ private function _restore_cart($order) {
234
+ $cart = Mage::getSingleton('checkout/cart');
235
+ $items = $order->getItemsCollection();
236
+ if ($cart->getItemsCount()<=0){
237
+ foreach ($items as $item) {
238
+ try {
239
+ $cart->addOrderItem($item);
240
+ } catch (Mage_Core_Exception $e) {
241
+ $session->addError($this->__($e->getMessage()));
242
+ Mage::logException($e);
243
+ continue;
244
+ }
245
+ }
246
+ $cart->save();
247
+ }
248
+ }
249
  }
package.xml CHANGED
@@ -1,18 +1,18 @@
1
  <?xml version="1.0"?>
2
  <package>
3
  <name>Pagantis_Pagantis</name>
4
- <version>3.2.2</version>
5
  <stability>stable</stability>
6
  <license uri="http://www.gnu.org/licenses/gpl-3.0.en.html">GPL</license>
7
  <channel>community</channel>
8
  <extends/>
9
  <summary>Modulo de Magento para habilitar la pasarela de pago Pagantis en Magento.</summary>
10
  <description>Con este m&#xF3;dulo se podr&#xE1; activar la pasarela de pago Pagantis en Magento y aceptar pago con tarjetas de debito.</description>
11
- <notes>Added currency filter</notes>
12
  <authors><author><name>Albert Fatsini</name><user>PagaMasTarde</user><email>afatsini@digitalorigin.com</email></author></authors>
13
- <date>2016-11-21</date>
14
- <time>08:36:05</time>
15
- <contents><target name="magecommunity"><dir name="Pagantis"><dir name="Pagantis"><dir name="Block"><dir name="Adminhtml"><dir name="System"><dir name="Config"><dir name="Fieldset"><file name="Payment.php" hash="7c2b0d3c7a7bf6d4a9ac02a5b6125af3"/></dir></dir></dir></dir><file name="Form.php" hash="89aded0a5a4754181ee2dd24f480cff9"/><file name="Redirect.php" hash="67d7cb6ddd3089cb5bba2a13c2b7493e"/></dir><dir name="Helper"><file name="Data.php" hash="dd40634af028d3179be77b48d4d6e3b1"/></dir><dir name="Model"><file name="Currency.php" hash="a5557e10938898b0213a90dd7be15540"/><file name="Observer.php" hash="fa0e7d5688701cae875a8d14f58a816e"/><file name="Payment.php" hash="56017eb1aa5bd545811df915f0eeae8f"/><dir name="Source"><dir name="Payment"><file name="Currency.php" hash="7e51124f09e2028198fb9587df820809"/><file name="Environment.php" hash="30d6400967acdd8975c5748994c100e6"/></dir></dir><dir name="Webservice"><file name="Client.php" hash="6a14e0ae7ef5180445a3a99aec4717bb"/><file name="Paymentrequest.php" hash="dcf473ea7211a82b55b5374549c3cfc0"/><file name="Request.php" hash="f39f3312449a4aa41b716842ff0466dd"/><file name="Requestloan.php" hash="ab3944fbc9f15dd75016d429275d02be"/><file name="Response.php" hash="bb1ade5931c5580f4585fc0fdb2bc4b0"/></dir></dir><dir name="controllers"><file name="PagantisController.php" hash="a983c0bcb5b6b8b9d9ad28deb0f1a7df"/></dir><dir name="etc"><file name="config.xml" hash="ac4c7505180457b75b59d40691329db7"/><file name="system.xml" hash="a8a6b2cc704f825ad0688d49b783562c"/></dir><dir name="sql"><dir name="pagantis_setup"><file name="mysql4-install-1.0.0.php" hash="4ec10724709f8d381758409f55cff99d"/></dir></dir></dir></dir></target><target name="magedesign"><dir name="adminhtml"><dir name="default"><dir name="default"><dir name="layout"><file name="pagantis.xml" hash="4328e44e218a0996f4e2412c545a8e9b"/></dir></dir></dir></dir><dir name="frontend"><dir name="base"><dir name="default"><dir name="layout"><file name="pagantis.xml" hash="29736a84ea78eaeb75fe2be77d0a63cb"/></dir><dir name="template"><dir name="pagantis"><file name="form.phtml" hash="11cf70a55d8ec9e8ae3c1d94a832eeab"/><file name="pagantis.phtml" hash="39f682244d4cb5998d42ef65ed498f7c"/><file name="redirect.phtml" hash="01cc228e3183b4751e324435f2782124"/></dir></dir></dir></dir></dir></target><target name="mageetc"><dir name="modules"><file name="Pagantis_Pagantis.xml" hash="c57db60bd03314d7a45f27acc9a9475a"/></dir></target><target name="mageskin"><dir name="adminhtml"><dir name="base"><dir name="default"><file name="pagantis.css" hash="7d1b6daea9f42c2552ebb5bd5c15596d"/></dir></dir><dir name="default"><dir name="default"><dir name="images"><dir name="pagantis"><file name="logopagamastarde.png" hash="d51fa42e42d9811653df55710a395d07"/><file name="pagantis.png" hash="292403ede1f62affccf06df004ddfe12"/></dir></dir></dir></dir></dir><dir name="frontend"><dir name="base"><dir name="default"><dir name="images"><dir name="pagantis"><file name="logopagamastarde.png" hash="d51fa42e42d9811653df55710a395d07"/><file name="pagantis-fav.png" hash="c4e162b51c0792ff25385506d7998818"/><file name="pagantis.png" hash="292403ede1f62affccf06df004ddfe12"/></dir></dir></dir></dir></dir></target></contents>
16
  <compatible/>
17
  <dependencies><required><php><min>5.2.0</min><max>8.0.0</max></php></required></dependencies>
18
  </package>
1
  <?xml version="1.0"?>
2
  <package>
3
  <name>Pagantis_Pagantis</name>
4
+ <version>3.2.3</version>
5
  <stability>stable</stability>
6
  <license uri="http://www.gnu.org/licenses/gpl-3.0.en.html">GPL</license>
7
  <channel>community</channel>
8
  <extends/>
9
  <summary>Modulo de Magento para habilitar la pasarela de pago Pagantis en Magento.</summary>
10
  <description>Con este m&#xF3;dulo se podr&#xE1; activar la pasarela de pago Pagantis en Magento y aceptar pago con tarjetas de debito.</description>
11
+ <notes>Solved bug that avoids cancelling an order after being paid</notes>
12
  <authors><author><name>Albert Fatsini</name><user>PagaMasTarde</user><email>afatsini@digitalorigin.com</email></author></authors>
13
+ <date>2016-12-02</date>
14
+ <time>12:06:33</time>
15
+ <contents><target name="magecommunity"><dir name="Pagantis"><dir name="Pagantis"><dir name="Block"><dir name="Adminhtml"><dir name="System"><dir name="Config"><dir name="Fieldset"><file name="Payment.php" hash="7c2b0d3c7a7bf6d4a9ac02a5b6125af3"/></dir></dir></dir></dir><file name="Form.php" hash="89aded0a5a4754181ee2dd24f480cff9"/><file name="Redirect.php" hash="67d7cb6ddd3089cb5bba2a13c2b7493e"/></dir><dir name="Helper"><file name="Data.php" hash="dd40634af028d3179be77b48d4d6e3b1"/></dir><dir name="Model"><file name="Currency.php" hash="a5557e10938898b0213a90dd7be15540"/><file name="Observer.php" hash="fa0e7d5688701cae875a8d14f58a816e"/><file name="Payment.php" hash="56017eb1aa5bd545811df915f0eeae8f"/><dir name="Source"><dir name="Payment"><file name="Currency.php" hash="7e51124f09e2028198fb9587df820809"/><file name="Environment.php" hash="30d6400967acdd8975c5748994c100e6"/></dir></dir><dir name="Webservice"><file name="Client.php" hash="6a14e0ae7ef5180445a3a99aec4717bb"/><file name="Paymentrequest.php" hash="dcf473ea7211a82b55b5374549c3cfc0"/><file name="Request.php" hash="f39f3312449a4aa41b716842ff0466dd"/><file name="Requestloan.php" hash="8efcee9efc6010918eccec46704a1d4d"/><file name="Response.php" hash="bb1ade5931c5580f4585fc0fdb2bc4b0"/></dir></dir><dir name="controllers"><file name="PagantisController.php" hash="608a0e88c5c3267102464bd091ebb55e"/></dir><dir name="etc"><file name="config.xml" hash="ac4c7505180457b75b59d40691329db7"/><file name="system.xml" hash="a8a6b2cc704f825ad0688d49b783562c"/></dir><dir name="sql"><dir name="pagantis_setup"><file name="mysql4-install-1.0.0.php" hash="4ec10724709f8d381758409f55cff99d"/></dir></dir></dir></dir></target><target name="magedesign"><dir name="adminhtml"><dir name="default"><dir name="default"><dir name="layout"><file name="pagantis.xml" hash="4328e44e218a0996f4e2412c545a8e9b"/></dir></dir></dir></dir><dir name="frontend"><dir name="base"><dir name="default"><dir name="layout"><file name="pagantis.xml" hash="29736a84ea78eaeb75fe2be77d0a63cb"/></dir><dir name="template"><dir name="pagantis"><file name="form.phtml" hash="11cf70a55d8ec9e8ae3c1d94a832eeab"/><file name="pagantis.phtml" hash="39f682244d4cb5998d42ef65ed498f7c"/><file name="redirect.phtml" hash="01cc228e3183b4751e324435f2782124"/></dir></dir></dir></dir></dir></target><target name="mageetc"><dir name="modules"><file name="Pagantis_Pagantis.xml" hash="c57db60bd03314d7a45f27acc9a9475a"/></dir></target><target name="mageskin"><dir name="adminhtml"><dir name="base"><dir name="default"><file name="pagantis.css" hash="7d1b6daea9f42c2552ebb5bd5c15596d"/></dir></dir><dir name="default"><dir name="default"><dir name="images"><dir name="pagantis"><file name="logopagamastarde.png" hash="d51fa42e42d9811653df55710a395d07"/><file name="pagantis.png" hash="292403ede1f62affccf06df004ddfe12"/></dir></dir></dir></dir></dir><dir name="frontend"><dir name="base"><dir name="default"><dir name="images"><dir name="pagantis"><file name="logopagamastarde.png" hash="d51fa42e42d9811653df55710a395d07"/><file name="pagantis-fav.png" hash="c4e162b51c0792ff25385506d7998818"/><file name="pagantis.png" hash="292403ede1f62affccf06df004ddfe12"/></dir></dir><file name="iframe.css" hash="50660dc3125dee715f7d6ac8275d70da"/></dir></dir></dir></target></contents>
16
  <compatible/>
17
  <dependencies><required><php><min>5.2.0</min><max>8.0.0</max></php></required></dependencies>
18
  </package>
skin/frontend/base/default/iframe.css ADDED
@@ -0,0 +1,63 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ /* The Modal (background) */
2
+ .paylater_modal {
3
+ display: none; /* Hidden by default */
4
+ position: fixed; /* Stay in place */
5
+ z-index: 6000; /* Sit on top */
6
+ left: 0;
7
+ top: 0;
8
+ width: 100%; /* Full width */
9
+ height: 100%; /* Full height */
10
+ overflow: auto; /* Enable scroll if needed */
11
+ background-color: rgb(0,0,0); /* Fallback color */
12
+ background-color: rgba(0,0,0,0.4); /* Black w/ opacity */
13
+ }
14
+
15
+ /* Modal Content/Box */
16
+ .paylater_modal-content {
17
+ background-color: #fefefe;
18
+ margin: 15% auto; /* 15% from the top and centered */
19
+ padding: 20px;
20
+ border: 1px solid #888;
21
+ width: 80%; /* Could be more or less, depending on screen size */
22
+ border: 1px solid rgba(0, 0, 0, 0.3);
23
+ -webkit-border-radius: 6px;
24
+ -moz-border-radius: 6px;
25
+ border-radius: 6px;
26
+ -webkit-box-shadow: 0 3px 7px rgba(0, 0, 0, 0.3);
27
+ -moz-box-shadow: 0 3px 7px rgba(0, 0, 0, 0.3);
28
+ box-shadow: 0 3px 7px rgba(0, 0, 0, 0.3);
29
+ -webkit-background-clip: padding-box;
30
+ -moz-background-clip: padding-box;
31
+ background-clip: padding-box;
32
+ }
33
+
34
+ /* The Close Button */
35
+ #paylater_close {
36
+ color: #aaa;
37
+ float: right;
38
+ font-size: 28px;
39
+ font-weight: bold;
40
+ }
41
+
42
+ #paylater_close:hover,
43
+ #paylater_close:focus {
44
+ color: black;
45
+ text-decoration: none;
46
+ cursor: pointer;
47
+ }
48
+ @media only screen and (min-width: 768px) {
49
+ .paylater_modal-content {
50
+ width: 60%;
51
+ margin: 10% auto;
52
+ }
53
+ }
54
+
55
+ @media only screen and (min-width: 1200px) {
56
+ .paylater_modal-content {
57
+ width: 50%;
58
+ }
59
+ }
60
+
61
+ #iframe-pagantis {
62
+ border: none !important;
63
+ }