Version Notes
1.2.1.0
Download this release
Release Info
Developer | Magento Core Team |
Extension | Mage_Ogone_Official |
Version | 1.2.1.0 |
Comparing to | |
See all releases |
Code changes from version 1.2.0.1 to 1.2.1.0
- app/code/core/Mage/Ogone/Block/Form.php +39 -0
- app/code/core/Mage/Ogone/Block/Info.php +41 -0
- app/code/core/Mage/Ogone/Block/Paypage.php +41 -0
- app/code/core/Mage/Ogone/Block/Placeform.php +90 -0
- app/code/core/Mage/Ogone/Helper/Data.php +62 -0
- app/code/core/Mage/Ogone/Model/Api.php +474 -0
- app/code/core/Mage/Ogone/Model/Api/Debug.php +42 -0
- app/code/core/Mage/Ogone/Model/Config.php +151 -0
- app/code/core/Mage/Ogone/Model/Mysql4/Api/Debug.php +42 -0
- app/code/core/Mage/Ogone/Model/Source/PaymentAction.php +45 -0
- app/code/core/Mage/Ogone/Model/Source/Pmlist.php +45 -0
- app/code/core/Mage/Ogone/Model/Source/Template.php +44 -0
- app/code/core/Mage/Ogone/controllers/ApiController.php +536 -0
- app/code/core/Mage/Ogone/etc/config.xml +139 -0
- app/code/core/Mage/Ogone/etc/system.xml +249 -0
- app/code/core/Mage/Ogone/sql/ogone_setup/install-1.6.0.0.php +28 -0
- app/code/core/Mage/Ogone/sql/ogone_setup/mysql4-install-0.0.1.php +46 -0
- app/design/adminhtml/default/default/template/ogone/info.phtml +29 -0
- app/design/frontend/base/default/layout/ogone.xml +59 -0
- app/design/frontend/base/default/template/ogone/form.phtml +33 -0
- app/design/frontend/base/default/template/ogone/info.phtml +27 -0
- app/design/frontend/base/default/template/ogone/paypage.phtml +28 -0
- app/design/frontend/base/default/template/ogone/placeform.phtml +45 -0
- app/etc/modules/Mage_Ogone.xml +39 -0
- app/locale/en_US/Mage_Ogone.csv +66 -0
- package.xml +6 -6
app/code/core/Mage/Ogone/Block/Form.php
ADDED
@@ -0,0 +1,39 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
<?php
|
2 |
+
/**
|
3 |
+
* Magento
|
4 |
+
*
|
5 |
+
* NOTICE OF LICENSE
|
6 |
+
*
|
7 |
+
* This source file is subject to the Open Software License (OSL 3.0)
|
8 |
+
* that is bundled with this package in the file LICENSE.txt.
|
9 |
+
* It is also available through the world-wide-web at this URL:
|
10 |
+
* http://opensource.org/licenses/osl-3.0.php
|
11 |
+
* If you did not receive a copy of the license and are unable to
|
12 |
+
* obtain it through the world-wide-web, please send an email
|
13 |
+
* to license@magentocommerce.com so we can send you a copy immediately.
|
14 |
+
*
|
15 |
+
* DISCLAIMER
|
16 |
+
*
|
17 |
+
* Do not edit or add to this file if you wish to upgrade Magento to newer
|
18 |
+
* versions in the future. If you wish to customize Magento for your
|
19 |
+
* needs please refer to http://www.magentocommerce.com for more information.
|
20 |
+
*
|
21 |
+
* @category Mage
|
22 |
+
* @package Mage_Ogone
|
23 |
+
* @copyright Copyright (c) 2012 Magento Inc. (http://www.magentocommerce.com)
|
24 |
+
* @license http://opensource.org/licenses/osl-3.0.php Open Software License (OSL 3.0)
|
25 |
+
*/
|
26 |
+
|
27 |
+
|
28 |
+
class Mage_Ogone_Block_Form extends Mage_Payment_Block_Form_Cc
|
29 |
+
{
|
30 |
+
/**
|
31 |
+
* Init Ofone pay from to use it on frontend
|
32 |
+
*
|
33 |
+
*/
|
34 |
+
protected function _construct()
|
35 |
+
{
|
36 |
+
parent::_construct();
|
37 |
+
$this->setTemplate('ogone/form.phtml');
|
38 |
+
}
|
39 |
+
}
|
app/code/core/Mage/Ogone/Block/Info.php
ADDED
@@ -0,0 +1,41 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
<?php
|
2 |
+
/**
|
3 |
+
* Magento
|
4 |
+
*
|
5 |
+
* NOTICE OF LICENSE
|
6 |
+
*
|
7 |
+
* This source file is subject to the Open Software License (OSL 3.0)
|
8 |
+
* that is bundled with this package in the file LICENSE.txt.
|
9 |
+
* It is also available through the world-wide-web at this URL:
|
10 |
+
* http://opensource.org/licenses/osl-3.0.php
|
11 |
+
* If you did not receive a copy of the license and are unable to
|
12 |
+
* obtain it through the world-wide-web, please send an email
|
13 |
+
* to license@magentocommerce.com so we can send you a copy immediately.
|
14 |
+
*
|
15 |
+
* DISCLAIMER
|
16 |
+
*
|
17 |
+
* Do not edit or add to this file if you wish to upgrade Magento to newer
|
18 |
+
* versions in the future. If you wish to customize Magento for your
|
19 |
+
* needs please refer to http://www.magentocommerce.com for more information.
|
20 |
+
*
|
21 |
+
* @category Mage
|
22 |
+
* @package Mage_Ogone
|
23 |
+
* @copyright Copyright (c) 2012 Magento Inc. (http://www.magentocommerce.com)
|
24 |
+
* @license http://opensource.org/licenses/osl-3.0.php Open Software License (OSL 3.0)
|
25 |
+
*/
|
26 |
+
|
27 |
+
/**
|
28 |
+
* Ogone payment iformation block
|
29 |
+
*/
|
30 |
+
class Mage_Ogone_Block_Info extends Mage_Payment_Block_Info_Cc
|
31 |
+
{
|
32 |
+
/**
|
33 |
+
* Init ogone payment information block to use on admin area
|
34 |
+
*
|
35 |
+
*/
|
36 |
+
protected function _construct()
|
37 |
+
{
|
38 |
+
parent::_construct();
|
39 |
+
$this->setTemplate('ogone/info.phtml');
|
40 |
+
}
|
41 |
+
}
|
app/code/core/Mage/Ogone/Block/Paypage.php
ADDED
@@ -0,0 +1,41 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
<?php
|
2 |
+
/**
|
3 |
+
* Magento
|
4 |
+
*
|
5 |
+
* NOTICE OF LICENSE
|
6 |
+
*
|
7 |
+
* This source file is subject to the Open Software License (OSL 3.0)
|
8 |
+
* that is bundled with this package in the file LICENSE.txt.
|
9 |
+
* It is also available through the world-wide-web at this URL:
|
10 |
+
* http://opensource.org/licenses/osl-3.0.php
|
11 |
+
* If you did not receive a copy of the license and are unable to
|
12 |
+
* obtain it through the world-wide-web, please send an email
|
13 |
+
* to license@magentocommerce.com so we can send you a copy immediately.
|
14 |
+
*
|
15 |
+
* DISCLAIMER
|
16 |
+
*
|
17 |
+
* Do not edit or add to this file if you wish to upgrade Magento to newer
|
18 |
+
* versions in the future. If you wish to customize Magento for your
|
19 |
+
* needs please refer to http://www.magentocommerce.com for more information.
|
20 |
+
*
|
21 |
+
* @category Mage
|
22 |
+
* @package Mage_Ogone
|
23 |
+
* @copyright Copyright (c) 2012 Magento Inc. (http://www.magentocommerce.com)
|
24 |
+
* @license http://opensource.org/licenses/osl-3.0.php Open Software License (OSL 3.0)
|
25 |
+
*/
|
26 |
+
|
27 |
+
|
28 |
+
class Mage_Ogone_Block_Paypage extends Mage_Core_Block_Template
|
29 |
+
{
|
30 |
+
/**
|
31 |
+
* Init pay page block
|
32 |
+
*
|
33 |
+
* @return Mage_Ogone_Block_Paypage
|
34 |
+
*/
|
35 |
+
protected function _construct()
|
36 |
+
{
|
37 |
+
parent::_construct();
|
38 |
+
$this->setTemplate('ogone/paypage.phtml');
|
39 |
+
return $this;
|
40 |
+
}
|
41 |
+
}
|
app/code/core/Mage/Ogone/Block/Placeform.php
ADDED
@@ -0,0 +1,90 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
<?php
|
2 |
+
/**
|
3 |
+
* Magento
|
4 |
+
*
|
5 |
+
* NOTICE OF LICENSE
|
6 |
+
*
|
7 |
+
* This source file is subject to the Open Software License (OSL 3.0)
|
8 |
+
* that is bundled with this package in the file LICENSE.txt.
|
9 |
+
* It is also available through the world-wide-web at this URL:
|
10 |
+
* http://opensource.org/licenses/osl-3.0.php
|
11 |
+
* If you did not receive a copy of the license and are unable to
|
12 |
+
* obtain it through the world-wide-web, please send an email
|
13 |
+
* to license@magentocommerce.com so we can send you a copy immediately.
|
14 |
+
*
|
15 |
+
* DISCLAIMER
|
16 |
+
*
|
17 |
+
* Do not edit or add to this file if you wish to upgrade Magento to newer
|
18 |
+
* versions in the future. If you wish to customize Magento for your
|
19 |
+
* needs please refer to http://www.magentocommerce.com for more information.
|
20 |
+
*
|
21 |
+
* @category Mage
|
22 |
+
* @package Mage_Ogone
|
23 |
+
* @copyright Copyright (c) 2012 Magento Inc. (http://www.magentocommerce.com)
|
24 |
+
* @license http://opensource.org/licenses/osl-3.0.php Open Software License (OSL 3.0)
|
25 |
+
*/
|
26 |
+
|
27 |
+
|
28 |
+
class Mage_Ogone_Block_Placeform extends Mage_Core_Block_Template
|
29 |
+
{
|
30 |
+
public function __construct()
|
31 |
+
{
|
32 |
+
}
|
33 |
+
|
34 |
+
/**
|
35 |
+
* Get checkout session namespace
|
36 |
+
*
|
37 |
+
* @return Mage_Checkout_Model_Session
|
38 |
+
*/
|
39 |
+
public function getCheckout()
|
40 |
+
{
|
41 |
+
return Mage::getSingleton('checkout/session');
|
42 |
+
}
|
43 |
+
|
44 |
+
/**
|
45 |
+
* Ogone payment APi instance
|
46 |
+
*
|
47 |
+
* @return Mage_Ogone_Model_Api
|
48 |
+
*/
|
49 |
+
protected function _getApi()
|
50 |
+
{
|
51 |
+
return Mage::getSingleton('ogone/api');
|
52 |
+
}
|
53 |
+
|
54 |
+
/**
|
55 |
+
* Return order instance with loaded onformation by increment id
|
56 |
+
*
|
57 |
+
* @return Mage_Sales_Model_Order
|
58 |
+
*/
|
59 |
+
protected function _getOrder()
|
60 |
+
{
|
61 |
+
if ($this->getOrder()) {
|
62 |
+
$order = $this->getOrder();
|
63 |
+
} else if ($this->getCheckout()->getLastRealOrderId()) {
|
64 |
+
$order = Mage::getModel('sales/order')->loadByIncrementId($this->getCheckout()->getLastRealOrderId());
|
65 |
+
} else {
|
66 |
+
return null;
|
67 |
+
}
|
68 |
+
return $order;
|
69 |
+
}
|
70 |
+
|
71 |
+
/**
|
72 |
+
* Get Form data by using ogone payment api
|
73 |
+
*
|
74 |
+
* @return array
|
75 |
+
*/
|
76 |
+
public function getFormData()
|
77 |
+
{
|
78 |
+
return $this->_getApi()->getFormFields($this->_getOrder());
|
79 |
+
}
|
80 |
+
|
81 |
+
/**
|
82 |
+
* Getting gateway url
|
83 |
+
*
|
84 |
+
* @return string
|
85 |
+
*/
|
86 |
+
public function getFormAction()
|
87 |
+
{
|
88 |
+
return $this->_getApi()->getConfig()->getGatewayPath();
|
89 |
+
}
|
90 |
+
}
|
app/code/core/Mage/Ogone/Helper/Data.php
ADDED
@@ -0,0 +1,62 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
<?php
|
2 |
+
/**
|
3 |
+
* Magento
|
4 |
+
*
|
5 |
+
* NOTICE OF LICENSE
|
6 |
+
*
|
7 |
+
* This source file is subject to the Open Software License (OSL 3.0)
|
8 |
+
* that is bundled with this package in the file LICENSE.txt.
|
9 |
+
* It is also available through the world-wide-web at this URL:
|
10 |
+
* http://opensource.org/licenses/osl-3.0.php
|
11 |
+
* If you did not receive a copy of the license and are unable to
|
12 |
+
* obtain it through the world-wide-web, please send an email
|
13 |
+
* to license@magentocommerce.com so we can send you a copy immediately.
|
14 |
+
*
|
15 |
+
* DISCLAIMER
|
16 |
+
*
|
17 |
+
* Do not edit or add to this file if you wish to upgrade Magento to newer
|
18 |
+
* versions in the future. If you wish to customize Magento for your
|
19 |
+
* needs please refer to http://www.magentocommerce.com for more information.
|
20 |
+
*
|
21 |
+
* @category Mage
|
22 |
+
* @package Mage_Ogone
|
23 |
+
* @copyright Copyright (c) 2012 Magento Inc. (http://www.magentocommerce.com)
|
24 |
+
* @license http://opensource.org/licenses/osl-3.0.php Open Software License (OSL 3.0)
|
25 |
+
*/
|
26 |
+
|
27 |
+
/**
|
28 |
+
* Ogone data helper
|
29 |
+
*/
|
30 |
+
class Mage_Ogone_Helper_Data extends Mage_Core_Helper_Abstract
|
31 |
+
{
|
32 |
+
/**
|
33 |
+
* @deprecated after 1.4.2.0-beta1
|
34 |
+
* @see Mage_Ogone_Model_Api::HASH_ALGO_SHA1
|
35 |
+
*/
|
36 |
+
const HASH_ALGO = 'sha1';
|
37 |
+
|
38 |
+
/**
|
39 |
+
* @deprecated after 1.4.2.0-beta1
|
40 |
+
* @see Mage_Ogone_Model_Api::getHash()
|
41 |
+
* @param array $data
|
42 |
+
* @param string $key
|
43 |
+
* @return string
|
44 |
+
*/
|
45 |
+
public function shaCrypt($data, $key = '')
|
46 |
+
{
|
47 |
+
return '';
|
48 |
+
}
|
49 |
+
|
50 |
+
/**
|
51 |
+
* @deprecated after 1.4.2.0-beta1
|
52 |
+
* @see Mage_Ogone_Model_Api::getHash()
|
53 |
+
* @param array $data
|
54 |
+
* @param string $hash
|
55 |
+
* @param string $key
|
56 |
+
* @return bool
|
57 |
+
*/
|
58 |
+
public function shaCryptValidation($data, $hash, $key='')
|
59 |
+
{
|
60 |
+
return false;
|
61 |
+
}
|
62 |
+
}
|
app/code/core/Mage/Ogone/Model/Api.php
ADDED
@@ -0,0 +1,474 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
<?php
|
2 |
+
/**
|
3 |
+
* Magento
|
4 |
+
*
|
5 |
+
* NOTICE OF LICENSE
|
6 |
+
*
|
7 |
+
* This source file is subject to the Open Software License (OSL 3.0)
|
8 |
+
* that is bundled with this package in the file LICENSE.txt.
|
9 |
+
* It is also available through the world-wide-web at this URL:
|
10 |
+
* http://opensource.org/licenses/osl-3.0.php
|
11 |
+
* If you did not receive a copy of the license and are unable to
|
12 |
+
* obtain it through the world-wide-web, please send an email
|
13 |
+
* to license@magentocommerce.com so we can send you a copy immediately.
|
14 |
+
*
|
15 |
+
* DISCLAIMER
|
16 |
+
*
|
17 |
+
* Do not edit or add to this file if you wish to upgrade Magento to newer
|
18 |
+
* versions in the future. If you wish to customize Magento for your
|
19 |
+
* needs please refer to http://www.magentocommerce.com for more information.
|
20 |
+
*
|
21 |
+
* @category Mage
|
22 |
+
* @package Mage_Ogone
|
23 |
+
* @copyright Copyright (c) 2012 Magento Inc. (http://www.magentocommerce.com)
|
24 |
+
* @license http://opensource.org/licenses/osl-3.0.php Open Software License (OSL 3.0)
|
25 |
+
*/
|
26 |
+
|
27 |
+
/**
|
28 |
+
* Ogone payment method model
|
29 |
+
*/
|
30 |
+
class Mage_Ogone_Model_Api extends Mage_Payment_Model_Method_Abstract
|
31 |
+
{
|
32 |
+
/**
|
33 |
+
* Ogone payment method code
|
34 |
+
*
|
35 |
+
* @var string
|
36 |
+
*/
|
37 |
+
const PAYMENT_CODE = 'ogone';
|
38 |
+
|
39 |
+
protected $_code = self::PAYMENT_CODE;
|
40 |
+
protected $_formBlockType = 'ogone/form';
|
41 |
+
protected $_infoBlockType = 'ogone/info';
|
42 |
+
protected $_config = null;
|
43 |
+
|
44 |
+
/**
|
45 |
+
* Availability options
|
46 |
+
*/
|
47 |
+
protected $_isGateway = false;
|
48 |
+
protected $_canAuthorize = true;
|
49 |
+
protected $_canCapture = false;
|
50 |
+
protected $_canCapturePartial = false;
|
51 |
+
protected $_canRefund = false;
|
52 |
+
protected $_canVoid = false;
|
53 |
+
protected $_canUseInternal = false;
|
54 |
+
protected $_canUseCheckout = true;
|
55 |
+
protected $_canUseForMultishipping = false;
|
56 |
+
|
57 |
+
/**
|
58 |
+
* "OUT" hash string components, correspond to the "IN" signature in Ogone.
|
59 |
+
* "Out" relative to Magento, "in" relative to Ogone.
|
60 |
+
*
|
61 |
+
* @see Ogone eCommerce Advanced Technical Integration Guide v.5.0
|
62 |
+
* @var array
|
63 |
+
*/
|
64 |
+
protected static $_outAllMap = array(
|
65 |
+
'ACCEPTURL', 'ADDMATCH', 'ADDRMATCH',
|
66 |
+
// airline tickets - not implemented
|
67 |
+
// 'AIAIRNAME', 'AIAIRTAX', /*'AIBOOKIND*XX*', 'AICARRIER*XX*',*/ 'AICHDET', /*'AICLASS*XX*',*/ 'AICONJTI',
|
68 |
+
// /*'AIDESTCITY*XX*', 'AIDESTCITYL*XX*', 'AIEXTRAPASNAME*XX*',*/ 'AIEYCD', /*'AIFLDATE*XX*', 'AIFLNUM*XX*',*/
|
69 |
+
// 'AIIRST', /*'AIORCITY*XX*', 'AIORCITYL*XX*',*/ 'AIPASNAME', /*'AISTOPOV*XX*',*/ 'AITIDATE', 'AITINUM',
|
70 |
+
// 'AITYPCH', 'AIVATAMNT', 'AIVATAPPL',
|
71 |
+
'ALIAS','ALIASOPERATION', 'ALIASUSAGE',
|
72 |
+
'ALLOWCORRECTION', 'AMOUNT', /*'AMOUNT*XX*',*/ 'AMOUNTHTVA', 'AMOUNTTVA', 'BACKURL', 'BGCOLOR', 'BRAND',
|
73 |
+
'BRANDVISUAL', 'BUTTONBGCOLOR', 'BUTTONTXTCOLOR', 'CANCELURL', 'CARDNO', 'CATALOGURL', 'CAVV_3D',
|
74 |
+
'CAVVALGORITHM_3D', 'CERTID', 'CHECK_AAV', 'CIVILITY', 'CN', 'COM', 'COMPLUS', 'COSTCENTER', 'COSTCODE',
|
75 |
+
'CREDITCODE', 'CUID', 'CURRENCY', 'CVC', 'DATA', 'DATATYPE', 'DATEIN', 'DATEOUT', 'DECLINEURL', 'DEVICE',
|
76 |
+
'DISCOUNTRATE', 'ECI',
|
77 |
+
'ECOM_BILLTO_POSTAL_CITY', 'ECOM_BILLTO_POSTAL_COUNTRYCODE', 'ECOM_BILLTO_POSTAL_NAME_FIRST',
|
78 |
+
'ECOM_BILLTO_POSTAL_NAME_LAST', 'ECOM_BILLTO_POSTAL_POSTALCODE', 'ECOM_BILLTO_POSTAL_STREET_LINE1',
|
79 |
+
'ECOM_BILLTO_POSTAL_STREET_LINE2', 'ECOM_BILLTO_POSTAL_STREET_NUMBER', 'ECOM_CONSUMERID',
|
80 |
+
'ECOM_CONSUMERORDERID', 'ECOM_CONSUMERUSERALIAS', 'ECOM_PAYMENT_CARD_EXPDATE_MONTH',
|
81 |
+
'ECOM_PAYMENT_CARD_EXPDATE_YEAR', 'ECOM_PAYMENT_CARD_NAME', 'ECOM_PAYMENT_CARD_VERIFICATION',
|
82 |
+
'ECOM_SHIPTO_COMPANY', 'ECOM_SHIPTO_DOB', 'ECOM_SHIPTO_ONLINE_EMAIL', 'ECOM_SHIPTO_POSTAL_CITY',
|
83 |
+
'ECOM_SHIPTO_POSTAL_COUNTRYCODE', 'ECOM_SHIPTO_POSTAL_NAME_FIRST', 'ECOM_SHIPTO_POSTAL_NAME_LAST',
|
84 |
+
'ECOM_SHIPTO_POSTAL_NAME_PREFIX', 'ECOM_SHIPTO_POSTAL_POSTALCODE', 'ECOM_SHIPTO_POSTAL_STREET_LINE1',
|
85 |
+
'ECOM_SHIPTO_POSTAL_STREET_LINE2', 'ECOM_SHIPTO_POSTAL_STREET_NUMBER', 'ECOM_SHIPTO_TELECOM_FAX_NUMBER',
|
86 |
+
'ECOM_SHIPTO_TELECOM_PHONE_NUMBER', 'ECOM_SHIPTO_TVA',
|
87 |
+
'ED', 'EMAIL', 'EXCEPTIONURL', 'EXCLPMLIST', /*'EXECUTIONDATE*XX*',*/ 'FIRSTCALL', 'FLAG3D', 'FONTTYPE',
|
88 |
+
'FORCECODE1', 'FORCECODE2', 'FORCECODEHASH', 'FORCEPROCESS', 'FORCETP', 'GENERIC_BL', 'GIROPAY_BL',
|
89 |
+
'GIROPAY_ACCOUNT_NUMBER', 'GIROPAY_BLZ', 'GIROPAY_OWNER_NAME', 'GLOBORDERID', 'GUID', 'HDFONTTYPE',
|
90 |
+
'HDTBLBGCOLOR', 'HDTBLTXTCOLOR', 'HEIGHTFRAME', 'HOMEURL', 'HTTP_ACCEPT', 'HTTP_USER_AGENT', 'INCLUDE_BIN',
|
91 |
+
'INCLUDE_COUNTRIES', 'INVDATE', 'INVDISCOUNT', 'INVLEVEL', 'INVORDERID', 'ISSUERID',
|
92 |
+
// cart items - not implemented
|
93 |
+
// 'ITEMCATEGORY*XX*', 'ITEMDISCOUNT*XX*', 'ITEMID*XX*', 'ITEMNAME*XX*', 'ITEMPRICE*XX*', 'ITEMQUANT*XX*',
|
94 |
+
// 'ITEMUNITOFMEASURE*XX*', 'ITEMVAT*XX*', 'ITEMVATCODE*XX*',
|
95 |
+
'LANGUAGE', 'LEVEL1AUTHCPC', /*'LIDEXCL*XX*',*/ 'LIMITCLIENTSCRIPTUSAGE', 'LINE_REF',
|
96 |
+
'LIST_BIN', 'LIST_COUNTRIES', 'LOGO', 'MERCHANTID', 'MODE', 'MTIME', 'MVER', 'NETAMOUNT', 'OPERATION',
|
97 |
+
'ORDERID', 'ORDERSHIPCOST', 'ORDERSHIPTAX', 'ORDERSHIPTAXCODE',
|
98 |
+
'ORIG', 'OR_INVORDERID', 'OR_ORDERID', 'OWNERADDRESS', 'OWNERADDRESS2', 'OWNERCTY', 'OWNERTELNO',
|
99 |
+
'OWNERTOWN', 'OWNERZIP', 'PAIDAMOUNT', 'PARAMPLUS', 'PARAMVAR', 'PAYID', 'PAYMETHOD', 'PM', 'PMLIST',
|
100 |
+
'PMLISTPMLISTTYPE', 'PMLISTTYPE', 'PMLISTTYPEPMLIST', 'PMTYPE', 'POPUP', 'POST', 'PSPID', 'PSWD', 'REF',
|
101 |
+
'REFER', 'REFID', 'REFKIND', 'REF_CUSTOMERID', 'REF_CUSTOMERREF', 'REMOTE_ADDR', 'REQGENFIELDS','RTIMEOUT',
|
102 |
+
'RTIMEOUTREQUESTEDTIMEOUT', 'SCORINGCLIENT', 'SETT_BATCH', 'SID', 'STATUS_3D', 'SUBSCRIPTION_ID', 'SUB_AM',
|
103 |
+
'SUB_AMOUNT', 'SUB_COM', 'SUB_COMMENT', 'SUB_CUR', 'SUB_ENDDATE', 'SUB_ORDERID', 'SUB_PERIOD_MOMENT',
|
104 |
+
'SUB_PERIOD_MOMENT_M', 'SUB_PERIOD_MOMENT_WW', 'SUB_PERIOD_NUMBER', 'SUB_PERIOD_NUMBER_D',
|
105 |
+
'SUB_PERIOD_NUMBER_M', 'SUB_PERIOD_NUMBER_WW', 'SUB_PERIOD_UNIT', 'SUB_STARTDATE', 'SUB_STATUS', 'TAAL',
|
106 |
+
/*'TAXINCLUDED*XX*',*/ 'TBLBGCOLOR', 'TBLTXTCOLOR', 'TID', 'TITLE', 'TOTALAMOUNT', 'TP', 'TRACK2', 'TXTBADDR2',
|
107 |
+
'TXTCOLOR', 'TXTOKEN', 'TXTOKENTXTOKENPAYPAL', 'TYPE_COUNTRY', 'UCAF_AUTHENTICATION_DATA',
|
108 |
+
'UCAF_PAYMENT_CARD_CVC2', 'UCAF_PAYMENT_CARD_EXPDATE_MONTH', 'UCAF_PAYMENT_CARD_EXPDATE_YEAR',
|
109 |
+
'UCAF_PAYMENT_CARD_NUMBER', 'USERID', 'USERTYPE', 'VERSION', 'WBTU_MSISDN', 'WBTU_ORDERID', 'WEIGHTUNIT',
|
110 |
+
'WIN3DS', 'WITHROOT',
|
111 |
+
);
|
112 |
+
protected static $_outShortMap = array('ORDERID', 'AMOUNT', 'CURRENCY', 'PSPID', 'OPERATION',);
|
113 |
+
|
114 |
+
/**
|
115 |
+
* "IN" hash string components, correspond to the "OUT" signature in Ogone.
|
116 |
+
* "In" relative to Magento, "out" relative to Ogone.
|
117 |
+
*
|
118 |
+
* @see Ogone eCommerce Advanced Technical Integration Guide v.5.0
|
119 |
+
* @var array
|
120 |
+
*/
|
121 |
+
protected static $_inAllMap = array(
|
122 |
+
'AAVADDRESS', 'AAVCHECK', 'AAVZIP', 'ACCEPTANCE', 'ALIAS', 'AMOUNT', 'BRAND', 'CARDNO', 'CCCTY', 'CN',
|
123 |
+
'COMPLUS', 'CREATION_STATUS', 'CURRENCY', 'CVCCHECK', 'DCC_COMMPERCENTAGE', 'DCC_CONVAMOUNT', 'DCC_CONVCCY',
|
124 |
+
'DCC_EXCHRATE', 'DCC_EXCHRATESOURCE', 'DCC_EXCHRATETS', 'DCC_INDICATOR', 'DCC_MARGINPERCENTAGE',
|
125 |
+
'DCC_VALIDHOURS', 'DIGESTCARDNO', 'ECI', 'ED', 'ENCCARDNO', 'IP', 'IPCTY', 'NBREMAILUSAGE', 'NBRIPUSAGE',
|
126 |
+
'NBRIPUSAGE_ALLTX', 'NBRUSAGE', 'NCERROR', 'ORDERID', 'PAYID', 'PM', 'SCO_CATEGORY', 'SCORING','STATUS',
|
127 |
+
'SUBSCRIPTION_ID', 'TRXDATE', 'VC',
|
128 |
+
);
|
129 |
+
protected static $_inShortMap = array(
|
130 |
+
'ORDERID', 'CURRENCY', 'AMOUNT', 'PM', 'ACCEPTANCE', 'STATUS', 'CARDNO', 'PAYID', 'NCERROR', 'BRAND',
|
131 |
+
'DCC_INDICATOR', 'DCC_EXCHRATE', 'DCC_EXCHRATETS', 'DCC_CONVCCY', 'DCC_CONVAMOUNT', 'DCC_VALIDHOURS',
|
132 |
+
'DCC_EXCHRATESOURCE', 'DCC_MARGINPERCENTAGE', 'DCC_COMMPERCENTAGE',
|
133 |
+
);
|
134 |
+
|
135 |
+
/* Ogone template modes */
|
136 |
+
const TEMPLATE_OGONE = 'ogone';
|
137 |
+
const TEMPLATE_MAGENTO = 'magento';
|
138 |
+
|
139 |
+
/* Ogone payment process statuses */
|
140 |
+
const PENDING_OGONE_STATUS = 'pending_ogone';
|
141 |
+
const CANCEL_OGONE_STATUS = 'cancel_ogone';
|
142 |
+
const DECLINE_OGONE_STATUS = 'decline_ogone';
|
143 |
+
const PROCESSING_OGONE_STATUS = 'processing_ogone';
|
144 |
+
const WAITING_AUTHORIZATION = 'waiting_authorozation';
|
145 |
+
const PROCESSED_OGONE_STATUS = 'processed_ogone';
|
146 |
+
|
147 |
+
/* Ogone responce statuses */
|
148 |
+
const OGONE_PAYMENT_REQUESTED_STATUS = 9;
|
149 |
+
const OGONE_PAYMENT_PROCESSING_STATUS = 91;
|
150 |
+
const OGONE_AUTH_UKNKOWN_STATUS = 52;
|
151 |
+
const OGONE_PAYMENT_UNCERTAIN_STATUS = 92;
|
152 |
+
const OGONE_PAYMENT_INCOMPLETE = 1;
|
153 |
+
const OGONE_AUTH_REFUZED = 2;
|
154 |
+
const OGONE_AUTH_PROCESSING = 51;
|
155 |
+
const OGONE_TECH_PROBLEM = 93;
|
156 |
+
const OGONE_AUTHORIZED = 5;
|
157 |
+
|
158 |
+
/* Layout of the payment method */
|
159 |
+
const PMLIST_HORISONTAL_LEFT = 0;
|
160 |
+
const PMLIST_HORISONTAL = 1;
|
161 |
+
const PMLIST_VERTICAL = 2;
|
162 |
+
|
163 |
+
/* ogone paymen action constant*/
|
164 |
+
const OGONE_AUTHORIZE_ACTION = 'RES';
|
165 |
+
const OGONE_AUTHORIZE_CAPTURE_ACTION = 'SAL';
|
166 |
+
|
167 |
+
/**
|
168 |
+
* Parameters hashing context
|
169 |
+
* @var string
|
170 |
+
*/
|
171 |
+
const HASH_DIR_OUT = 'out';
|
172 |
+
const HASH_DIR_IN = 'in';
|
173 |
+
|
174 |
+
/**
|
175 |
+
* Supported hashing algorithms
|
176 |
+
* @var string
|
177 |
+
*/
|
178 |
+
const HASH_SHA1 = 'sha1';
|
179 |
+
const HASH_SHA256 = 'sha256';
|
180 |
+
const HASH_SHA512 = 'sha512';
|
181 |
+
|
182 |
+
/**
|
183 |
+
* Init Ogone Api instance, detup default values
|
184 |
+
*
|
185 |
+
* @return Mage_Ogone_Model_Api
|
186 |
+
*/
|
187 |
+
public function __construct()
|
188 |
+
{
|
189 |
+
$this->_config = Mage::getSingleton('ogone/config');
|
190 |
+
return $this;
|
191 |
+
}
|
192 |
+
|
193 |
+
/**
|
194 |
+
* Return ogone config instance
|
195 |
+
*
|
196 |
+
* @return Mage_Ogone_Model_Config
|
197 |
+
*/
|
198 |
+
public function getConfig()
|
199 |
+
{
|
200 |
+
return $this->_config;
|
201 |
+
}
|
202 |
+
|
203 |
+
/**
|
204 |
+
* @deprecated after 1.4.1.0
|
205 |
+
*
|
206 |
+
* @param int storeId
|
207 |
+
* @return bool
|
208 |
+
*/
|
209 |
+
public function getDebug($storeId=null)
|
210 |
+
{
|
211 |
+
return $this->getDebugFlag();
|
212 |
+
}
|
213 |
+
|
214 |
+
/**
|
215 |
+
* Flag witch prevent automatic invoice creation
|
216 |
+
*
|
217 |
+
* @return bool
|
218 |
+
*/
|
219 |
+
public function isInitializeNeeded()
|
220 |
+
{
|
221 |
+
return true;
|
222 |
+
}
|
223 |
+
|
224 |
+
/**
|
225 |
+
* Redirect url to ogone submit form
|
226 |
+
*
|
227 |
+
* @return string
|
228 |
+
*/
|
229 |
+
public function getOrderPlaceRedirectUrl()
|
230 |
+
{
|
231 |
+
return Mage::getUrl('ogone/api/placeform', array('_secure' => true));
|
232 |
+
}
|
233 |
+
|
234 |
+
/**
|
235 |
+
* Return payment_action value from config area
|
236 |
+
*
|
237 |
+
* @return string
|
238 |
+
*/
|
239 |
+
public function getPaymentAction()
|
240 |
+
{
|
241 |
+
return $this->getConfig()->getConfigData('payment_action');
|
242 |
+
}
|
243 |
+
|
244 |
+
/**
|
245 |
+
* Rrepare params array to send it to gateway page via POST
|
246 |
+
*
|
247 |
+
* @param Mage_Sales_Model_Order
|
248 |
+
* @return array
|
249 |
+
*/
|
250 |
+
public function getFormFields($order)
|
251 |
+
{
|
252 |
+
if (empty($order)) {
|
253 |
+
if (!($order = $this->getOrder())) {
|
254 |
+
return array();
|
255 |
+
}
|
256 |
+
}
|
257 |
+
$billingAddress = $order->getBillingAddress();
|
258 |
+
$formFields = array();
|
259 |
+
$formFields['PSPID'] = $this->getConfig()->getPSPID();
|
260 |
+
$formFields['orderID'] = $order->getIncrementId();
|
261 |
+
$formFields['amount'] = round($order->getBaseGrandTotal()*100);
|
262 |
+
$formFields['currency'] = Mage::app()->getStore()->getBaseCurrencyCode();
|
263 |
+
$formFields['language'] = Mage::app()->getLocale()->getLocaleCode();
|
264 |
+
|
265 |
+
$formFields['CN'] = $this->_translate($billingAddress->getFirstname().' '.$billingAddress->getLastname());
|
266 |
+
$formFields['EMAIL'] = $order->getCustomerEmail();
|
267 |
+
$formFields['ownerZIP'] = $billingAddress->getPostcode();
|
268 |
+
$formFields['ownercty'] = $billingAddress->getCountry();
|
269 |
+
$formFields['ownertown']= $this->_translate($billingAddress->getCity());
|
270 |
+
$formFields['COM'] = $this->_translate($this->_getOrderDescription($order));
|
271 |
+
$formFields['ownertelno'] = $billingAddress->getTelephone();
|
272 |
+
$formFields['owneraddress'] = $this->_translate(str_replace("\n", ' ',$billingAddress->getStreet(-1)));
|
273 |
+
|
274 |
+
$paymentAction = $this->_getOgonePaymentOperation();
|
275 |
+
if ($paymentAction ) {
|
276 |
+
$formFields['operation'] = $paymentAction;
|
277 |
+
}
|
278 |
+
|
279 |
+
$formFields['homeurl'] = $this->getConfig()->getHomeUrl();
|
280 |
+
$formFields['catalogurl'] = $this->getConfig()->getHomeUrl();
|
281 |
+
$formFields['accepturl'] = $this->getConfig()->getAcceptUrl();
|
282 |
+
$formFields['declineurl'] = $this->getConfig()->getDeclineUrl();
|
283 |
+
$formFields['exceptionurl'] = $this->getConfig()->getExceptionUrl();
|
284 |
+
$formFields['cancelurl'] = $this->getConfig()->getCancelUrl();
|
285 |
+
|
286 |
+
if ($this->getConfig()->getConfigData('template')=='ogone') {
|
287 |
+
$formFields['TP']= '';
|
288 |
+
$formFields['PMListType'] = $this->getConfig()->getConfigData('pmlist');
|
289 |
+
} else {
|
290 |
+
$formFields['TP']= $this->getConfig()->getPayPageTemplate();
|
291 |
+
}
|
292 |
+
$formFields['TITLE'] = $this->_translate($this->getConfig()->getConfigData('html_title'));
|
293 |
+
$formFields['BGCOLOR'] = $this->getConfig()->getConfigData('bgcolor');
|
294 |
+
$formFields['TXTCOLOR'] = $this->getConfig()->getConfigData('txtcolor');
|
295 |
+
$formFields['TBLBGCOLOR'] = $this->getConfig()->getConfigData('tblbgcolor');
|
296 |
+
$formFields['TBLTXTCOLOR'] = $this->getConfig()->getConfigData('tbltxtcolor');
|
297 |
+
$formFields['BUTTONBGCOLOR'] = $this->getConfig()->getConfigData('buttonbgcolor');
|
298 |
+
$formFields['BUTTONTXTCOLOR'] = $this->getConfig()->getConfigData('buttontxtcolor');
|
299 |
+
$formFields['FONTTYPE'] = $this->getConfig()->getConfigData('fonttype');
|
300 |
+
$formFields['LOGO'] = $this->getConfig()->getConfigData('logo');
|
301 |
+
|
302 |
+
$formFields['SHASign'] = $this->getHash($formFields, $this->getConfig()->getShaOutCode(), self::HASH_DIR_OUT,
|
303 |
+
(int)$this->getConfig()->getConfigData('shamode'), $this->getConfig()->getConfigData('hashing_algorithm')
|
304 |
+
);
|
305 |
+
|
306 |
+
return $formFields;
|
307 |
+
}
|
308 |
+
|
309 |
+
/**
|
310 |
+
* Debug specified order fields if needed
|
311 |
+
*
|
312 |
+
* @param Mage_Sales_Model_Order $order
|
313 |
+
*/
|
314 |
+
public function debugOrder(Mage_Sales_Model_Order $order)
|
315 |
+
{
|
316 |
+
if ($this->getDebugFlag()) {
|
317 |
+
$this->debugData(array('request' => $this->getFormFields($order)));
|
318 |
+
}
|
319 |
+
}
|
320 |
+
|
321 |
+
/**
|
322 |
+
* Create hash from provided data
|
323 |
+
*
|
324 |
+
* @param array $data
|
325 |
+
* @param string $passPhrase
|
326 |
+
* @param string $direction
|
327 |
+
* @param bool|int $mapAllParams
|
328 |
+
* @param string $algorithm
|
329 |
+
* @return string
|
330 |
+
* @throws Exception
|
331 |
+
*/
|
332 |
+
public function getHash($data, $passPhrase, $direction, $mapAllParams = false, $algorithm = null)
|
333 |
+
{
|
334 |
+
// pick the right keys map depending on context
|
335 |
+
if (self::HASH_DIR_OUT === $direction) {
|
336 |
+
$hashMap = $mapAllParams ? '_outAllMap' : '_outShortMap';
|
337 |
+
} elseif (self::HASH_DIR_IN === $direction) {
|
338 |
+
$hashMap = $mapAllParams ? '_inAllMap' : '_inShortMap';
|
339 |
+
} else {
|
340 |
+
throw new Exception(sprintf('Unknown hashing context "%s".', $direction));
|
341 |
+
}
|
342 |
+
|
343 |
+
// collect non-empty data that maps and sort it alphabetically by key (uppercase)
|
344 |
+
$collected = array();
|
345 |
+
foreach ($data as $key => $value) {
|
346 |
+
if (null !== $value && '' != $value) {
|
347 |
+
$key = strtoupper($key);
|
348 |
+
if (in_array($key, self::$$hashMap)) {
|
349 |
+
$collected[$key] = $value;
|
350 |
+
}
|
351 |
+
}
|
352 |
+
}
|
353 |
+
ksort($collected);
|
354 |
+
|
355 |
+
if ($mapAllParams) {
|
356 |
+
$nonHashed = $this->_concatenateAdvanced($collected, $passPhrase);
|
357 |
+
if (empty($algorithm) || !in_array($algorithm, $this->getHashingAlgorithms(false))) {
|
358 |
+
$algorithm = self::HASH_SHA256;
|
359 |
+
}
|
360 |
+
} else {
|
361 |
+
$nonHashed = $this->_concatenateBasic($collected, $passPhrase, $hashMap);
|
362 |
+
$algorithm = self::HASH_SHA1;
|
363 |
+
}
|
364 |
+
return strtoupper(hash($algorithm, $nonHashed));
|
365 |
+
}
|
366 |
+
|
367 |
+
/**
|
368 |
+
* Get supported hashing algorithms as array
|
369 |
+
*
|
370 |
+
* @param bool $withLabels
|
371 |
+
* @return array
|
372 |
+
*/
|
373 |
+
public function getHashingAlgorithms($withLabels = true)
|
374 |
+
{
|
375 |
+
if ($withLabels) {
|
376 |
+
return array(self::HASH_SHA1 => 'SHA-1', self::HASH_SHA256 => 'SHA-256', self::HASH_SHA512 => 'SHA-512');
|
377 |
+
}
|
378 |
+
return array(self::HASH_SHA1, self::HASH_SHA256, self::HASH_SHA512);
|
379 |
+
}
|
380 |
+
|
381 |
+
/**
|
382 |
+
* to translate UTF 8 to ISO 8859-1
|
383 |
+
* Ogone system is only compatible with iso-8859-1 and does not (yet) fully support the utf-8
|
384 |
+
*/
|
385 |
+
protected function _translate($text)
|
386 |
+
{
|
387 |
+
return htmlentities(iconv("UTF-8", "ISO-8859-1", $text));
|
388 |
+
}
|
389 |
+
|
390 |
+
/**
|
391 |
+
* Get Ogone Payment Action value
|
392 |
+
*
|
393 |
+
* @param string
|
394 |
+
* @return string
|
395 |
+
*/
|
396 |
+
protected function _getOgonePaymentOperation()
|
397 |
+
{
|
398 |
+
$value = $this->getPaymentAction();
|
399 |
+
if ($value==Mage_Payment_Model_Method_Abstract::ACTION_AUTHORIZE) {
|
400 |
+
$value = Mage_Ogone_Model_Api::OGONE_AUTHORIZE_ACTION;
|
401 |
+
} elseif ($value==Mage_Payment_Model_Method_Abstract::ACTION_AUTHORIZE_CAPTURE) {
|
402 |
+
$value = Mage_Ogone_Model_Api::OGONE_AUTHORIZE_CAPTURE_ACTION;
|
403 |
+
}
|
404 |
+
return $value;
|
405 |
+
}
|
406 |
+
|
407 |
+
/**
|
408 |
+
* get formated order description
|
409 |
+
*
|
410 |
+
* @param Mage_Sales_Model_Order
|
411 |
+
* @return string
|
412 |
+
*/
|
413 |
+
protected function _getOrderDescription($order)
|
414 |
+
{
|
415 |
+
$invoiceDesc = '';
|
416 |
+
$lengs = 0;
|
417 |
+
foreach ($order->getAllItems() as $item) {
|
418 |
+
if ($item->getParentItem()) {
|
419 |
+
continue;
|
420 |
+
}
|
421 |
+
//COM filed can only handle max 100
|
422 |
+
if (Mage::helper('core/string')->strlen($invoiceDesc.$item->getName()) > 100) {
|
423 |
+
break;
|
424 |
+
}
|
425 |
+
$invoiceDesc .= $item->getName() . ', ';
|
426 |
+
}
|
427 |
+
return Mage::helper('core/string')->substr($invoiceDesc, 0, -2);
|
428 |
+
}
|
429 |
+
|
430 |
+
/**
|
431 |
+
* Define if debugging is enabled
|
432 |
+
*
|
433 |
+
* @return bool
|
434 |
+
*/
|
435 |
+
public function getDebugFlag()
|
436 |
+
{
|
437 |
+
return $this->getConfigData('debug_flag');
|
438 |
+
}
|
439 |
+
|
440 |
+
/**
|
441 |
+
* Transform collected data array to <value1><value2><...><passPhrase> according to the provided map
|
442 |
+
*
|
443 |
+
* @param array $data
|
444 |
+
* @param string $passPhrase
|
445 |
+
* @param string $hashMap
|
446 |
+
* @return string
|
447 |
+
*/
|
448 |
+
protected function _concatenateBasic($data, $passPhrase, $hashMap)
|
449 |
+
{
|
450 |
+
$result = '';
|
451 |
+
foreach (self::$$hashMap as $key) {
|
452 |
+
if (isset($data[$key])) {
|
453 |
+
$result .= $data[$key];
|
454 |
+
}
|
455 |
+
}
|
456 |
+
return $result . $passPhrase;
|
457 |
+
}
|
458 |
+
|
459 |
+
/**
|
460 |
+
* Transform collected data array to <KEY>=<value><passPhrase>
|
461 |
+
*
|
462 |
+
* @param array $data
|
463 |
+
* @param string $passPhrase
|
464 |
+
* @return string
|
465 |
+
*/
|
466 |
+
protected function _concatenateAdvanced($data, $passPhrase)
|
467 |
+
{
|
468 |
+
$result = '';
|
469 |
+
foreach ($data as $key => $value) {
|
470 |
+
$result .= "{$key}={$value}{$passPhrase}";
|
471 |
+
}
|
472 |
+
return $result;
|
473 |
+
}
|
474 |
+
}
|
app/code/core/Mage/Ogone/Model/Api/Debug.php
ADDED
@@ -0,0 +1,42 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
<?php
|
2 |
+
/**
|
3 |
+
* Magento
|
4 |
+
*
|
5 |
+
* NOTICE OF LICENSE
|
6 |
+
*
|
7 |
+
* This source file is subject to the Open Software License (OSL 3.0)
|
8 |
+
* that is bundled with this package in the file LICENSE.txt.
|
9 |
+
* It is also available through the world-wide-web at this URL:
|
10 |
+
* http://opensource.org/licenses/osl-3.0.php
|
11 |
+
* If you did not receive a copy of the license and are unable to
|
12 |
+
* obtain it through the world-wide-web, please send an email
|
13 |
+
* to license@magentocommerce.com so we can send you a copy immediately.
|
14 |
+
*
|
15 |
+
* DISCLAIMER
|
16 |
+
*
|
17 |
+
* Do not edit or add to this file if you wish to upgrade Magento to newer
|
18 |
+
* versions in the future. If you wish to customize Magento for your
|
19 |
+
* needs please refer to http://www.magentocommerce.com for more information.
|
20 |
+
*
|
21 |
+
* @category Mage
|
22 |
+
* @package Mage_Ogone
|
23 |
+
* @copyright Copyright (c) 2012 Magento Inc. (http://www.magentocommerce.com)
|
24 |
+
* @license http://opensource.org/licenses/osl-3.0.php Open Software License (OSL 3.0)
|
25 |
+
*/
|
26 |
+
|
27 |
+
/**
|
28 |
+
* Ogone debug model
|
29 |
+
*
|
30 |
+
* @deprecated - used core/log_adapter for debugging
|
31 |
+
*/
|
32 |
+
class Mage_Ogone_Model_Api_Debug extends Mage_Core_Model_Abstract
|
33 |
+
{
|
34 |
+
/**
|
35 |
+
* Init ogone debug model
|
36 |
+
*
|
37 |
+
*/
|
38 |
+
protected function _construct()
|
39 |
+
{
|
40 |
+
$this->_init('ogone/api_debug');
|
41 |
+
}
|
42 |
+
}
|
app/code/core/Mage/Ogone/Model/Config.php
ADDED
@@ -0,0 +1,151 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
<?php
|
2 |
+
/**
|
3 |
+
* Magento
|
4 |
+
*
|
5 |
+
* NOTICE OF LICENSE
|
6 |
+
*
|
7 |
+
* This source file is subject to the Open Software License (OSL 3.0)
|
8 |
+
* that is bundled with this package in the file LICENSE.txt.
|
9 |
+
* It is also available through the world-wide-web at this URL:
|
10 |
+
* http://opensource.org/licenses/osl-3.0.php
|
11 |
+
* If you did not receive a copy of the license and are unable to
|
12 |
+
* obtain it through the world-wide-web, please send an email
|
13 |
+
* to license@magentocommerce.com so we can send you a copy immediately.
|
14 |
+
*
|
15 |
+
* DISCLAIMER
|
16 |
+
*
|
17 |
+
* Do not edit or add to this file if you wish to upgrade Magento to newer
|
18 |
+
* versions in the future. If you wish to customize Magento for your
|
19 |
+
* needs please refer to http://www.magentocommerce.com for more information.
|
20 |
+
*
|
21 |
+
* @category Mage
|
22 |
+
* @package Mage_Ogone
|
23 |
+
* @copyright Copyright (c) 2012 Magento Inc. (http://www.magentocommerce.com)
|
24 |
+
* @license http://opensource.org/licenses/osl-3.0.php Open Software License (OSL 3.0)
|
25 |
+
*/
|
26 |
+
|
27 |
+
/**
|
28 |
+
* Config model
|
29 |
+
*/
|
30 |
+
class Mage_Ogone_Model_Config extends Mage_Payment_Model_Config
|
31 |
+
{
|
32 |
+
const OGONE_PAYMENT_PATH = 'payment/ogone/';
|
33 |
+
|
34 |
+
/**
|
35 |
+
* Return ogone payment config information
|
36 |
+
*
|
37 |
+
* @param string $path
|
38 |
+
* @param int $storeId
|
39 |
+
* @return Simple_Xml
|
40 |
+
*/
|
41 |
+
public function getConfigData($path, $storeId=null)
|
42 |
+
{
|
43 |
+
if (!empty($path)) {
|
44 |
+
return Mage::getStoreConfig(self::OGONE_PAYMENT_PATH . $path, $storeId);
|
45 |
+
}
|
46 |
+
return false;
|
47 |
+
}
|
48 |
+
|
49 |
+
/**
|
50 |
+
* Return SHA1-in crypt key from config. Setup on admin place.
|
51 |
+
*
|
52 |
+
* @param int $storeId
|
53 |
+
* @return string
|
54 |
+
*/
|
55 |
+
public function getShaInCode($storeId=null)
|
56 |
+
{
|
57 |
+
return Mage::helper('core')->decrypt($this->getConfigData('secret_key_in', $storeId));
|
58 |
+
}
|
59 |
+
|
60 |
+
/**
|
61 |
+
* Return SHA1-out crypt key from config. Setup on admin place.
|
62 |
+
* @param int $storeId
|
63 |
+
* @return string
|
64 |
+
*/
|
65 |
+
public function getShaOutCode($storeId=null)
|
66 |
+
{
|
67 |
+
return Mage::helper('core')->decrypt($this->getConfigData('secret_key_out', $storeId));
|
68 |
+
}
|
69 |
+
|
70 |
+
/**
|
71 |
+
* Return gateway path, get from confing. Setup on admin place.
|
72 |
+
*
|
73 |
+
* @param int $storeId
|
74 |
+
* @return string
|
75 |
+
*/
|
76 |
+
public function getGatewayPath($storeId=null)
|
77 |
+
{
|
78 |
+
return $this->getConfigData('ogone_gateway', $storeId);
|
79 |
+
}
|
80 |
+
|
81 |
+
/**
|
82 |
+
* Get PSPID, affiliation name in ogone system
|
83 |
+
*
|
84 |
+
* @param int $storeId
|
85 |
+
* @return string
|
86 |
+
*/
|
87 |
+
public function getPSPID($storeId=null)
|
88 |
+
{
|
89 |
+
return $this->getConfigData('pspid', $storeId);
|
90 |
+
}
|
91 |
+
|
92 |
+
/**
|
93 |
+
* Get paypage template for magento style templates using
|
94 |
+
*
|
95 |
+
* @return string
|
96 |
+
*/
|
97 |
+
public function getPayPageTemplate()
|
98 |
+
{
|
99 |
+
return Mage::getUrl('ogone/api/paypage', array('_nosid' => true));
|
100 |
+
}
|
101 |
+
|
102 |
+
/**
|
103 |
+
* Return url which ogone system will use as accept
|
104 |
+
*
|
105 |
+
* @return string
|
106 |
+
*/
|
107 |
+
public function getAcceptUrl()
|
108 |
+
{
|
109 |
+
return Mage::getUrl('ogone/api/accept', array('_nosid' => true));
|
110 |
+
}
|
111 |
+
|
112 |
+
/**
|
113 |
+
* Return url which ogone system will use as decline url
|
114 |
+
*
|
115 |
+
* @return string
|
116 |
+
*/
|
117 |
+
public function getDeclineUrl()
|
118 |
+
{
|
119 |
+
return Mage::getUrl('ogone/api/decline', array('_nosid' => true));
|
120 |
+
}
|
121 |
+
|
122 |
+
/**
|
123 |
+
* Return url which ogone system will use as exception url
|
124 |
+
*
|
125 |
+
* @return string
|
126 |
+
*/
|
127 |
+
public function getExceptionUrl()
|
128 |
+
{
|
129 |
+
return Mage::getUrl('ogone/api/exception', array('_nosid' => true));
|
130 |
+
}
|
131 |
+
|
132 |
+
/**
|
133 |
+
* Return url which ogone system will use as cancel url
|
134 |
+
*
|
135 |
+
* @return string
|
136 |
+
*/
|
137 |
+
public function getCancelUrl()
|
138 |
+
{
|
139 |
+
return Mage::getUrl('ogone/api/cancel', array('_nosid' => true));
|
140 |
+
}
|
141 |
+
|
142 |
+
/**
|
143 |
+
* Return url which ogone system will use as our magento home url on ogone success page
|
144 |
+
*
|
145 |
+
* @return string
|
146 |
+
*/
|
147 |
+
public function getHomeUrl()
|
148 |
+
{
|
149 |
+
return Mage::getUrl('checkout/cart', array('_nosid' => true));
|
150 |
+
}
|
151 |
+
}
|
app/code/core/Mage/Ogone/Model/Mysql4/Api/Debug.php
ADDED
@@ -0,0 +1,42 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
<?php
|
2 |
+
/**
|
3 |
+
* Magento
|
4 |
+
*
|
5 |
+
* NOTICE OF LICENSE
|
6 |
+
*
|
7 |
+
* This source file is subject to the Open Software License (OSL 3.0)
|
8 |
+
* that is bundled with this package in the file LICENSE.txt.
|
9 |
+
* It is also available through the world-wide-web at this URL:
|
10 |
+
* http://opensource.org/licenses/osl-3.0.php
|
11 |
+
* If you did not receive a copy of the license and are unable to
|
12 |
+
* obtain it through the world-wide-web, please send an email
|
13 |
+
* to license@magentocommerce.com so we can send you a copy immediately.
|
14 |
+
*
|
15 |
+
* DISCLAIMER
|
16 |
+
*
|
17 |
+
* Do not edit or add to this file if you wish to upgrade Magento to newer
|
18 |
+
* versions in the future. If you wish to customize Magento for your
|
19 |
+
* needs please refer to http://www.magentocommerce.com for more information.
|
20 |
+
*
|
21 |
+
* @category Mage
|
22 |
+
* @package Mage_Ogone
|
23 |
+
* @copyright Copyright (c) 2012 Magento Inc. (http://www.magentocommerce.com)
|
24 |
+
* @license http://opensource.org/licenses/osl-3.0.php Open Software License (OSL 3.0)
|
25 |
+
*/
|
26 |
+
|
27 |
+
/**
|
28 |
+
* Ogone Debug
|
29 |
+
*
|
30 |
+
* @deprecated - used core/log_adapter for debugging
|
31 |
+
*/
|
32 |
+
class Mage_Ogone_Model_Mysql4_Api_Debug extends Mage_Core_Model_Mysql4_Abstract
|
33 |
+
{
|
34 |
+
/**
|
35 |
+
* Init ogone debug resource model
|
36 |
+
*
|
37 |
+
*/
|
38 |
+
protected function _construct()
|
39 |
+
{
|
40 |
+
$this->_init('ogone/api_debug', 'debug_id');
|
41 |
+
}
|
42 |
+
}
|
app/code/core/Mage/Ogone/Model/Source/PaymentAction.php
ADDED
@@ -0,0 +1,45 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
<?php
|
2 |
+
/**
|
3 |
+
* Magento
|
4 |
+
*
|
5 |
+
* NOTICE OF LICENSE
|
6 |
+
*
|
7 |
+
* This source file is subject to the Open Software License (OSL 3.0)
|
8 |
+
* that is bundled with this package in the file LICENSE.txt.
|
9 |
+
* It is also available through the world-wide-web at this URL:
|
10 |
+
* http://opensource.org/licenses/osl-3.0.php
|
11 |
+
* If you did not receive a copy of the license and are unable to
|
12 |
+
* obtain it through the world-wide-web, please send an email
|
13 |
+
* to license@magentocommerce.com so we can send you a copy immediately.
|
14 |
+
*
|
15 |
+
* DISCLAIMER
|
16 |
+
*
|
17 |
+
* Do not edit or add to this file if you wish to upgrade Magento to newer
|
18 |
+
* versions in the future. If you wish to customize Magento for your
|
19 |
+
* needs please refer to http://www.magentocommerce.com for more information.
|
20 |
+
*
|
21 |
+
* @category Mage
|
22 |
+
* @package Mage_Ogone
|
23 |
+
* @copyright Copyright (c) 2012 Magento Inc. (http://www.magentocommerce.com)
|
24 |
+
* @license http://opensource.org/licenses/osl-3.0.php Open Software License (OSL 3.0)
|
25 |
+
*/
|
26 |
+
|
27 |
+
/**
|
28 |
+
* Ogone Payment Action Dropdown source
|
29 |
+
*/
|
30 |
+
class Mage_Ogone_Model_Source_PaymentAction
|
31 |
+
{
|
32 |
+
/**
|
33 |
+
* Prepare payment action list as optional array
|
34 |
+
*
|
35 |
+
* @return array
|
36 |
+
*/
|
37 |
+
public function toOptionArray()
|
38 |
+
{
|
39 |
+
return array(
|
40 |
+
array('value' => '', 'label' => Mage::helper('ogone')->__('Ogone Default Operation')),
|
41 |
+
array('value' => Mage_Payment_Model_Method_Abstract::ACTION_AUTHORIZE, 'label' => Mage::helper('ogone')->__('Authorization')),
|
42 |
+
array('value' => Mage_Payment_Model_Method_Abstract::ACTION_AUTHORIZE_CAPTURE, 'label' => Mage::helper('ogone')->__('Direct Sale')),
|
43 |
+
);
|
44 |
+
}
|
45 |
+
}
|
app/code/core/Mage/Ogone/Model/Source/Pmlist.php
ADDED
@@ -0,0 +1,45 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
<?php
|
2 |
+
/**
|
3 |
+
* Magento
|
4 |
+
*
|
5 |
+
* NOTICE OF LICENSE
|
6 |
+
*
|
7 |
+
* This source file is subject to the Open Software License (OSL 3.0)
|
8 |
+
* that is bundled with this package in the file LICENSE.txt.
|
9 |
+
* It is also available through the world-wide-web at this URL:
|
10 |
+
* http://opensource.org/licenses/osl-3.0.php
|
11 |
+
* If you did not receive a copy of the license and are unable to
|
12 |
+
* obtain it through the world-wide-web, please send an email
|
13 |
+
* to license@magentocommerce.com so we can send you a copy immediately.
|
14 |
+
*
|
15 |
+
* DISCLAIMER
|
16 |
+
*
|
17 |
+
* Do not edit or add to this file if you wish to upgrade Magento to newer
|
18 |
+
* versions in the future. If you wish to customize Magento for your
|
19 |
+
* needs please refer to http://www.magentocommerce.com for more information.
|
20 |
+
*
|
21 |
+
* @category Mage
|
22 |
+
* @package Mage_Ogone
|
23 |
+
* @copyright Copyright (c) 2012 Magento Inc. (http://www.magentocommerce.com)
|
24 |
+
* @license http://opensource.org/licenses/osl-3.0.php Open Software License (OSL 3.0)
|
25 |
+
*/
|
26 |
+
|
27 |
+
/**
|
28 |
+
* Ogone template Action Dropdown source
|
29 |
+
*/
|
30 |
+
class Mage_Ogone_Model_Source_Pmlist
|
31 |
+
{
|
32 |
+
/**
|
33 |
+
* Prepare ogone payment block layout as option array
|
34 |
+
*
|
35 |
+
* @return array
|
36 |
+
*/
|
37 |
+
public function toOptionArray()
|
38 |
+
{
|
39 |
+
return array(
|
40 |
+
array('value' => Mage_Ogone_Model_Api::PMLIST_HORISONTAL_LEFT, 'label' => Mage::helper('ogone')->__('Horizontally grouped logo with group name on left')),
|
41 |
+
array('value' => Mage_Ogone_Model_Api::PMLIST_HORISONTAL, 'label' => Mage::helper('ogone')->__('Horizontally grouped logo with no group name')),
|
42 |
+
array('value' => Mage_Ogone_Model_Api::PMLIST_VERTICAL, 'label' => Mage::helper('ogone')->__('Verical list')),
|
43 |
+
);
|
44 |
+
}
|
45 |
+
}
|
app/code/core/Mage/Ogone/Model/Source/Template.php
ADDED
@@ -0,0 +1,44 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
<?php
|
2 |
+
/**
|
3 |
+
* Magento
|
4 |
+
*
|
5 |
+
* NOTICE OF LICENSE
|
6 |
+
*
|
7 |
+
* This source file is subject to the Open Software License (OSL 3.0)
|
8 |
+
* that is bundled with this package in the file LICENSE.txt.
|
9 |
+
* It is also available through the world-wide-web at this URL:
|
10 |
+
* http://opensource.org/licenses/osl-3.0.php
|
11 |
+
* If you did not receive a copy of the license and are unable to
|
12 |
+
* obtain it through the world-wide-web, please send an email
|
13 |
+
* to license@magentocommerce.com so we can send you a copy immediately.
|
14 |
+
*
|
15 |
+
* DISCLAIMER
|
16 |
+
*
|
17 |
+
* Do not edit or add to this file if you wish to upgrade Magento to newer
|
18 |
+
* versions in the future. If you wish to customize Magento for your
|
19 |
+
* needs please refer to http://www.magentocommerce.com for more information.
|
20 |
+
*
|
21 |
+
* @category Mage
|
22 |
+
* @package Mage_Ogone
|
23 |
+
* @copyright Copyright (c) 2012 Magento Inc. (http://www.magentocommerce.com)
|
24 |
+
* @license http://opensource.org/licenses/osl-3.0.php Open Software License (OSL 3.0)
|
25 |
+
*/
|
26 |
+
|
27 |
+
/**
|
28 |
+
* Ogone template Action Dropdown source
|
29 |
+
*/
|
30 |
+
class Mage_Ogone_Model_Source_Template
|
31 |
+
{
|
32 |
+
/**
|
33 |
+
* Prepare ogone template mode list as option array
|
34 |
+
*
|
35 |
+
* @return array
|
36 |
+
*/
|
37 |
+
public function toOptionArray()
|
38 |
+
{
|
39 |
+
return array(
|
40 |
+
array('value' => Mage_Ogone_Model_Api::TEMPLATE_OGONE, 'label' => Mage::helper('ogone')->__('Ogone')),
|
41 |
+
array('value' => Mage_Ogone_Model_Api::TEMPLATE_MAGENTO, 'label' => Mage::helper('ogone')->__('Magento')),
|
42 |
+
);
|
43 |
+
}
|
44 |
+
}
|
app/code/core/Mage/Ogone/controllers/ApiController.php
ADDED
@@ -0,0 +1,536 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
<?php
|
2 |
+
/**
|
3 |
+
* Magento
|
4 |
+
*
|
5 |
+
* NOTICE OF LICENSE
|
6 |
+
*
|
7 |
+
* This source file is subject to the Open Software License (OSL 3.0)
|
8 |
+
* that is bundled with this package in the file LICENSE.txt.
|
9 |
+
* It is also available through the world-wide-web at this URL:
|
10 |
+
* http://opensource.org/licenses/osl-3.0.php
|
11 |
+
* If you did not receive a copy of the license and are unable to
|
12 |
+
* obtain it through the world-wide-web, please send an email
|
13 |
+
* to license@magentocommerce.com so we can send you a copy immediately.
|
14 |
+
*
|
15 |
+
* DISCLAIMER
|
16 |
+
*
|
17 |
+
* Do not edit or add to this file if you wish to upgrade Magento to newer
|
18 |
+
* versions in the future. If you wish to customize Magento for your
|
19 |
+
* needs please refer to http://www.magentocommerce.com for more information.
|
20 |
+
*
|
21 |
+
* @category Mage
|
22 |
+
* @package Mage_Ogone
|
23 |
+
* @copyright Copyright (c) 2012 Magento Inc. (http://www.magentocommerce.com)
|
24 |
+
* @license http://opensource.org/licenses/osl-3.0.php Open Software License (OSL 3.0)
|
25 |
+
*/
|
26 |
+
|
27 |
+
/**
|
28 |
+
* Ogone Api Controller
|
29 |
+
*/
|
30 |
+
class Mage_Ogone_ApiController extends Mage_Core_Controller_Front_Action
|
31 |
+
{
|
32 |
+
/**
|
33 |
+
* Order instance
|
34 |
+
*/
|
35 |
+
protected $_order;
|
36 |
+
|
37 |
+
/**
|
38 |
+
* Get checkout session namespace
|
39 |
+
*
|
40 |
+
* @return Mage_Checkout_Model_Session
|
41 |
+
*/
|
42 |
+
protected function _getCheckout()
|
43 |
+
{
|
44 |
+
return Mage::getSingleton('checkout/session');
|
45 |
+
}
|
46 |
+
|
47 |
+
/**
|
48 |
+
* Get singleton with Checkout by Ogone Api
|
49 |
+
*
|
50 |
+
* @return Mage_Ogone_Model_Api
|
51 |
+
*/
|
52 |
+
protected function _getApi()
|
53 |
+
{
|
54 |
+
return Mage::getSingleton('ogone/api');
|
55 |
+
}
|
56 |
+
|
57 |
+
/**
|
58 |
+
* Return order instance loaded by increment id'
|
59 |
+
*
|
60 |
+
* @return Mage_Sales_Model_Order
|
61 |
+
*/
|
62 |
+
protected function _getOrder()
|
63 |
+
{
|
64 |
+
if (empty($this->_order)) {
|
65 |
+
$orderId = $this->getRequest()->getParam('orderID');
|
66 |
+
$this->_order = Mage::getModel('sales/order');
|
67 |
+
$this->_order->loadByIncrementId($orderId);
|
68 |
+
}
|
69 |
+
return $this->_order;
|
70 |
+
}
|
71 |
+
|
72 |
+
/**
|
73 |
+
* Validation of incoming Ogone data
|
74 |
+
*
|
75 |
+
* @return bool
|
76 |
+
*/
|
77 |
+
protected function _validateOgoneData()
|
78 |
+
{
|
79 |
+
$params = $this->getRequest()->getParams();
|
80 |
+
$api = $this->_getApi();
|
81 |
+
$api->debugData(array('result' => $params));
|
82 |
+
|
83 |
+
$hashValidationResult = false;
|
84 |
+
if ($api->getConfig()->getShaInCode()) {
|
85 |
+
$referenceHash = $api->getHash(
|
86 |
+
$params,
|
87 |
+
$api->getConfig()->getShaInCode(),
|
88 |
+
Mage_Ogone_Model_Api::HASH_DIR_IN,
|
89 |
+
(int)$api->getConfig()->getConfigData('shamode'),
|
90 |
+
$api->getConfig()->getConfigData('hashing_algorithm')
|
91 |
+
);
|
92 |
+
if ($params['SHASIGN'] == $referenceHash) {
|
93 |
+
$hashValidationResult = true;
|
94 |
+
}
|
95 |
+
}
|
96 |
+
|
97 |
+
if (!$hashValidationResult) {
|
98 |
+
$this->_getCheckout()->addError($this->__('The hash is not valid'));
|
99 |
+
return false;
|
100 |
+
}
|
101 |
+
|
102 |
+
$order = $this->_getOrder();
|
103 |
+
if (!$order->getId()){
|
104 |
+
$this->_getCheckout()->addError($this->__('The order is not valid'));
|
105 |
+
return false;
|
106 |
+
}
|
107 |
+
|
108 |
+
return true;
|
109 |
+
}
|
110 |
+
|
111 |
+
/**
|
112 |
+
* Load place from layout to make POST on ogone
|
113 |
+
*/
|
114 |
+
public function placeformAction()
|
115 |
+
{
|
116 |
+
$lastIncrementId = $this->_getCheckout()->getLastRealOrderId();
|
117 |
+
if ($lastIncrementId) {
|
118 |
+
$order = Mage::getModel('sales/order');
|
119 |
+
$order->loadByIncrementId($lastIncrementId);
|
120 |
+
if ($order->getId()) {
|
121 |
+
$order->setState(
|
122 |
+
Mage_Sales_Model_Order::STATE_PENDING_PAYMENT,
|
123 |
+
Mage_Ogone_Model_Api::PENDING_OGONE_STATUS,
|
124 |
+
Mage::helper('ogone')->__('Start Ogone Processing')
|
125 |
+
);
|
126 |
+
$order->save();
|
127 |
+
|
128 |
+
$this->_getApi()->debugOrder($order);
|
129 |
+
}
|
130 |
+
}
|
131 |
+
|
132 |
+
$this->_getCheckout()->getQuote()->setIsActive(false)->save();
|
133 |
+
$this->_getCheckout()->setOgoneQuoteId($this->_getCheckout()->getQuoteId());
|
134 |
+
$this->_getCheckout()->setOgoneLastSuccessQuoteId($this->_getCheckout()->getLastSuccessQuoteId());
|
135 |
+
$this->_getCheckout()->clear();
|
136 |
+
|
137 |
+
$this->loadLayout();
|
138 |
+
$this->renderLayout();
|
139 |
+
}
|
140 |
+
|
141 |
+
/**
|
142 |
+
* Display our pay page, need to ogone payment with external pay page mode
|
143 |
+
*/
|
144 |
+
public function paypageAction()
|
145 |
+
{
|
146 |
+
$this->loadLayout();
|
147 |
+
$this->renderLayout();
|
148 |
+
}
|
149 |
+
|
150 |
+
/**
|
151 |
+
* Action to control postback data from ogone
|
152 |
+
*
|
153 |
+
*/
|
154 |
+
public function postBackAction()
|
155 |
+
{
|
156 |
+
if (!$this->_validateOgoneData()) {
|
157 |
+
$this->getResponse()->setHeader("Status", "404 Not Found");
|
158 |
+
return false;
|
159 |
+
}
|
160 |
+
|
161 |
+
$this->_ogoneProcess();
|
162 |
+
}
|
163 |
+
|
164 |
+
/**
|
165 |
+
* Action to process ogone offline data
|
166 |
+
*
|
167 |
+
*/
|
168 |
+
public function offlineProcessAction()
|
169 |
+
{
|
170 |
+
if (!$this->_validateOgoneData()) {
|
171 |
+
$this->getResponse()->setHeader("Status","404 Not Found");
|
172 |
+
return false;
|
173 |
+
}
|
174 |
+
$this->_ogoneProcess();
|
175 |
+
}
|
176 |
+
|
177 |
+
/**
|
178 |
+
* Made offline ogone data processing, depending of incoming statuses
|
179 |
+
*/
|
180 |
+
protected function _ogoneProcess()
|
181 |
+
{
|
182 |
+
$status = $this->getRequest()->getParam('STATUS');
|
183 |
+
switch ($status) {
|
184 |
+
case Mage_Ogone_Model_Api::OGONE_AUTHORIZED :
|
185 |
+
case Mage_Ogone_Model_Api::OGONE_AUTH_PROCESSING:
|
186 |
+
case Mage_Ogone_Model_Api::OGONE_PAYMENT_REQUESTED_STATUS :
|
187 |
+
$this->_acceptProcess();
|
188 |
+
break;
|
189 |
+
case Mage_Ogone_Model_Api::OGONE_AUTH_REFUZED:
|
190 |
+
case Mage_Ogone_Model_Api::OGONE_PAYMENT_INCOMPLETE:
|
191 |
+
case Mage_Ogone_Model_Api::OGONE_TECH_PROBLEM:
|
192 |
+
$this->_declineProcess();
|
193 |
+
break;
|
194 |
+
case Mage_Ogone_Model_Api::OGONE_AUTH_UKNKOWN_STATUS:
|
195 |
+
case Mage_Ogone_Model_Api::OGONE_PAYMENT_UNCERTAIN_STATUS:
|
196 |
+
$this->_exceptionProcess();
|
197 |
+
break;
|
198 |
+
default:
|
199 |
+
//all unknown transaction will accept as exceptional
|
200 |
+
$this->_exceptionProcess();
|
201 |
+
}
|
202 |
+
}
|
203 |
+
|
204 |
+
/**
|
205 |
+
* when payment gateway accept the payment, it will land to here
|
206 |
+
* need to change order status as processed ogone
|
207 |
+
* update transaction id
|
208 |
+
*
|
209 |
+
*/
|
210 |
+
public function acceptAction()
|
211 |
+
{
|
212 |
+
if (!$this->_validateOgoneData()) {
|
213 |
+
$this->_redirect('checkout/cart');
|
214 |
+
return;
|
215 |
+
}
|
216 |
+
$this->_ogoneProcess();
|
217 |
+
}
|
218 |
+
|
219 |
+
/**
|
220 |
+
* Process success action by accept url
|
221 |
+
*/
|
222 |
+
protected function _acceptProcess()
|
223 |
+
{
|
224 |
+
$params = $this->getRequest()->getParams();
|
225 |
+
$order = $this->_getOrder();
|
226 |
+
if (!$this->_isOrderValid($order)) {
|
227 |
+
return;
|
228 |
+
}
|
229 |
+
|
230 |
+
$this->_getCheckout()->setLastSuccessQuoteId($order->getQuoteId());
|
231 |
+
|
232 |
+
$this->_prepareCCInfo($order, $params);
|
233 |
+
$order->getPayment()->setTransactionId($params['PAYID']);
|
234 |
+
$order->getPayment()->setLastTransId($params['PAYID']);
|
235 |
+
|
236 |
+
try {
|
237 |
+
$status = $this->getRequest()->getParam('STATUS');
|
238 |
+
switch ($status) {
|
239 |
+
case Mage_Ogone_Model_Api::OGONE_AUTHORIZED:
|
240 |
+
case Mage_Ogone_Model_Api::OGONE_AUTH_PROCESSING:
|
241 |
+
$this->_processAuthorize();
|
242 |
+
break;
|
243 |
+
case Mage_Ogone_Model_Api::OGONE_PAYMENT_REQUESTED_STATUS:
|
244 |
+
$this->_processDirectSale();
|
245 |
+
break;
|
246 |
+
default:
|
247 |
+
throw new Exception (Mage::helper('ogone')->__('Can\'t detect Ogone payment action'));
|
248 |
+
}
|
249 |
+
} catch(Exception $e) {
|
250 |
+
$this->_getCheckout()->addError(Mage::helper('ogone')->__('The order cannot be saved.'));
|
251 |
+
$this->_redirect('checkout/cart');
|
252 |
+
return;
|
253 |
+
}
|
254 |
+
}
|
255 |
+
|
256 |
+
/**
|
257 |
+
* Process Configured Payment Action: Direct Sale, create invoce if state is Pending
|
258 |
+
*
|
259 |
+
*/
|
260 |
+
protected function _processDirectSale()
|
261 |
+
{
|
262 |
+
$order = $this->_getOrder();
|
263 |
+
$status = $this->getRequest()->getParam('STATUS');
|
264 |
+
try{
|
265 |
+
if ($status == Mage_Ogone_Model_Api::OGONE_AUTH_PROCESSING) {
|
266 |
+
$order->setState(
|
267 |
+
Mage_Sales_Model_Order::STATE_PROCESSING,
|
268 |
+
Mage_Ogone_Model_Api::WAITING_AUTHORIZATION,
|
269 |
+
Mage::helper('ogone')->__('Authorization Waiting from Ogone')
|
270 |
+
);
|
271 |
+
$order->save();
|
272 |
+
}elseif ($order->getState()==Mage_Sales_Model_Order::STATE_PENDING_PAYMENT) {
|
273 |
+
if ($status == Mage_Ogone_Model_Api::OGONE_AUTHORIZED) {
|
274 |
+
if ($order->getStatus() != Mage_Sales_Model_Order::STATE_PENDING_PAYMENT) {
|
275 |
+
$order->setState(
|
276 |
+
Mage_Sales_Model_Order::STATE_PROCESSING,
|
277 |
+
Mage_Ogone_Model_Api::PROCESSING_OGONE_STATUS,
|
278 |
+
Mage::helper('ogone')->__('Processed by Ogone')
|
279 |
+
);
|
280 |
+
}
|
281 |
+
} else {
|
282 |
+
$order->setState(
|
283 |
+
Mage_Sales_Model_Order::STATE_PROCESSING,
|
284 |
+
Mage_Ogone_Model_Api::PROCESSED_OGONE_STATUS,
|
285 |
+
Mage::helper('ogone')->__('Processed by Ogone')
|
286 |
+
);
|
287 |
+
}
|
288 |
+
|
289 |
+
if (!$order->getInvoiceCollection()->getSize()) {
|
290 |
+
$invoice = $order->prepareInvoice();
|
291 |
+
$invoice->register();
|
292 |
+
$invoice->setState(Mage_Sales_Model_Order_Invoice::STATE_PAID);
|
293 |
+
$invoice->getOrder()->setIsInProcess(true);
|
294 |
+
|
295 |
+
$transactionSave = Mage::getModel('core/resource_transaction')
|
296 |
+
->addObject($invoice)
|
297 |
+
->addObject($invoice->getOrder())
|
298 |
+
->save();
|
299 |
+
$order->sendNewOrderEmail();
|
300 |
+
}
|
301 |
+
} else {
|
302 |
+
$order->save();
|
303 |
+
}
|
304 |
+
$this->_redirect('checkout/onepage/success');
|
305 |
+
return;
|
306 |
+
} catch (Exception $e) {
|
307 |
+
$this->_getCheckout()->addError(Mage::helper('ogone')->__('Order can\'t save'));
|
308 |
+
$this->_redirect('checkout/cart');
|
309 |
+
return;
|
310 |
+
}
|
311 |
+
}
|
312 |
+
|
313 |
+
/**
|
314 |
+
* Process Configured Payment Actions: Authorized, Default operation
|
315 |
+
* just place order
|
316 |
+
*/
|
317 |
+
protected function _processAuthorize()
|
318 |
+
{
|
319 |
+
$order = $this->_getOrder();
|
320 |
+
$status = $this->getRequest()->getParam('STATUS');
|
321 |
+
try {
|
322 |
+
if ($status == Mage_Ogone_Model_Api::OGONE_AUTH_PROCESSING) {
|
323 |
+
$order->setState(
|
324 |
+
Mage_Sales_Model_Order::STATE_PROCESSING,
|
325 |
+
Mage_Ogone_Model_Api::WAITING_AUTHORIZATION,
|
326 |
+
Mage::helper('ogone')->__('Authorization Waiting from Ogone')
|
327 |
+
);
|
328 |
+
} else {
|
329 |
+
//to send new order email only when state is pending payment
|
330 |
+
if ($order->getState()==Mage_Sales_Model_Order::STATE_PENDING_PAYMENT) {
|
331 |
+
$order->sendNewOrderEmail();
|
332 |
+
}
|
333 |
+
$order->setState(
|
334 |
+
Mage_Sales_Model_Order::STATE_PROCESSING,
|
335 |
+
Mage_Ogone_Model_Api::PROCESSED_OGONE_STATUS,
|
336 |
+
Mage::helper('ogone')->__('Processed by Ogone')
|
337 |
+
);
|
338 |
+
}
|
339 |
+
$order->save();
|
340 |
+
$this->_redirect('checkout/onepage/success');
|
341 |
+
return;
|
342 |
+
} catch(Exception $e) {
|
343 |
+
$this->_getCheckout()->addError(Mage::helper('ogone')->__('Order can\'t save'));
|
344 |
+
$this->_redirect('checkout/cart');
|
345 |
+
return;
|
346 |
+
}
|
347 |
+
}
|
348 |
+
|
349 |
+
/**
|
350 |
+
* We get some CC info from ogone, so we must save it
|
351 |
+
*
|
352 |
+
* @param Mage_Sales_Model_Order $order
|
353 |
+
* @param array $ccInfo
|
354 |
+
*
|
355 |
+
* @return Mage_Ogone_ApiController
|
356 |
+
*/
|
357 |
+
protected function _prepareCCInfo($order, $ccInfo)
|
358 |
+
{
|
359 |
+
$order->getPayment()->setCcOwner($ccInfo['CN']);
|
360 |
+
$order->getPayment()->setCcNumberEnc($ccInfo['CARDNO']);
|
361 |
+
$order->getPayment()->setCcLast4(substr($ccInfo['CARDNO'], -4));
|
362 |
+
$order->getPayment()->setCcExpMonth(substr($ccInfo['ED'], 0, 2));
|
363 |
+
$order->getPayment()->setCcExpYear(substr($ccInfo['ED'], 2, 2));
|
364 |
+
return $this;
|
365 |
+
}
|
366 |
+
|
367 |
+
|
368 |
+
/**
|
369 |
+
* the payment result is uncertain
|
370 |
+
* exception status can be 52 or 92
|
371 |
+
* need to change order status as processing ogone
|
372 |
+
* update transaction id
|
373 |
+
*
|
374 |
+
*/
|
375 |
+
public function exceptionAction()
|
376 |
+
{
|
377 |
+
if (!$this->_validateOgoneData()) {
|
378 |
+
$this->_redirect('checkout/cart');
|
379 |
+
return;
|
380 |
+
}
|
381 |
+
$this->_exceptionProcess();
|
382 |
+
}
|
383 |
+
|
384 |
+
/**
|
385 |
+
* Process exception action by ogone exception url
|
386 |
+
*/
|
387 |
+
public function _exceptionProcess()
|
388 |
+
{
|
389 |
+
$params = $this->getRequest()->getParams();
|
390 |
+
$order = $this->_getOrder();
|
391 |
+
if (!$this->_isOrderValid($order)) {
|
392 |
+
return;
|
393 |
+
}
|
394 |
+
|
395 |
+
$exception = '';
|
396 |
+
switch($params['STATUS']) {
|
397 |
+
case Mage_Ogone_Model_Api::OGONE_PAYMENT_UNCERTAIN_STATUS :
|
398 |
+
$exception = Mage::helper('ogone')->__('Payment uncertain: A technical problem arose during payment process, giving unpredictable result');
|
399 |
+
break;
|
400 |
+
case Mage_Ogone_Model_Api::OGONE_AUTH_UKNKOWN_STATUS :
|
401 |
+
$exception = Mage::helper('ogone')->__('Authorization not known: A technical problem arose during authorization process, giving unpredictable result');
|
402 |
+
break;
|
403 |
+
default:
|
404 |
+
$exception = Mage::helper('ogone')->__('Unknown exception');
|
405 |
+
}
|
406 |
+
|
407 |
+
if (!empty($exception)) {
|
408 |
+
try{
|
409 |
+
$this->_getCheckout()->setLastSuccessQuoteId($order->getQuoteId());
|
410 |
+
$this->_prepareCCInfo($order, $params);
|
411 |
+
$order->getPayment()->setLastTransId($params['PAYID']);
|
412 |
+
//to send new order email only when state is pending payment
|
413 |
+
if ($order->getState()==Mage_Sales_Model_Order::STATE_PENDING_PAYMENT) {
|
414 |
+
$order->sendNewOrderEmail();
|
415 |
+
$order->setState(
|
416 |
+
Mage_Sales_Model_Order::STATE_PROCESSING, Mage_Ogone_Model_Api::PROCESSING_OGONE_STATUS,
|
417 |
+
$exception
|
418 |
+
);
|
419 |
+
} else {
|
420 |
+
$order->addStatusToHistory(Mage_Ogone_Model_Api::PROCESSING_OGONE_STATUS, $exception);
|
421 |
+
}
|
422 |
+
$order->save();
|
423 |
+
}catch(Exception $e) {
|
424 |
+
$this->_getCheckout()->addError(Mage::helper('ogone')->__('The order cannot be saved for a system reason.'));
|
425 |
+
}
|
426 |
+
} else {
|
427 |
+
$this->_getCheckout()->addError(Mage::helper('ogone')->__('Exception not defined'));
|
428 |
+
}
|
429 |
+
|
430 |
+
$this->_redirect('checkout/onepage/success');
|
431 |
+
}
|
432 |
+
|
433 |
+
/**
|
434 |
+
* when payment got decline
|
435 |
+
* need to change order status to cancelled
|
436 |
+
* take the user back to shopping cart
|
437 |
+
*
|
438 |
+
*/
|
439 |
+
public function declineAction()
|
440 |
+
{
|
441 |
+
if (!$this->_validateOgoneData()) {
|
442 |
+
$this->_redirect('checkout/cart');
|
443 |
+
return;
|
444 |
+
}
|
445 |
+
$this->_getCheckout()->setQuoteId($this->_getCheckout()->getOgoneQuoteId());
|
446 |
+
$this->_declineProcess();
|
447 |
+
return $this;
|
448 |
+
}
|
449 |
+
|
450 |
+
/**
|
451 |
+
* Process decline action by ogone decline url
|
452 |
+
*/
|
453 |
+
protected function _declineProcess()
|
454 |
+
{
|
455 |
+
$status = Mage_Ogone_Model_Api::DECLINE_OGONE_STATUS;
|
456 |
+
$comment = Mage::helper('ogone')->__('Declined Order on Ogone side.');
|
457 |
+
$this->_getCheckout()->addError(Mage::helper('ogone')->__('Payment transaction has been declined.'));
|
458 |
+
$this->_cancelOrder($status, $comment);
|
459 |
+
}
|
460 |
+
|
461 |
+
/**
|
462 |
+
* when user cancel the payment
|
463 |
+
* change order status to cancelled
|
464 |
+
* need to rediect user to shopping cart
|
465 |
+
*
|
466 |
+
* @return Mage_Ogone_ApiController
|
467 |
+
*/
|
468 |
+
public function cancelAction()
|
469 |
+
{
|
470 |
+
if (!$this->_validateOgoneData()) {
|
471 |
+
$this->_redirect('checkout/cart');
|
472 |
+
return;
|
473 |
+
}
|
474 |
+
$this->_getCheckout()->setQuoteId($this->_getCheckout()->getOgoneQuoteId());
|
475 |
+
$this->_cancelProcess();
|
476 |
+
return $this;
|
477 |
+
}
|
478 |
+
|
479 |
+
/**
|
480 |
+
* Process cancel action by cancel url
|
481 |
+
*
|
482 |
+
* @return Mage_Ogone_ApiController
|
483 |
+
*/
|
484 |
+
public function _cancelProcess()
|
485 |
+
{
|
486 |
+
$status = Mage_Ogone_Model_Api::CANCEL_OGONE_STATUS;
|
487 |
+
$comment = Mage::helper('ogone')->__('The order was canceled on ogone side.');
|
488 |
+
$this->_cancelOrder($status, $comment);
|
489 |
+
return $this;
|
490 |
+
}
|
491 |
+
|
492 |
+
/**
|
493 |
+
* Cancel action, used for decline and cancel processes
|
494 |
+
*
|
495 |
+
* @return Mage_Ogone_ApiController
|
496 |
+
*/
|
497 |
+
protected function _cancelOrder($status, $comment='')
|
498 |
+
{
|
499 |
+
$order = $this->_getOrder();
|
500 |
+
if (!$this->_isOrderValid($order)) {
|
501 |
+
return;
|
502 |
+
}
|
503 |
+
|
504 |
+
try{
|
505 |
+
$order->cancel();
|
506 |
+
$order->setState(Mage_Sales_Model_Order::STATE_CANCELED, $status, $comment);
|
507 |
+
$order->save();
|
508 |
+
}catch(Exception $e) {
|
509 |
+
$this->_getCheckout()->addError(Mage::helper('ogone')->__('The order cannot be canceled for a system reason.'));
|
510 |
+
}
|
511 |
+
|
512 |
+
$this->_redirect('checkout/cart');
|
513 |
+
return $this;
|
514 |
+
}
|
515 |
+
|
516 |
+
/**
|
517 |
+
* Check order payment method
|
518 |
+
*
|
519 |
+
* @param Mage_Sales_Model_Order $order
|
520 |
+
* @return bool
|
521 |
+
*/
|
522 |
+
protected function _isOrderValid($order)
|
523 |
+
{
|
524 |
+
return Mage_Ogone_Model_Api::PAYMENT_CODE == $order->getPayment()->getMethodInstance()->getCode();
|
525 |
+
}
|
526 |
+
|
527 |
+
/**
|
528 |
+
* @deprecated after 1.4.2.0-beta1
|
529 |
+
* @see Mage_Ogone_Model_Api::$_inShortMap
|
530 |
+
* @return string
|
531 |
+
*/
|
532 |
+
protected function _getSHAInSet($params, $key)
|
533 |
+
{
|
534 |
+
return '';
|
535 |
+
}
|
536 |
+
}
|
app/code/core/Mage/Ogone/etc/config.xml
ADDED
@@ -0,0 +1,139 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
<?xml version="1.0"?>
|
2 |
+
<!--
|
3 |
+
/**
|
4 |
+
* Magento
|
5 |
+
*
|
6 |
+
* NOTICE OF LICENSE
|
7 |
+
*
|
8 |
+
* This source file is subject to the Academic Free License (AFL 3.0)
|
9 |
+
* that is bundled with this package in the file LICENSE_AFL.txt.
|
10 |
+
* It is also available through the world-wide-web at this URL:
|
11 |
+
* http://opensource.org/licenses/afl-3.0.php
|
12 |
+
* If you did not receive a copy of the license and are unable to
|
13 |
+
* obtain it through the world-wide-web, please send an email
|
14 |
+
* to license@magentocommerce.com so we can send you a copy immediately.
|
15 |
+
*
|
16 |
+
* DISCLAIMER
|
17 |
+
*
|
18 |
+
* Do not edit or add to this file if you wish to upgrade Magento to newer
|
19 |
+
* versions in the future. If you wish to customize Magento for your
|
20 |
+
* needs please refer to http://www.magentocommerce.com for more information.
|
21 |
+
*
|
22 |
+
* @category Mage
|
23 |
+
* @package Mage_Ogone
|
24 |
+
* @copyright Copyright (c) 2012 Magento Inc. (http://www.magentocommerce.com)
|
25 |
+
* @license http://opensource.org/licenses/afl-3.0.php Academic Free License (AFL 3.0)
|
26 |
+
*/
|
27 |
+
-->
|
28 |
+
<config>
|
29 |
+
<modules>
|
30 |
+
<Mage_Ogone>
|
31 |
+
<version>1.6.0.0</version>
|
32 |
+
</Mage_Ogone>
|
33 |
+
</modules>
|
34 |
+
<global>
|
35 |
+
<models>
|
36 |
+
<ogone>
|
37 |
+
<class>Mage_Ogone_Model</class>
|
38 |
+
<resourceModel>ogone_resource</resourceModel>
|
39 |
+
</ogone>
|
40 |
+
<ogone_resource>
|
41 |
+
<class>Mage_Ogone_Model_Resource</class>
|
42 |
+
<deprecatedNode>ogone_mysql4</deprecatedNode>
|
43 |
+
<entities>
|
44 |
+
<api_debug><table>ogone_api_debug</table></api_debug>
|
45 |
+
</entities>
|
46 |
+
</ogone_resource>
|
47 |
+
</models>
|
48 |
+
<resources>
|
49 |
+
<ogone_setup>
|
50 |
+
<setup>
|
51 |
+
<module>Mage_Ogone</module>
|
52 |
+
</setup>
|
53 |
+
<connection>
|
54 |
+
<use>core_setup</use>
|
55 |
+
</connection>
|
56 |
+
</ogone_setup>
|
57 |
+
<ogone_write>
|
58 |
+
<connection>
|
59 |
+
<use>core_write</use>
|
60 |
+
</connection>
|
61 |
+
</ogone_write>
|
62 |
+
<ogone_read>
|
63 |
+
<connection>
|
64 |
+
<use>core_read</use>
|
65 |
+
</connection>
|
66 |
+
</ogone_read>
|
67 |
+
</resources>
|
68 |
+
<blocks>
|
69 |
+
<ogone>
|
70 |
+
<class>Mage_Ogone_Block</class>
|
71 |
+
</ogone>
|
72 |
+
</blocks>
|
73 |
+
<sales>
|
74 |
+
<order>
|
75 |
+
<statuses>
|
76 |
+
<pending_ogone translate="label"><label>Pending Ogone</label></pending_ogone>
|
77 |
+
<cancel_ogone translate="label"><label>Cancelled Ogone</label></cancel_ogone>
|
78 |
+
<decline_ogone translate="label"><label>Declined Ogone</label></decline_ogone>
|
79 |
+
<processing_ogone translate="label"><label>Processing Ogone Payment</label></processing_ogone>
|
80 |
+
<processed_ogone translate="label"><label>Processed Ogone Payment</label></processed_ogone>
|
81 |
+
<waiting_authorozation translate="label"><label>Waiting Authorization</label></waiting_authorozation>
|
82 |
+
</statuses>
|
83 |
+
<states>
|
84 |
+
<pending_payment>
|
85 |
+
<statuses>
|
86 |
+
<pending_ogone/>
|
87 |
+
</statuses>
|
88 |
+
</pending_payment>
|
89 |
+
<processing>
|
90 |
+
<statuses>
|
91 |
+
<processed_ogone />
|
92 |
+
</statuses>
|
93 |
+
</processing>
|
94 |
+
</states>
|
95 |
+
</order>
|
96 |
+
</sales>
|
97 |
+
</global>
|
98 |
+
<frontend>
|
99 |
+
<layout>
|
100 |
+
<updates>
|
101 |
+
<ogone>
|
102 |
+
<file>ogone.xml</file>
|
103 |
+
</ogone>
|
104 |
+
</updates>
|
105 |
+
</layout>
|
106 |
+
<secure_url>
|
107 |
+
<ogone_api>/ogone/api</ogone_api>
|
108 |
+
</secure_url>
|
109 |
+
<routers>
|
110 |
+
<ogone>
|
111 |
+
<use>standard</use>
|
112 |
+
<args>
|
113 |
+
<module>Mage_Ogone</module>
|
114 |
+
<frontName>ogone</frontName>
|
115 |
+
</args>
|
116 |
+
</ogone>
|
117 |
+
</routers>
|
118 |
+
</frontend>
|
119 |
+
|
120 |
+
<default>
|
121 |
+
<payment>
|
122 |
+
<ogone>
|
123 |
+
<model>ogone/api</model>
|
124 |
+
<title>Ogone</title>
|
125 |
+
<secret_key backend_model="adminhtml/system_config_backend_encrypted"/>
|
126 |
+
<payment_action>authorize</payment_action>
|
127 |
+
<hashing_algorithm>sha256</hashing_algorithm>
|
128 |
+
<template>ogone</template>
|
129 |
+
<ogone_gateway>https://secure.ogone.com/ncol/test/orderstandard.asp</ogone_gateway>
|
130 |
+
<pending_ogone>pending_ogone</pending_ogone>
|
131 |
+
<cancel_ogone>cancel_ogone</cancel_ogone>
|
132 |
+
<decline_ogone>decline_ogone</decline_ogone>
|
133 |
+
<processing_ogone>processing_ogone</processing_ogone>
|
134 |
+
<processed_ogone>processed_ogone</processed_ogone>
|
135 |
+
<waiting_authorozation>waiting_authorozation</waiting_authorozation>
|
136 |
+
</ogone>
|
137 |
+
</payment>
|
138 |
+
</default>
|
139 |
+
</config>
|
app/code/core/Mage/Ogone/etc/system.xml
ADDED
@@ -0,0 +1,249 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
<?xml version="1.0"?>
|
2 |
+
<!--
|
3 |
+
/**
|
4 |
+
* Magento
|
5 |
+
*
|
6 |
+
* NOTICE OF LICENSE
|
7 |
+
*
|
8 |
+
* This source file is subject to the Academic Free License (AFL 3.0)
|
9 |
+
* that is bundled with this package in the file LICENSE_AFL.txt.
|
10 |
+
* It is also available through the world-wide-web at this URL:
|
11 |
+
* http://opensource.org/licenses/afl-3.0.php
|
12 |
+
* If you did not receive a copy of the license and are unable to
|
13 |
+
* obtain it through the world-wide-web, please send an email
|
14 |
+
* to license@magentocommerce.com so we can send you a copy immediately.
|
15 |
+
*
|
16 |
+
* DISCLAIMER
|
17 |
+
*
|
18 |
+
* Do not edit or add to this file if you wish to upgrade Magento to newer
|
19 |
+
* versions in the future. If you wish to customize Magento for your
|
20 |
+
* needs please refer to http://www.magentocommerce.com for more information.
|
21 |
+
*
|
22 |
+
* @category Mage
|
23 |
+
* @package Mage_Ogone
|
24 |
+
* @copyright Copyright (c) 2012 Magento Inc. (http://www.magentocommerce.com)
|
25 |
+
* @license http://opensource.org/licenses/afl-3.0.php Academic Free License (AFL 3.0)
|
26 |
+
*/
|
27 |
+
-->
|
28 |
+
<config>
|
29 |
+
<sections>
|
30 |
+
<payment>
|
31 |
+
<groups>
|
32 |
+
<ogone translate="label,comment" module="ogone">
|
33 |
+
<label>Ogone</label>
|
34 |
+
<comment><![CDATA[<br />
|
35 |
+
<div class="custom-options">
|
36 |
+
<div class="box">
|
37 |
+
<p class="grand-total"><br /><b>Signing up with Ogone</b></p>
|
38 |
+
<p>Please enter the correct post back url and offline processiong url in Ogone configuration</p>
|
39 |
+
<p>post back url example: http://myMagentoStore.com/ogone/api/postBack</p>
|
40 |
+
<p>offline processing url example: http://myMagentoStore.com/ogone/api/offlineProcess</p>
|
41 |
+
</div>
|
42 |
+
</div>
|
43 |
+
]]></comment>
|
44 |
+
<frontend_type>text</frontend_type>
|
45 |
+
<sort_order>800</sort_order>
|
46 |
+
<show_in_default>1</show_in_default>
|
47 |
+
<show_in_website>1</show_in_website>
|
48 |
+
<show_in_store>1</show_in_store>
|
49 |
+
<fields>
|
50 |
+
<active translate="label">
|
51 |
+
<label>Enabled</label>
|
52 |
+
<frontend_type>select</frontend_type>
|
53 |
+
<source_model>adminhtml/system_config_source_yesno</source_model>
|
54 |
+
<sort_order>5</sort_order>
|
55 |
+
<show_in_default>1</show_in_default>
|
56 |
+
<show_in_website>1</show_in_website>
|
57 |
+
<show_in_store>0</show_in_store>
|
58 |
+
</active>
|
59 |
+
<debug_flag translate="label">
|
60 |
+
<label>Debug</label>
|
61 |
+
<frontend_type>select</frontend_type>
|
62 |
+
<source_model>adminhtml/system_config_source_yesno</source_model>
|
63 |
+
<sort_order>10</sort_order>
|
64 |
+
<show_in_default>1</show_in_default>
|
65 |
+
<show_in_website>1</show_in_website>
|
66 |
+
<show_in_store>0</show_in_store>
|
67 |
+
</debug_flag>
|
68 |
+
<title translate="label">
|
69 |
+
<label>Title</label>
|
70 |
+
<frontend_type>text</frontend_type>
|
71 |
+
<sort_order>15</sort_order>
|
72 |
+
<show_in_default>1</show_in_default>
|
73 |
+
<show_in_website>1</show_in_website>
|
74 |
+
<show_in_store>1</show_in_store>
|
75 |
+
</title>
|
76 |
+
<pspid translate="label">
|
77 |
+
<label>PSPID</label>
|
78 |
+
<frontend_type>text</frontend_type>
|
79 |
+
<comment> PSPID is a case sensitive field.</comment>
|
80 |
+
<sort_order>20</sort_order>
|
81 |
+
<show_in_default>1</show_in_default>
|
82 |
+
<show_in_website>1</show_in_website>
|
83 |
+
<show_in_store>0</show_in_store>
|
84 |
+
</pspid>
|
85 |
+
<secret_key_out translate="label comment">
|
86 |
+
<label>SHA-IN Pass Phrase</label>
|
87 |
+
<comment><![CDATA[Use in posting data from Magento to Ogone.<br/>Use in data checking by Ogone before the payment.]]></comment>
|
88 |
+
<backend_model>adminhtml/system_config_backend_encrypted</backend_model>
|
89 |
+
<frontend_type>obscure</frontend_type>
|
90 |
+
<sort_order>25</sort_order>
|
91 |
+
<show_in_default>1</show_in_default>
|
92 |
+
<show_in_website>1</show_in_website>
|
93 |
+
<show_in_store>0</show_in_store>
|
94 |
+
</secret_key_out>
|
95 |
+
<secret_key_in translate="label comment">
|
96 |
+
<label>SHA-OUT Pass Phrase</label>
|
97 |
+
<comment><![CDATA[Use in posting data from Ogone to Magento.<br/>Use in feedback data checking by Magento.]]></comment>
|
98 |
+
<backend_model>adminhtml/system_config_backend_encrypted</backend_model>
|
99 |
+
<frontend_type>obscure</frontend_type>
|
100 |
+
<sort_order>30</sort_order>
|
101 |
+
<show_in_default>1</show_in_default>
|
102 |
+
<show_in_website>1</show_in_website>
|
103 |
+
<show_in_store>0</show_in_store>
|
104 |
+
</secret_key_in>
|
105 |
+
<shamode translate="label comment tooltip">
|
106 |
+
<label>Hash All Parameters</label>
|
107 |
+
<comment><![CDATA[Enabling this feature needs adjusting "Technical information > Global security parameters" on merchant administration.]]></comment>
|
108 |
+
<tooltip><![CDATA[To hash <strong>all parameters</strong>, select the following options in the "Global security parameters" fieldset: <ul><li>Each parameter followed by the pass phrase.</li><li>"Hash algorithm" same as "Hashing Algorithm" below</li><li>UTF-8</li></ul>]]></tooltip>
|
109 |
+
<frontend_type>select</frontend_type>
|
110 |
+
<source_model>adminhtml/system_config_source_yesno</source_model>
|
111 |
+
<sort_order>35</sort_order>
|
112 |
+
<show_in_default>1</show_in_default>
|
113 |
+
<show_in_website>1</show_in_website>
|
114 |
+
<show_in_store>0</show_in_store>
|
115 |
+
</shamode>
|
116 |
+
<hashing_algorithm translate="label">
|
117 |
+
<label>Hashing Algorithm</label>
|
118 |
+
<frontend_type>select</frontend_type>
|
119 |
+
<source_model>ogone/api::getHashingAlgorithms</source_model>
|
120 |
+
<depends><shamode>1</shamode></depends>
|
121 |
+
<sort_order>37</sort_order>
|
122 |
+
<show_in_default>1</show_in_default>
|
123 |
+
<show_in_website>1</show_in_website>
|
124 |
+
<show_in_store>0</show_in_store>
|
125 |
+
</hashing_algorithm>
|
126 |
+
<ogone_gateway translate="label comment">
|
127 |
+
<label>Gateway URL</label>
|
128 |
+
<frontend_type>text</frontend_type>
|
129 |
+
<comment>For production, replace "test" with "prod". Example: https://secure.ogone.com/ncol/prod/orderstandard.asp</comment>
|
130 |
+
<sort_order>40</sort_order>
|
131 |
+
<show_in_default>1</show_in_default>
|
132 |
+
<show_in_website>1</show_in_website>
|
133 |
+
<show_in_store>0</show_in_store>
|
134 |
+
</ogone_gateway>
|
135 |
+
<payment_action translate="label comment">
|
136 |
+
<label>Payment Action</label>
|
137 |
+
<frontend_type>select</frontend_type>
|
138 |
+
<source_model>ogone/source_paymentAction</source_model>
|
139 |
+
<comment>If you choose "No Operation", Ogone will use default payment procedure setup in Ogone configuration.</comment>
|
140 |
+
<sort_order>45</sort_order>
|
141 |
+
<show_in_default>1</show_in_default>
|
142 |
+
<show_in_website>1</show_in_website>
|
143 |
+
<show_in_store>0</show_in_store>
|
144 |
+
</payment_action>
|
145 |
+
<template translate="label comment">
|
146 |
+
<label>Payment Template</label>
|
147 |
+
<frontend_type>select</frontend_type>
|
148 |
+
<source_model>ogone/source_template</source_model>
|
149 |
+
<comment>If you choose "Ogone Template", you will need to fill in all the following fields.</comment>
|
150 |
+
<sort_order>50</sort_order>
|
151 |
+
<show_in_default>1</show_in_default>
|
152 |
+
<show_in_website>1</show_in_website>
|
153 |
+
<show_in_store>0</show_in_store>
|
154 |
+
</template>
|
155 |
+
<html_title translate="label comment">
|
156 |
+
<label>Title of the Ogone Template</label>
|
157 |
+
<frontend_type>text</frontend_type>
|
158 |
+
<sort_order>55</sort_order>
|
159 |
+
<show_in_default>1</show_in_default>
|
160 |
+
<show_in_website>1</show_in_website>
|
161 |
+
<show_in_store>1</show_in_store>
|
162 |
+
</html_title>
|
163 |
+
<bgcolor translate="label comment">
|
164 |
+
<label>Background Color of Ogone Template</label>
|
165 |
+
<frontend_type>text</frontend_type>
|
166 |
+
<comment><![CDATA[E.g: "white".]]></comment>
|
167 |
+
<sort_order>60</sort_order>
|
168 |
+
<show_in_default>1</show_in_default>
|
169 |
+
<show_in_website>1</show_in_website>
|
170 |
+
<show_in_store>1</show_in_store>
|
171 |
+
</bgcolor>
|
172 |
+
<txtcolor translate="label comment">
|
173 |
+
<label>Text Color of the Ogone Template</label>
|
174 |
+
<frontend_type>text</frontend_type>
|
175 |
+
<comment><![CDATA[E.g: "black".]]></comment>
|
176 |
+
<sort_order>65</sort_order>
|
177 |
+
<show_in_default>1</show_in_default>
|
178 |
+
<show_in_website>1</show_in_website>
|
179 |
+
<show_in_store>1</show_in_store>
|
180 |
+
</txtcolor>
|
181 |
+
<tblbgcolor translate="label comment">
|
182 |
+
<label>Table Background Color of the Ogone Template</label>
|
183 |
+
<frontend_type>text</frontend_type>
|
184 |
+
<comment><![CDATA[E.g: "white".]]></comment>
|
185 |
+
<sort_order>70</sort_order>
|
186 |
+
<show_in_default>1</show_in_default>
|
187 |
+
<show_in_website>1</show_in_website>
|
188 |
+
<show_in_store>1</show_in_store>
|
189 |
+
</tblbgcolor>
|
190 |
+
<tbltxtcolor translate="label comment">
|
191 |
+
<label>Table Text Color of the Ogone Template</label>
|
192 |
+
<frontend_type>text</frontend_type>
|
193 |
+
<comment><![CDATA[E.g: "black".]]></comment>
|
194 |
+
<sort_order>75</sort_order>
|
195 |
+
<show_in_default>1</show_in_default>
|
196 |
+
<show_in_website>1</show_in_website>
|
197 |
+
<show_in_store>1</show_in_store>
|
198 |
+
</tbltxtcolor>
|
199 |
+
<buttonbgcolor translate="label">
|
200 |
+
<label>Button Background Color of the Ogone Template</label>
|
201 |
+
<frontend_type>text</frontend_type>
|
202 |
+
<sort_order>80</sort_order>
|
203 |
+
<show_in_default>1</show_in_default>
|
204 |
+
<show_in_website>1</show_in_website>
|
205 |
+
<show_in_store>1</show_in_store>
|
206 |
+
</buttonbgcolor>
|
207 |
+
<buttontxtcolor translate="label comment">
|
208 |
+
<label>Button Text Color of the Ogone Template</label>
|
209 |
+
<frontend_type>text</frontend_type>
|
210 |
+
<comment><![CDATA[E.g: "white".]]></comment>
|
211 |
+
<sort_order>85</sort_order>
|
212 |
+
<show_in_default>1</show_in_default>
|
213 |
+
<show_in_website>1</show_in_website>
|
214 |
+
<show_in_store>1</show_in_store>
|
215 |
+
</buttontxtcolor>
|
216 |
+
<fonttype translate="label comment">
|
217 |
+
<label>Font Family of the Ogone Template</label>
|
218 |
+
<frontend_type>text</frontend_type>
|
219 |
+
<comment><![CDATA[E.g: "Verdana".]]></comment>
|
220 |
+
<sort_order>90</sort_order>
|
221 |
+
<show_in_default>1</show_in_default>
|
222 |
+
<show_in_website>1</show_in_website>
|
223 |
+
<show_in_store>1</show_in_store>
|
224 |
+
</fonttype>
|
225 |
+
<logo translate="label comment">
|
226 |
+
<label>Logo of the Ogone Template</label>
|
227 |
+
<frontend_type>text</frontend_type>
|
228 |
+
<comment><![CDATA[URL/filename of the logo.<br />The URL must be absolute and stored on a secure server.]]></comment>
|
229 |
+
<sort_order>95</sort_order>
|
230 |
+
<show_in_default>1</show_in_default>
|
231 |
+
<show_in_website>1</show_in_website>
|
232 |
+
<show_in_store>1</show_in_store>
|
233 |
+
</logo>
|
234 |
+
<pmlist translate="label comment">
|
235 |
+
<label>Layout of Payment Methods</label>
|
236 |
+
<frontend_type>select</frontend_type>
|
237 |
+
<source_model>ogone/source_pmlist</source_model>
|
238 |
+
<comment>You can arrange the layout/list of the payment methods on Ogone payment page.</comment>
|
239 |
+
<sort_order>100</sort_order>
|
240 |
+
<show_in_default>1</show_in_default>
|
241 |
+
<show_in_website>1</show_in_website>
|
242 |
+
<show_in_store>1</show_in_store>
|
243 |
+
</pmlist>
|
244 |
+
</fields>
|
245 |
+
</ogone>
|
246 |
+
</groups>
|
247 |
+
</payment>
|
248 |
+
</sections>
|
249 |
+
</config>
|
app/code/core/Mage/Ogone/sql/ogone_setup/install-1.6.0.0.php
ADDED
@@ -0,0 +1,28 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
<?php
|
2 |
+
/**
|
3 |
+
* Magento
|
4 |
+
*
|
5 |
+
* NOTICE OF LICENSE
|
6 |
+
*
|
7 |
+
* This source file is subject to the Open Software License (OSL 3.0)
|
8 |
+
* that is bundled with this package in the file LICENSE.txt.
|
9 |
+
* It is also available through the world-wide-web at this URL:
|
10 |
+
* http://opensource.org/licenses/osl-3.0.php
|
11 |
+
* If you did not receive a copy of the license and are unable to
|
12 |
+
* obtain it through the world-wide-web, please send an email
|
13 |
+
* to license@magentocommerce.com so we can send you a copy immediately.
|
14 |
+
*
|
15 |
+
* DISCLAIMER
|
16 |
+
*
|
17 |
+
* Do not edit or add to this file if you wish to upgrade Magento to newer
|
18 |
+
* versions in the future. If you wish to customize Magento for your
|
19 |
+
* needs please refer to http://www.magentocommerce.com for more information.
|
20 |
+
*
|
21 |
+
* @category Mage
|
22 |
+
* @package Mage_Ogone
|
23 |
+
* @copyright Copyright (c) 2012 Magento Inc. (http://www.magentocommerce.com)
|
24 |
+
* @license http://opensource.org/licenses/osl-3.0.php Open Software License (OSL 3.0)
|
25 |
+
*/
|
26 |
+
|
27 |
+
$installer = $this;
|
28 |
+
/* @var $installer Mage_Core_Model_Resource_Setup */
|
app/code/core/Mage/Ogone/sql/ogone_setup/mysql4-install-0.0.1.php
ADDED
@@ -0,0 +1,46 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
<?php
|
2 |
+
/**
|
3 |
+
* Magento
|
4 |
+
*
|
5 |
+
* NOTICE OF LICENSE
|
6 |
+
*
|
7 |
+
* This source file is subject to the Open Software License (OSL 3.0)
|
8 |
+
* that is bundled with this package in the file LICENSE.txt.
|
9 |
+
* It is also available through the world-wide-web at this URL:
|
10 |
+
* http://opensource.org/licenses/osl-3.0.php
|
11 |
+
* If you did not receive a copy of the license and are unable to
|
12 |
+
* obtain it through the world-wide-web, please send an email
|
13 |
+
* to license@magentocommerce.com so we can send you a copy immediately.
|
14 |
+
*
|
15 |
+
* DISCLAIMER
|
16 |
+
*
|
17 |
+
* Do not edit or add to this file if you wish to upgrade Magento to newer
|
18 |
+
* versions in the future. If you wish to customize Magento for your
|
19 |
+
* needs please refer to http://www.magentocommerce.com for more information.
|
20 |
+
*
|
21 |
+
* @category Mage
|
22 |
+
* @package Mage_Ogone
|
23 |
+
* @copyright Copyright (c) 2012 Magento Inc. (http://www.magentocommerce.com)
|
24 |
+
* @license http://opensource.org/licenses/osl-3.0.php Open Software License (OSL 3.0)
|
25 |
+
*/
|
26 |
+
|
27 |
+
$installer = $this;
|
28 |
+
/* @var $installer Mage_Core_Model_Mysql4_Setup */
|
29 |
+
|
30 |
+
$installer->startSetup();
|
31 |
+
|
32 |
+
$installer->run("
|
33 |
+
|
34 |
+
DROP TABLE IF EXISTS `{$this->getTable('ogone/api_debug')}`;
|
35 |
+
CREATE TABLE `{$this->getTable('ogone/api_debug')}` (
|
36 |
+
`debug_id` int(10) unsigned NOT NULL auto_increment,
|
37 |
+
`dir` enum('in', 'out'),
|
38 |
+
`debug_at` timestamp NOT NULL default CURRENT_TIMESTAMP on update CURRENT_TIMESTAMP,
|
39 |
+
`url` varchar(255),
|
40 |
+
`data` text,
|
41 |
+
PRIMARY KEY (`debug_id`)
|
42 |
+
) ENGINE=InnoDB DEFAULT CHARSET=utf8;
|
43 |
+
|
44 |
+
");
|
45 |
+
|
46 |
+
$installer->endSetup();
|
app/design/adminhtml/default/default/template/ogone/info.phtml
ADDED
@@ -0,0 +1,29 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
<?php
|
2 |
+
/**
|
3 |
+
* Magento
|
4 |
+
*
|
5 |
+
* NOTICE OF LICENSE
|
6 |
+
*
|
7 |
+
* This source file is subject to the Academic Free License (AFL 3.0)
|
8 |
+
* that is bundled with this package in the file LICENSE_AFL.txt.
|
9 |
+
* It is also available through the world-wide-web at this URL:
|
10 |
+
* http://opensource.org/licenses/afl-3.0.php
|
11 |
+
* If you did not receive a copy of the license and are unable to
|
12 |
+
* obtain it through the world-wide-web, please send an email
|
13 |
+
* to license@magentocommerce.com so we can send you a copy immediately.
|
14 |
+
*
|
15 |
+
* DISCLAIMER
|
16 |
+
*
|
17 |
+
* Do not edit or add to this file if you wish to upgrade Magento to newer
|
18 |
+
* versions in the future. If you wish to customize Magento for your
|
19 |
+
* needs please refer to http://www.magentocommerce.com for more information.
|
20 |
+
*
|
21 |
+
* @category design
|
22 |
+
* @package default_default
|
23 |
+
* @copyright Copyright (c) 2012 Magento Inc. (http://www.magentocommerce.com)
|
24 |
+
* @license http://opensource.org/licenses/afl-3.0.php Academic Free License (AFL 3.0)
|
25 |
+
*/
|
26 |
+
?>
|
27 |
+
|
28 |
+
<?php echo $this->htmlEscape($this->getMethod()->getTitle()) ?><br />
|
29 |
+
<?php echo Mage::helper('payment')->__('Payment ID: %s', $this->htmlEscape($this->getInfo()->getLastTransId())) ?><br/>
|
app/design/frontend/base/default/layout/ogone.xml
ADDED
@@ -0,0 +1,59 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
<?xml version="1.0"?>
|
2 |
+
<!--
|
3 |
+
/**
|
4 |
+
* Magento
|
5 |
+
*
|
6 |
+
* NOTICE OF LICENSE
|
7 |
+
*
|
8 |
+
* This source file is subject to the Academic Free License (AFL 3.0)
|
9 |
+
* that is bundled with this package in the file LICENSE_AFL.txt.
|
10 |
+
* It is also available through the world-wide-web at this URL:
|
11 |
+
* http://opensource.org/licenses/afl-3.0.php
|
12 |
+
* If you did not receive a copy of the license and are unable to
|
13 |
+
* obtain it through the world-wide-web, please send an email
|
14 |
+
* to license@magentocommerce.com so we can send you a copy immediately.
|
15 |
+
*
|
16 |
+
* DISCLAIMER
|
17 |
+
*
|
18 |
+
* Do not edit or add to this file if you wish to upgrade Magento to newer
|
19 |
+
* versions in the future. If you wish to customize Magento for your
|
20 |
+
* needs please refer to http://www.magentocommerce.com for more information.
|
21 |
+
*
|
22 |
+
* @category design
|
23 |
+
* @package base_default
|
24 |
+
* @copyright Copyright (c) 2012 Magento Inc. (http://www.magentocommerce.com)
|
25 |
+
* @license http://opensource.org/licenses/afl-3.0.php Academic Free License (AFL 3.0)
|
26 |
+
*/
|
27 |
+
-->
|
28 |
+
<layout version="0.1.0">
|
29 |
+
<ogone_api_paypage>
|
30 |
+
<remove name="right"/>
|
31 |
+
<remove name="left"/>
|
32 |
+
<remove name="catalog.topnav"/>
|
33 |
+
<reference name="header">
|
34 |
+
<remove name="top.links"/>
|
35 |
+
<remove name="top.search"/>
|
36 |
+
<remove name="store_language"/>
|
37 |
+
<remove name="top.container"/>
|
38 |
+
</reference>
|
39 |
+
<reference name="footer">
|
40 |
+
<remove name="cms_footer_links"/>
|
41 |
+
<remove name="footer_links"/>
|
42 |
+
<remove name="store_switcher"/>
|
43 |
+
</reference>
|
44 |
+
<reference name="root">
|
45 |
+
<action method="setTemplate"><template>page/1column.phtml</template></action>
|
46 |
+
</reference>
|
47 |
+
<reference name="content">
|
48 |
+
<block type="ogone/paypage" name="ogone_paypage" template="ogone/paypage.phtml"/>
|
49 |
+
</reference>
|
50 |
+
</ogone_api_paypage>
|
51 |
+
|
52 |
+
<ogone_api_placeform>
|
53 |
+
<remove name="right"/>
|
54 |
+
<remove name="left"/>
|
55 |
+
<reference name="content">
|
56 |
+
<block type="ogone/placeform" name="ogone_placeform" template="ogone/placeform.phtml"/>
|
57 |
+
</reference>
|
58 |
+
</ogone_api_placeform>
|
59 |
+
</layout>
|
app/design/frontend/base/default/template/ogone/form.phtml
ADDED
@@ -0,0 +1,33 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
<?php
|
2 |
+
/**
|
3 |
+
* Magento
|
4 |
+
*
|
5 |
+
* NOTICE OF LICENSE
|
6 |
+
*
|
7 |
+
* This source file is subject to the Academic Free License (AFL 3.0)
|
8 |
+
* that is bundled with this package in the file LICENSE_AFL.txt.
|
9 |
+
* It is also available through the world-wide-web at this URL:
|
10 |
+
* http://opensource.org/licenses/afl-3.0.php
|
11 |
+
* If you did not receive a copy of the license and are unable to
|
12 |
+
* obtain it through the world-wide-web, please send an email
|
13 |
+
* to license@magentocommerce.com so we can send you a copy immediately.
|
14 |
+
*
|
15 |
+
* DISCLAIMER
|
16 |
+
*
|
17 |
+
* Do not edit or add to this file if you wish to upgrade Magento to newer
|
18 |
+
* versions in the future. If you wish to customize Magento for your
|
19 |
+
* needs please refer to http://www.magentocommerce.com for more information.
|
20 |
+
*
|
21 |
+
* @category design
|
22 |
+
* @package base_default
|
23 |
+
* @copyright Copyright (c) 2012 Magento Inc. (http://www.magentocommerce.com)
|
24 |
+
* @license http://opensource.org/licenses/afl-3.0.php Academic Free License (AFL 3.0)
|
25 |
+
*/
|
26 |
+
?>
|
27 |
+
|
28 |
+
<?php $_code=$this->getMethodCode() ?>
|
29 |
+
<ul class="form-list" id="payment_form_<?php echo $_code ?>" style="display:none;">
|
30 |
+
<li>
|
31 |
+
<?php echo $this->__('You will be redirected to Ogone website when you place an order.') ?>
|
32 |
+
</li>
|
33 |
+
</ul>
|
app/design/frontend/base/default/template/ogone/info.phtml
ADDED
@@ -0,0 +1,27 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
<?php
|
2 |
+
/**
|
3 |
+
* Magento
|
4 |
+
*
|
5 |
+
* NOTICE OF LICENSE
|
6 |
+
*
|
7 |
+
* This source file is subject to the Academic Free License (AFL 3.0)
|
8 |
+
* that is bundled with this package in the file LICENSE_AFL.txt.
|
9 |
+
* It is also available through the world-wide-web at this URL:
|
10 |
+
* http://opensource.org/licenses/afl-3.0.php
|
11 |
+
* If you did not receive a copy of the license and are unable to
|
12 |
+
* obtain it through the world-wide-web, please send an email
|
13 |
+
* to license@magentocommerce.com so we can send you a copy immediately.
|
14 |
+
*
|
15 |
+
* DISCLAIMER
|
16 |
+
*
|
17 |
+
* Do not edit or add to this file if you wish to upgrade Magento to newer
|
18 |
+
* versions in the future. If you wish to customize Magento for your
|
19 |
+
* needs please refer to http://www.magentocommerce.com for more information.
|
20 |
+
*
|
21 |
+
* @category design
|
22 |
+
* @package base_default
|
23 |
+
* @copyright Copyright (c) 2012 Magento Inc. (http://www.magentocommerce.com)
|
24 |
+
* @license http://opensource.org/licenses/afl-3.0.php Academic Free License (AFL 3.0)
|
25 |
+
*/
|
26 |
+
?>
|
27 |
+
<p><?php echo $this->htmlEscape($this->getMethod()->getTitle()) ?></p>
|
app/design/frontend/base/default/template/ogone/paypage.phtml
ADDED
@@ -0,0 +1,28 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
<?php
|
2 |
+
/**
|
3 |
+
* Magento
|
4 |
+
*
|
5 |
+
* NOTICE OF LICENSE
|
6 |
+
*
|
7 |
+
* This source file is subject to the Academic Free License (AFL 3.0)
|
8 |
+
* that is bundled with this package in the file LICENSE_AFL.txt.
|
9 |
+
* It is also available through the world-wide-web at this URL:
|
10 |
+
* http://opensource.org/licenses/afl-3.0.php
|
11 |
+
* If you did not receive a copy of the license and are unable to
|
12 |
+
* obtain it through the world-wide-web, please send an email
|
13 |
+
* to license@magentocommerce.com so we can send you a copy immediately.
|
14 |
+
*
|
15 |
+
* DISCLAIMER
|
16 |
+
*
|
17 |
+
* Do not edit or add to this file if you wish to upgrade Magento to newer
|
18 |
+
* versions in the future. If you wish to customize Magento for your
|
19 |
+
* needs please refer to http://www.magentocommerce.com for more information.
|
20 |
+
*
|
21 |
+
* @category design
|
22 |
+
* @package base_default
|
23 |
+
* @copyright Copyright (c) 2012 Magento Inc. (http://www.magentocommerce.com)
|
24 |
+
* @license http://opensource.org/licenses/afl-3.0.php Academic Free License (AFL 3.0)
|
25 |
+
*/
|
26 |
+
?>
|
27 |
+
|
28 |
+
$$$PAYMENT ZONE$$$
|
app/design/frontend/base/default/template/ogone/placeform.phtml
ADDED
@@ -0,0 +1,45 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
<?php
|
2 |
+
/**
|
3 |
+
* Magento
|
4 |
+
*
|
5 |
+
* NOTICE OF LICENSE
|
6 |
+
*
|
7 |
+
* This source file is subject to the Academic Free License (AFL 3.0)
|
8 |
+
* that is bundled with this package in the file LICENSE_AFL.txt.
|
9 |
+
* It is also available through the world-wide-web at this URL:
|
10 |
+
* http://opensource.org/licenses/afl-3.0.php
|
11 |
+
* If you did not receive a copy of the license and are unable to
|
12 |
+
* obtain it through the world-wide-web, please send an email
|
13 |
+
* to license@magentocommerce.com so we can send you a copy immediately.
|
14 |
+
*
|
15 |
+
* DISCLAIMER
|
16 |
+
*
|
17 |
+
* Do not edit or add to this file if you wish to upgrade Magento to newer
|
18 |
+
* versions in the future. If you wish to customize Magento for your
|
19 |
+
* needs please refer to http://www.magentocommerce.com for more information.
|
20 |
+
*
|
21 |
+
* @category design
|
22 |
+
* @package base_default
|
23 |
+
* @copyright Copyright (c) 2012 Magento Inc. (http://www.magentocommerce.com)
|
24 |
+
* @license http://opensource.org/licenses/afl-3.0.php Academic Free License (AFL 3.0)
|
25 |
+
*/
|
26 |
+
?>
|
27 |
+
|
28 |
+
<p><strong><?php echo Mage::helper('ogone')->__('Please, wait a moment. This page will transfer your data to Ogone payment gateway in a few seconds.'); ?></strong></p>
|
29 |
+
<form name="ogone" id="ogone_review_form" action="<?php echo $this->getFormAction();?>" method="post" accept-charset="ISO-8859-1">
|
30 |
+
<?php if ($formData = $this->getFormData()): ?>
|
31 |
+
<fieldset>
|
32 |
+
<?php foreach ($formData as $name => $value) { ?>
|
33 |
+
<input type="hidden" name="<?php echo $this->escapeHtml($name); ?>" value="<?php echo $this->escapeHtml($value); ?>" />
|
34 |
+
<?php }?>
|
35 |
+
</fieldset>
|
36 |
+
<?php endif; ?>
|
37 |
+
</form>
|
38 |
+
<script type="text/javascript">
|
39 |
+
//<![CDATA[
|
40 |
+
var review = new VarienForm('ogone_review_form', '');
|
41 |
+
Event.observe(window, 'load', function() {
|
42 |
+
review.submit();
|
43 |
+
});
|
44 |
+
//]]>
|
45 |
+
</script>
|
app/etc/modules/Mage_Ogone.xml
ADDED
@@ -0,0 +1,39 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
<?xml version="1.0"?>
|
2 |
+
<!--
|
3 |
+
/**
|
4 |
+
* Magento
|
5 |
+
*
|
6 |
+
* NOTICE OF LICENSE
|
7 |
+
*
|
8 |
+
* This source file is subject to the Academic Free License (AFL 3.0)
|
9 |
+
* that is bundled with this package in the file LICENSE_AFL.txt.
|
10 |
+
* It is also available through the world-wide-web at this URL:
|
11 |
+
* http://opensource.org/licenses/afl-3.0.php
|
12 |
+
* If you did not receive a copy of the license and are unable to
|
13 |
+
* obtain it through the world-wide-web, please send an email
|
14 |
+
* to license@magentocommerce.com so we can send you a copy immediately.
|
15 |
+
*
|
16 |
+
* DISCLAIMER
|
17 |
+
*
|
18 |
+
* Do not edit or add to this file if you wish to upgrade Magento to newer
|
19 |
+
* versions in the future. If you wish to customize Magento for your
|
20 |
+
* needs please refer to http://www.magentocommerce.com for more information.
|
21 |
+
*
|
22 |
+
* @category Mage
|
23 |
+
* @package Mage_Ogone
|
24 |
+
* @copyright Copyright (c) 2012 Magento Inc. (http://www.magentocommerce.com)
|
25 |
+
* @license http://opensource.org/licenses/afl-3.0.php Academic Free License (AFL 3.0)
|
26 |
+
*/
|
27 |
+
-->
|
28 |
+
<config>
|
29 |
+
<modules>
|
30 |
+
<Mage_Ogone>
|
31 |
+
<active>true</active>
|
32 |
+
<codePool>core</codePool>
|
33 |
+
<depends>
|
34 |
+
<Mage_Sales/>
|
35 |
+
<Mage_Payment/>
|
36 |
+
</depends>
|
37 |
+
</Mage_Ogone>
|
38 |
+
</modules>
|
39 |
+
</config>
|
app/locale/en_US/Mage_Ogone.csv
ADDED
@@ -0,0 +1,66 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
"Authorization","Authorization"
|
2 |
+
"Authorization Waiting from Ogone","Authorization Waiting from Ogone"
|
3 |
+
"Authorization not known: A technical problem arose during authorization process, giving unpredictable result","Authorization not known: A technical problem arose during authorization process, giving unpredictable result"
|
4 |
+
"Background Color of Ogone Template","Background Color of Ogone Template"
|
5 |
+
"Button Background Color of the Ogone Template","Button Background Color of the Ogone Template"
|
6 |
+
"Button Text Color of the Ogone Template","Button Text Color of the Ogone Template"
|
7 |
+
"Can\'t detect Ogone payment action","Can\'t detect Ogone payment action"
|
8 |
+
"Cancelled Ogone","Cancelled Ogone"
|
9 |
+
"Debug","Debug"
|
10 |
+
"Declined Ogone","Declined Ogone"
|
11 |
+
"Declined Order on Ogone side.","Declined Order on Ogone side."
|
12 |
+
"Direct Sale","Direct Sale"
|
13 |
+
"E.g: ""Verdana"".","E.g: ""Verdana""."
|
14 |
+
"E.g: ""black"".","E.g: ""black""."
|
15 |
+
"E.g: ""white"".","E.g: ""white""."
|
16 |
+
"Enabled","Enabled"
|
17 |
+
"Enabling this feature needs adjusting ""Technical information > Global security parameters"" on merchant administration.","Enabling this feature needs adjusting ""Technical information > Global security parameters"" on merchant administration."
|
18 |
+
"Exception not defined","Exception not defined"
|
19 |
+
"Font Family of the Ogone Template","Font Family of the Ogone Template"
|
20 |
+
"For production, replace ""test"" with ""prod"". Example: https://secure.ogone.com/ncol/prod/orderstandard.asp","For production, replace ""test"" with ""prod"". Example: https://secure.ogone.com/ncol/prod/orderstandard.asp"
|
21 |
+
"Gateway URL","Gateway URL"
|
22 |
+
"Hash All Parameters","Hash All Parameters"
|
23 |
+
"Hashing Algorithm","Hashing Algorithm"
|
24 |
+
"Horizontally grouped logo with group name on left","Horizontally grouped logo with group name on left"
|
25 |
+
"Horizontally grouped logo with no group name","Horizontally grouped logo with no group name"
|
26 |
+
"If you choose ""No Operation"", Ogone will use default payment procedure setup in Ogone configuration.","If you choose ""No Operation"", Ogone will use default payment procedure setup in Ogone configuration."
|
27 |
+
"If you choose ""Ogone Template"", you will need to fill in all the following fields.","If you choose ""Ogone Template"", you will need to fill in all the following fields."
|
28 |
+
"Layout of Payment Methods","Layout of Payment Methods"
|
29 |
+
"Logo of the Ogone Template","Logo of the Ogone Template"
|
30 |
+
"Magento","Magento"
|
31 |
+
"Ogone","Ogone"
|
32 |
+
"Ogone Default Operation","Ogone Default Operation"
|
33 |
+
"Order can\'t save","Order can\'t save"
|
34 |
+
"PSPID","PSPID"
|
35 |
+
"Payment Action","Payment Action"
|
36 |
+
"Payment Template","Payment Template"
|
37 |
+
"Payment transaction has been declined.","Payment transaction has been declined."
|
38 |
+
"Payment uncertain: A technical problem arose during payment process, giving unpredictable result","Payment uncertain: A technical problem arose during payment process, giving unpredictable result"
|
39 |
+
"Pending Ogone","Pending Ogone"
|
40 |
+
"Please, wait a moment. This page will transfer your data to Ogone payment gateway in a few seconds.","Please, wait a moment. This page will transfer your data to Ogone payment gateway in a few seconds."
|
41 |
+
"Processed Ogone Payment","Processed Ogone Payment"
|
42 |
+
"Processed by Ogone","Processed by Ogone"
|
43 |
+
"Processing Ogone Payment","Processing Ogone Payment"
|
44 |
+
"SHA-IN Pass Phrase","SHA-IN Pass Phrase"
|
45 |
+
"SHA-OUT Pass Phrase","SHA-OUT Pass Phrase"
|
46 |
+
"Start Ogone Processing","Start Ogone Processing"
|
47 |
+
"Table Background Color of the Ogone Template","Table Background Color of the Ogone Template"
|
48 |
+
"Table Text Color of the Ogone Template","Table Text Color of the Ogone Template"
|
49 |
+
"Text Color of the Ogone Template","Text Color of the Ogone Template"
|
50 |
+
"The hash is not valid","The hash is not valid"
|
51 |
+
"The order cannot be canceled for a system reason.","The order cannot be canceled for a system reason."
|
52 |
+
"The order cannot be saved for a system reason.","The order cannot be saved for a system reason."
|
53 |
+
"The order cannot be saved.","The order cannot be saved."
|
54 |
+
"The order is not valid","The order is not valid"
|
55 |
+
"The order was canceled on ogone side.","The order was canceled on ogone side."
|
56 |
+
"Title","Title"
|
57 |
+
"Title of the Ogone Template","Title of the Ogone Template"
|
58 |
+
"To hash <strong>all parameters</strong>, select the following options in the ""Global security parameters"" fieldset: <ul><li>Each parameter followed by the pass phrase.</li><li>""Hash algorithm"" same as ""Hashing Algorithm"" below</li><li>UTF-8</li></ul>","To hash <strong>all parameters</strong>, select the following options in the ""Global security parameters"" fieldset: <ul><li>Each parameter followed by the pass phrase.</li><li>""Hash algorithm"" same as ""Hashing Algorithm"" below</li><li>UTF-8</li></ul>"
|
59 |
+
"URL/filename of the logo.<br />The URL must be absolute and stored on a secure server.","URL/filename of the logo.<br />The URL must be absolute and stored on a secure server."
|
60 |
+
"Unknown exception","Unknown exception"
|
61 |
+
"Use in posting data from Magento to Ogone.<br/>Use in data checking by Ogone before the payment.","Use in posting data from Magento to Ogone.<br/>Use in data checking by Ogone before the payment."
|
62 |
+
"Use in posting data from Ogone to Magento.<br/>Use in feedback data checking by Magento.","Use in posting data from Ogone to Magento.<br/>Use in feedback data checking by Magento."
|
63 |
+
"Verical list","Verical list"
|
64 |
+
"Waiting Authorization","Waiting Authorization"
|
65 |
+
"You can arrange the layout/list of the payment methods on Ogone payment page.","You can arrange the layout/list of the payment methods on Ogone payment page."
|
66 |
+
"You will be redirected to Ogone website when you place an order.","You will be redirected to Ogone website when you place an order."
|
package.xml
CHANGED
@@ -1,18 +1,18 @@
|
|
1 |
<?xml version="1.0"?>
|
2 |
<package>
|
3 |
<name>Mage_Ogone_Official</name>
|
4 |
-
<version>1.2.0
|
5 |
<stability>stable</stability>
|
6 |
<license uri="http://opensource.org/licenses/osl-3.0.php">Open Software License (OSL 3.0)</license>
|
7 |
<channel>community</channel>
|
8 |
<extends/>
|
9 |
<summary>Official Ogone Payment Services Integration Module</summary>
|
10 |
<description>This extension provides Ogone payment services integration.</description>
|
11 |
-
<notes>1.2.0
|
12 |
<authors><author><name>Magento Core Team</name><user>core</user><email>core@magentocommerce.com</email></author></authors>
|
13 |
-
<date>2012-
|
14 |
-
<time>
|
15 |
-
<contents><target name="mageetc"><dir name="modules"><file name="Mage_Ogone.xml" hash=""/></dir></target><target name="magedesign"><dir name="frontend"><dir name="base"><dir name="default"><dir name="layout"><file name="ogone.xml" hash=""/></dir></dir></dir></dir></target><target name="magelocale"><dir name="en_US"><file name="Mage_Ogone.csv" hash=""/></dir></target></contents>
|
16 |
<compatible/>
|
17 |
-
<dependencies><required><php><min>5.2.0</min><max>6.0.0</max></php
|
18 |
</package>
|
1 |
<?xml version="1.0"?>
|
2 |
<package>
|
3 |
<name>Mage_Ogone_Official</name>
|
4 |
+
<version>1.2.1.0</version>
|
5 |
<stability>stable</stability>
|
6 |
<license uri="http://opensource.org/licenses/osl-3.0.php">Open Software License (OSL 3.0)</license>
|
7 |
<channel>community</channel>
|
8 |
<extends/>
|
9 |
<summary>Official Ogone Payment Services Integration Module</summary>
|
10 |
<description>This extension provides Ogone payment services integration.</description>
|
11 |
+
<notes>1.2.1.0</notes>
|
12 |
<authors><author><name>Magento Core Team</name><user>core</user><email>core@magentocommerce.com</email></author></authors>
|
13 |
+
<date>2012-04-24</date>
|
14 |
+
<time>12:09:22</time>
|
15 |
+
<contents><target name="magecore"><dir name="Mage"><dir name="Ogone"><dir name="Block"><file name="Form.php" hash="f531191b16ca6590242f67817ac21ecf"/><file name="Info.php" hash="1cdd066cdbf604d7612d337384518612"/><file name="Paypage.php" hash="e41db872d9a0d6c2ac992a9af4279890"/><file name="Placeform.php" hash="7d24a667e7c708786c148295392d441c"/></dir><dir name="Helper"><file name="Data.php" hash="3e98b5e51d040d5f6d515e7939698e74"/></dir><dir name="Model"><dir name="Api"><file name="Debug.php" hash="5799aa22d0093ce8d3aa2874c2ed7ea0"/></dir><file name="Api.php" hash="9da9a9335f691114fcbac5861130be11"/><file name="Config.php" hash="0ba5efe4508e94ed19204d50fdb236f9"/><dir name="Mysql4"><dir name="Api"><file name="Debug.php" hash="a598ebf73c33a6f7dc7d8c6a10c9716d"/></dir></dir><dir name="Source"><file name="PaymentAction.php" hash="1aa1147b5ec6a5f02fe69c69a23338be"/><file name="Pmlist.php" hash="302e98085218f0c451ed5f807a28c46a"/><file name="Template.php" hash="3d24d492b0dfeb69d34f6d172b156dbc"/></dir></dir><dir name="controllers"><file name="ApiController.php" hash="06af1b9cf4b0adad6f23fa606fc933f3"/></dir><dir name="etc"><file name="config.xml" hash="90748015a5afe4fb5c67474a0f70ded7"/><file name="system.xml" hash="ce113067cc438f6312d48b661f71e27d"/></dir><dir name="sql"><dir name="ogone_setup"><file name="install-1.6.0.0.php" hash="c8781525995f5fcc2fc458adca95240a"/><file name="mysql4-install-0.0.1.php" hash="42972c96262922b5ac35224b264e67e4"/></dir></dir></dir></dir></target><target name="mageetc"><dir name="modules"><file name="Mage_Ogone.xml" hash="94f9caf09320e37be2a88ae04872cf68"/></dir></target><target name="magedesign"><dir name="frontend"><dir name="base"><dir name="default"><dir name="template"><dir name="ogone"><file name="form.phtml" hash="e605eb1d2a5b6943a3bd33e3a4cc4888"/><file name="info.phtml" hash="18ba9f7a5cd77a84c97406bc36691291"/><file name="paypage.phtml" hash="b9bf8f294345c505a60e9e7598123bc3"/><file name="placeform.phtml" hash="7eb5bc71d4b0c04e8e799571594e4846"/></dir></dir><dir name="layout"><file name="ogone.xml" hash="e14780d03e32b0ae8551eda05c117205"/></dir></dir></dir></dir><dir name="adminhtml"><dir name="default"><dir name="default"><dir name="template"><dir name="ogone"><file name="info.phtml" hash="2826b1daf1362f6b0c9db70b9170ca1e"/></dir></dir></dir></dir></dir></target><target name="magelocale"><dir name="en_US"><file name="Mage_Ogone.csv" hash="e23ef05c79f21e4cbdb4d08c00f59223"/></dir></target></contents>
|
16 |
<compatible/>
|
17 |
+
<dependencies><required><php><min>5.2.0</min><max>6.0.0</max></php></required></dependencies>
|
18 |
</package>
|