Version Notes
stable release
Download this release
Release Info
Developer | Magento Core Team |
Extension | ET_PaymentRobokassa |
Version | 1.1.0 |
Comparing to | |
See all releases |
Code changes from version 1.0.10 to 1.1.0
- app/code/community/ET/PaymentRobokassa/Block/Adminhtml/Support.php +43 -46
- app/code/community/ET/PaymentRobokassa/Block/Adminhtml/System/Config/Form/Field/CallbackUrls.php +50 -10
- app/code/community/ET/PaymentRobokassa/Block/Adminhtml/System/Config/Form/Field/Heading.php +13 -1
- app/code/community/ET/PaymentRobokassa/Block/Adminhtml/System/Config/Form/Field/Linktoinfo.php +15 -3
- app/code/community/ET/PaymentRobokassa/Block/Adminhtml/System/Config/Form/Field/Linktooptions.php +14 -3
- app/code/community/ET/PaymentRobokassa/Block/Error.php +0 -34
- app/code/community/ET/PaymentRobokassa/Block/Form.php +0 -22
- app/code/community/ET/PaymentRobokassa/Block/Info.php +0 -22
- app/code/community/ET/PaymentRobokassa/Block/Redirect.php +10 -0
- app/code/community/ET/PaymentRobokassa/Block/Single/Form.php +6 -0
- app/code/community/ET/PaymentRobokassa/Block/Single/Info.php +6 -0
- app/code/community/ET/PaymentRobokassa/Controller/Router.php +35 -15
- app/code/community/ET/PaymentRobokassa/Helper/Data.php +44 -21
- app/code/community/ET/PaymentRobokassa/Model/Culture.php +6 -0
- app/code/community/ET/PaymentRobokassa/Model/Hashtype.php +56 -0
- app/code/community/ET/PaymentRobokassa/Model/Method/Etrobokassa.php +149 -89
- app/code/community/ET/PaymentRobokassa/Model/Paysystem.php +33 -33
- app/code/community/ET/PaymentRobokassa/controllers/GateController.php +47 -24
- app/code/community/ET/PaymentRobokassa/etc/config.xml +2 -1
- app/code/community/ET/PaymentRobokassa/etc/system.xml +53 -8
- app/code/community/ET/PaymentRobokassa/sql/etpaymentrobokassa_setup/mysql4-install-1.0.0.php +2 -2
- app/locale/ru_RU/ET_PaymentRobokassa.csv +14 -6
- package.xml +4 -4
app/code/community/ET/PaymentRobokassa/Block/Adminhtml/Support.php
CHANGED
@@ -12,23 +12,31 @@
|
|
12 |
*
|
13 |
* @category ET
|
14 |
* @package ET_PaymentRobokassa
|
15 |
-
* @copyright Copyright (c)
|
16 |
* @contacts support@etwebsolutions.com
|
17 |
* @license http://shop.etwebsolutions.com/etws-license-free-v1/ ETWS Free License (EFL1)
|
18 |
*/
|
19 |
|
|
|
|
|
|
|
20 |
class ET_PaymentRobokassa_Block_Adminhtml_Support
|
21 |
extends Mage_Adminhtml_Block_Abstract
|
22 |
implements Varien_Data_Form_Element_Renderer_Interface
|
23 |
{
|
|
|
|
|
|
|
24 |
/**
|
25 |
* Support tab
|
26 |
-
* version 2.
|
|
|
|
|
27 |
*/
|
28 |
public function render(Varien_Data_Form_Element_Abstract $element)
|
29 |
{
|
30 |
-
$helper = Mage::helper(
|
31 |
-
$moduleNameId =
|
32 |
|
33 |
$moduleVersion = $this->_getConfigValue($moduleNameId, 'version');
|
34 |
$moduleName = $this->_getConfigValue($moduleNameId, 'name');
|
@@ -110,6 +118,13 @@ class ET_PaymentRobokassa_Block_Adminhtml_Support
|
|
110 |
return $html;
|
111 |
}
|
112 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
113 |
protected function _getConfigValue($module, $config)
|
114 |
{
|
115 |
$locale = Mage::app()->getLocale()->getLocaleCode();
|
@@ -128,13 +143,19 @@ class ET_PaymentRobokassa_Block_Adminhtml_Support
|
|
128 |
}
|
129 |
}
|
130 |
|
|
|
131 |
const PLATFORM_CE = 'ce';
|
132 |
const PLATFORM_PE = 'pe';
|
133 |
const PLATFORM_EE = 'ee';
|
134 |
-
const PLATFORM_GO = 'go';
|
135 |
const PLATFORM_UNKNOWN = 'unknown';
|
136 |
|
137 |
-
protected
|
|
|
|
|
|
|
|
|
|
|
|
|
138 |
|
139 |
/**
|
140 |
* Get edition code
|
@@ -142,47 +163,23 @@ class ET_PaymentRobokassa_Block_Adminhtml_Support
|
|
142 |
*/
|
143 |
protected function _getPlatform()
|
144 |
{
|
145 |
-
if (
|
146 |
-
|
147 |
-
|
148 |
-
|
149 |
-
|
150 |
-
|
151 |
-
|
152 |
-
|
153 |
-
self::$_platformCode = self::PLATFORM_PE;
|
154 |
-
break;
|
155 |
-
case Mage::EDITION_ENTERPRISE:
|
156 |
-
self::$_platformCode = self::PLATFORM_EE;
|
157 |
-
break;
|
158 |
-
case Mage::EDITION_ENTERPRISE:
|
159 |
-
self::$_platformCode = self::PLATFORM_EE;
|
160 |
-
break;
|
161 |
-
default:
|
162 |
-
self::$_platformCode = self::PLATFORM_UNKNOWN;
|
163 |
-
}
|
164 |
-
}
|
165 |
-
|
166 |
-
// if platform still unknown
|
167 |
-
if (self::$_platformCode == self::PLATFORM_UNKNOWN) {
|
168 |
-
$modulesArray = (array)Mage::getConfig()->getNode('modules')->children();
|
169 |
-
$isEnterprise = array_key_exists('Enterprise_Enterprise', $modulesArray);
|
170 |
-
|
171 |
-
$isProfessional = false; // TODO: how determine?
|
172 |
-
$isGo = false; // TODO: how?
|
173 |
-
|
174 |
-
if ($isEnterprise) {
|
175 |
-
self::$_platformCode = self::PLATFORM_EE;
|
176 |
-
} elseif ($isProfessional) {
|
177 |
-
self::$_platformCode = self::PLATFORM_PE;
|
178 |
-
} elseif ($isGo) {
|
179 |
-
self::$_platformCode = self::PLATFORM_GO;
|
180 |
-
} else {
|
181 |
-
self::$_platformCode = self::PLATFORM_CE;
|
182 |
-
}
|
183 |
-
}
|
184 |
}
|
185 |
-
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
186 |
}
|
187 |
|
188 |
}
|
12 |
*
|
13 |
* @category ET
|
14 |
* @package ET_PaymentRobokassa
|
15 |
+
* @copyright Copyright (c) 2015 ET Web Solutions (http://etwebsolutions.com)
|
16 |
* @contacts support@etwebsolutions.com
|
17 |
* @license http://shop.etwebsolutions.com/etws-license-free-v1/ ETWS Free License (EFL1)
|
18 |
*/
|
19 |
|
20 |
+
/**
|
21 |
+
* Class ET_PaymentRobokassa_Block_Adminhtml_Support
|
22 |
+
*/
|
23 |
class ET_PaymentRobokassa_Block_Adminhtml_Support
|
24 |
extends Mage_Adminhtml_Block_Abstract
|
25 |
implements Varien_Data_Form_Element_Renderer_Interface
|
26 |
{
|
27 |
+
|
28 |
+
protected $_helperName = 'etpaymentrobokassa';
|
29 |
+
|
30 |
/**
|
31 |
* Support tab
|
32 |
+
* version 2.2.1
|
33 |
+
*
|
34 |
+
* @inheritdoc
|
35 |
*/
|
36 |
public function render(Varien_Data_Form_Element_Abstract $element)
|
37 |
{
|
38 |
+
$helper = Mage::helper($this->_helperName);
|
39 |
+
$moduleNameId = $this->getModuleName();
|
40 |
|
41 |
$moduleVersion = $this->_getConfigValue($moduleNameId, 'version');
|
42 |
$moduleName = $this->_getConfigValue($moduleNameId, 'name');
|
118 |
return $html;
|
119 |
}
|
120 |
|
121 |
+
/**
|
122 |
+
* Retrieve value from configuration
|
123 |
+
*
|
124 |
+
* @param string $module
|
125 |
+
* @param string $config
|
126 |
+
* @return Mage_Core_Model_Config_Element|SimpleXMLElement[]
|
127 |
+
*/
|
128 |
protected function _getConfigValue($module, $config)
|
129 |
{
|
130 |
$locale = Mage::app()->getLocale()->getLocaleCode();
|
143 |
}
|
144 |
}
|
145 |
|
146 |
+
|
147 |
const PLATFORM_CE = 'ce';
|
148 |
const PLATFORM_PE = 'pe';
|
149 |
const PLATFORM_EE = 'ee';
|
|
|
150 |
const PLATFORM_UNKNOWN = 'unknown';
|
151 |
|
152 |
+
protected $_platformCode = self::PLATFORM_UNKNOWN;
|
153 |
+
|
154 |
+
protected $_platformNames = array(
|
155 |
+
Mage::EDITION_COMMUNITY => self::PLATFORM_CE,
|
156 |
+
Mage::EDITION_PROFESSIONAL => self::PLATFORM_PE,
|
157 |
+
Mage::EDITION_ENTERPRISE => self::PLATFORM_EE,
|
158 |
+
);
|
159 |
|
160 |
/**
|
161 |
* Get edition code
|
163 |
*/
|
164 |
protected function _getPlatform()
|
165 |
{
|
166 |
+
if ($this->_platformCode != self::PLATFORM_UNKNOWN) {
|
167 |
+
return $this->_platformCode;
|
168 |
+
}
|
169 |
+
|
170 |
+
// from Magento CE version 1.7. we can get platform from Mage class
|
171 |
+
if (property_exists('Mage', '_currentEdition') && isset($this->_platformNames[Mage::getEdition()])) {
|
172 |
+
$this->_platformCode = $this->_platformNames[Mage::getEdition()];
|
173 |
+
return $this->_platformCode;
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
174 |
}
|
175 |
+
|
176 |
+
// if platform still unknown
|
177 |
+
$modulesArray = (array)Mage::getConfig()->getNode('modules')->children();
|
178 |
+
$isEnterprise = array_key_exists('Enterprise_Enterprise', $modulesArray);
|
179 |
+
|
180 |
+
$this->_platformCode = $isEnterprise ? self::PLATFORM_EE : self::PLATFORM_CE;
|
181 |
+
|
182 |
+
return $this->_platformCode;
|
183 |
}
|
184 |
|
185 |
}
|
app/code/community/ET/PaymentRobokassa/Block/Adminhtml/System/Config/Form/Field/CallbackUrls.php
CHANGED
@@ -1,5 +1,4 @@
|
|
1 |
<?php
|
2 |
-
|
3 |
/**
|
4 |
* NOTICE OF LICENSE
|
5 |
*
|
@@ -17,20 +16,61 @@
|
|
17 |
* @contacts support@etwebsolutions.com
|
18 |
* @license http://shop.etwebsolutions.com/etws-license-free-v1/ ETWS Free License (EFL1)
|
19 |
*/
|
|
|
|
|
|
|
|
|
20 |
class ET_PaymentRobokassa_Block_Adminhtml_System_Config_Form_Field_CallbackUrls
|
21 |
extends Mage_Adminhtml_Block_System_Config_Form_Field_Heading
|
22 |
{
|
|
|
|
|
|
|
|
|
23 |
public function render(Varien_Data_Form_Element_Abstract $element)
|
24 |
{
|
25 |
$baseUrl = Mage::getBaseUrl('web');
|
26 |
-
|
27 |
-
|
28 |
-
|
29 |
-
|
30 |
-
|
31 |
-
|
32 |
-
|
33 |
-
|
34 |
-
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
35 |
}
|
36 |
}
|
1 |
<?php
|
|
|
2 |
/**
|
3 |
* NOTICE OF LICENSE
|
4 |
*
|
16 |
* @contacts support@etwebsolutions.com
|
17 |
* @license http://shop.etwebsolutions.com/etws-license-free-v1/ ETWS Free License (EFL1)
|
18 |
*/
|
19 |
+
|
20 |
+
/**
|
21 |
+
* Class ET_PaymentRobokassa_Block_Adminhtml_System_Config_Form_Field_CallbackUrls
|
22 |
+
*/
|
23 |
class ET_PaymentRobokassa_Block_Adminhtml_System_Config_Form_Field_CallbackUrls
|
24 |
extends Mage_Adminhtml_Block_System_Config_Form_Field_Heading
|
25 |
{
|
26 |
+
/**
|
27 |
+
* @param Varien_Data_Form_Element_Abstract $element
|
28 |
+
* @return string
|
29 |
+
*/
|
30 |
public function render(Varien_Data_Form_Element_Abstract $element)
|
31 |
{
|
32 |
$baseUrl = Mage::getBaseUrl('web');
|
33 |
+
$description = "You have to set callback links for your shop in" .
|
34 |
+
" your account on Robokassa website to make extension work.";
|
35 |
+
$comment = "POST or GET data transfer method";
|
36 |
+
return <<<HTML
|
37 |
+
<tr class="system-fieldset-sub-head" id="row_{$element->getHtmlId()}">
|
38 |
+
<td colspan="5"><h4 id="{$element->getHtmlId()}">{$element->getData('label')}</h4></td>
|
39 |
+
</tr>
|
40 |
+
<tr>
|
41 |
+
<td colspan="5"><span>
|
42 |
+
{$this->__($description)}
|
43 |
+
</span></td>
|
44 |
+
</tr>
|
45 |
+
<tr>
|
46 |
+
<td class="label"><label>{$this->__("Result URL")}</label></td>
|
47 |
+
<td colspan="4" class="value">
|
48 |
+
{$baseUrl}etrobokassa/status
|
49 |
+
<p class="note"><span>{$this->__($comment)}</span></p>
|
50 |
+
</td>
|
51 |
+
</tr>
|
52 |
+
<tr>
|
53 |
+
<td class="label"><label>{$this->__("Success URL")}</label></td>
|
54 |
+
<td colspan="4" class="value">
|
55 |
+
{$baseUrl}etrobokassa/success
|
56 |
+
<p class="note"><span>{$this->__($comment)}</span></p>
|
57 |
+
</td>
|
58 |
+
</tr>
|
59 |
+
<tr>
|
60 |
+
<td class="label"><label>{$this->__("Failure URL")}</label></td>
|
61 |
+
<td colspan="4" class="value">
|
62 |
+
{$baseUrl}etrobokassa/failure
|
63 |
+
<p class="note"><span>{$this->__($comment)}</span></p>
|
64 |
+
</td>
|
65 |
+
</tr>
|
66 |
+
<tr>
|
67 |
+
<td class="label"><label>{$this->__("Documentation")}</label></td>
|
68 |
+
<td colspan="4" class="value">
|
69 |
+
<a href="http://shop.etwebsolutions.com/eng/et-payment-robokassa.html#documentation" target="_blank">
|
70 |
+
http://shop.etwebsolutions.com/eng/et-payment-robokassa.html#documentation
|
71 |
+
</a>
|
72 |
+
</td>
|
73 |
+
</tr>
|
74 |
+
HTML;
|
75 |
}
|
76 |
}
|
app/code/community/ET/PaymentRobokassa/Block/Adminhtml/System/Config/Form/Field/Heading.php
CHANGED
@@ -20,20 +20,32 @@
|
|
20 |
//if (!class_exists('Mage_Adminhtml_Block_System_Config_Form_Field_Heading')) {
|
21 |
// https://bugs.php.net/bug.php?id=52339
|
22 |
if (version_compare(Mage::getVersion(), '1.4.1', '<')) {
|
|
|
|
|
|
|
|
|
23 |
class ET_PaymentRobokassa_Block_Adminhtml_System_Config_Form_Field_Heading
|
24 |
extends Mage_Adminhtml_Block_Abstract
|
25 |
implements Varien_Data_Form_Element_Renderer_Interface
|
26 |
{
|
27 |
|
|
|
|
|
|
|
|
|
28 |
public function render(Varien_Data_Form_Element_Abstract $element)
|
29 |
{
|
30 |
return sprintf(
|
31 |
'<tr class="system-fieldset-sub-head" id="row_%s"><td colspan="5"><h4 id="%s">%s</h4></td></tr>',
|
32 |
-
$element->getHtmlId(), $element->getHtmlId(), $element->
|
33 |
);
|
34 |
}
|
35 |
}
|
36 |
} else {
|
|
|
|
|
|
|
|
|
37 |
class ET_PaymentRobokassa_Block_Adminhtml_System_Config_Form_Field_Heading
|
38 |
extends Mage_Adminhtml_Block_System_Config_Form_Field_Heading
|
39 |
{
|
20 |
//if (!class_exists('Mage_Adminhtml_Block_System_Config_Form_Field_Heading')) {
|
21 |
// https://bugs.php.net/bug.php?id=52339
|
22 |
if (version_compare(Mage::getVersion(), '1.4.1', '<')) {
|
23 |
+
/**
|
24 |
+
* Class ET_PaymentRobokassa_Block_Adminhtml_System_Config_Form_Field_Heading
|
25 |
+
* for old Magento versions
|
26 |
+
*/
|
27 |
class ET_PaymentRobokassa_Block_Adminhtml_System_Config_Form_Field_Heading
|
28 |
extends Mage_Adminhtml_Block_Abstract
|
29 |
implements Varien_Data_Form_Element_Renderer_Interface
|
30 |
{
|
31 |
|
32 |
+
/**
|
33 |
+
* @param Varien_Data_Form_Element_Abstract $element
|
34 |
+
* @return string
|
35 |
+
*/
|
36 |
public function render(Varien_Data_Form_Element_Abstract $element)
|
37 |
{
|
38 |
return sprintf(
|
39 |
'<tr class="system-fieldset-sub-head" id="row_%s"><td colspan="5"><h4 id="%s">%s</h4></td></tr>',
|
40 |
+
$element->getHtmlId(), $element->getHtmlId(), $element->getData('label')
|
41 |
);
|
42 |
}
|
43 |
}
|
44 |
} else {
|
45 |
+
/**
|
46 |
+
* Class ET_PaymentRobokassa_Block_Adminhtml_System_Config_Form_Field_Heading
|
47 |
+
* for new versions
|
48 |
+
*/
|
49 |
class ET_PaymentRobokassa_Block_Adminhtml_System_Config_Form_Field_Heading
|
50 |
extends Mage_Adminhtml_Block_System_Config_Form_Field_Heading
|
51 |
{
|
app/code/community/ET/PaymentRobokassa/Block/Adminhtml/System/Config/Form/Field/Linktoinfo.php
CHANGED
@@ -17,13 +17,25 @@
|
|
17 |
* @license http://shop.etwebsolutions.com/etws-license-free-v1/ ETWS Free License (EFL1)
|
18 |
*/
|
19 |
|
|
|
|
|
|
|
20 |
class ET_PaymentRobokassa_Block_Adminhtml_System_Config_Form_Field_Linktoinfo
|
21 |
extends Mage_Adminhtml_Block_System_Config_Form_Field
|
22 |
{
|
|
|
|
|
|
|
|
|
|
|
|
|
23 |
protected function _getElementHtml(Varien_Data_Form_Element_Abstract $element)
|
24 |
{
|
25 |
-
|
26 |
-
|
27 |
-
|
|
|
|
|
|
|
28 |
}
|
29 |
}
|
17 |
* @license http://shop.etwebsolutions.com/etws-license-free-v1/ ETWS Free License (EFL1)
|
18 |
*/
|
19 |
|
20 |
+
/**
|
21 |
+
* Class ET_PaymentRobokassa_Block_Adminhtml_System_Config_Form_Field_Linktoinfo
|
22 |
+
*/
|
23 |
class ET_PaymentRobokassa_Block_Adminhtml_System_Config_Form_Field_Linktoinfo
|
24 |
extends Mage_Adminhtml_Block_System_Config_Form_Field
|
25 |
{
|
26 |
+
/**
|
27 |
+
* @param Varien_Data_Form_Element_Abstract $element
|
28 |
+
* @return string
|
29 |
+
*
|
30 |
+
* @inheritdoc
|
31 |
+
*/
|
32 |
protected function _getElementHtml(Varien_Data_Form_Element_Abstract $element)
|
33 |
{
|
34 |
+
/** @var ET_PaymentRobokassa_Helper_Data $helper */
|
35 |
+
$helper = Mage::helper('etpaymentrobokassa');
|
36 |
+
|
37 |
+
$html = '<a href="' . $this->getUrl('*/system_config/edit', array('section' => 'etpaymentrobokassa')) . '">' .
|
38 |
+
$helper->__('Extension information') . '</a>';
|
39 |
+
return $html;
|
40 |
}
|
41 |
}
|
app/code/community/ET/PaymentRobokassa/Block/Adminhtml/System/Config/Form/Field/Linktooptions.php
CHANGED
@@ -17,13 +17,24 @@
|
|
17 |
* @license http://shop.etwebsolutions.com/etws-license-free-v1/ ETWS Free License (EFL1)
|
18 |
*/
|
19 |
|
|
|
|
|
|
|
20 |
class ET_PaymentRobokassa_Block_Adminhtml_System_Config_Form_Field_Linktooptions
|
21 |
extends Mage_Adminhtml_Block_System_Config_Form_Field
|
22 |
{
|
|
|
|
|
|
|
|
|
|
|
|
|
23 |
protected function _getElementHtml(Varien_Data_Form_Element_Abstract $element)
|
24 |
{
|
25 |
-
|
26 |
-
|
27 |
-
|
|
|
|
|
28 |
}
|
29 |
}
|
17 |
* @license http://shop.etwebsolutions.com/etws-license-free-v1/ ETWS Free License (EFL1)
|
18 |
*/
|
19 |
|
20 |
+
/**
|
21 |
+
* Class ET_PaymentRobokassa_Block_Adminhtml_System_Config_Form_Field_Linktooptions
|
22 |
+
*/
|
23 |
class ET_PaymentRobokassa_Block_Adminhtml_System_Config_Form_Field_Linktooptions
|
24 |
extends Mage_Adminhtml_Block_System_Config_Form_Field
|
25 |
{
|
26 |
+
/**
|
27 |
+
* @param Varien_Data_Form_Element_Abstract $element
|
28 |
+
* @return string
|
29 |
+
*
|
30 |
+
* @inheritdoc
|
31 |
+
*/
|
32 |
protected function _getElementHtml(Varien_Data_Form_Element_Abstract $element)
|
33 |
{
|
34 |
+
/** @var ET_PaymentRobokassa_Helper_Data $helper */
|
35 |
+
$helper = Mage::helper('etpaymentrobokassa');
|
36 |
+
$html = '<a href="' . $this->getUrl('*/system_config/edit', array('section' => 'payment')) . '">' .
|
37 |
+
$helper->__('Go to Payment Methods settings section') . '</a>';
|
38 |
+
return $html;
|
39 |
}
|
40 |
}
|
app/code/community/ET/PaymentRobokassa/Block/Error.php
DELETED
@@ -1,34 +0,0 @@
|
|
1 |
-
<?php
|
2 |
-
|
3 |
-
/**
|
4 |
-
* NOTICE OF LICENSE
|
5 |
-
*
|
6 |
-
* You may not sell, sub-license, rent or lease
|
7 |
-
* any portion of the Software or Documentation to anyone.
|
8 |
-
*
|
9 |
-
* DISCLAIMER
|
10 |
-
*
|
11 |
-
* Do not edit or add to this file if you wish to upgrade to newer
|
12 |
-
* versions in the future.
|
13 |
-
*
|
14 |
-
* @category ET
|
15 |
-
* @package ET_PaymentRobokassa
|
16 |
-
* @copyright Copyright (c) 2015 ET Web Solutions (http://etwebsolutions.com)
|
17 |
-
* @contacts support@etwebsolutions.com
|
18 |
-
* @license http://shop.etwebsolutions.com/etws-license-free-v1/ ETWS Free License (EFL1)
|
19 |
-
*/
|
20 |
-
class ET_PaymentRobokassa_Block_Error extends Mage_Core_Block_Abstract
|
21 |
-
{
|
22 |
-
protected function _toHtml()
|
23 |
-
{
|
24 |
-
$storeId = Mage::app()->getStore()->getId();
|
25 |
-
$html = '<html><body>';
|
26 |
-
$html .= $this->__('An error has occurred during the checkout process. Please, contact the store owner.');
|
27 |
-
$html .= '<br><br><a href="' .
|
28 |
-
Mage::app()->getStore($storeId)->getBaseUrl(Mage_Core_Model_Store::URL_TYPE_LINK) . '">' .
|
29 |
-
$this->__('Back to the main page') . '</a>';
|
30 |
-
$html .= '</body></html>';
|
31 |
-
return $html;
|
32 |
-
}
|
33 |
-
|
34 |
-
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
app/code/community/ET/PaymentRobokassa/Block/Form.php
DELETED
@@ -1,22 +0,0 @@
|
|
1 |
-
<?php
|
2 |
-
/**
|
3 |
-
* NOTICE OF LICENSE
|
4 |
-
*
|
5 |
-
* You may not sell, sub-license, rent or lease
|
6 |
-
* any portion of the Software or Documentation to anyone.
|
7 |
-
*
|
8 |
-
* DISCLAIMER
|
9 |
-
*
|
10 |
-
* Do not edit or add to this file if you wish to upgrade to newer
|
11 |
-
* versions in the future.
|
12 |
-
*
|
13 |
-
* @category ET
|
14 |
-
* @package ET_PaymentRobokassa
|
15 |
-
* @copyright Copyright (c) 2013 ET Web Solutions (http://etwebsolutions.com)
|
16 |
-
* @contacts support@etwebsolutions.com
|
17 |
-
* @license http://shop.etwebsolutions.com/etws-license-free-v1/ ETWS Free License (EFL1)
|
18 |
-
*/
|
19 |
-
|
20 |
-
class ET_PaymentRobokassa_Block_Form extends Mage_Payment_Block_Form
|
21 |
-
{
|
22 |
-
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
app/code/community/ET/PaymentRobokassa/Block/Info.php
DELETED
@@ -1,22 +0,0 @@
|
|
1 |
-
<?php
|
2 |
-
/**
|
3 |
-
* NOTICE OF LICENSE
|
4 |
-
*
|
5 |
-
* You may not sell, sub-license, rent or lease
|
6 |
-
* any portion of the Software or Documentation to anyone.
|
7 |
-
*
|
8 |
-
* DISCLAIMER
|
9 |
-
*
|
10 |
-
* Do not edit or add to this file if you wish to upgrade to newer
|
11 |
-
* versions in the future.
|
12 |
-
*
|
13 |
-
* @category ET
|
14 |
-
* @package ET_PaymentRobokassa
|
15 |
-
* @copyright Copyright (c) 2013 ET Web Solutions (http://etwebsolutions.com)
|
16 |
-
* @contacts support@etwebsolutions.com
|
17 |
-
* @license http://shop.etwebsolutions.com/etws-license-free-v1/ ETWS Free License (EFL1)
|
18 |
-
*/
|
19 |
-
|
20 |
-
class ET_PaymentRobokassa_Block_Info extends Mage_Payment_Block_Info
|
21 |
-
{
|
22 |
-
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
app/code/community/ET/PaymentRobokassa/Block/Redirect.php
CHANGED
@@ -17,10 +17,16 @@
|
|
17 |
* @license http://shop.etwebsolutions.com/etws-license-free-v1/ ETWS Free License (EFL1)
|
18 |
*/
|
19 |
|
|
|
|
|
|
|
20 |
class ET_PaymentRobokassa_Block_Redirect extends Mage_Core_Block_Abstract
|
21 |
{
|
22 |
protected $_postData;
|
23 |
|
|
|
|
|
|
|
24 |
protected function _toHtml()
|
25 |
{
|
26 |
$html = '<html><body>';
|
@@ -35,6 +41,10 @@ class ET_PaymentRobokassa_Block_Redirect extends Mage_Core_Block_Abstract
|
|
35 |
return $html;
|
36 |
}
|
37 |
|
|
|
|
|
|
|
|
|
38 |
public function setPostData($data)
|
39 |
{
|
40 |
$this->_postData = $data;
|
17 |
* @license http://shop.etwebsolutions.com/etws-license-free-v1/ ETWS Free License (EFL1)
|
18 |
*/
|
19 |
|
20 |
+
/**
|
21 |
+
* Class ET_PaymentRobokassa_Block_Redirect
|
22 |
+
*/
|
23 |
class ET_PaymentRobokassa_Block_Redirect extends Mage_Core_Block_Abstract
|
24 |
{
|
25 |
protected $_postData;
|
26 |
|
27 |
+
/**
|
28 |
+
* @return string
|
29 |
+
*/
|
30 |
protected function _toHtml()
|
31 |
{
|
32 |
$html = '<html><body>';
|
41 |
return $html;
|
42 |
}
|
43 |
|
44 |
+
/**
|
45 |
+
* @param $data array
|
46 |
+
* @return $this ET_PaymentRobokassa_Block_Redirect
|
47 |
+
*/
|
48 |
public function setPostData($data)
|
49 |
{
|
50 |
$this->_postData = $data;
|
app/code/community/ET/PaymentRobokassa/Block/Single/Form.php
CHANGED
@@ -17,8 +17,14 @@
|
|
17 |
* @license http://shop.etwebsolutions.com/etws-license-free-v1/ ETWS Free License (EFL1)
|
18 |
*/
|
19 |
|
|
|
|
|
|
|
20 |
class ET_PaymentRobokassa_Block_Single_Form extends Mage_Payment_Block_Form
|
21 |
{
|
|
|
|
|
|
|
22 |
protected function _construct()
|
23 |
{
|
24 |
parent::_construct();
|
17 |
* @license http://shop.etwebsolutions.com/etws-license-free-v1/ ETWS Free License (EFL1)
|
18 |
*/
|
19 |
|
20 |
+
/**
|
21 |
+
* Class ET_PaymentRobokassa_Block_Single_Form
|
22 |
+
*/
|
23 |
class ET_PaymentRobokassa_Block_Single_Form extends Mage_Payment_Block_Form
|
24 |
{
|
25 |
+
/**
|
26 |
+
* Internal constructor
|
27 |
+
*/
|
28 |
protected function _construct()
|
29 |
{
|
30 |
parent::_construct();
|
app/code/community/ET/PaymentRobokassa/Block/Single/Info.php
CHANGED
@@ -17,8 +17,14 @@
|
|
17 |
* @license http://shop.etwebsolutions.com/etws-license-free-v1/ ETWS Free License (EFL1)
|
18 |
*/
|
19 |
|
|
|
|
|
|
|
20 |
class ET_PaymentRobokassa_Block_Single_Info extends Mage_Payment_Block_Info
|
21 |
{
|
|
|
|
|
|
|
22 |
protected function _construct()
|
23 |
{
|
24 |
parent::_construct();
|
17 |
* @license http://shop.etwebsolutions.com/etws-license-free-v1/ ETWS Free License (EFL1)
|
18 |
*/
|
19 |
|
20 |
+
/**
|
21 |
+
* Class ET_PaymentRobokassa_Block_Single_Info
|
22 |
+
*/
|
23 |
class ET_PaymentRobokassa_Block_Single_Info extends Mage_Payment_Block_Info
|
24 |
{
|
25 |
+
/**
|
26 |
+
* Internal constructor
|
27 |
+
*/
|
28 |
protected function _construct()
|
29 |
{
|
30 |
parent::_construct();
|
app/code/community/ET/PaymentRobokassa/Controller/Router.php
CHANGED
@@ -17,29 +17,49 @@
|
|
17 |
* @license http://shop.etwebsolutions.com/etws-license-free-v1/ ETWS Free License (EFL1)
|
18 |
*/
|
19 |
|
20 |
-
|
21 |
-
|
22 |
-
|
23 |
-
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
24 |
class ET_PaymentRobokassa_Controller_Router extends Mage_Core_Controller_Varien_Router_Abstract
|
25 |
{
|
26 |
protected $_routerController;
|
27 |
protected $_routerName = 'etrobokassa';
|
28 |
protected $_moduleName = 'etpaymentrobokassa';
|
29 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
30 |
|
|
|
|
|
|
|
31 |
public function initControllerRouters($observer)
|
32 |
{
|
|
|
33 |
$front = $observer->getEvent()->getFront();
|
34 |
$this->setRouterController();
|
35 |
$front->addRouter($this->_routerName, $this->_routerController);
|
36 |
}
|
37 |
|
38 |
-
public function setRouterController()
|
39 |
-
{
|
40 |
-
$this->_routerController = new ET_PaymentRobokassa_Controller_Router();
|
41 |
-
}
|
42 |
|
|
|
|
|
|
|
|
|
|
|
|
|
43 |
public function match(Zend_Controller_Request_Http $request)
|
44 |
{
|
45 |
if (!Mage::isInstalled()) {
|
@@ -50,16 +70,16 @@ class ET_PaymentRobokassa_Controller_Router extends Mage_Core_Controller_Varien_
|
|
50 |
}
|
51 |
|
52 |
$identifier = trim($request->getPathInfo(), '/');
|
53 |
-
$
|
54 |
|
55 |
//ne nash modulj
|
56 |
-
if ($this->_isOurModule($
|
57 |
return false;
|
58 |
}
|
59 |
|
60 |
/* to avoid /gate/ in return urls */
|
61 |
-
$
|
62 |
-
$
|
63 |
|
64 |
if ($orderId = $request->getParam("InvId")) {
|
65 |
Mage::app()->getStore()->load(Mage::getModel("sales/order")->load($orderId)->getStoreId());
|
@@ -67,8 +87,8 @@ class ET_PaymentRobokassa_Controller_Router extends Mage_Core_Controller_Varien_
|
|
67 |
// var_dump($allpath);
|
68 |
//exit();
|
69 |
$request->setModuleName($this->_moduleName)
|
70 |
-
->setControllerName(isset($
|
71 |
-
->setActionName(isset($
|
72 |
$request->setAlias(
|
73 |
Mage_Core_Model_Url_Rewrite::REWRITE_REQUEST_PATH_ALIAS,
|
74 |
trim($request->getPathInfo(), '/')
|
@@ -78,7 +98,7 @@ class ET_PaymentRobokassa_Controller_Router extends Mage_Core_Controller_Varien_
|
|
78 |
}
|
79 |
|
80 |
/**
|
81 |
-
* @param $
|
82 |
* @return bool
|
83 |
*/
|
84 |
protected function _isOurModule($urlKey)
|
17 |
* @license http://shop.etwebsolutions.com/etws-license-free-v1/ ETWS Free License (EFL1)
|
18 |
*/
|
19 |
|
20 |
+
/**
|
21 |
+
* Class ET_PaymentRobokassa_Controller_Router
|
22 |
+
*
|
23 |
+
* Нужен из-за того, что платёжный сервер в любом случае
|
24 |
+
* возвращает на один и тот же адрес, независимо
|
25 |
+
* от успеха операции и языка.
|
26 |
+
*
|
27 |
+
* We need this router, because payment server always return
|
28 |
+
* to the same url, regardless of
|
29 |
+
* the operation success status and the language
|
30 |
+
*/
|
31 |
class ET_PaymentRobokassa_Controller_Router extends Mage_Core_Controller_Varien_Router_Abstract
|
32 |
{
|
33 |
protected $_routerController;
|
34 |
protected $_routerName = 'etrobokassa';
|
35 |
protected $_moduleName = 'etpaymentrobokassa';
|
36 |
|
37 |
+
/**
|
38 |
+
* Option setter
|
39 |
+
*/
|
40 |
+
public function setRouterController()
|
41 |
+
{
|
42 |
+
$this->_routerController = new ET_PaymentRobokassa_Controller_Router();
|
43 |
+
}
|
44 |
|
45 |
+
/**
|
46 |
+
* @param Varien_Event_Observer $observer
|
47 |
+
*/
|
48 |
public function initControllerRouters($observer)
|
49 |
{
|
50 |
+
/* @var $front Mage_Core_Controller_Varien_Front */
|
51 |
$front = $observer->getEvent()->getFront();
|
52 |
$this->setRouterController();
|
53 |
$front->addRouter($this->_routerName, $this->_routerController);
|
54 |
}
|
55 |
|
|
|
|
|
|
|
|
|
56 |
|
57 |
+
/**
|
58 |
+
* Redirect customer to necessary Store View
|
59 |
+
*
|
60 |
+
* @param Zend_Controller_Request_Http $request
|
61 |
+
* @return bool
|
62 |
+
*/
|
63 |
public function match(Zend_Controller_Request_Http $request)
|
64 |
{
|
65 |
if (!Mage::isInstalled()) {
|
70 |
}
|
71 |
|
72 |
$identifier = trim($request->getPathInfo(), '/');
|
73 |
+
$allPath = explode("/", $identifier);
|
74 |
|
75 |
//ne nash modulj
|
76 |
+
if ($this->_isOurModule($allPath[0])) {
|
77 |
return false;
|
78 |
}
|
79 |
|
80 |
/* to avoid /gate/ in return urls */
|
81 |
+
$allPath[2] = $allPath[1];
|
82 |
+
$allPath[1] = 'gate';
|
83 |
|
84 |
if ($orderId = $request->getParam("InvId")) {
|
85 |
Mage::app()->getStore()->load(Mage::getModel("sales/order")->load($orderId)->getStoreId());
|
87 |
// var_dump($allpath);
|
88 |
//exit();
|
89 |
$request->setModuleName($this->_moduleName)
|
90 |
+
->setControllerName(isset($allPath[1]) ? $allPath[1] : 'gate')
|
91 |
+
->setActionName(isset($allPath[2]) ? $allPath[2] : 'success');
|
92 |
$request->setAlias(
|
93 |
Mage_Core_Model_Url_Rewrite::REWRITE_REQUEST_PATH_ALIAS,
|
94 |
trim($request->getPathInfo(), '/')
|
98 |
}
|
99 |
|
100 |
/**
|
101 |
+
* @param string $urlKey
|
102 |
* @return bool
|
103 |
*/
|
104 |
protected function _isOurModule($urlKey)
|
app/code/community/ET/PaymentRobokassa/Helper/Data.php
CHANGED
@@ -1,5 +1,4 @@
|
|
1 |
<?php
|
2 |
-
|
3 |
/**
|
4 |
* NOTICE OF LICENSE
|
5 |
*
|
@@ -17,40 +16,44 @@
|
|
17 |
* @contacts support@etwebsolutions.com
|
18 |
* @license http://shop.etwebsolutions.com/etws-license-free-v1/ ETWS Free License (EFL1)
|
19 |
*/
|
|
|
|
|
|
|
|
|
20 |
class ET_PaymentRobokassa_Helper_Data extends Mage_Core_Helper_Abstract
|
21 |
{
|
22 |
|
|
|
|
|
|
|
|
|
|
|
23 |
public function refillCart($order)
|
24 |
{
|
25 |
-
|
26 |
-
$cartRefilled = true;
|
27 |
-
|
28 |
$cart = Mage::getSingleton('checkout/cart');
|
29 |
$items = $order->getItemsCollection();
|
|
|
|
|
|
|
30 |
foreach ($items as $item) {
|
31 |
try {
|
32 |
$cart->addOrderItem($item);
|
33 |
-
} catch (Mage_Core_Exception $e) {
|
34 |
-
$cartRefilled = false;
|
35 |
-
if (Mage::getSingleton('checkout/session')->getUseNotice(true)) {
|
36 |
-
Mage::getSingleton('checkout/session')->addNotice($e->getMessage());
|
37 |
-
} else {
|
38 |
-
Mage::getSingleton('checkout/session')->addError($e->getMessage());
|
39 |
-
}
|
40 |
-
$this->_redirect('customer/account/history');
|
41 |
} catch (Exception $e) {
|
42 |
-
$
|
43 |
-
|
44 |
-
$e,
|
45 |
-
Mage::helper('checkout')->__('Cannot add the item to shopping cart.')
|
46 |
);
|
47 |
}
|
48 |
}
|
49 |
$cart->save();
|
50 |
-
|
51 |
-
return $cartRefilled;
|
52 |
}
|
53 |
|
|
|
|
|
|
|
|
|
|
|
|
|
54 |
public function log($message)
|
55 |
{
|
56 |
if ($this->isLogEnabled()) {
|
@@ -59,7 +62,8 @@ class ET_PaymentRobokassa_Helper_Data extends Mage_Core_Helper_Abstract
|
|
59 |
Mage::dispatchEvent('robokassa_log_file_write_before', $message);
|
60 |
$forLog = array();
|
61 |
foreach ($message as $answerKey => $answerValue) {
|
62 |
-
$
|
|
|
63 |
}
|
64 |
$forLog[] = '***************************';
|
65 |
$message = implode("\r\n", $forLog);
|
@@ -69,8 +73,15 @@ class ET_PaymentRobokassa_Helper_Data extends Mage_Core_Helper_Abstract
|
|
69 |
return true;
|
70 |
}
|
71 |
|
|
|
|
|
|
|
|
|
|
|
|
|
72 |
public function arrayToRawData($array)
|
73 |
{
|
|
|
74 |
foreach ($array as $key => $value) {
|
75 |
$newArray[] = $key . ": " . $value;
|
76 |
}
|
@@ -78,14 +89,26 @@ class ET_PaymentRobokassa_Helper_Data extends Mage_Core_Helper_Abstract
|
|
78 |
return $raw;
|
79 |
}
|
80 |
|
|
|
|
|
|
|
|
|
|
|
81 |
public function isLogEnabled()
|
82 |
{
|
83 |
-
|
|
|
84 |
}
|
85 |
|
|
|
|
|
|
|
|
|
|
|
86 |
public function getLogFileName()
|
87 |
{
|
88 |
-
return '
|
89 |
}
|
90 |
|
|
|
91 |
}
|
1 |
<?php
|
|
|
2 |
/**
|
3 |
* NOTICE OF LICENSE
|
4 |
*
|
16 |
* @contacts support@etwebsolutions.com
|
17 |
* @license http://shop.etwebsolutions.com/etws-license-free-v1/ ETWS Free License (EFL1)
|
18 |
*/
|
19 |
+
|
20 |
+
/**
|
21 |
+
* Class ET_PaymentRobokassa_Helper_Data
|
22 |
+
*/
|
23 |
class ET_PaymentRobokassa_Helper_Data extends Mage_Core_Helper_Abstract
|
24 |
{
|
25 |
|
26 |
+
/**
|
27 |
+
* Refilling cart after failed payment
|
28 |
+
*
|
29 |
+
* @param Mage_Sales_Model_Order $order
|
30 |
+
*/
|
31 |
public function refillCart($order)
|
32 |
{
|
33 |
+
/* @var $cart Mage_Checkout_Model_Cart */
|
|
|
|
|
34 |
$cart = Mage::getSingleton('checkout/cart');
|
35 |
$items = $order->getItemsCollection();
|
36 |
+
/* @var $checkoutSession Mage_Checkout_Model_Session */
|
37 |
+
$checkoutSession = Mage::getSingleton('checkout/session');
|
38 |
+
/** @var $item Mage_Sales_Model_Order_Item */
|
39 |
foreach ($items as $item) {
|
40 |
try {
|
41 |
$cart->addOrderItem($item);
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
42 |
} catch (Exception $e) {
|
43 |
+
$checkoutSession->addError(
|
44 |
+
Mage::helper('checkout')->__('Cannot add the item %s to shopping cart.', $item->getName())
|
|
|
|
|
45 |
);
|
46 |
}
|
47 |
}
|
48 |
$cart->save();
|
|
|
|
|
49 |
}
|
50 |
|
51 |
+
/**
|
52 |
+
* Writes information to log file
|
53 |
+
*
|
54 |
+
* @param $message - string or array of strings
|
55 |
+
* @return bool
|
56 |
+
*/
|
57 |
public function log($message)
|
58 |
{
|
59 |
if ($this->isLogEnabled()) {
|
62 |
Mage::dispatchEvent('robokassa_log_file_write_before', $message);
|
63 |
$forLog = array();
|
64 |
foreach ($message as $answerKey => $answerValue) {
|
65 |
+
$answer = is_array($answerValue) ? print_r($answerValue, true) : $answerValue;
|
66 |
+
$forLog[] = $answerKey . ": " . $answer;
|
67 |
}
|
68 |
$forLog[] = '***************************';
|
69 |
$message = implode("\r\n", $forLog);
|
73 |
return true;
|
74 |
}
|
75 |
|
76 |
+
/**
|
77 |
+
* Convert array to string for logging
|
78 |
+
*
|
79 |
+
* @param $array
|
80 |
+
* @return string
|
81 |
+
*/
|
82 |
public function arrayToRawData($array)
|
83 |
{
|
84 |
+
$newArray = array();
|
85 |
foreach ($array as $key => $value) {
|
86 |
$newArray[] = $key . ": " . $value;
|
87 |
}
|
89 |
return $raw;
|
90 |
}
|
91 |
|
92 |
+
/**
|
93 |
+
* Is log writing enabled or not?
|
94 |
+
*
|
95 |
+
* @return bool
|
96 |
+
*/
|
97 |
public function isLogEnabled()
|
98 |
{
|
99 |
+
// for new extensions use variable "log_enabled"
|
100 |
+
return (bool)Mage::getStoreConfig('payment/etrobokassa/enable_log');
|
101 |
}
|
102 |
|
103 |
+
/**
|
104 |
+
* Function returns log file name
|
105 |
+
*
|
106 |
+
* @return string
|
107 |
+
*/
|
108 |
public function getLogFileName()
|
109 |
{
|
110 |
+
return Mage::getStoreConfig('payment/etrobokassa/log_file');
|
111 |
}
|
112 |
|
113 |
+
|
114 |
}
|
app/code/community/ET/PaymentRobokassa/Model/Culture.php
CHANGED
@@ -17,9 +17,15 @@
|
|
17 |
* @license http://shop.etwebsolutions.com/etws-license-free-v1/ ETWS Free License (EFL1)
|
18 |
*/
|
19 |
|
|
|
|
|
|
|
20 |
class ET_PaymentRobokassa_Model_Culture extends Mage_Core_Model_Abstract
|
21 |
{
|
22 |
|
|
|
|
|
|
|
23 |
public function toOptionArray()
|
24 |
{
|
25 |
$data = array(
|
17 |
* @license http://shop.etwebsolutions.com/etws-license-free-v1/ ETWS Free License (EFL1)
|
18 |
*/
|
19 |
|
20 |
+
/**
|
21 |
+
* Class ET_PaymentRobokassa_Model_Culture
|
22 |
+
*/
|
23 |
class ET_PaymentRobokassa_Model_Culture extends Mage_Core_Model_Abstract
|
24 |
{
|
25 |
|
26 |
+
/**
|
27 |
+
* @return array
|
28 |
+
*/
|
29 |
public function toOptionArray()
|
30 |
{
|
31 |
$data = array(
|
app/code/community/ET/PaymentRobokassa/Model/Hashtype.php
ADDED
@@ -0,0 +1,56 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
<?php
|
2 |
+
/**
|
3 |
+
* NOTICE OF LICENSE
|
4 |
+
*
|
5 |
+
* You may not sell, sub-license, rent or lease
|
6 |
+
* any portion of the Software or Documentation to anyone.
|
7 |
+
*
|
8 |
+
* DISCLAIMER
|
9 |
+
*
|
10 |
+
* Do not edit or add to this file if you wish to upgrade to newer
|
11 |
+
* versions in the future.
|
12 |
+
*
|
13 |
+
* @category ET
|
14 |
+
* @package ET_PaymentRobokassa
|
15 |
+
* @copyright Copyright (c) 2013 ET Web Solutions (http://etwebsolutions.com)
|
16 |
+
* @contacts support@etwebsolutions.com
|
17 |
+
* @license http://shop.etwebsolutions.com/etws-license-free-v1/ ETWS Free License (EFL1)
|
18 |
+
*/
|
19 |
+
|
20 |
+
/**
|
21 |
+
* Class ET_PaymentRobokassa_Model_Hashtype
|
22 |
+
*/
|
23 |
+
class ET_PaymentRobokassa_Model_Hashtype extends Mage_Core_Model_Abstract
|
24 |
+
{
|
25 |
+
/**
|
26 |
+
* @return array
|
27 |
+
*/
|
28 |
+
public function toOptionArray()
|
29 |
+
{
|
30 |
+
/** @var $helper ET_PaymentRobokassa_Helper_Data */
|
31 |
+
$helper = Mage::helper('etpaymentrobokassa');
|
32 |
+
$data = array(
|
33 |
+
array('value' => "md5", 'label' => $helper->__('MD5')),
|
34 |
+
array('value' => "ripemd160", 'label' => $helper->__('RIPEMD160')),
|
35 |
+
array('value' => "sha1", 'label' => $helper->__('SHA1')),
|
36 |
+
array('value' => "sha256", 'label' => $helper->__('SHA256')),
|
37 |
+
array('value' => "sha384", 'label' => $helper->__('SHA384')),
|
38 |
+
array('value' => "sha512", 'label' => $helper->__('SHA512'))
|
39 |
+
);
|
40 |
+
return $data;
|
41 |
+
}
|
42 |
+
|
43 |
+
/**
|
44 |
+
* @return array
|
45 |
+
*/
|
46 |
+
public function getValueArray()
|
47 |
+
{
|
48 |
+
$data = $this->toOptionArray();
|
49 |
+
|
50 |
+
$return = array();
|
51 |
+
foreach ($data as $value) {
|
52 |
+
array_push($return, $value['value']);
|
53 |
+
}
|
54 |
+
return $return;
|
55 |
+
}
|
56 |
+
}
|
app/code/community/ET/PaymentRobokassa/Model/Method/Etrobokassa.php
CHANGED
@@ -17,6 +17,9 @@
|
|
17 |
* @license http://shop.etwebsolutions.com/etws-license-free-v1/ ETWS Free License (EFL1)
|
18 |
*/
|
19 |
|
|
|
|
|
|
|
20 |
class ET_PaymentRobokassa_Model_Method_Etrobokassa extends Mage_Payment_Model_Method_Abstract
|
21 |
{
|
22 |
|
@@ -29,25 +32,14 @@ class ET_PaymentRobokassa_Model_Method_Etrobokassa extends Mage_Payment_Model_Me
|
|
29 |
* @var bool
|
30 |
*/
|
31 |
protected $_isGateway = true;
|
32 |
-
protected $_canOrder = false;
|
33 |
-
protected $_canAuthorize = false;
|
34 |
protected $_canCapture = true;
|
35 |
-
protected $_canCapturePartial = false;
|
36 |
-
protected $_canRefund = false;
|
37 |
-
protected $_canRefundInvoicePartial = false;
|
38 |
-
protected $_canVoid = false;
|
39 |
-
protected $_canUseRobonal = false;
|
40 |
protected $_canUseCheckout = true;
|
41 |
protected $_canUseForMultishipping = false;
|
42 |
-
protected $_isInitializeNeeded = false;
|
43 |
-
protected $_canFetchTransactionInfo = false;
|
44 |
-
protected $_canReviewPayment = false;
|
45 |
-
protected $_canCreateBillingAgreement = false;
|
46 |
protected $_canManageRecurringProfiles = false;
|
47 |
-
protected $_canEdit = false;
|
48 |
|
49 |
protected $_canUseInternal = false; // Payment method will not work in admin panel order
|
50 |
|
|
|
51 |
/**
|
52 |
* Payment Method instance configuration
|
53 |
* @var bool
|
@@ -57,8 +49,7 @@ class ET_PaymentRobokassa_Model_Method_Etrobokassa extends Mage_Payment_Model_Me
|
|
57 |
protected $_description;
|
58 |
protected $_testMode;
|
59 |
|
60 |
-
protected $
|
61 |
-
|
62 |
|
63 |
protected $_sMerchantLogin;
|
64 |
protected $_sInvDesc;
|
@@ -67,27 +58,29 @@ class ET_PaymentRobokassa_Model_Method_Etrobokassa extends Mage_Payment_Model_Me
|
|
67 |
protected $_sCulture;
|
68 |
protected $_transferCurrency;
|
69 |
|
70 |
-
|
71 |
protected $_sMerchantPassOne;
|
72 |
protected $_sMerchantPassTwo;
|
73 |
|
74 |
protected $_cartRefill;
|
75 |
|
76 |
-
protected $
|
77 |
-
//protected $
|
78 |
-
protected $_testUrl = "http://test.robokassa.ru/Index.aspx";
|
79 |
-
|
80 |
-
|
81 |
protected $_configRead = false;
|
82 |
|
83 |
-
|
|
|
|
|
84 |
public function __construct()
|
85 |
{
|
86 |
parent::__construct();
|
87 |
$this->readConfig();
|
88 |
}
|
89 |
|
90 |
-
|
|
|
|
|
|
|
|
|
91 |
protected function readConfig()
|
92 |
{
|
93 |
if ($this->_configRead) {
|
@@ -96,22 +89,29 @@ class ET_PaymentRobokassa_Model_Method_Etrobokassa extends Mage_Payment_Model_Me
|
|
96 |
$this->_isActive = $this->getConfigData('active');
|
97 |
$this->_title = $this->getConfigData('title');
|
98 |
$this->_testMode = $this->getConfigDataRobo('test_mode');
|
99 |
-
|
100 |
$this->_paymentText = $this->getConfigData('payment_text');
|
101 |
$this->_description = Mage::helper('cms')->getBlockTemplateProcessor()->filter($this->_paymentText);
|
102 |
|
103 |
-
|
104 |
$this->_sMerchantLogin = $this->getConfigDataRobo('sMerchantLogin');
|
105 |
|
106 |
$this->_sInvDesc = $this->getConfigDataRobo('sInvDesc');
|
107 |
|
108 |
$this->_sIncCurrLabel = $this->getConfigData('sIncCurrLabel');
|
109 |
-
$this->_transferCurrency = Mage::app()->getBaseCurrencyCode();
|
110 |
|
111 |
$this->_sCulture = $this->getConfigDataRobo('sCulture');
|
112 |
|
113 |
-
|
114 |
-
$
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
115 |
|
116 |
$this->_cartRefill = $this->getConfigDataRobo('cart_refill');
|
117 |
|
@@ -122,19 +122,33 @@ class ET_PaymentRobokassa_Model_Method_Etrobokassa extends Mage_Payment_Model_Me
|
|
122 |
|
123 |
/**
|
124 |
* To read common settings, like login and passwords.
|
125 |
-
* all specific
|
126 |
*
|
|
|
|
|
|
|
|
|
127 |
*/
|
128 |
-
public function getConfigDataRobo($field, $storeId = null)
|
129 |
{
|
130 |
if (null === $storeId) {
|
131 |
-
$storeId = $this->
|
132 |
}
|
133 |
$path = 'payment/etrobokassa/' . $field;
|
134 |
-
|
|
|
|
|
|
|
|
|
|
|
|
|
135 |
}
|
136 |
|
137 |
-
|
|
|
|
|
|
|
|
|
138 |
public function getDescription()
|
139 |
{
|
140 |
$this->readConfig();
|
@@ -142,16 +156,27 @@ class ET_PaymentRobokassa_Model_Method_Etrobokassa extends Mage_Payment_Model_Me
|
|
142 |
}
|
143 |
|
144 |
|
|
|
|
|
|
|
|
|
145 |
public function getOrderPlaceRedirectUrl()
|
146 |
{
|
147 |
-
return
|
148 |
}
|
149 |
|
150 |
-
|
|
|
|
|
|
|
|
|
|
|
151 |
{
|
152 |
-
|
|
|
153 |
}
|
154 |
|
|
|
155 |
/**
|
156 |
* Check whether payment method can be used
|
157 |
* @param Mage_Sales_Model_Quote
|
@@ -162,21 +187,12 @@ class ET_PaymentRobokassa_Model_Method_Etrobokassa extends Mage_Payment_Model_Me
|
|
162 |
return parent::isAvailable($quote);
|
163 |
}
|
164 |
|
165 |
-
|
166 |
-
|
167 |
-
|
168 |
-
|
169 |
-
|
170 |
-
|
171 |
-
if (!$rate || !$reverseRate) {
|
172 |
-
Mage::helper("etpaymentrobokassa")->log('There is no rate for [' . $displayCurrencyCode . "/"
|
173 |
-
. $this->_transferCurrency
|
174 |
-
. '] to convert order amount. Payment method Robokassa not displayed.');
|
175 |
-
return false;
|
176 |
-
}
|
177 |
-
return true;
|
178 |
-
}
|
179 |
-
|
180 |
public function canUseForCountry($country)
|
181 |
{
|
182 |
if (Mage::getStoreConfig('payment/etrobokassa/allowspecific') == 1) {
|
@@ -194,15 +210,22 @@ class ET_PaymentRobokassa_Model_Method_Etrobokassa extends Mage_Payment_Model_Me
|
|
194 |
*/
|
195 |
public function preparePaymentData($order)
|
196 |
{
|
|
|
197 |
$this->readConfig();
|
|
|
|
|
|
|
|
|
|
|
|
|
198 |
|
199 |
-
if (empty($this->
|
200 |
-
|
201 |
-
->log('Please enter login information about your Robokassa merchant in admin panel!');
|
202 |
}
|
203 |
|
204 |
-
$hash = $this->generateHash($order,
|
205 |
$outSum = $this->getOutSum($order);
|
|
|
206 |
$postData = array(
|
207 |
"MrchLogin" => $this->_sMerchantLogin,
|
208 |
"OutSum" => round($outSum, 2),
|
@@ -212,31 +235,41 @@ class ET_PaymentRobokassa_Model_Method_Etrobokassa extends Mage_Payment_Model_Me
|
|
212 |
"SignatureValue" => $hash,
|
213 |
"IncCurrLabel" => $this->_sIncCurrLabel,
|
214 |
"Email" => $order->getCustomerEmail(),
|
215 |
-
"Culture" => $this->_sCulture
|
|
|
216 |
);
|
217 |
$result = array(
|
218 |
'postData' => new Varien_Object($postData),
|
219 |
'order' => $order,
|
220 |
);
|
|
|
221 |
Mage::dispatchEvent('robokassa_prepare_payment_data', $result);
|
222 |
$postData = $result['postData']->getData();
|
223 |
return $postData;
|
224 |
}
|
225 |
|
|
|
|
|
|
|
|
|
|
|
|
|
226 |
public function checkAnswerData($answer)
|
227 |
{
|
228 |
try {
|
229 |
$errors = array();
|
230 |
$this->readConfig();
|
231 |
//$order = Mage::getModel("sales/order")->load($this->getOrderId($answer));
|
232 |
-
$order
|
|
|
|
|
233 |
$hashArray = array(
|
234 |
$answer["OutSum"],
|
235 |
$answer["InvId"],
|
236 |
$this->_sMerchantPassTwo
|
237 |
);
|
238 |
|
239 |
-
$hashCurrent =
|
240 |
$correctHash = (strcmp($hashCurrent, strtoupper($answer['SignatureValue'])) == 0);
|
241 |
|
242 |
if (!$correctHash) {
|
@@ -271,44 +304,74 @@ class ET_PaymentRobokassa_Model_Method_Etrobokassa extends Mage_Payment_Model_Me
|
|
271 |
}
|
272 |
}
|
273 |
|
274 |
-
|
275 |
-
|
|
|
|
|
|
|
276 |
{
|
277 |
-
$
|
278 |
-
if ($this->_testMode) {
|
279 |
-
return $this->_testUrl;
|
280 |
-
}
|
281 |
-
return $this->_gateUrl;
|
282 |
}
|
283 |
|
284 |
|
285 |
-
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
286 |
{
|
287 |
-
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
288 |
}
|
289 |
|
|
|
290 |
/**
|
291 |
-
*
|
292 |
-
* @param bool $writeLog
|
293 |
*
|
|
|
294 |
* @return string
|
295 |
*/
|
296 |
-
public function
|
297 |
{
|
298 |
-
|
299 |
-
$
|
300 |
-
|
301 |
-
|
302 |
-
|
303 |
-
|
304 |
-
"
|
305 |
-
|
|
|
306 |
|
307 |
-
|
|
|
308 |
return $hash;
|
309 |
}
|
310 |
|
|
|
|
|
311 |
/**
|
|
|
|
|
312 |
* @param $order Mage_Sales_Model_Order
|
313 |
* @param bool $writeLog
|
314 |
*
|
@@ -316,18 +379,15 @@ class ET_PaymentRobokassa_Model_Method_Etrobokassa extends Mage_Payment_Model_Me
|
|
316 |
*/
|
317 |
public function getOutSum($order, $writeLog = false)
|
318 |
{
|
319 |
-
|
320 |
-
|
321 |
-
if ($writeLog) {
|
322 |
-
Mage::helper("etpaymentrobokassa")->log('Currency converted from [' .
|
323 |
-
Mage::app()->getStore()->getCurrentCurrencyCode() . '] to [' .
|
324 |
-
$this->_transferCurrency . '] ' . $order->getBaseGrandTotal() . ' ' . $outSum . '');
|
325 |
-
}
|
326 |
-
} else {
|
327 |
-
$outSum = $order->getGrandTotal();
|
328 |
-
}
|
329 |
|
330 |
-
|
|
|
|
|
|
|
|
|
|
|
331 |
}
|
332 |
|
333 |
}
|
17 |
* @license http://shop.etwebsolutions.com/etws-license-free-v1/ ETWS Free License (EFL1)
|
18 |
*/
|
19 |
|
20 |
+
/**
|
21 |
+
* Class ET_PaymentRobokassa_Model_Method_Etrobokassa
|
22 |
+
*/
|
23 |
class ET_PaymentRobokassa_Model_Method_Etrobokassa extends Mage_Payment_Model_Method_Abstract
|
24 |
{
|
25 |
|
32 |
* @var bool
|
33 |
*/
|
34 |
protected $_isGateway = true;
|
|
|
|
|
35 |
protected $_canCapture = true;
|
|
|
|
|
|
|
|
|
|
|
36 |
protected $_canUseCheckout = true;
|
37 |
protected $_canUseForMultishipping = false;
|
|
|
|
|
|
|
|
|
38 |
protected $_canManageRecurringProfiles = false;
|
|
|
39 |
|
40 |
protected $_canUseInternal = false; // Payment method will not work in admin panel order
|
41 |
|
42 |
+
|
43 |
/**
|
44 |
* Payment Method instance configuration
|
45 |
* @var bool
|
49 |
protected $_description;
|
50 |
protected $_testMode;
|
51 |
|
52 |
+
protected $_hashType;
|
|
|
53 |
|
54 |
protected $_sMerchantLogin;
|
55 |
protected $_sInvDesc;
|
58 |
protected $_sCulture;
|
59 |
protected $_transferCurrency;
|
60 |
|
|
|
61 |
protected $_sMerchantPassOne;
|
62 |
protected $_sMerchantPassTwo;
|
63 |
|
64 |
protected $_cartRefill;
|
65 |
|
66 |
+
protected $_url = "https://auth.robokassa.ru/Merchant/Index.aspx";
|
67 |
+
//protected $_url = "http://test.robokassa.ru/Index.aspx"; // old test url
|
|
|
|
|
|
|
68 |
protected $_configRead = false;
|
69 |
|
70 |
+
/**
|
71 |
+
* Constructor
|
72 |
+
*/
|
73 |
public function __construct()
|
74 |
{
|
75 |
parent::__construct();
|
76 |
$this->readConfig();
|
77 |
}
|
78 |
|
79 |
+
/**
|
80 |
+
* Read extension configuration
|
81 |
+
*
|
82 |
+
* @throws Exception
|
83 |
+
*/
|
84 |
protected function readConfig()
|
85 |
{
|
86 |
if ($this->_configRead) {
|
89 |
$this->_isActive = $this->getConfigData('active');
|
90 |
$this->_title = $this->getConfigData('title');
|
91 |
$this->_testMode = $this->getConfigDataRobo('test_mode');
|
92 |
+
$this->_hashType = $this->getConfigData('hash_type');
|
93 |
$this->_paymentText = $this->getConfigData('payment_text');
|
94 |
$this->_description = Mage::helper('cms')->getBlockTemplateProcessor()->filter($this->_paymentText);
|
95 |
|
|
|
96 |
$this->_sMerchantLogin = $this->getConfigDataRobo('sMerchantLogin');
|
97 |
|
98 |
$this->_sInvDesc = $this->getConfigDataRobo('sInvDesc');
|
99 |
|
100 |
$this->_sIncCurrLabel = $this->getConfigData('sIncCurrLabel');
|
101 |
+
$this->_transferCurrency = Mage::app()->getWebsite()->getBaseCurrencyCode();
|
102 |
|
103 |
$this->_sCulture = $this->getConfigDataRobo('sCulture');
|
104 |
|
105 |
+
|
106 |
+
$passwordFieldOne = 'sMerchantPass1';
|
107 |
+
$passwordFieldTwo = 'sMerchantPass2';
|
108 |
+
if ($this->_testMode) {
|
109 |
+
$passwordFieldOne = 'testModePass1';
|
110 |
+
$passwordFieldTwo = 'testModePass2';
|
111 |
+
}
|
112 |
+
|
113 |
+
$this->_sMerchantPassOne = $this->getConfigDataRobo($passwordFieldOne, null, true);
|
114 |
+
$this->_sMerchantPassTwo = $this->getConfigDataRobo($passwordFieldTwo, null, true);
|
115 |
|
116 |
$this->_cartRefill = $this->getConfigDataRobo('cart_refill');
|
117 |
|
122 |
|
123 |
/**
|
124 |
* To read common settings, like login and passwords.
|
125 |
+
* all specific method setting must be read with default function
|
126 |
*
|
127 |
+
* @param string $field
|
128 |
+
* @param int|null $storeId
|
129 |
+
* @param bool $decrypt - for passwords
|
130 |
+
* @return mixed|string
|
131 |
*/
|
132 |
+
public function getConfigDataRobo($field, $storeId = null, $decrypt = false)
|
133 |
{
|
134 |
if (null === $storeId) {
|
135 |
+
$storeId = $this->getData('store'); // we set store in ET_PaymentRobokassaAdvanced_Helper_Data
|
136 |
}
|
137 |
$path = 'payment/etrobokassa/' . $field;
|
138 |
+
$result = Mage::getStoreConfig($path, $storeId);
|
139 |
+
if ($decrypt) {
|
140 |
+
/* @var $coreHelper Mage_Core_Helper_Data */
|
141 |
+
$coreHelper = Mage::helper('core');
|
142 |
+
$result = $coreHelper->decrypt($result);
|
143 |
+
}
|
144 |
+
return $result;
|
145 |
}
|
146 |
|
147 |
+
/**
|
148 |
+
* Payment method description from configuration
|
149 |
+
*
|
150 |
+
* @return string
|
151 |
+
*/
|
152 |
public function getDescription()
|
153 |
{
|
154 |
$this->readConfig();
|
156 |
}
|
157 |
|
158 |
|
159 |
+
/**
|
160 |
+
* Redirect URL to robokassa controller after order place
|
161 |
+
* @return string
|
162 |
+
*/
|
163 |
public function getOrderPlaceRedirectUrl()
|
164 |
{
|
165 |
+
return Mage::getUrl('etrobokassa/redirect');
|
166 |
}
|
167 |
|
168 |
+
/**
|
169 |
+
* Payment system URL
|
170 |
+
*
|
171 |
+
* @return string
|
172 |
+
*/
|
173 |
+
public function getGateUrl()
|
174 |
{
|
175 |
+
$this->readConfig();
|
176 |
+
return $this->_url;
|
177 |
}
|
178 |
|
179 |
+
|
180 |
/**
|
181 |
* Check whether payment method can be used
|
182 |
* @param Mage_Sales_Model_Quote
|
187 |
return parent::isAvailable($quote);
|
188 |
}
|
189 |
|
190 |
+
/**
|
191 |
+
* To check billing country is allowed for the payment method
|
192 |
+
*
|
193 |
+
* @param $country
|
194 |
+
* @return bool
|
195 |
+
*/
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
196 |
public function canUseForCountry($country)
|
197 |
{
|
198 |
if (Mage::getStoreConfig('payment/etrobokassa/allowspecific') == 1) {
|
210 |
*/
|
211 |
public function preparePaymentData($order)
|
212 |
{
|
213 |
+
|
214 |
$this->readConfig();
|
215 |
+
/** @var ET_PaymentRobokassa_Helper_Data $helper */
|
216 |
+
$helper = Mage::helper("etpaymentrobokassa");
|
217 |
+
|
218 |
+
if (empty($this->_sMerchantLogin)) {
|
219 |
+
$helper->log('Please enter login information about your Robokassa merchant in admin panel!');
|
220 |
+
}
|
221 |
|
222 |
+
if (empty($this->_sMerchantPassOne) || empty($this->_sMerchantPassTwo)) {
|
223 |
+
$helper->log('Please enter corrects passwords about your Robokassa merchant in admin panel!');
|
|
|
224 |
}
|
225 |
|
226 |
+
$hash = $this->generateHash($order, true);
|
227 |
$outSum = $this->getOutSum($order);
|
228 |
+
|
229 |
$postData = array(
|
230 |
"MrchLogin" => $this->_sMerchantLogin,
|
231 |
"OutSum" => round($outSum, 2),
|
235 |
"SignatureValue" => $hash,
|
236 |
"IncCurrLabel" => $this->_sIncCurrLabel,
|
237 |
"Email" => $order->getCustomerEmail(),
|
238 |
+
"Culture" => $this->_sCulture,
|
239 |
+
"IsTest" => $this->_testMode,
|
240 |
);
|
241 |
$result = array(
|
242 |
'postData' => new Varien_Object($postData),
|
243 |
'order' => $order,
|
244 |
);
|
245 |
+
|
246 |
Mage::dispatchEvent('robokassa_prepare_payment_data', $result);
|
247 |
$postData = $result['postData']->getData();
|
248 |
return $postData;
|
249 |
}
|
250 |
|
251 |
+
/**
|
252 |
+
* Check answer from Robokassa
|
253 |
+
*
|
254 |
+
* @param array $answer
|
255 |
+
* @return array of errors or true
|
256 |
+
*/
|
257 |
public function checkAnswerData($answer)
|
258 |
{
|
259 |
try {
|
260 |
$errors = array();
|
261 |
$this->readConfig();
|
262 |
//$order = Mage::getModel("sales/order")->load($this->getOrderId($answer));
|
263 |
+
/** @var $order Mage_Sales_Model_Order */
|
264 |
+
$order = Mage::getModel("sales/order");
|
265 |
+
$order->loadByIncrementId($this->getOrderId($answer));
|
266 |
$hashArray = array(
|
267 |
$answer["OutSum"],
|
268 |
$answer["InvId"],
|
269 |
$this->_sMerchantPassTwo
|
270 |
);
|
271 |
|
272 |
+
$hashCurrent = $this->generateHash($hashArray);
|
273 |
$correctHash = (strcmp($hashCurrent, strtoupper($answer['SignatureValue'])) == 0);
|
274 |
|
275 |
if (!$correctHash) {
|
304 |
}
|
305 |
}
|
306 |
|
307 |
+
/**
|
308 |
+
* @param array $answer
|
309 |
+
* @return string
|
310 |
+
*/
|
311 |
+
public function getOrderId($answer)
|
312 |
{
|
313 |
+
return isset($answer["InvId"]) ? $answer["InvId"] : "";
|
|
|
|
|
|
|
|
|
314 |
}
|
315 |
|
316 |
|
317 |
+
|
318 |
+
/**
|
319 |
+
* Generates Hash string using order data to prepare an array
|
320 |
+
* or direct from array
|
321 |
+
*
|
322 |
+
* @param $data Mage_Sales_Model_Order|array
|
323 |
+
* @param bool $writeLog
|
324 |
+
*
|
325 |
+
* @return string
|
326 |
+
*/
|
327 |
+
public function generateHash($data, $writeLog = false)
|
328 |
{
|
329 |
+
$hashData = array();
|
330 |
+
if ($data instanceof Mage_Sales_Model_Order) {
|
331 |
+
$outSum = $this->getOutSum($data, $writeLog);
|
332 |
+
$hashData = array(
|
333 |
+
"MrchLogin" => $this->_sMerchantLogin,
|
334 |
+
"OutSum" => round($outSum, 2),
|
335 |
+
"InvId" => $data->getIncrementId(),
|
336 |
+
"pass" => $this->_sMerchantPassOne,
|
337 |
+
);
|
338 |
+
} else if (is_array($data)) {
|
339 |
+
$hashData = $data;
|
340 |
+
}
|
341 |
+
|
342 |
+
$hash = $this->generateHashForArray($hashData);
|
343 |
+
return $hash;
|
344 |
}
|
345 |
|
346 |
+
|
347 |
/**
|
348 |
+
* Generate Hash string for array
|
|
|
349 |
*
|
350 |
+
* @param array $hashData
|
351 |
* @return string
|
352 |
*/
|
353 |
+
public function generateHashForArray($hashData)
|
354 |
{
|
355 |
+
/** @var ET_PaymentRobokassa_Model_Hashtype $hashModel */
|
356 |
+
$hashModel = Mage::getModel('etpaymentrobokassa/hashtype');
|
357 |
+
$hashList = $hashModel->getValueArray();
|
358 |
+
|
359 |
+
if (!in_array($this->_hashType, $hashList)) {
|
360 |
+
/** @var ET_PaymentRobokassa_Helper_Data $helper */
|
361 |
+
$helper = Mage::helper("etpaymentrobokassa");
|
362 |
+
$helper->log($helper->__('Not supported hash type - %s.', $this->_hashType));
|
363 |
+
}
|
364 |
|
365 |
+
Mage::log($hashData);
|
366 |
+
$hash = strtoupper(hash($this->_hashType, implode(":", $hashData)));
|
367 |
return $hash;
|
368 |
}
|
369 |
|
370 |
+
|
371 |
+
|
372 |
/**
|
373 |
+
* Get order amount in Base Currency
|
374 |
+
*
|
375 |
* @param $order Mage_Sales_Model_Order
|
376 |
* @param bool $writeLog
|
377 |
*
|
379 |
*/
|
380 |
public function getOutSum($order, $writeLog = false)
|
381 |
{
|
382 |
+
$displayCurrencyCode = Mage::app()->getStore()->getCurrentCurrencyCode();
|
383 |
+
$baseCurrencyCode = Mage::app()->getBaseCurrencyCode();
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
384 |
|
385 |
+
if ($writeLog && ($displayCurrencyCode != $baseCurrencyCode)) {
|
386 |
+
/** @var ET_PaymentRobokassa_Helper_Data $helper */
|
387 |
+
$helper = Mage::helper("etpaymentrobokassa");
|
388 |
+
$helper->log('Order amount will be transferred to service Robokassa in base currency.');
|
389 |
+
}
|
390 |
+
return $order->getBaseGrandTotal();
|
391 |
}
|
392 |
|
393 |
}
|
app/code/community/ET/PaymentRobokassa/Model/Paysystem.php
CHANGED
@@ -17,6 +17,9 @@
|
|
17 |
* @license http://shop.etwebsolutions.com/etws-license-free-v1/ ETWS Free License (EFL1)
|
18 |
*/
|
19 |
|
|
|
|
|
|
|
20 |
class ET_PaymentRobokassa_Model_Paysystem extends Mage_Core_Model_Abstract
|
21 |
{
|
22 |
/**
|
@@ -26,51 +29,48 @@ class ET_PaymentRobokassa_Model_Paysystem extends Mage_Core_Model_Abstract
|
|
26 |
*/
|
27 |
public function toOptionArray()
|
28 |
{
|
29 |
-
/** @var $helper ET_PaymentRobokassa_Helper_Data*/
|
30 |
$helper = Mage::helper('etpaymentrobokassa');
|
|
|
|
|
31 |
$data = array(
|
32 |
array('value' => "", 'label' => $helper->__('Any')),
|
33 |
-
array('value' => "
|
34 |
-
array('value' => "
|
35 |
-
array('value' => "
|
36 |
-
array('value' => "YandexMerchantR", 'label' => $helper->__("Яндекс.Деньги")),
|
37 |
array('value' => "WMRM", 'label' => $helper->__("Webmoney WMR (Рубли)")),
|
38 |
array('value' => "WMZM", 'label' => $helper->__("Webmoney WMZ (Доллары)")),
|
39 |
array('value' => "WMEM", 'label' => $helper->__("Webmoney WME (Евро)")),
|
40 |
-
array('value' => "
|
41 |
-
array('value' => "
|
42 |
-
array('value' => "
|
43 |
-
array('value' => "
|
44 |
-
array('value' => "
|
45 |
-
array('value' => "
|
46 |
-
array('value' => "EasyPayB", 'label' => $helper->__("Электронные деньги EasyPay")),
|
47 |
-
array('value' => "LiqPayZ", 'label' => $helper->__("Электронные платежи LiqPay")),
|
48 |
-
array('value' => "MailRuR", 'label' => $helper->__("Электронные платежи Деньги@Mail.Ru")),
|
49 |
-
array('value' => "ZPaymentR", 'label' => $helper->__("Платежная система Z-Payment")),
|
50 |
-
array('value' => "TeleMoneyR", 'label' => $helper->__("Платежный сервис TeleMoney")),
|
51 |
array('value' => "AlfaBankOceanR", 'label' => $helper->__("Интернет-Банк Альфа-Банк")),
|
|
|
52 |
array('value' => "PSKBR", 'label' => $helper->__("Интернет-Банк Промсвязьбанк")),
|
|
|
53 |
array('value' => "HandyBankMerchantOceanR", 'label' => $helper->__("Система интернет-банкинга HandyBank")),
|
54 |
-
array('value' => "
|
55 |
-
|
56 |
-
array('value' => "
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
57 |
array('value' => "RapidaOceanSvyaznoyR", 'label' => $helper->__("Салоны сети Связной")),
|
58 |
array('value' => "RapidaOceanEurosetR", 'label' => $helper->__("Салоны сети Евросеть")),
|
59 |
-
array('value' => "
|
60 |
-
array('value' => "TerminalsUnikassaR", 'label' => $helper->__("Платежные терминалы Кассира.нет")),
|
61 |
-
array('value' => "TerminalsMElementR", 'label' => $helper->__("Платежные терминалы Мобил Элемент")),
|
62 |
-
array('value' => "TerminalsAbsolutplatR", 'label' => $helper->__("Платежные терминалы Абсолют Плат")),
|
63 |
-
array('value' => "TerminalsPinpayR", 'label' => $helper->__("Платежные терминалы Pinpay")),
|
64 |
-
array('value' => "TerminalsMoneyMoneyR", 'label' => $helper->__("Платежные терминалы Money-Money")),
|
65 |
-
array('value' => "TerminalsPkbR", 'label' => $helper->__("Банкоматы банка Петрокоммерц")),
|
66 |
-
array('value' => "VTB24R", 'label' => $helper->__("Банк ВТБ24")),
|
67 |
-
array('value' => "MtsR", 'label' => $helper->__("Мобильный оператор МТС")),
|
68 |
-
array('value' => "MegafonR", 'label' => $helper->__("Мобильный оператор Мегафон")),
|
69 |
-
array('value' => "BANKOCEANCHECKR", 'label' => $helper->__("Оплата с помощью Iphone")),
|
70 |
-
array('value' => "IFreeR", 'label' => $helper->__("Оплата с помощью SMS(i-FREE)")),
|
71 |
-
array('value' => "ContactR", 'label' => $helper->__("Платежная система Contact"))
|
72 |
);
|
73 |
-
|
74 |
return $data;
|
75 |
}
|
76 |
}
|
17 |
* @license http://shop.etwebsolutions.com/etws-license-free-v1/ ETWS Free License (EFL1)
|
18 |
*/
|
19 |
|
20 |
+
/**
|
21 |
+
* Class ET_PaymentRobokassa_Model_Paysystem
|
22 |
+
*/
|
23 |
class ET_PaymentRobokassa_Model_Paysystem extends Mage_Core_Model_Abstract
|
24 |
{
|
25 |
/**
|
29 |
*/
|
30 |
public function toOptionArray()
|
31 |
{
|
32 |
+
/** @var $helper ET_PaymentRobokassa_Helper_Data */
|
33 |
$helper = Mage::helper('etpaymentrobokassa');
|
34 |
+
// phpcs think that Cyrillic symbols are to long
|
35 |
+
// @codingStandardsIgnoreStart
|
36 |
$data = array(
|
37 |
array('value' => "", 'label' => $helper->__('Any')),
|
38 |
+
array('value' => "Qiwi50OceanRM", 'label' => $helper->__("Платежные терминалы QIWI Кошелек")),
|
39 |
+
array('value' => "TerminalsElecsnetOceanR", 'label' => $helper->__("Терминалы самообслуживания Элекснет")),
|
40 |
+
array('value' => "YandexMerchantOceanR", 'label' => $helper->__("Яндекс.Деньги")),
|
|
|
41 |
array('value' => "WMRM", 'label' => $helper->__("Webmoney WMR (Рубли)")),
|
42 |
array('value' => "WMZM", 'label' => $helper->__("Webmoney WMZ (Доллары)")),
|
43 |
array('value' => "WMEM", 'label' => $helper->__("Webmoney WME (Евро)")),
|
44 |
+
array('value' => "W1OceanR", 'label' => $helper->__("Платежный сервис Единый кошелек")),
|
45 |
+
array('value' => "ElecsnetWalletR", 'label' => $helper->__("Платежный сервис Элекснет Кошелек")),
|
46 |
+
array('value' => "W1UniMoneyOceanR", 'label' => $helper->__("RUR Единый кошелек")),
|
47 |
+
array('value' => "Qiwi50OceanRM", 'label' => $helper->__("Электронный QIWI Кошелек")),
|
48 |
+
array('value' => "BANKOCEAN2R", 'label' => $helper->__("Интернет-Банк Океан")),
|
49 |
+
array('value' => "SberBankR", 'label' => $helper->__("СберБанк")),
|
|
|
|
|
|
|
|
|
|
|
50 |
array('value' => "AlfaBankOceanR", 'label' => $helper->__("Интернет-Банк Альфа-Банк")),
|
51 |
+
array('value' => "RussianStandardBankR", 'label' => $helper->__("Банк Русский Стандарт")),
|
52 |
array('value' => "PSKBR", 'label' => $helper->__("Интернет-Банк Промсвязьбанк")),
|
53 |
+
array('value' => "OceanBankOceanR", 'label' => $helper->__("Интернет-Банк Океан (platezh.ru)")),
|
54 |
array('value' => "HandyBankMerchantOceanR", 'label' => $helper->__("Система интернет-банкинга HandyBank")),
|
55 |
+
array('value' => "HandyBankBB", 'label' => $helper->__("Банк Богородский")),
|
56 |
+
array('value' => "HandyBankFB", 'label' => $helper->__("ФлексБанк")),
|
57 |
+
array('value' => "HandyBankFU", 'label' => $helper->__("ФьsючерБанк")),
|
58 |
+
array('value' => "HandyBankKB", 'label' => $helper->__("КранБанк")),
|
59 |
+
array('value' => "HandyBankKSB", 'label' => $helper->__("Костромаселькомбанк")),
|
60 |
+
array('value' => "HandyBankLOB", 'label' => $helper->__("Липецкий областной банк")),
|
61 |
+
array('value' => "HandyBankNSB", 'label' => $helper->__("Независимый строительный банк")),
|
62 |
+
array('value' => "HandyBankTB", 'label' => $helper->__("Русский Трастовый Банк")),
|
63 |
+
array('value' => "HandyBankVIB", 'label' => $helper->__("ВестИнтерБанк")),
|
64 |
+
array('value' => "MINBankR", 'label' => $helper->__("Московский Индустриальный Банк")),
|
65 |
+
array('value' => "BSSIntezaR", 'label' => $helper->__("Банк Интеза")),
|
66 |
+
array('value' => "FacturaR", 'label' => $helper->__("Платежный сервис Factura.ru")),
|
67 |
+
array('value' => "MobicomMtsR", 'label' => $helper->__("МТС")),
|
68 |
+
array('value' => "MobicomBeelineR", 'label' => $helper->__("Билайн")),
|
69 |
array('value' => "RapidaOceanSvyaznoyR", 'label' => $helper->__("Салоны сети Связной")),
|
70 |
array('value' => "RapidaOceanEurosetR", 'label' => $helper->__("Салоны сети Евросеть")),
|
71 |
+
array('value' => "BANKOCEAN2CHECKR", 'label' => $helper->__("Мобильная ROBOKASSA")),
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
72 |
);
|
73 |
+
// @codingStandardsIgnoreEnd
|
74 |
return $data;
|
75 |
}
|
76 |
}
|
app/code/community/ET/PaymentRobokassa/controllers/GateController.php
CHANGED
@@ -1,5 +1,4 @@
|
|
1 |
<?php
|
2 |
-
|
3 |
/**
|
4 |
* NOTICE OF LICENSE
|
5 |
*
|
@@ -17,31 +16,28 @@
|
|
17 |
* @contacts support@etwebsolutions.com
|
18 |
* @license http://shop.etwebsolutions.com/etws-license-free-v1/ ETWS Free License (EFL1)
|
19 |
*/
|
|
|
|
|
|
|
|
|
20 |
class ET_PaymentRobokassa_GateController extends Mage_Core_Controller_Front_Action
|
21 |
{
|
22 |
const MODULENAME = "etpaymentrobokassa";
|
23 |
const PAYMENTNAME = "etrobokassa";
|
24 |
|
25 |
/**
|
26 |
-
*
|
27 |
*
|
|
|
28 |
*/
|
29 |
-
protected function _expireAjax()
|
30 |
-
{
|
31 |
-
if (!Mage::getSingleton('checkout/session')->getQuote()->hasItems()) {
|
32 |
-
$this->getResponse()->setHeader('HTTP/1.1', '403 Session Expired');
|
33 |
-
exit;
|
34 |
-
}
|
35 |
-
}
|
36 |
-
|
37 |
public function redirectAction()
|
38 |
{
|
39 |
/** @var $helper ET_PaymentRobokassa_Helper_Data */
|
40 |
$helper = Mage::helper("etpaymentrobokassa");
|
41 |
-
$
|
|
|
42 |
$state = Mage_Sales_Model_Order::STATE_NEW;
|
43 |
|
44 |
-
//todo брать $status из настроек подмодулей
|
45 |
$status = Mage::getStoreConfig('payment/etrobokassa/order_status');
|
46 |
if (strlen($status) == 0) {
|
47 |
//$status = 'pending';
|
@@ -49,12 +45,13 @@ class ET_PaymentRobokassa_GateController extends Mage_Core_Controller_Front_Acti
|
|
49 |
}
|
50 |
|
51 |
/* @var $order Mage_Sales_Model_Order */
|
52 |
-
$lastOrderId = $
|
53 |
if (empty($lastOrderId)) {
|
54 |
-
$helper->
|
55 |
-
$
|
56 |
-
|
57 |
-
|
|
|
58 |
return;
|
59 |
}
|
60 |
$order = Mage::getModel('sales/order')->load($lastOrderId);
|
@@ -63,7 +60,7 @@ class ET_PaymentRobokassa_GateController extends Mage_Core_Controller_Front_Acti
|
|
63 |
$this->__('Customer redirected to payment Gateway Robokassa'),
|
64 |
false);
|
65 |
$order->save();
|
66 |
-
|
67 |
$payment = $order->getPayment()->getMethodInstance();
|
68 |
if (!$payment) {
|
69 |
$payment = Mage::getSingleton("etpaymentrobokassa/method_etrobokassa");
|
@@ -79,6 +76,11 @@ class ET_PaymentRobokassa_GateController extends Mage_Core_Controller_Front_Acti
|
|
79 |
);
|
80 |
}
|
81 |
|
|
|
|
|
|
|
|
|
|
|
82 |
public function statusAction()
|
83 |
{
|
84 |
/** @var $helper ET_PaymentRobokassa_Helper_Data */
|
@@ -86,6 +88,7 @@ class ET_PaymentRobokassa_GateController extends Mage_Core_Controller_Front_Acti
|
|
86 |
$state = Mage_Sales_Model_Order::STATE_PROCESSING;
|
87 |
$errorStatus = 'error_robokassa';
|
88 |
$answer = $this->getRequest()->getParams();
|
|
|
89 |
$payment = Mage::getSingleton(self::MODULENAME . "/method_" . self::PAYMENTNAME);
|
90 |
if ($payment->getOrderId($answer)) {
|
91 |
/* @var $order Mage_Sales_Model_Order */
|
@@ -93,8 +96,8 @@ class ET_PaymentRobokassa_GateController extends Mage_Core_Controller_Front_Acti
|
|
93 |
$order = Mage::getModel('sales/order')->loadByIncrementId($payment->getOrderId($answer));
|
94 |
//true un success, false on fail or array of text on error
|
95 |
|
|
|
96 |
$orderPaymentMethod = $order->getPayment()->getMethodInstance();
|
97 |
-
|
98 |
$checkedAnswer = $orderPaymentMethod->checkAnswerData($answer);
|
99 |
|
100 |
if (is_array($checkedAnswer)) {
|
@@ -137,8 +140,17 @@ class ET_PaymentRobokassa_GateController extends Mage_Core_Controller_Front_Acti
|
|
137 |
print 'OK' . $orderPaymentMethod->getOrderId($answer);
|
138 |
} else {
|
139 |
if ($order->getId()) {
|
140 |
-
$
|
|
|
141 |
$order->save();
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
142 |
}
|
143 |
print "Error";
|
144 |
}
|
@@ -154,11 +166,17 @@ class ET_PaymentRobokassa_GateController extends Mage_Core_Controller_Front_Acti
|
|
154 |
}
|
155 |
}
|
156 |
|
|
|
|
|
|
|
|
|
|
|
157 |
public function failureAction()
|
158 |
{
|
159 |
/** @var $helper ET_PaymentRobokassa_Helper_Data */
|
160 |
$helper = Mage::helper("etpaymentrobokassa");
|
161 |
|
|
|
162 |
$payment = Mage::getSingleton(self::MODULENAME . "/method_" . self::PAYMENTNAME);
|
163 |
$answer = $this->getRequest()->getParams();
|
164 |
|
@@ -187,8 +205,6 @@ class ET_PaymentRobokassa_GateController extends Mage_Core_Controller_Front_Acti
|
|
187 |
);
|
188 |
$order->save();
|
189 |
$order->cancel()->save();
|
190 |
-
|
191 |
-
$this->_redirect('checkout/onepage/failure');
|
192 |
} else {
|
193 |
$errorAnswer = 'Incorrect answer. No order number.';
|
194 |
$helper->log($errorAnswer);
|
@@ -196,11 +212,16 @@ class ET_PaymentRobokassa_GateController extends Mage_Core_Controller_Front_Acti
|
|
196 |
$answer = 'No answer data';
|
197 |
}
|
198 |
$helper->log($answer);
|
199 |
-
|
200 |
-
|
|
|
201 |
}
|
|
|
202 |
}
|
203 |
|
|
|
|
|
|
|
204 |
public function successAction()
|
205 |
{
|
206 |
/** @var $session Mage_Checkout_Model_Session */
|
@@ -209,9 +230,11 @@ class ET_PaymentRobokassa_GateController extends Mage_Core_Controller_Front_Acti
|
|
209 |
$answer = $this->getRequest()->getParams();
|
210 |
Mage::dispatchEvent('robokassa_no_session_data_for_success', $answer);
|
211 |
}
|
|
|
212 |
$this->_redirect("checkout/onepage/success");
|
213 |
}
|
214 |
|
|
|
215 |
/**
|
216 |
* Send new order email
|
217 |
* @param $order Mage_Sales_Model_Order
|
1 |
<?php
|
|
|
2 |
/**
|
3 |
* NOTICE OF LICENSE
|
4 |
*
|
16 |
* @contacts support@etwebsolutions.com
|
17 |
* @license http://shop.etwebsolutions.com/etws-license-free-v1/ ETWS Free License (EFL1)
|
18 |
*/
|
19 |
+
|
20 |
+
/**
|
21 |
+
* Class ET_PaymentRobokassa_GateController
|
22 |
+
*/
|
23 |
class ET_PaymentRobokassa_GateController extends Mage_Core_Controller_Front_Action
|
24 |
{
|
25 |
const MODULENAME = "etpaymentrobokassa";
|
26 |
const PAYMENTNAME = "etrobokassa";
|
27 |
|
28 |
/**
|
29 |
+
* Redirect Action
|
30 |
*
|
31 |
+
* @throws Exception
|
32 |
*/
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
33 |
public function redirectAction()
|
34 |
{
|
35 |
/** @var $helper ET_PaymentRobokassa_Helper_Data */
|
36 |
$helper = Mage::helper("etpaymentrobokassa");
|
37 |
+
/* @var $checkoutSession Mage_Checkout_Model_Session */
|
38 |
+
$checkoutSession = Mage::getSingleton('checkout/session');
|
39 |
$state = Mage_Sales_Model_Order::STATE_NEW;
|
40 |
|
|
|
41 |
$status = Mage::getStoreConfig('payment/etrobokassa/order_status');
|
42 |
if (strlen($status) == 0) {
|
43 |
//$status = 'pending';
|
45 |
}
|
46 |
|
47 |
/* @var $order Mage_Sales_Model_Order */
|
48 |
+
$lastOrderId = $checkoutSession->getLastOrderId();
|
49 |
if (empty($lastOrderId)) {
|
50 |
+
$messageText = $helper->__('Error. Redirect to robokassa failed. No data in session about order.');
|
51 |
+
$helper->log($messageText);
|
52 |
+
|
53 |
+
Mage::getSingleton('core/session')->addError($messageText);
|
54 |
+
$this->_redirect('checkout/onepage/failure');
|
55 |
return;
|
56 |
}
|
57 |
$order = Mage::getModel('sales/order')->load($lastOrderId);
|
60 |
$this->__('Customer redirected to payment Gateway Robokassa'),
|
61 |
false);
|
62 |
$order->save();
|
63 |
+
/** @var ET_PaymentRobokassa_Model_Method_Etrobokassa $payment */
|
64 |
$payment = $order->getPayment()->getMethodInstance();
|
65 |
if (!$payment) {
|
66 |
$payment = Mage::getSingleton("etpaymentrobokassa/method_etrobokassa");
|
76 |
);
|
77 |
}
|
78 |
|
79 |
+
/**
|
80 |
+
* Status Action
|
81 |
+
*
|
82 |
+
* @throws Exception
|
83 |
+
*/
|
84 |
public function statusAction()
|
85 |
{
|
86 |
/** @var $helper ET_PaymentRobokassa_Helper_Data */
|
88 |
$state = Mage_Sales_Model_Order::STATE_PROCESSING;
|
89 |
$errorStatus = 'error_robokassa';
|
90 |
$answer = $this->getRequest()->getParams();
|
91 |
+
/** @var ET_PaymentRobokassa_Model_Method_Etrobokassa $payment */
|
92 |
$payment = Mage::getSingleton(self::MODULENAME . "/method_" . self::PAYMENTNAME);
|
93 |
if ($payment->getOrderId($answer)) {
|
94 |
/* @var $order Mage_Sales_Model_Order */
|
96 |
$order = Mage::getModel('sales/order')->loadByIncrementId($payment->getOrderId($answer));
|
97 |
//true un success, false on fail or array of text on error
|
98 |
|
99 |
+
/** @var ET_PaymentRobokassa_Model_Method_Etrobokassa $orderPaymentMethod */
|
100 |
$orderPaymentMethod = $order->getPayment()->getMethodInstance();
|
|
|
101 |
$checkedAnswer = $orderPaymentMethod->checkAnswerData($answer);
|
102 |
|
103 |
if (is_array($checkedAnswer)) {
|
140 |
print 'OK' . $orderPaymentMethod->getOrderId($answer);
|
141 |
} else {
|
142 |
if ($order->getId()) {
|
143 |
+
$historyStatusText = implode(" / ", $checkedAnswer);
|
144 |
+
$order->addStatusToHistory($errorStatus, $historyStatusText, false);
|
145 |
$order->save();
|
146 |
+
/* @var $quote Mage_Sales_Model_Quote */
|
147 |
+
$quote = Mage::getModel("sales/quote");
|
148 |
+
$quote->load($order->getQuoteId());
|
149 |
+
if ($quote->getId() > 0) {
|
150 |
+
/* @var $checkoutHelper Mage_Checkout_Helper_Data */
|
151 |
+
$checkoutHelper = Mage::helper('checkout');
|
152 |
+
$checkoutHelper->sendPaymentFailedEmail($quote, $historyStatusText);
|
153 |
+
}
|
154 |
}
|
155 |
print "Error";
|
156 |
}
|
166 |
}
|
167 |
}
|
168 |
|
169 |
+
/**
|
170 |
+
* Failure action
|
171 |
+
*
|
172 |
+
* @throws Exception
|
173 |
+
*/
|
174 |
public function failureAction()
|
175 |
{
|
176 |
/** @var $helper ET_PaymentRobokassa_Helper_Data */
|
177 |
$helper = Mage::helper("etpaymentrobokassa");
|
178 |
|
179 |
+
/** @var ET_PaymentRobokassa_Model_Method_Etrobokassa $payment */
|
180 |
$payment = Mage::getSingleton(self::MODULENAME . "/method_" . self::PAYMENTNAME);
|
181 |
$answer = $this->getRequest()->getParams();
|
182 |
|
205 |
);
|
206 |
$order->save();
|
207 |
$order->cancel()->save();
|
|
|
|
|
208 |
} else {
|
209 |
$errorAnswer = 'Incorrect answer. No order number.';
|
210 |
$helper->log($errorAnswer);
|
212 |
$answer = 'No answer data';
|
213 |
}
|
214 |
$helper->log($answer);
|
215 |
+
/* @var $checkoutSession Mage_Checkout_Model_Session */
|
216 |
+
$checkoutSession = Mage::getSingleton('checkout/session');
|
217 |
+
$checkoutSession->addError($helper->__($errorAnswer));
|
218 |
}
|
219 |
+
$this->_redirect('checkout/onepage/failure');
|
220 |
}
|
221 |
|
222 |
+
/**
|
223 |
+
* Success action
|
224 |
+
*/
|
225 |
public function successAction()
|
226 |
{
|
227 |
/** @var $session Mage_Checkout_Model_Session */
|
230 |
$answer = $this->getRequest()->getParams();
|
231 |
Mage::dispatchEvent('robokassa_no_session_data_for_success', $answer);
|
232 |
}
|
233 |
+
|
234 |
$this->_redirect("checkout/onepage/success");
|
235 |
}
|
236 |
|
237 |
+
|
238 |
/**
|
239 |
* Send new order email
|
240 |
* @param $order Mage_Sales_Model_Order
|
app/code/community/ET/PaymentRobokassa/etc/config.xml
CHANGED
@@ -22,7 +22,7 @@
|
|
22 |
<modules>
|
23 |
<ET_PaymentRobokassa>
|
24 |
<name>ET Payment Robokassa</name>
|
25 |
-
<version>1.0
|
26 |
<descr>
|
27 |
<ru_RU><![CDATA[Платёжный модуль Robokassa. Позволяет использовать сервис приёма платежей Robokassa (robokassa.ru) на вашем Magento сайте.]]>
|
28 |
</ru_RU>
|
@@ -193,6 +193,7 @@
|
|
193 |
<order_status>waiting_robokassa</order_status>
|
194 |
<test_mode>0</test_mode>
|
195 |
<enable_log>1</enable_log>
|
|
|
196 |
<sInvDesc>Покупка в интернет магазине</sInvDesc>
|
197 |
<result_url>http://example.com/etrobokassa/status</result_url>
|
198 |
<success_url>http://example.com/etrobokassa/success</success_url>
|
22 |
<modules>
|
23 |
<ET_PaymentRobokassa>
|
24 |
<name>ET Payment Robokassa</name>
|
25 |
+
<version>1.1.0</version>
|
26 |
<descr>
|
27 |
<ru_RU><![CDATA[Платёжный модуль Robokassa. Позволяет использовать сервис приёма платежей Robokassa (robokassa.ru) на вашем Magento сайте.]]>
|
28 |
</ru_RU>
|
193 |
<order_status>waiting_robokassa</order_status>
|
194 |
<test_mode>0</test_mode>
|
195 |
<enable_log>1</enable_log>
|
196 |
+
<log_file>et_robokassa.log</log_file>
|
197 |
<sInvDesc>Покупка в интернет магазине</sInvDesc>
|
198 |
<result_url>http://example.com/etrobokassa/status</result_url>
|
199 |
<success_url>http://example.com/etrobokassa/success</success_url>
|
app/code/community/ET/PaymentRobokassa/etc/system.xml
CHANGED
@@ -135,6 +135,7 @@
|
|
135 |
<show_in_default>1</show_in_default>
|
136 |
<show_in_website>1</show_in_website>
|
137 |
</heading_robokassa>
|
|
|
138 |
<test_mode translate="label comment">
|
139 |
<label>Test Mode</label>
|
140 |
<comment><![CDATA[If Enabled - module will connect Robokassa test server for transactions. This server available only for new merchants (not activated).]]></comment>
|
@@ -145,6 +146,7 @@
|
|
145 |
<show_in_website>1</show_in_website>
|
146 |
<show_in_store>0</show_in_store>
|
147 |
</test_mode>
|
|
|
148 |
<enable_log translate="label comment">
|
149 |
<label>Debug Mode</label>
|
150 |
<comment><![CDATA[If Enabled - technical information records into a log file /var/log/et_robokassa.log]]></comment>
|
@@ -156,9 +158,20 @@
|
|
156 |
<show_in_store>0</show_in_store>
|
157 |
</enable_log>
|
158 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
159 |
<sMerchantLogin translate="label comment">
|
160 |
-
<label>
|
161 |
-
<comment><![CDATA[
|
162 |
<frontend_type>text</frontend_type>
|
163 |
<sort_order>120</sort_order>
|
164 |
<show_in_default>1</show_in_default>
|
@@ -173,6 +186,9 @@
|
|
173 |
<sort_order>130</sort_order>
|
174 |
<show_in_default>1</show_in_default>
|
175 |
<show_in_website>1</show_in_website>
|
|
|
|
|
|
|
176 |
</sMerchantPass1>
|
177 |
|
178 |
<sMerchantPass2 translate="label comment">
|
@@ -183,8 +199,37 @@
|
|
183 |
<sort_order>140</sort_order>
|
184 |
<show_in_default>1</show_in_default>
|
185 |
<show_in_website>1</show_in_website>
|
|
|
|
|
|
|
186 |
</sMerchantPass2>
|
187 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
188 |
<sCulture translate="label comment">
|
189 |
<label>Language</label>
|
190 |
<comment><![CDATA[Language on Payment Robokassa website]]></comment>
|
@@ -208,7 +253,7 @@
|
|
208 |
|
209 |
<sIncCurrLabel translate="label comment">
|
210 |
<label>Payment System</label>
|
211 |
-
<comment><![CDATA[Default payment system. Customer can choose other payment system on Robokassa website. If you do not know what to choose, keep the default value - Any.]]></comment>
|
212 |
<frontend_type>select</frontend_type>
|
213 |
<source_model>etpaymentrobokassa/paysystem</source_model>
|
214 |
<sort_order>170</sort_order>
|
@@ -241,6 +286,7 @@
|
|
241 |
<show_in_default>1</show_in_default>
|
242 |
<show_in_website>1</show_in_website>
|
243 |
</heading_restrictions>
|
|
|
244 |
<allowspecific translate="label">
|
245 |
<label>Payment from Applicable Countries</label>
|
246 |
<frontend_type>allowspecific</frontend_type>
|
@@ -250,6 +296,7 @@
|
|
250 |
<show_in_website>1</show_in_website>
|
251 |
<show_in_store>0</show_in_store>
|
252 |
</allowspecific>
|
|
|
253 |
<specificcountry translate="label">
|
254 |
<label>Payment from Specific Countries</label>
|
255 |
<frontend_type>multiselect</frontend_type>
|
@@ -260,6 +307,7 @@
|
|
260 |
<show_in_store>0</show_in_store>
|
261 |
<!--depends><allowspecific>1</allowspecific></depends-->
|
262 |
</specificcountry>
|
|
|
263 |
<min_order_total translate="label">
|
264 |
<label>Minimum Order Total</label>
|
265 |
<frontend_type>text</frontend_type>
|
@@ -268,6 +316,7 @@
|
|
268 |
<show_in_website>1</show_in_website>
|
269 |
<show_in_store>0</show_in_store>
|
270 |
</min_order_total>
|
|
|
271 |
<max_order_total translate="label">
|
272 |
<label>Maximum Order Total</label>
|
273 |
<frontend_type>text</frontend_type>
|
@@ -309,8 +358,4 @@
|
|
309 |
</groups>
|
310 |
</payment>
|
311 |
</sections>
|
312 |
-
</config>
|
313 |
-
|
314 |
-
|
315 |
-
|
316 |
-
|
135 |
<show_in_default>1</show_in_default>
|
136 |
<show_in_website>1</show_in_website>
|
137 |
</heading_robokassa>
|
138 |
+
|
139 |
<test_mode translate="label comment">
|
140 |
<label>Test Mode</label>
|
141 |
<comment><![CDATA[If Enabled - module will connect Robokassa test server for transactions. This server available only for new merchants (not activated).]]></comment>
|
146 |
<show_in_website>1</show_in_website>
|
147 |
<show_in_store>0</show_in_store>
|
148 |
</test_mode>
|
149 |
+
|
150 |
<enable_log translate="label comment">
|
151 |
<label>Debug Mode</label>
|
152 |
<comment><![CDATA[If Enabled - technical information records into a log file /var/log/et_robokassa.log]]></comment>
|
158 |
<show_in_store>0</show_in_store>
|
159 |
</enable_log>
|
160 |
|
161 |
+
<hash_type translate="label comment">
|
162 |
+
<label>Hash calculation algorithm</label>
|
163 |
+
<comment><![CDATA[Choose hash calculation algorithm which send data to Robokassa. Make sure that your chosen algorithm is the same as the selected in Robokassa.]]></comment>
|
164 |
+
<frontend_type>select</frontend_type>
|
165 |
+
<source_model>etpaymentrobokassa/hashtype</source_model>
|
166 |
+
<sort_order>118</sort_order>
|
167 |
+
<show_in_default>1</show_in_default>
|
168 |
+
<show_in_website>1</show_in_website>
|
169 |
+
<show_in_store>1</show_in_store>
|
170 |
+
</hash_type>
|
171 |
+
|
172 |
<sMerchantLogin translate="label comment">
|
173 |
+
<label>Shop identifier</label>
|
174 |
+
<comment><![CDATA[Shop identifier from technical preferences of Robokassa merchant account]]></comment>
|
175 |
<frontend_type>text</frontend_type>
|
176 |
<sort_order>120</sort_order>
|
177 |
<show_in_default>1</show_in_default>
|
186 |
<sort_order>130</sort_order>
|
187 |
<show_in_default>1</show_in_default>
|
188 |
<show_in_website>1</show_in_website>
|
189 |
+
<depends>
|
190 |
+
<test_mode>0</test_mode>
|
191 |
+
</depends>
|
192 |
</sMerchantPass1>
|
193 |
|
194 |
<sMerchantPass2 translate="label comment">
|
199 |
<sort_order>140</sort_order>
|
200 |
<show_in_default>1</show_in_default>
|
201 |
<show_in_website>1</show_in_website>
|
202 |
+
<depends>
|
203 |
+
<test_mode>0</test_mode>
|
204 |
+
</depends>
|
205 |
</sMerchantPass2>
|
206 |
|
207 |
+
<testModePass1 translate="label comment">
|
208 |
+
<label>Test mode Pass #1</label>
|
209 |
+
<comment><![CDATA[Test mode password #1 in administration section of Robokassa merchant account]]></comment>
|
210 |
+
<frontend_type>obscure</frontend_type>
|
211 |
+
<backend_model>adminhtml/system_config_backend_encrypted</backend_model>
|
212 |
+
<sort_order>131</sort_order>
|
213 |
+
<show_in_default>1</show_in_default>
|
214 |
+
<show_in_website>1</show_in_website>
|
215 |
+
<depends>
|
216 |
+
<test_mode>1</test_mode>
|
217 |
+
</depends>
|
218 |
+
</testModePass1>
|
219 |
+
|
220 |
+
<testModePass2 translate="label comment">
|
221 |
+
<label>Test mode Pass #2</label>
|
222 |
+
<comment><![CDATA[Test mode password #2 in administration section of Robokassa merchant account]]></comment>
|
223 |
+
<frontend_type>obscure</frontend_type>
|
224 |
+
<backend_model>adminhtml/system_config_backend_encrypted</backend_model>
|
225 |
+
<sort_order>141</sort_order>
|
226 |
+
<show_in_default>1</show_in_default>
|
227 |
+
<show_in_website>1</show_in_website>
|
228 |
+
<depends>
|
229 |
+
<test_mode>1</test_mode>
|
230 |
+
</depends>
|
231 |
+
</testModePass2>
|
232 |
+
|
233 |
<sCulture translate="label comment">
|
234 |
<label>Language</label>
|
235 |
<comment><![CDATA[Language on Payment Robokassa website]]></comment>
|
253 |
|
254 |
<sIncCurrLabel translate="label comment">
|
255 |
<label>Payment System</label>
|
256 |
+
<comment><![CDATA[Default payment system. Customer can choose other payment system on Robokassa website. Ensure that your chosen option is available under a contract with Robokassa. If you do not know what to choose, keep the default value - Any.]]></comment>
|
257 |
<frontend_type>select</frontend_type>
|
258 |
<source_model>etpaymentrobokassa/paysystem</source_model>
|
259 |
<sort_order>170</sort_order>
|
286 |
<show_in_default>1</show_in_default>
|
287 |
<show_in_website>1</show_in_website>
|
288 |
</heading_restrictions>
|
289 |
+
|
290 |
<allowspecific translate="label">
|
291 |
<label>Payment from Applicable Countries</label>
|
292 |
<frontend_type>allowspecific</frontend_type>
|
296 |
<show_in_website>1</show_in_website>
|
297 |
<show_in_store>0</show_in_store>
|
298 |
</allowspecific>
|
299 |
+
|
300 |
<specificcountry translate="label">
|
301 |
<label>Payment from Specific Countries</label>
|
302 |
<frontend_type>multiselect</frontend_type>
|
307 |
<show_in_store>0</show_in_store>
|
308 |
<!--depends><allowspecific>1</allowspecific></depends-->
|
309 |
</specificcountry>
|
310 |
+
|
311 |
<min_order_total translate="label">
|
312 |
<label>Minimum Order Total</label>
|
313 |
<frontend_type>text</frontend_type>
|
316 |
<show_in_website>1</show_in_website>
|
317 |
<show_in_store>0</show_in_store>
|
318 |
</min_order_total>
|
319 |
+
|
320 |
<max_order_total translate="label">
|
321 |
<label>Maximum Order Total</label>
|
322 |
<frontend_type>text</frontend_type>
|
358 |
</groups>
|
359 |
</payment>
|
360 |
</sections>
|
361 |
+
</config>
|
|
|
|
|
|
|
|
app/code/community/ET/PaymentRobokassa/sql/etpaymentrobokassa_setup/mysql4-install-1.0.0.php
CHANGED
@@ -17,9 +17,9 @@
|
|
17 |
* @license http://shop.etwebsolutions.com/etws-license-free-v1/ ETWS Free License (EFL1)
|
18 |
*/
|
19 |
|
20 |
-
$
|
21 |
|
22 |
-
if ($
|
23 |
/* @var $installer Mage_Sales_Model_Entity_Setup */
|
24 |
$installer = $this;
|
25 |
|
17 |
* @license http://shop.etwebsolutions.com/etws-license-free-v1/ ETWS Free License (EFL1)
|
18 |
*/
|
19 |
|
20 |
+
$installStatus = version_compare(Mage::getVersion(), '1.4.2.0', '>');
|
21 |
|
22 |
+
if ($installStatus) {
|
23 |
/* @var $installer Mage_Sales_Model_Entity_Setup */
|
24 |
$installer = $this;
|
25 |
|
app/locale/ru_RU/ET_PaymentRobokassa.csv
CHANGED
@@ -26,14 +26,10 @@
|
|
26 |
"Merchant Login","Логин продавца"
|
27 |
"If Enabled - technical information records into a log file /var/log/et_robokassa.log","Если включён - ведётся запись технической информации в файл журнала /var/log/et_robokassa.log"
|
28 |
"Merchant login of Robokassa merchant account","Логин продавца в Личный кабинет сервиса по приёму платежей Robokassa"
|
29 |
-
"Merchant Pass #1","Пароль #1"
|
30 |
-
"Merchant Pass #2","Пароль #2"
|
31 |
-
"Password #1 in administration section of Robokassa merchant account","Пароль #1 в разделе администрирования в Личном кабинете продавца Робокассы"
|
32 |
-
"Password #2 in administration section of Robokassa merchant account","Пароль #2 в разделе администрирования в Личном кабинете продавца Робокассы"
|
33 |
"Language","Язык"
|
34 |
"Language on Payment Robokassa website","Язык общения с клиентом на сайте платёжного сервиса Робокасса"
|
35 |
"Payment System","Платёжная валюта"
|
36 |
-
"Default payment system. Customer can choose other payment system on Robokassa website. If you do not know what to choose, keep the default value - Any.","Платёжная валюта по умолчанию. Клиент сможет выбрать другую на сайте Робокасса. Если не знаете что выбрать, оставьте значение по умолчанию - Любая."
|
37 |
"Restrictions","Ограничения"
|
38 |
"Payment from Applicable Countries","Оплата из доступных стран"
|
39 |
"Payment from Specific Countries","Оплата из выбранных стран"
|
@@ -67,4 +63,16 @@
|
|
67 |
"Documentation","Документация"
|
68 |
"POST or GET data transfer method","Метод передачи данных POST или GET"
|
69 |
"You have to set callback links for your shop in your account on Robokassa website to make extension work.","Для работы модуля необходимо настроить ссылки возврата на ваш магазин в личном кабинете сервиса Робокасса."
|
70 |
-
"Callback URLs","Ссылки возврата"
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
26 |
"Merchant Login","Логин продавца"
|
27 |
"If Enabled - technical information records into a log file /var/log/et_robokassa.log","Если включён - ведётся запись технической информации в файл журнала /var/log/et_robokassa.log"
|
28 |
"Merchant login of Robokassa merchant account","Логин продавца в Личный кабинет сервиса по приёму платежей Robokassa"
|
|
|
|
|
|
|
|
|
29 |
"Language","Язык"
|
30 |
"Language on Payment Robokassa website","Язык общения с клиентом на сайте платёжного сервиса Робокасса"
|
31 |
"Payment System","Платёжная валюта"
|
32 |
+
"Default payment system. Customer can choose other payment system on Robokassa website. Ensure that your chosen option is available under a contract with Robokassa. If you do not know what to choose, keep the default value - Any.","Платёжная валюта по умолчанию. Клиент сможет выбрать другую на сайте Робокасса. Убедитесь, что выбранное вами значение доступно по договору с Робокассой. Если не знаете что выбрать, оставьте значение по умолчанию - Любая."
|
33 |
"Restrictions","Ограничения"
|
34 |
"Payment from Applicable Countries","Оплата из доступных стран"
|
35 |
"Payment from Specific Countries","Оплата из выбранных стран"
|
63 |
"Documentation","Документация"
|
64 |
"POST or GET data transfer method","Метод передачи данных POST или GET"
|
65 |
"You have to set callback links for your shop in your account on Robokassa website to make extension work.","Для работы модуля необходимо настроить ссылки возврата на ваш магазин в личном кабинете сервиса Робокасса."
|
66 |
+
"Callback URLs","Ссылки возврата"
|
67 |
+
"Hash calculation algorithm","Алгоритм расчета хеша"
|
68 |
+
"Choose which hash calculation algorithm to use to send the data to Robokassa. Make sure that your chosen algorithm is the same as the selected in Robokassa.","Выберите алгоритм расчета хеша, с помощью которого отправлять данные Робокассе. Убедитесь, что выбранный вами алгоритм совпадает с выбранным на Робокассе."
|
69 |
+
"Shop identifier","Идентификатор магазина"
|
70 |
+
"Shop identifier from technical preferences of Robokassa merchant account","Наименование магазина из технических настроек в личном кабинете сервиса по приёму платежей Robokassa"
|
71 |
+
"Merchant Pass #1","Пароль #1"
|
72 |
+
"Merchant Pass #2","Пароль #2"
|
73 |
+
"Test mode Pass #1","Пароль тестогово режима #1"
|
74 |
+
"Test mode Pass #2","Пароль тестогово режима #2"
|
75 |
+
"Password #1 in administration section of Robokassa merchant account","Пароль #1 из раздела администрирования в Личном кабинете продавца Робокассы"
|
76 |
+
"Password #2 in administration section of Robokassa merchant account","Пароль #2 из раздела администрирования в Личном кабинете продавца Робокассы"
|
77 |
+
"Test mode password #1 in administration section of Robokassa merchant account","Пароль тестового режима #1 из раздела администрирования в личном кабинете продавца Робокассы"
|
78 |
+
"Test mode password #2 in administration section of Robokassa merchant account","Пароль тестового режима #2 из раздела администрирования в личном кабинете продавца Робокассы"
|
package.xml
CHANGED
@@ -1,7 +1,7 @@
|
|
1 |
<?xml version="1.0"?>
|
2 |
<package>
|
3 |
<name>ET_PaymentRobokassa</name>
|
4 |
-
<version>1.0
|
5 |
<stability>stable</stability>
|
6 |
<license uri="http://shop.etwebsolutions.com/eng/etws-license-free-v1">ETWS Free License (EFL1)</license>
|
7 |
<channel>community</channel>
|
@@ -10,9 +10,9 @@
|
|
10 |
<description>_Free payment extension ET Payment Robokassa allows you to use payment gateway Robokassa (robokassa.ru) on your website._</description>
|
11 |
<notes>stable release</notes>
|
12 |
<authors><author><name>Jurij</name><user>auto-converted</user><email>support@etwebsolutions.com</email></author><author><name>Andrej</name><user>auto-converted</user><email>support@etwebsolutions.com</email></author></authors>
|
13 |
-
<date>2015-
|
14 |
-
<time>09:
|
15 |
-
<contents><target name="magecommunity"><dir name="ET"><dir name="PaymentRobokassa"><dir name="Block"><dir name="Adminhtml"><dir name="System"><dir name="Config"><dir name="Form"><dir name="Field"><file name="CallbackUrls.php" hash="
|
16 |
<compatible/>
|
17 |
<dependencies/>
|
18 |
</package>
|
1 |
<?xml version="1.0"?>
|
2 |
<package>
|
3 |
<name>ET_PaymentRobokassa</name>
|
4 |
+
<version>1.1.0</version>
|
5 |
<stability>stable</stability>
|
6 |
<license uri="http://shop.etwebsolutions.com/eng/etws-license-free-v1">ETWS Free License (EFL1)</license>
|
7 |
<channel>community</channel>
|
10 |
<description>_Free payment extension ET Payment Robokassa allows you to use payment gateway Robokassa (robokassa.ru) on your website._</description>
|
11 |
<notes>stable release</notes>
|
12 |
<authors><author><name>Jurij</name><user>auto-converted</user><email>support@etwebsolutions.com</email></author><author><name>Andrej</name><user>auto-converted</user><email>support@etwebsolutions.com</email></author></authors>
|
13 |
+
<date>2015-11-24</date>
|
14 |
+
<time>09:38:09</time>
|
15 |
+
<contents><target name="magecommunity"><dir name="ET"><dir name="PaymentRobokassa"><dir name="Block"><dir name="Adminhtml"><dir name="System"><dir name="Config"><dir name="Form"><dir name="Field"><file name="CallbackUrls.php" hash="04e1786ab6d23e2de189271149538a19"/><file name="Heading.php" hash="ea2b78c217034671778d27101c0a7ffc"/><file name="Linktoinfo.php" hash="bc2a3f55b6d24bf43a41b7f73f060754"/><file name="Linktooptions.php" hash="3e1d44dc057eafac6f7f239261a18a77"/></dir></dir></dir></dir><file name="Support.php" hash="ffc0fd12e423db232cfb926cd1db57c6"/></dir><dir name="Single"><file name="Form.php" hash="a02546ee81500b243b38d68947b77066"/><file name="Info.php" hash="df188e5c31e6855cda3244c01b0857fb"/></dir><file name="Redirect.php" hash="7bc6ac869cae025ced8ae2d3ab6a582c"/></dir><dir name="Controller"><file name="Router.php" hash="d95d83041bccdfedb00ad6eeb2290406"/></dir><dir name="Helper"><file name="Data.php" hash="8508499b764dfb56d584d414b74705d8"/></dir><dir name="Model"><dir name="Method"><file name="Etrobokassa.php" hash="3a8fde56ad43a15e862ddae1afacf168"/></dir><file name="Culture.php" hash="6f6203f8af1071400e24753a7f1ec846"/><file name="Hashtype.php" hash="3a25df44c28f7985b635418bda183809"/><file name="Paysystem.php" hash="cd9e2921b59a78f3f9d1ec9df99e22db"/></dir><dir name="controllers"><file name="GateController.php" hash="bfbf04fa4d460263fa63c2850e447f85"/></dir><dir name="etc"><file name="config.xml" hash="2b34621c6dbd8adcb363f7a220947515"/><file name="system.xml" hash="91a946bade54b124f7f1226492729c5a"/></dir><dir name="sql"><dir name="etpaymentrobokassa_setup"><file name="mysql4-install-1.0.0.php" hash="827064e7fb32b4873a84fc3640790fdf"/></dir></dir></dir></dir></target><target name="magelocale"><dir name="ru_RU"><file name="ET_PaymentRobokassa.csv" hash="b58e67df997c5f1d158ac65438833b58"/></dir><dir name="en_US"><file name="ET_PaymentRobokassa.csv" hash="d41d8cd98f00b204e9800998ecf8427e"/></dir></target><target name="mageetc"><dir name="modules"><file name="ET_PaymentRobokassa.xml" hash="29a6a6d442729714e93aded22ce4b1b2"/></dir></target><target name="magedesign"><dir name="frontend"><dir name="base"><dir name="default"><dir name="template"><dir name="et_paymentrobokassa"><dir name="single"><file name="form.phtml" hash="ffdb96cd7677d5b256a49bb8fe5d9145"/><file name="info.phtml" hash="460b5111ae8b9d78e0a320c5878cc30d"/></dir></dir></dir></dir></dir></dir><dir name="adminhtml"><dir name="default"><dir name="default"><dir name="template"><dir name="et_paymentrobokassa"><dir name="single"><file name="form.phtml" hash="594645a04acfd21185ba89fbc3752f60"/><file name="info.phtml" hash="460b5111ae8b9d78e0a320c5878cc30d"/></dir></dir></dir></dir></dir></dir></target></contents>
|
16 |
<compatible/>
|
17 |
<dependencies/>
|
18 |
</package>
|