Version Notes
-New iframe templates
Download this release
Release Info
| Developer | Kassim_Profileo |
| Extension | Allopass_Hipay |
| Version | 1.0.0 |
| Comparing to | |
| See all releases | |
Version 1.0.0
- app/code/community/Allopass/Hipay/.DS_Store +0 -0
- app/code/community/Allopass/Hipay/Block/Adminhtml/System/Config/Form/Field/3dsRule.php +44 -0
- app/code/community/Allopass/Hipay/Block/Checkout/Pending.php +30 -0
- app/code/community/Allopass/Hipay/Block/Form/Abstract.php +74 -0
- app/code/community/Allopass/Hipay/Block/Form/Cc.php +113 -0
- app/code/community/Allopass/Hipay/Block/Form/Hosted.php +10 -0
- app/code/community/Allopass/Hipay/Block/Info/Cc.php +103 -0
- app/code/community/Allopass/Hipay/Block/Info/Hosted.php +9 -0
- app/code/community/Allopass/Hipay/Controller/Payment.php +271 -0
- app/code/community/Allopass/Hipay/Helper/Data.php +203 -0
- app/code/community/Allopass/Hipay/Model/Api/Http/Client/Adapter/Curl.php +483 -0
- app/code/community/Allopass/Hipay/Model/Api/Http/Client/Adapter/Stream.php +20 -0
- app/code/community/Allopass/Hipay/Model/Api/Request.php +219 -0
- app/code/community/Allopass/Hipay/Model/Api/Response/Abstract.php +17 -0
- app/code/community/Allopass/Hipay/Model/Api/Response/Error.php +12 -0
- app/code/community/Allopass/Hipay/Model/Api/Response/Gateway.php +114 -0
- app/code/community/Allopass/Hipay/Model/Api/Response/Notification.php +33 -0
- app/code/community/Allopass/Hipay/Model/Api/Response/Vault.php +9 -0
- app/code/community/Allopass/Hipay/Model/Config.php +234 -0
- app/code/community/Allopass/Hipay/Model/Log/Adapter.php +118 -0
- app/code/community/Allopass/Hipay/Model/Method/Abstract.php +1003 -0
- app/code/community/Allopass/Hipay/Model/Method/Cbc.php +5 -0
- app/code/community/Allopass/Hipay/Model/Method/Cc.php +517 -0
- app/code/community/Allopass/Hipay/Model/Method/Dexia.php +5 -0
- app/code/community/Allopass/Hipay/Model/Method/Giropay.php +5 -0
- app/code/community/Allopass/Hipay/Model/Method/Hosted.php +118 -0
- app/code/community/Allopass/Hipay/Model/Method/Ideal.php +5 -0
- app/code/community/Allopass/Hipay/Model/Method/Ing.php +5 -0
- app/code/community/Allopass/Hipay/Model/Method/Kbc.php +5 -0
- app/code/community/Allopass/Hipay/Model/Method/Przelewy24.php +5 -0
- app/code/community/Allopass/Hipay/Model/Method/Przelewy24Api.php +83 -0
- app/code/community/Allopass/Hipay/Model/Method/Qiwi.php +5 -0
- app/code/community/Allopass/Hipay/Model/Method/Sisal.php +5 -0
- app/code/community/Allopass/Hipay/Model/Method/SisalApi.php +83 -0
- app/code/community/Allopass/Hipay/Model/Method/Sofort.php +5 -0
- app/code/community/Allopass/Hipay/Model/Method/SofortApi.php +83 -0
- app/code/community/Allopass/Hipay/Model/Method/Webmoney.php +5 -0
- app/code/community/Allopass/Hipay/Model/Method/WebmoneyApi.php +83 -0
- app/code/community/Allopass/Hipay/Model/Method/Yandex.php +5 -0
- app/code/community/Allopass/Hipay/Model/Method/YandexApi.php +83 -0
- app/code/community/Allopass/Hipay/Model/Observer.php +96 -0
- app/code/community/Allopass/Hipay/Model/Resource/Rule.php +19 -0
- app/code/community/Allopass/Hipay/Model/Resource/Rule/Collection.php +20 -0
- app/code/community/Allopass/Hipay/Model/Rule.php +44 -0
- app/code/community/Allopass/Hipay/Model/Rule/Condition/Address.php +231 -0
- app/code/community/Allopass/Hipay/Model/Rule/Condition/Combine.php +183 -0
- app/code/community/Allopass/Hipay/Model/Rule/Condition/Customer.php +186 -0
- app/code/community/Allopass/Hipay/Model/Rule/Condition/Product.php +128 -0
- app/code/community/Allopass/Hipay/Model/Rule/Condition/Product/Combine.php +172 -0
- app/code/community/Allopass/Hipay/Model/Rule/Condition/Product/Found.php +70 -0
- app/code/community/Allopass/Hipay/Model/Rule/Condition/Product/Subselect.php +102 -0
- app/code/community/Allopass/Hipay/Model/Rule/Config.php +93 -0
- app/code/community/Allopass/Hipay/Model/Source/3ds.php +39 -0
- app/code/community/Allopass/Hipay/Model/Source/CcType.php +24 -0
- app/code/community/Allopass/Hipay/Model/Source/CcTypeHosted.php +24 -0
- app/code/community/Allopass/Hipay/Model/Source/Order/HipayStatusValidate.php +20 -0
- app/code/community/Allopass/Hipay/Model/Source/Order/Status.php +28 -0
- app/code/community/Allopass/Hipay/Model/Source/Order/Status/Accepted.php +12 -0
- app/code/community/Allopass/Hipay/Model/Source/Order/Status/Canceled.php +11 -0
- app/code/community/Allopass/Hipay/Model/Source/Order/Status/New.php +11 -0
- app/code/community/Allopass/Hipay/Model/Source/Order/Status/Refused.php +12 -0
- app/code/community/Allopass/Hipay/Model/Source/PaymentAction.php +17 -0
- app/code/community/Allopass/Hipay/Model/Source/Pendingredirect.php +19 -0
- app/code/community/Allopass/Hipay/Model/Source/Template.php +35 -0
- app/code/community/Allopass/Hipay/controllers/Adminhtml/RuleController.php +37 -0
- app/code/community/Allopass/Hipay/controllers/CbcController.php +8 -0
- app/code/community/Allopass/Hipay/controllers/CcController.php +15 -0
- app/code/community/Allopass/Hipay/controllers/CheckoutController.php +40 -0
- app/code/community/Allopass/Hipay/controllers/DexiaController.php +8 -0
- app/code/community/Allopass/Hipay/controllers/GiropayController.php +8 -0
- app/code/community/Allopass/Hipay/controllers/HostedController.php +12 -0
- app/code/community/Allopass/Hipay/controllers/IdealController.php +8 -0
- app/code/community/Allopass/Hipay/controllers/IngController.php +8 -0
- app/code/community/Allopass/Hipay/controllers/KbcController.php +8 -0
- app/code/community/Allopass/Hipay/controllers/NotifyController.php +193 -0
- app/code/community/Allopass/Hipay/controllers/Przelewy24Controller.php +8 -0
- app/code/community/Allopass/Hipay/controllers/Przelewy24apiController.php +8 -0
- app/code/community/Allopass/Hipay/controllers/QiwiController.php +8 -0
- app/code/community/Allopass/Hipay/controllers/SisalController.php +8 -0
- app/code/community/Allopass/Hipay/controllers/SisalapiController.php +8 -0
- app/code/community/Allopass/Hipay/controllers/SofortController.php +8 -0
- app/code/community/Allopass/Hipay/controllers/SofortapiController.php +8 -0
- app/code/community/Allopass/Hipay/controllers/WebmoneyController.php +8 -0
- app/code/community/Allopass/Hipay/controllers/WebmoneyapiController.php +8 -0
- app/code/community/Allopass/Hipay/controllers/YandexController.php +8 -0
- app/code/community/Allopass/Hipay/controllers/YandexapiController.php +8 -0
- app/code/community/Allopass/Hipay/etc/config.xml +637 -0
- app/code/community/Allopass/Hipay/etc/system.xml +2586 -0
- app/code/community/Allopass/Hipay/sql/allopass_hipay_setup/mysql4-install-0.1.0.php +45 -0
- app/code/community/Allopass/Hipay/sql/allopass_hipay_setup/mysql4-upgrade-0.1.0-0.1.1.php +123 -0
- app/code/community/Allopass/Hipay/sql/allopass_hipay_setup/mysql4-upgrade-0.1.1-0.1.2.php +38 -0
- app/code/community/Allopass/Hipay/sql/allopass_hipay_setup/mysql4-upgrade-0.1.2-0.1.3.php +72 -0
- app/code/community/Allopass/Hipay/sql/allopass_hipay_setup/mysql4-upgrade-0.1.4-0.1.5.php +24 -0
- app/design/adminhtml/default/default/layout/hipay.xml +12 -0
- app/design/adminhtml/default/default/template/hipay/system/config/form/field/rules.phtml +17 -0
- app/design/frontend/default/default/layout/hipay.xml +12 -0
- app/design/frontend/default/default/template/hipay/checkout/pending.phtml +8 -0
- app/design/frontend/default/default/template/hipay/form/cc.phtml +144 -0
- app/design/frontend/default/default/template/hipay/form/hosted.phtml +134 -0
- app/etc/modules/Allopass_Hipay.xml +9 -0
- app/locale/en_US/Allopass_Hipay.csv +107 -0
- app/locale/fr_FR/Allopass_Hipay.csv +107 -0
- package.xml +18 -0
- skin/adminhtml/default/default/hipay/js/rules.js +386 -0
app/code/community/Allopass/Hipay/.DS_Store
ADDED
|
Binary file
|
app/code/community/Allopass/Hipay/Block/Adminhtml/System/Config/Form/Field/3dsRule.php
ADDED
|
@@ -0,0 +1,44 @@
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
| 1 |
+
<?php
|
| 2 |
+
class Allopass_Hipay_Block_Adminhtml_System_Config_Form_Field_3dsRule extends Mage_Adminhtml_Block_System_Config_Form_Field
|
| 3 |
+
{
|
| 4 |
+
|
| 5 |
+
/**
|
| 6 |
+
* Check if columns are defined, set template
|
| 7 |
+
*
|
| 8 |
+
*/
|
| 9 |
+
public function __construct()
|
| 10 |
+
{
|
| 11 |
+
if (!$this->_addButtonLabel) {
|
| 12 |
+
$this->_addButtonLabel = Mage::helper('adminhtml')->__('Add');
|
| 13 |
+
}
|
| 14 |
+
parent::__construct();
|
| 15 |
+
if (!$this->getTemplate()) {
|
| 16 |
+
$this->setTemplate('hipay/system/config/form/field/rules.phtml');
|
| 17 |
+
}
|
| 18 |
+
}
|
| 19 |
+
|
| 20 |
+
public function getNewChildUrl(){
|
| 21 |
+
return Mage::getUrl('hipay/adminhtml_rule/newConditionHtml/form/rule_conditions_fieldset');
|
| 22 |
+
}
|
| 23 |
+
|
| 24 |
+
/**
|
| 25 |
+
* Enter description here...
|
| 26 |
+
*
|
| 27 |
+
* @param Varien_Data_Form_Element_Abstract $element
|
| 28 |
+
* @return string
|
| 29 |
+
*/
|
| 30 |
+
protected function _getElementHtml(Varien_Data_Form_Element_Abstract $element)
|
| 31 |
+
{
|
| 32 |
+
$partsId = explode("_", $element->getId());
|
| 33 |
+
$method_code = $partsId[1]. "_" . $partsId[2];
|
| 34 |
+
$rule = Mage::getModel('hipay/rule');
|
| 35 |
+
$rule->setMethodCode($method_code);
|
| 36 |
+
if($element->getValue())
|
| 37 |
+
$rule->load($element->getValue());
|
| 38 |
+
|
| 39 |
+
$element->setRule($rule);
|
| 40 |
+
|
| 41 |
+
$this->setElement($element);
|
| 42 |
+
return $this->_toHtml();
|
| 43 |
+
}
|
| 44 |
+
}
|
app/code/community/Allopass/Hipay/Block/Checkout/Pending.php
ADDED
|
@@ -0,0 +1,30 @@
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
| 1 |
+
<?php
|
| 2 |
+
class Allopass_Hipay_Block_Checkout_Pending extends Mage_Core_Block_Template
|
| 3 |
+
{
|
| 4 |
+
public function getRealOrderId()
|
| 5 |
+
{
|
| 6 |
+
return Mage::getSingleton('checkout/session')->getLastRealOrderId();
|
| 7 |
+
}
|
| 8 |
+
|
| 9 |
+
/**
|
| 10 |
+
* Payment custom error message
|
| 11 |
+
*
|
| 12 |
+
* @return string
|
| 13 |
+
*/
|
| 14 |
+
public function getErrorMessage ()
|
| 15 |
+
{
|
| 16 |
+
$error = Mage::getSingleton('checkout/session')->getErrorMessage();
|
| 17 |
+
// Mage::getSingleton('checkout/session')->unsErrorMessage();
|
| 18 |
+
return $error;
|
| 19 |
+
}
|
| 20 |
+
|
| 21 |
+
/**
|
| 22 |
+
* Continue shopping URL
|
| 23 |
+
*
|
| 24 |
+
* @return string
|
| 25 |
+
*/
|
| 26 |
+
public function getContinueShoppingUrl()
|
| 27 |
+
{
|
| 28 |
+
return Mage::getUrl('checkout/cart');
|
| 29 |
+
}
|
| 30 |
+
}
|
app/code/community/Allopass/Hipay/Block/Form/Abstract.php
ADDED
|
@@ -0,0 +1,74 @@
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
| 1 |
+
<?php
|
| 2 |
+
abstract class Allopass_Hipay_Block_Form_Abstract extends Mage_Payment_Block_Form
|
| 3 |
+
{
|
| 4 |
+
|
| 5 |
+
/**
|
| 6 |
+
* Retrieve payment configuration object
|
| 7 |
+
*
|
| 8 |
+
* @return Allopass_Hipay_Model_Config
|
| 9 |
+
*/
|
| 10 |
+
protected function _getConfig()
|
| 11 |
+
{
|
| 12 |
+
return Mage::getSingleton('hipay/config');
|
| 13 |
+
}
|
| 14 |
+
|
| 15 |
+
|
| 16 |
+
public function getCustomerHasAlias()
|
| 17 |
+
{
|
| 18 |
+
return $this->getCustomer()->getHipayAliasOneclick() != "";
|
| 19 |
+
|
| 20 |
+
}
|
| 21 |
+
|
| 22 |
+
public function getCustomer()
|
| 23 |
+
{
|
| 24 |
+
return Mage::getSingleton('customer/session')->getCustomer();
|
| 25 |
+
}
|
| 26 |
+
|
| 27 |
+
public function ccExpDateIsValid()
|
| 28 |
+
{
|
| 29 |
+
return $this->helper('hipay')->checkIfCcExpDateIsValid((int)Mage::getSingleton('customer/session')->getCustomerId());
|
| 30 |
+
}
|
| 31 |
+
|
| 32 |
+
public function oneClickIsAllowed()
|
| 33 |
+
{
|
| 34 |
+
$checkoutMethod = Mage::getSingleton('checkout/session')->getQuote()->getCheckoutMethod();
|
| 35 |
+
|
| 36 |
+
if($checkoutMethod == Mage_Checkout_Model_Type_Onepage::METHOD_GUEST || !$this->allowUseOneClick())
|
| 37 |
+
return false;
|
| 38 |
+
|
| 39 |
+
return true;
|
| 40 |
+
|
| 41 |
+
}
|
| 42 |
+
|
| 43 |
+
public function getQuote()
|
| 44 |
+
{
|
| 45 |
+
return Mage::getSingleton('checkout/session')->getQuote();
|
| 46 |
+
}
|
| 47 |
+
|
| 48 |
+
|
| 49 |
+
public function allowUseOneClick()
|
| 50 |
+
{
|
| 51 |
+
return $this->getMethod()->getConfigData('allow_use_oneclick');
|
| 52 |
+
}
|
| 53 |
+
|
| 54 |
+
public function getIframeConfig()
|
| 55 |
+
{
|
| 56 |
+
$iframe['iframe_width'] = $this->getMethod()->getConfigData('iframe_width');
|
| 57 |
+
$iframe['iframe_height'] = $this->getMethod()->getConfigData('iframe_height');
|
| 58 |
+
$iframe['iframe_style'] = $this->getMethod()->getConfigData('iframe_style');
|
| 59 |
+
return $iframe;
|
| 60 |
+
}
|
| 61 |
+
|
| 62 |
+
/**
|
| 63 |
+
* Render block HTML
|
| 64 |
+
*
|
| 65 |
+
* @return string
|
| 66 |
+
*/
|
| 67 |
+
protected function _toHtml()
|
| 68 |
+
{
|
| 69 |
+
Mage::dispatchEvent('payment_form_block_to_html_before', array(
|
| 70 |
+
'block' => $this
|
| 71 |
+
));
|
| 72 |
+
return parent::_toHtml();
|
| 73 |
+
}
|
| 74 |
+
}
|
app/code/community/Allopass/Hipay/Block/Form/Cc.php
ADDED
|
@@ -0,0 +1,113 @@
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
| 1 |
+
<?php
|
| 2 |
+
class Allopass_Hipay_Block_Form_Cc extends Allopass_Hipay_Block_Form_Abstract
|
| 3 |
+
{
|
| 4 |
+
protected function _construct()
|
| 5 |
+
{
|
| 6 |
+
parent::_construct();
|
| 7 |
+
$this->setTemplate('hipay/form/cc.phtml');
|
| 8 |
+
}
|
| 9 |
+
|
| 10 |
+
|
| 11 |
+
/**
|
| 12 |
+
* Retrieve availables credit card types
|
| 13 |
+
*
|
| 14 |
+
* @return array
|
| 15 |
+
*/
|
| 16 |
+
public function getCcAvailableTypes()
|
| 17 |
+
{
|
| 18 |
+
$types =$this->_getConfig()->getCcTypes();
|
| 19 |
+
if ($method = $this->getMethod()) {
|
| 20 |
+
$availableTypes = $method->getConfigData('cctypes');
|
| 21 |
+
if ($availableTypes) {
|
| 22 |
+
$availableTypes = explode(',', $availableTypes);
|
| 23 |
+
foreach ($types as $code=>$name) {
|
| 24 |
+
if (!in_array($code, $availableTypes)) {
|
| 25 |
+
unset($types[$code]);
|
| 26 |
+
}
|
| 27 |
+
}
|
| 28 |
+
}
|
| 29 |
+
}
|
| 30 |
+
return $types;
|
| 31 |
+
}
|
| 32 |
+
|
| 33 |
+
/**
|
| 34 |
+
* Retrieve credit card expire months
|
| 35 |
+
*
|
| 36 |
+
* @return array
|
| 37 |
+
*/
|
| 38 |
+
public function getCcMonths()
|
| 39 |
+
{
|
| 40 |
+
$months = $this->getData('cc_months');
|
| 41 |
+
if (is_null($months)) {
|
| 42 |
+
$months["0"] = $this->__('Month');
|
| 43 |
+
$months = array_merge($months, $this->_getConfig()->getMonths());
|
| 44 |
+
$this->setData('cc_months', $months);
|
| 45 |
+
}
|
| 46 |
+
return $months;
|
| 47 |
+
}
|
| 48 |
+
|
| 49 |
+
/**
|
| 50 |
+
* Retrieve credit card expire years
|
| 51 |
+
*
|
| 52 |
+
* @return array
|
| 53 |
+
*/
|
| 54 |
+
public function getCcYears()
|
| 55 |
+
{
|
| 56 |
+
$years = $this->getData('cc_years');
|
| 57 |
+
if (is_null($years)) {
|
| 58 |
+
$years = $this->_getConfig()->getYears();
|
| 59 |
+
$years = array(0=>$this->__('Year'))+$years;
|
| 60 |
+
$this->setData('cc_years', $years);
|
| 61 |
+
}
|
| 62 |
+
return $years;
|
| 63 |
+
}
|
| 64 |
+
|
| 65 |
+
/**
|
| 66 |
+
* Retrive has verification configuration
|
| 67 |
+
*
|
| 68 |
+
* @return boolean
|
| 69 |
+
*/
|
| 70 |
+
public function hasVerification()
|
| 71 |
+
{
|
| 72 |
+
if ($this->getMethod()) {
|
| 73 |
+
$configData = $this->getMethod()->getConfigData('useccv');
|
| 74 |
+
if(is_null($configData)){
|
| 75 |
+
return true;
|
| 76 |
+
}
|
| 77 |
+
return (bool) $configData;
|
| 78 |
+
}
|
| 79 |
+
return true;
|
| 80 |
+
}
|
| 81 |
+
|
| 82 |
+
/*
|
| 83 |
+
* Whether switch/solo card type available
|
| 84 |
+
*/
|
| 85 |
+
public function hasSsCardType()
|
| 86 |
+
{
|
| 87 |
+
$availableTypes = explode(',', $this->getMethod()->getConfigData('cctypes'));
|
| 88 |
+
$ssPresenations = array_intersect(array('SS', 'SM', 'SO'), $availableTypes);
|
| 89 |
+
if ($availableTypes && count($ssPresenations) > 0) {
|
| 90 |
+
return true;
|
| 91 |
+
}
|
| 92 |
+
return false;
|
| 93 |
+
}
|
| 94 |
+
|
| 95 |
+
/*
|
| 96 |
+
* solo/switch card start year
|
| 97 |
+
* @return array
|
| 98 |
+
*/
|
| 99 |
+
public function getSsStartYears()
|
| 100 |
+
{
|
| 101 |
+
$years = array();
|
| 102 |
+
$first = date("Y");
|
| 103 |
+
|
| 104 |
+
for ($index=5; $index>=0; $index--) {
|
| 105 |
+
$year = $first - $index;
|
| 106 |
+
$years[$year] = $year;
|
| 107 |
+
}
|
| 108 |
+
$years = array(0=>$this->__('Year'))+$years;
|
| 109 |
+
return $years;
|
| 110 |
+
}
|
| 111 |
+
|
| 112 |
+
|
| 113 |
+
}
|
app/code/community/Allopass/Hipay/Block/Form/Hosted.php
ADDED
|
@@ -0,0 +1,10 @@
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
| 1 |
+
<?php
|
| 2 |
+
class Allopass_Hipay_Block_Form_Hosted extends Allopass_Hipay_Block_Form_Abstract
|
| 3 |
+
{
|
| 4 |
+
protected function _construct()
|
| 5 |
+
{
|
| 6 |
+
parent::_construct();
|
| 7 |
+
$this->setTemplate('hipay/form/hosted.phtml');
|
| 8 |
+
}
|
| 9 |
+
|
| 10 |
+
}
|
app/code/community/Allopass/Hipay/Block/Info/Cc.php
ADDED
|
@@ -0,0 +1,103 @@
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
| 1 |
+
<?php
|
| 2 |
+
|
| 3 |
+
/**
|
| 4 |
+
* Credit card hipay payment info
|
| 5 |
+
*/
|
| 6 |
+
class Allopass_Hipay_Block_Info_Cc extends Mage_Payment_Block_Info
|
| 7 |
+
{
|
| 8 |
+
/**
|
| 9 |
+
* Retrieve credit card type name
|
| 10 |
+
*
|
| 11 |
+
* @return string
|
| 12 |
+
*/
|
| 13 |
+
public function getCcTypeName()
|
| 14 |
+
{
|
| 15 |
+
$types = Mage::getSingleton('payment/config')->getCcTypes();
|
| 16 |
+
$ccType = $this->getInfo()->getCcType();
|
| 17 |
+
if (isset($types[$ccType])) {
|
| 18 |
+
return $types[$ccType];
|
| 19 |
+
}
|
| 20 |
+
return (empty($ccType)) ? Mage::helper('payment')->__('N/A') : $ccType;
|
| 21 |
+
}
|
| 22 |
+
|
| 23 |
+
/**
|
| 24 |
+
* Whether current payment method has credit card expiration info
|
| 25 |
+
*
|
| 26 |
+
* @return bool
|
| 27 |
+
*/
|
| 28 |
+
public function hasCcExpDate()
|
| 29 |
+
{
|
| 30 |
+
return (int)$this->getInfo()->getCcExpMonth() || (int)$this->getInfo()->getCcExpYear();
|
| 31 |
+
}
|
| 32 |
+
|
| 33 |
+
/**
|
| 34 |
+
* Retrieve CC expiration month
|
| 35 |
+
*
|
| 36 |
+
* @return string
|
| 37 |
+
*/
|
| 38 |
+
public function getCcExpMonth()
|
| 39 |
+
{
|
| 40 |
+
$month = $this->getInfo()->getCcExpMonth();
|
| 41 |
+
if ($month<10) {
|
| 42 |
+
$month = '0'.$month;
|
| 43 |
+
}
|
| 44 |
+
return $month;
|
| 45 |
+
}
|
| 46 |
+
|
| 47 |
+
/**
|
| 48 |
+
* Retrieve CC expiration date
|
| 49 |
+
*
|
| 50 |
+
* @return Zend_Date
|
| 51 |
+
*/
|
| 52 |
+
public function getCcExpDate()
|
| 53 |
+
{
|
| 54 |
+
$date = Mage::app()->getLocale()->date(0);
|
| 55 |
+
$date->setYear($this->getInfo()->getCcExpYear());
|
| 56 |
+
$date->setMonth($this->getInfo()->getCcExpMonth());
|
| 57 |
+
return $date;
|
| 58 |
+
}
|
| 59 |
+
|
| 60 |
+
/**
|
| 61 |
+
* Prepare credit card related payment info
|
| 62 |
+
*
|
| 63 |
+
* @param Varien_Object|array $transport
|
| 64 |
+
* @return Varien_Object
|
| 65 |
+
*/
|
| 66 |
+
protected function _prepareSpecificInformation($transport = null)
|
| 67 |
+
{
|
| 68 |
+
if (null !== $this->_paymentSpecificInformation) {
|
| 69 |
+
return $this->_paymentSpecificInformation;
|
| 70 |
+
}
|
| 71 |
+
$transport = parent::_prepareSpecificInformation($transport);
|
| 72 |
+
$data = array();
|
| 73 |
+
if ($ccType = $this->getCcTypeName()) {
|
| 74 |
+
$data[Mage::helper('payment')->__('Credit Card Type')] = $ccType;
|
| 75 |
+
}
|
| 76 |
+
if ($this->getInfo()->getCcLast4()) {
|
| 77 |
+
$data[Mage::helper('payment')->__('Credit Card Number')] = sprintf('xxxx-%s', $this->getInfo()->getCcLast4());
|
| 78 |
+
}
|
| 79 |
+
if (!$this->getIsSecureMode()) {
|
| 80 |
+
if ($ccSsIssue = $this->getInfo()->getCcSsIssue()) {
|
| 81 |
+
$data[Mage::helper('payment')->__('Switch/Solo/Maestro Issue Number')] = $ccSsIssue;
|
| 82 |
+
}
|
| 83 |
+
$year = $this->getInfo()->getCcSsStartYear();
|
| 84 |
+
$month = $this->getInfo()->getCcSsStartMonth();
|
| 85 |
+
if ($year && $month) {
|
| 86 |
+
$data[Mage::helper('payment')->__('Switch/Solo/Maestro Start Date')] = $this->_formatCardDate($year, $month);
|
| 87 |
+
}
|
| 88 |
+
}
|
| 89 |
+
return $transport->setData(array_merge($data, $transport->getData()));
|
| 90 |
+
}
|
| 91 |
+
|
| 92 |
+
/**
|
| 93 |
+
* Format year/month on the credit card
|
| 94 |
+
*
|
| 95 |
+
* @param string $year
|
| 96 |
+
* @param string $month
|
| 97 |
+
* @return string
|
| 98 |
+
*/
|
| 99 |
+
protected function _formatCardDate($year, $month)
|
| 100 |
+
{
|
| 101 |
+
return sprintf('%s/%s', sprintf('%02d', $month), $year);
|
| 102 |
+
}
|
| 103 |
+
}
|
app/code/community/Allopass/Hipay/Block/Info/Hosted.php
ADDED
|
@@ -0,0 +1,9 @@
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
| 1 |
+
<?php
|
| 2 |
+
|
| 3 |
+
/**
|
| 4 |
+
* hosted hipay payment info
|
| 5 |
+
*/
|
| 6 |
+
class Allopass_Hipay_Block_Info_Hosted extends Mage_Payment_Block_Info
|
| 7 |
+
{
|
| 8 |
+
|
| 9 |
+
}
|
app/code/community/Allopass/Hipay/Controller/Payment.php
ADDED
|
@@ -0,0 +1,271 @@
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
| 1 |
+
<?php
|
| 2 |
+
class Allopass_Hipay_Controller_Payment extends Mage_Core_Controller_Front_Action
|
| 3 |
+
{
|
| 4 |
+
/**
|
| 5 |
+
*
|
| 6 |
+
* @var Mage_Sales_Model_Order $order
|
| 7 |
+
*/
|
| 8 |
+
protected $_order = null;
|
| 9 |
+
|
| 10 |
+
|
| 11 |
+
/**
|
| 12 |
+
* @return Mage_Core_Controller_Front_Action
|
| 13 |
+
*/
|
| 14 |
+
public function preDispatch() {
|
| 15 |
+
parent::preDispatch();
|
| 16 |
+
|
| 17 |
+
if (!$this->_validateSignature()) {
|
| 18 |
+
$this->getResponse()->setBody("NOK. Wrong Signature!");
|
| 19 |
+
$this->setFlag('', 'no-dispatch', true);
|
| 20 |
+
}
|
| 21 |
+
}
|
| 22 |
+
|
| 23 |
+
|
| 24 |
+
protected function _validateSignature()
|
| 25 |
+
{
|
| 26 |
+
/* @var $_helper Allopass_Hipay_Helper_Data */
|
| 27 |
+
$_helper = Mage::helper('hipay');
|
| 28 |
+
$signature = $this->getRequest()->getParam('hash');
|
| 29 |
+
return $_helper->checkSignature($signature);
|
| 30 |
+
}
|
| 31 |
+
|
| 32 |
+
/**
|
| 33 |
+
*
|
| 34 |
+
* @return Allopass_Hipay_Model_Method_Abstract $methodInstance
|
| 35 |
+
*/
|
| 36 |
+
protected function _getMethodInstance()
|
| 37 |
+
{
|
| 38 |
+
Mage::throwException("Method: '" . __METHOD__ . "' must be implemented!");
|
| 39 |
+
}
|
| 40 |
+
|
| 41 |
+
public function sendRequestAction()
|
| 42 |
+
{
|
| 43 |
+
$order = $this->getOrder();
|
| 44 |
+
$payment = $order->getPayment();
|
| 45 |
+
$methodInstance = $this->_getMethodInstance();
|
| 46 |
+
|
| 47 |
+
try
|
| 48 |
+
{
|
| 49 |
+
$redirectUrl = $methodInstance->place($payment,$order->getBaseTotalDue());
|
| 50 |
+
}
|
| 51 |
+
catch (Exception $e)
|
| 52 |
+
{
|
| 53 |
+
Mage::logException($e);
|
| 54 |
+
$this->getCheckout()->addError($e->getMessage());
|
| 55 |
+
$this->_redirect('checkout/cart');
|
| 56 |
+
return $this;
|
| 57 |
+
}
|
| 58 |
+
|
| 59 |
+
|
| 60 |
+
$this->_redirectUrl($redirectUrl);
|
| 61 |
+
|
| 62 |
+
return $this;
|
| 63 |
+
|
| 64 |
+
}
|
| 65 |
+
|
| 66 |
+
|
| 67 |
+
public function acceptAction()
|
| 68 |
+
{
|
| 69 |
+
if(($profileIds = Mage::getSingleton('checkout/session')->getLastRecurringProfileIds()))
|
| 70 |
+
{
|
| 71 |
+
if(is_array($profileIds))
|
| 72 |
+
{
|
| 73 |
+
/* @var $gatewayResponse Allopass_Hipay_Model_Api_Response_Gateway */
|
| 74 |
+
$gatewayResponse = Mage::getSingleton('hipay/api_response_gateway',$this->getRequest()->getParams());
|
| 75 |
+
$collection = Mage::getModel('sales/recurring_profile')->getCollection()
|
| 76 |
+
->addFieldToFilter('profile_id', array('in' => $profileIds))
|
| 77 |
+
;
|
| 78 |
+
$profiles = array();
|
| 79 |
+
foreach ($collection as $profile) {
|
| 80 |
+
//$referenceId = $gatewayResponse->getToken()."-".$profile->getId();
|
| 81 |
+
$additionalInfo = array();
|
| 82 |
+
$additionalInfo['ccType'] = $gatewayResponse->getBrand();
|
| 83 |
+
$additionalInfo['ccExpMonth'] = $gatewayResponse->getCardExpiryMonth() ;
|
| 84 |
+
$additionalInfo['ccExpYear'] = $gatewayResponse->getCardExpiryYear();
|
| 85 |
+
$additionalInfo['token'] = $gatewayResponse->getToken();
|
| 86 |
+
$additionalInfo['transaction_id'] = $gatewayResponse->getTransactionReference();
|
| 87 |
+
$profile->setAdditionalInfo($additionalInfo);
|
| 88 |
+
//$profile->setReferenceId($referenceId);
|
| 89 |
+
$profile->setState(Mage_Sales_Model_Recurring_Profile::STATE_ACTIVE);
|
| 90 |
+
|
| 91 |
+
$profile->save();
|
| 92 |
+
}
|
| 93 |
+
}
|
| 94 |
+
}
|
| 95 |
+
/*else
|
| 96 |
+
{
|
| 97 |
+
$this->processResponse();
|
| 98 |
+
}*/
|
| 99 |
+
$this->processResponse();
|
| 100 |
+
$this->_redirect('checkout/onepage/success');
|
| 101 |
+
|
| 102 |
+
return $this;
|
| 103 |
+
}
|
| 104 |
+
|
| 105 |
+
public function pendingAction()
|
| 106 |
+
{
|
| 107 |
+
$this->processResponse();
|
| 108 |
+
$this->_redirect($this->_getMethodInstance()->getConfigData('pending_redirect_page'));
|
| 109 |
+
|
| 110 |
+
return $this;
|
| 111 |
+
}
|
| 112 |
+
|
| 113 |
+
public function declineAction()
|
| 114 |
+
{
|
| 115 |
+
$this->processResponse();
|
| 116 |
+
$this->_redirect('checkout/onepage/failure');
|
| 117 |
+
return $this;
|
| 118 |
+
}
|
| 119 |
+
|
| 120 |
+
|
| 121 |
+
public function exceptionAction()
|
| 122 |
+
{
|
| 123 |
+
$this->_redirect('checkout/onepage/failure');
|
| 124 |
+
return $this;
|
| 125 |
+
}
|
| 126 |
+
|
| 127 |
+
|
| 128 |
+
public function cancelAction()
|
| 129 |
+
{
|
| 130 |
+
$this->processResponse();
|
| 131 |
+
$this->_redirect('checkout/cart');
|
| 132 |
+
return $this;
|
| 133 |
+
}
|
| 134 |
+
|
| 135 |
+
protected function processResponse()
|
| 136 |
+
{
|
| 137 |
+
$order = $this->getOrder();
|
| 138 |
+
$payment = $order->getPayment();
|
| 139 |
+
|
| 140 |
+
/* @var $gatewayResponse Allopass_Hipay_Model_Api_Response_Gateway */
|
| 141 |
+
$gatewayResponse = Mage::getSingleton('hipay/api_response_gateway',$this->getRequest()->getParams());
|
| 142 |
+
|
| 143 |
+
$this->_getMethodInstance()->processResponseToRedirect($gatewayResponse, $payment, $order->getBaseTotalDue());
|
| 144 |
+
}
|
| 145 |
+
|
| 146 |
+
|
| 147 |
+
|
| 148 |
+
/**
|
| 149 |
+
*
|
| 150 |
+
* @return Mage_Sales_Model_Order
|
| 151 |
+
*/
|
| 152 |
+
protected function getOrder()
|
| 153 |
+
{
|
| 154 |
+
if(is_null($this->_order))
|
| 155 |
+
{
|
| 156 |
+
|
| 157 |
+
if(($profileIds = $this->getCheckout()->getLastRecurringProfileIds()))
|
| 158 |
+
{
|
| 159 |
+
|
| 160 |
+
if (is_array($profileIds)) {
|
| 161 |
+
|
| 162 |
+
foreach ($profileIds as $profileId)
|
| 163 |
+
{
|
| 164 |
+
/* @var $profile Mage_Sales_Model_Recurring_Profile */
|
| 165 |
+
$profile = Mage::getModel('sales/recurring_profile')->load($profileId);
|
| 166 |
+
/* @var $_helperRecurring Allopass_Hipayrecurring_Helper_Data */
|
| 167 |
+
$_helperRecurring = Mage::helper('hipayrecurring');
|
| 168 |
+
|
| 169 |
+
if($_helperRecurring->isInitialProfileOrder($profile))
|
| 170 |
+
$this->_order = $_helperRecurring->createOrderFromProfile($profile);
|
| 171 |
+
else
|
| 172 |
+
{
|
| 173 |
+
$orderId = current($profile->getChildOrderIds());
|
| 174 |
+
$this->_order = Mage::getModel('sales/order')->load($orderId);
|
| 175 |
+
|
| 176 |
+
$additionalInfo = $profile->getAdditionalInfo();
|
| 177 |
+
|
| 178 |
+
$this->_order->getPayment()->setCcType(isset($additionalInfo['ccType']) ? $additionalInfo['ccType'] : "");
|
| 179 |
+
$this->_order->getPayment()->setCcExpMonth(isset($additionalInfo['ccExpMonth']) ? $additionalInfo['ccExpMonth'] : "");
|
| 180 |
+
$this->_order->getPayment()->setCcExpYear(isset($additionalInfo['ccExpYear']) ? $additionalInfo['ccExpYear'] : "");
|
| 181 |
+
$this->_order->getPayment()->setAdditionalInformation('token',isset($additionalInfo['token']) ? $additionalInfo['token'] : "");
|
| 182 |
+
$this->_order->getPayment()->setAdditionalInformation('create_oneclick',isset($additionalInfo['create_oneclick']) ? $additionalInfo['create_oneclick'] : 1);
|
| 183 |
+
$this->_order->getPayment()->setAdditionalInformation('use_oneclick',isset($additionalInfo['use_oneclick']) ? $additionalInfo['use_oneclick'] : 0);
|
| 184 |
+
}
|
| 185 |
+
|
| 186 |
+
|
| 187 |
+
|
| 188 |
+
return $this->_order; //because only one nominal item in cart is authorized and Hipay not manage many profiles
|
| 189 |
+
|
| 190 |
+
//$amount = $this->getAmountFromProfile($profile);
|
| 191 |
+
|
| 192 |
+
/*$productItemInfo = new Varien_Object;
|
| 193 |
+
$type = "Regular";
|
| 194 |
+
if ($type == 'Trial') {
|
| 195 |
+
$productItemInfo->setPaymentType(Mage_Sales_Model_Recurring_Profile::PAYMENT_TYPE_TRIAL);
|
| 196 |
+
} elseif ($type == 'Regular') {
|
| 197 |
+
$productItemInfo->setPaymentType(Mage_Sales_Model_Recurring_Profile::PAYMENT_TYPE_REGULAR);
|
| 198 |
+
}
|
| 199 |
+
|
| 200 |
+
|
| 201 |
+
if($this->isInitialProfileOrder($profile))// because is not additonned in prodile obj
|
| 202 |
+
$productItemInfo->setPrice($profile->getBillingAmount() + $profile->getInitAmount());
|
| 203 |
+
|
| 204 |
+
$this->_order = $profile->createOrder($productItemInfo);
|
| 205 |
+
|
| 206 |
+
$additionalInfo = $profile->getAdditionalInfo();
|
| 207 |
+
|
| 208 |
+
$this->_order->getPayment()->setCcType($additionalInfo['ccType']);
|
| 209 |
+
$this->_order->getPayment()->setCcExpMonth($additionalInfo['ccExpMonth']);
|
| 210 |
+
$this->_order->getPayment()->setCcExpYear($additionalInfo['ccExpYear']);
|
| 211 |
+
$this->_order->getPayment()->setAdditionalInformation('token',$additionalInfo['token']);
|
| 212 |
+
$this->_order->getPayment()->setAdditionalInformation('create_oneclick',$additionalInfo['create_oneclick']);
|
| 213 |
+
$this->_order->getPayment()->setAdditionalInformation('use_oneclick',$additionalInfo['use_oneclick']);
|
| 214 |
+
|
| 215 |
+
$orderId = 'create-recurring';
|
| 216 |
+
$orderId .= "-".$profileId;
|
| 217 |
+
//$this->_order->setIncrementId($orderId);
|
| 218 |
+
$this->_order->save();
|
| 219 |
+
$profile->addOrderRelation($this->_order->getId());
|
| 220 |
+
$profile->save();*/
|
| 221 |
+
return $this->_order; //because only one nominal item in cart is authorized and Hipay not manage many profiles
|
| 222 |
+
//break;
|
| 223 |
+
}
|
| 224 |
+
|
| 225 |
+
|
| 226 |
+
}
|
| 227 |
+
|
| 228 |
+
Mage::throwException("An error occured. Profile Ids not present!");
|
| 229 |
+
|
| 230 |
+
|
| 231 |
+
|
| 232 |
+
}
|
| 233 |
+
else
|
| 234 |
+
$this->_order = Mage::getModel('sales/order')->load($this->getCheckout()->getLastOrderId());
|
| 235 |
+
}
|
| 236 |
+
|
| 237 |
+
return $this->_order;
|
| 238 |
+
}
|
| 239 |
+
|
| 240 |
+
/**
|
| 241 |
+
* Add method to calculate amount from recurring profile
|
| 242 |
+
* @param Mage_Sales_Model_Recurring_Profile $profile
|
| 243 |
+
* @return int $amount
|
| 244 |
+
**/
|
| 245 |
+
public function getAmountFromProfile(Mage_Sales_Model_Recurring_Profile $profile) {
|
| 246 |
+
$amount = $profile->getBillingAmount() + $profile->getTaxAmount() + $profile->getShippingAmount();
|
| 247 |
+
|
| 248 |
+
if($this->isInitialProfileOrder($profile))
|
| 249 |
+
$amount += $profile->getInitAmount() ;
|
| 250 |
+
|
| 251 |
+
return $amount;
|
| 252 |
+
}
|
| 253 |
+
|
| 254 |
+
protected function isInitialProfileOrder(Mage_Sales_Model_Recurring_Profile $profile)
|
| 255 |
+
{
|
| 256 |
+
if(count($profile->getChildOrderIds()) && current($profile->getChildOrderIds()) == "-1")
|
| 257 |
+
return true;
|
| 258 |
+
|
| 259 |
+
return false;
|
| 260 |
+
}
|
| 261 |
+
|
| 262 |
+
|
| 263 |
+
/**
|
| 264 |
+
*
|
| 265 |
+
* @return Mage_Checkout_Model_Session
|
| 266 |
+
*/
|
| 267 |
+
protected function getCheckout()
|
| 268 |
+
{
|
| 269 |
+
return Mage::getSingleton('checkout/session');
|
| 270 |
+
}
|
| 271 |
+
}
|
app/code/community/Allopass/Hipay/Helper/Data.php
ADDED
|
@@ -0,0 +1,203 @@
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
| 1 |
+
<?php
|
| 2 |
+
class Allopass_Hipay_Helper_Data extends Mage_Core_Helper_Abstract
|
| 3 |
+
{
|
| 4 |
+
|
| 5 |
+
|
| 6 |
+
public function checkSignature($signature,$fromNotification = false)
|
| 7 |
+
{
|
| 8 |
+
$passphrase = Mage::getStoreConfig('hipay/hipay_api/secret_passphrase');
|
| 9 |
+
if(empty($passphrase) || empty($signature))
|
| 10 |
+
return true;
|
| 11 |
+
|
| 12 |
+
if($fromNotification)
|
| 13 |
+
{
|
| 14 |
+
$rawPostData = file_get_contents("php://input");
|
| 15 |
+
if($signature == sha1($rawPostData . $passphrase));
|
| 16 |
+
return true;
|
| 17 |
+
|
| 18 |
+
return false;
|
| 19 |
+
}
|
| 20 |
+
|
| 21 |
+
|
| 22 |
+
$parameters = $this->_getRequest()->getParams();
|
| 23 |
+
$string2compute = "";
|
| 24 |
+
unset($parameters['hash']);
|
| 25 |
+
ksort($parameters);
|
| 26 |
+
foreach ($parameters as $name => $value) {
|
| 27 |
+
if (!empty($value)) {
|
| 28 |
+
$string2compute .= $name . $value . $passphrase;
|
| 29 |
+
}
|
| 30 |
+
}
|
| 31 |
+
|
| 32 |
+
if(sha1($string2compute) == $signature)
|
| 33 |
+
return true;
|
| 34 |
+
|
| 35 |
+
return false;
|
| 36 |
+
}
|
| 37 |
+
|
| 38 |
+
public function checkIfCcExpDateIsValid($customer)
|
| 39 |
+
{
|
| 40 |
+
if(is_int($customer))
|
| 41 |
+
$customer = Mage::getModel('customer/customer')->load($customer);
|
| 42 |
+
|
| 43 |
+
$expDate = $customer->getHipayCcExpDate();
|
| 44 |
+
$alias = $customer->getHipayAliasOneclick();
|
| 45 |
+
if(!empty($expDate) && !empty($alias))
|
| 46 |
+
{
|
| 47 |
+
list($expMonth,$expYear) = explode("-", $expDate);
|
| 48 |
+
$today = new Zend_Date(Mage::app()->getLocale()->storeTimeStamp());
|
| 49 |
+
|
| 50 |
+
$currentYear = (int)$today->getYear()->toString("YY");
|
| 51 |
+
$currentMonth = (int)$today->getMonth()->toString("MM");
|
| 52 |
+
|
| 53 |
+
if($currentYear > (int)$expYear)
|
| 54 |
+
return false;
|
| 55 |
+
|
| 56 |
+
if($currentYear == (int)$expYear && $currentMonth > (int)$expMonth)
|
| 57 |
+
return false;
|
| 58 |
+
|
| 59 |
+
return true;
|
| 60 |
+
|
| 61 |
+
}
|
| 62 |
+
|
| 63 |
+
return false;
|
| 64 |
+
}
|
| 65 |
+
|
| 66 |
+
/**
|
| 67 |
+
*
|
| 68 |
+
* @param Mage_Customer_Model_Customer $customer
|
| 69 |
+
* @param Allopass_Hipay_Model_Api_Response_Gateway $response
|
| 70 |
+
*/
|
| 71 |
+
public function responseToCustomer($customer,$response,$isRecurring = false)
|
| 72 |
+
{
|
| 73 |
+
|
| 74 |
+
$paymentMethod = $response->getPaymentMethod();
|
| 75 |
+
$token = isset($paymentMethod['token']) ? $paymentMethod['token'] : $response->getData('cardtoken');
|
| 76 |
+
|
| 77 |
+
if($isRecurring)
|
| 78 |
+
$customer->setHipayAliasRecurring($token);
|
| 79 |
+
else
|
| 80 |
+
$customer->setHipayAliasOneclick($token );
|
| 81 |
+
|
| 82 |
+
if(isset($paymentMethod['card_expiry_month']) && $paymentMethod['card_expiry_year'])
|
| 83 |
+
$customer->setHipayCcExpDate($paymentMethod['card_expiry_month'] . "-" . $paymentMethod['card_expiry_year'] );
|
| 84 |
+
else
|
| 85 |
+
$customer->setHipayCcExpDate(substr($response->getData('cardexpiry'), 4,2) . "-" . substr($response->getData('cardexpiry'), 0,4) );
|
| 86 |
+
$customer->setHipayCcNumberEnc(isset($paymentMethod['pan']) ? $paymentMethod['pan'] : $response->getData('cardpan'));
|
| 87 |
+
$customer->setHipayCcType(isset($paymentMethod['brand']) ? strtolower($paymentMethod['brand']) : strtolower($response->getData('cardbrand')));
|
| 88 |
+
|
| 89 |
+
|
| 90 |
+
$customer->getResource()->saveAttribute($customer, 'hipay_alias_oneclick');
|
| 91 |
+
$customer->getResource()->saveAttribute($customer, 'hipay_cc_exp_date');
|
| 92 |
+
$customer->getResource()->saveAttribute($customer, 'hipay_cc_number_enc');
|
| 93 |
+
$customer->getResource()->saveAttribute($customer, 'hipay_cc_type');
|
| 94 |
+
|
| 95 |
+
return $this;
|
| 96 |
+
}
|
| 97 |
+
|
| 98 |
+
public function reAddToCart($incrementId) {
|
| 99 |
+
|
| 100 |
+
$cart = Mage::getSingleton('checkout/cart');
|
| 101 |
+
$order = Mage::getModel('sales/order')->loadByIncrementId($incrementId);
|
| 102 |
+
|
| 103 |
+
if ($order->getId()) {
|
| 104 |
+
$items = $order->getItemsCollection();
|
| 105 |
+
foreach ($items as $item) {
|
| 106 |
+
try {
|
| 107 |
+
$cart->addOrderItem($item);
|
| 108 |
+
} catch (Mage_Core_Exception $e) {
|
| 109 |
+
if (Mage::getSingleton('checkout/session')->getUseNotice(true)) {
|
| 110 |
+
Mage::getSingleton('checkout/session')->addNotice($e->getMessage());
|
| 111 |
+
} else {
|
| 112 |
+
Mage::getSingleton('checkout/session')->addError($e->getMessage());
|
| 113 |
+
}
|
| 114 |
+
} catch (Exception $e) {
|
| 115 |
+
Mage::getSingleton('checkout/session')->addException($e, Mage::helper('checkout')->__('Cannot add the item to shopping cart.')
|
| 116 |
+
);
|
| 117 |
+
}
|
| 118 |
+
}
|
| 119 |
+
}
|
| 120 |
+
|
| 121 |
+
$cart->save();
|
| 122 |
+
}
|
| 123 |
+
|
| 124 |
+
|
| 125 |
+
/**
|
| 126 |
+
* Return message for gateway transaction request
|
| 127 |
+
*
|
| 128 |
+
* @param Mage_Payment_Model_Info $payment
|
| 129 |
+
* @param string $requestType
|
| 130 |
+
* @param string $lastTransactionId
|
| 131 |
+
* @param float $amount
|
| 132 |
+
* @param string $exception
|
| 133 |
+
* @return bool|string
|
| 134 |
+
*/
|
| 135 |
+
public function getTransactionMessage($payment, $requestType, $lastTransactionId, $amount = false,
|
| 136 |
+
$exception = false,$additionalMessage = false
|
| 137 |
+
) {
|
| 138 |
+
return $this->getExtendedTransactionMessage(
|
| 139 |
+
$payment, $requestType, $lastTransactionId, $amount, $exception,$additionalMessage
|
| 140 |
+
);
|
| 141 |
+
}
|
| 142 |
+
|
| 143 |
+
/**
|
| 144 |
+
* Return message for gateway transaction request
|
| 145 |
+
*
|
| 146 |
+
* @param Mage_Payment_Model_Info $payment
|
| 147 |
+
* @param string $requestType
|
| 148 |
+
* @param string $lastTransactionId
|
| 149 |
+
* @param float $amount
|
| 150 |
+
* @param string $exception
|
| 151 |
+
* @param string $additionalMessage Custom message, which will be added to the end of generated message
|
| 152 |
+
* @return bool|string
|
| 153 |
+
*/
|
| 154 |
+
public function getExtendedTransactionMessage($payment, $requestType, $lastTransactionId, $amount = false,
|
| 155 |
+
$exception = false, $additionalMessage = false
|
| 156 |
+
) {
|
| 157 |
+
$operation = 'Operation: ' . $requestType;// $this->_getOperation($requestType);
|
| 158 |
+
|
| 159 |
+
if (!$operation) {
|
| 160 |
+
return false;
|
| 161 |
+
}
|
| 162 |
+
|
| 163 |
+
if ($amount) {
|
| 164 |
+
$amount = $this->__('amount: %s', $this->_formatPrice($payment, $amount));
|
| 165 |
+
}
|
| 166 |
+
|
| 167 |
+
if ($exception) {
|
| 168 |
+
$result = $this->__('failed');
|
| 169 |
+
} else {
|
| 170 |
+
$result = $this->__('successful');
|
| 171 |
+
}
|
| 172 |
+
|
| 173 |
+
$card = $this->__('Credit Card: xxxx-%s', $payment->getCcLast4());
|
| 174 |
+
|
| 175 |
+
$pattern = '%s - %s. %s %s.';
|
| 176 |
+
$texts = array($operation,$result,$card, $amount);
|
| 177 |
+
|
| 178 |
+
if (!is_null($lastTransactionId)) {
|
| 179 |
+
$pattern .= ' %s.';
|
| 180 |
+
$texts[] = $this->__('Hipay Transaction ID %s', $lastTransactionId);
|
| 181 |
+
}
|
| 182 |
+
|
| 183 |
+
if ($additionalMessage) {
|
| 184 |
+
$pattern .= ' %s.';
|
| 185 |
+
$texts[] = $additionalMessage;
|
| 186 |
+
}
|
| 187 |
+
$pattern .= ' %s';
|
| 188 |
+
$texts[] = $exception;
|
| 189 |
+
|
| 190 |
+
return call_user_func_array(array($this, '__'), array_merge(array($pattern), $texts));
|
| 191 |
+
}
|
| 192 |
+
|
| 193 |
+
/**
|
| 194 |
+
* Format price with currency sign
|
| 195 |
+
* @param Mage_Payment_Model_Info $payment
|
| 196 |
+
* @param float $amount
|
| 197 |
+
* @return string
|
| 198 |
+
*/
|
| 199 |
+
protected function _formatPrice($payment, $amount)
|
| 200 |
+
{
|
| 201 |
+
return $payment->getOrder()->getBaseCurrency()->formatTxt($amount);
|
| 202 |
+
}
|
| 203 |
+
}
|
app/code/community/Allopass/Hipay/Model/Api/Http/Client/Adapter/Curl.php
ADDED
|
@@ -0,0 +1,483 @@
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
| 1 |
+
<?php
|
| 2 |
+
|
| 3 |
+
|
| 4 |
+
|
| 5 |
+
/**
|
| 6 |
+
* @see Zend_Uri_Http
|
| 7 |
+
*/
|
| 8 |
+
#require_once 'Zend/Uri/Http.php';
|
| 9 |
+
|
| 10 |
+
/**
|
| 11 |
+
* @see Zend_Http_Client_Adapter_Interface
|
| 12 |
+
*/
|
| 13 |
+
#require_once 'Zend/Http/Client/Adapter/Interface.php';
|
| 14 |
+
/**
|
| 15 |
+
* @see Zend_Http_Client_Adapter_Stream
|
| 16 |
+
*/
|
| 17 |
+
#require_once 'Zend/Http/Client/Adapter/Stream.php';
|
| 18 |
+
|
| 19 |
+
/**
|
| 20 |
+
* An adapter class for Zend_Http_Client based on the curl extension.
|
| 21 |
+
* Curl requires libcurl. See for full requirements the PHP manual: http://php.net/curl
|
| 22 |
+
*
|
| 23 |
+
*/
|
| 24 |
+
class Allopass_Hipay_Model_Api_Http_Client_Adapter_Curl implements Zend_Http_Client_Adapter_Interface, Allopass_Hipay_Model_Api_Http_Client_Adapter_Stream
|
| 25 |
+
{
|
| 26 |
+
/**
|
| 27 |
+
* Parameters array
|
| 28 |
+
*
|
| 29 |
+
* @var array
|
| 30 |
+
*/
|
| 31 |
+
protected $_config = array();
|
| 32 |
+
|
| 33 |
+
/**
|
| 34 |
+
* What host/port are we connected to?
|
| 35 |
+
*
|
| 36 |
+
* @var array
|
| 37 |
+
*/
|
| 38 |
+
protected $_connected_to = array(null, null);
|
| 39 |
+
|
| 40 |
+
/**
|
| 41 |
+
* The curl session handle
|
| 42 |
+
*
|
| 43 |
+
* @var resource|null
|
| 44 |
+
*/
|
| 45 |
+
protected $_curl = null;
|
| 46 |
+
|
| 47 |
+
/**
|
| 48 |
+
* List of cURL options that should never be overwritten
|
| 49 |
+
*
|
| 50 |
+
* @var array
|
| 51 |
+
*/
|
| 52 |
+
protected $_invalidOverwritableCurlOptions;
|
| 53 |
+
|
| 54 |
+
/**
|
| 55 |
+
* Response gotten from server
|
| 56 |
+
*
|
| 57 |
+
* @var string
|
| 58 |
+
*/
|
| 59 |
+
protected $_response = null;
|
| 60 |
+
|
| 61 |
+
/**
|
| 62 |
+
* Stream for storing output
|
| 63 |
+
*
|
| 64 |
+
* @var resource
|
| 65 |
+
*/
|
| 66 |
+
protected $out_stream;
|
| 67 |
+
|
| 68 |
+
/**
|
| 69 |
+
* Adapter constructor
|
| 70 |
+
*
|
| 71 |
+
* Config is set using setConfig()
|
| 72 |
+
*
|
| 73 |
+
* @return void
|
| 74 |
+
* @throws Zend_Http_Client_Adapter_Exception
|
| 75 |
+
*/
|
| 76 |
+
public function __construct()
|
| 77 |
+
{
|
| 78 |
+
if (!extension_loaded('curl')) {
|
| 79 |
+
#require_once 'Zend/Http/Client/Adapter/Exception.php';
|
| 80 |
+
throw new Zend_Http_Client_Adapter_Exception('cURL extension has to be loaded to use this Zend_Http_Client adapter.');
|
| 81 |
+
}
|
| 82 |
+
$this->_invalidOverwritableCurlOptions = array(
|
| 83 |
+
CURLOPT_HTTPGET,
|
| 84 |
+
CURLOPT_POST,
|
| 85 |
+
CURLOPT_PUT,
|
| 86 |
+
CURLOPT_CUSTOMREQUEST,
|
| 87 |
+
CURLOPT_HEADER,
|
| 88 |
+
CURLOPT_RETURNTRANSFER,
|
| 89 |
+
CURLOPT_HTTPHEADER,
|
| 90 |
+
CURLOPT_POSTFIELDS,
|
| 91 |
+
CURLOPT_INFILE,
|
| 92 |
+
CURLOPT_INFILESIZE,
|
| 93 |
+
CURLOPT_PORT,
|
| 94 |
+
CURLOPT_MAXREDIRS,
|
| 95 |
+
CURLOPT_CONNECTTIMEOUT,
|
| 96 |
+
CURL_HTTP_VERSION_1_1,
|
| 97 |
+
CURL_HTTP_VERSION_1_0,
|
| 98 |
+
);
|
| 99 |
+
}
|
| 100 |
+
|
| 101 |
+
/**
|
| 102 |
+
* Set the configuration array for the adapter
|
| 103 |
+
*
|
| 104 |
+
* @throws Zend_Http_Client_Adapter_Exception
|
| 105 |
+
* @param Zend_Config | array $config
|
| 106 |
+
* @return Zend_Http_Client_Adapter_Curl
|
| 107 |
+
*/
|
| 108 |
+
public function setConfig($config = array())
|
| 109 |
+
{
|
| 110 |
+
if ($config instanceof Zend_Config) {
|
| 111 |
+
$config = $config->toArray();
|
| 112 |
+
|
| 113 |
+
} elseif (! is_array($config)) {
|
| 114 |
+
#require_once 'Zend/Http/Client/Adapter/Exception.php';
|
| 115 |
+
throw new Zend_Http_Client_Adapter_Exception(
|
| 116 |
+
'Array or Zend_Config object expected, got ' . gettype($config)
|
| 117 |
+
);
|
| 118 |
+
}
|
| 119 |
+
|
| 120 |
+
if(isset($config['proxy_user']) && isset($config['proxy_pass'])) {
|
| 121 |
+
$this->setCurlOption(CURLOPT_PROXYUSERPWD, $config['proxy_user'].":".$config['proxy_pass']);
|
| 122 |
+
unset($config['proxy_user'], $config['proxy_pass']);
|
| 123 |
+
}
|
| 124 |
+
|
| 125 |
+
foreach ($config as $k => $v) {
|
| 126 |
+
$option = strtolower($k);
|
| 127 |
+
switch($option) {
|
| 128 |
+
case 'proxy_host':
|
| 129 |
+
$this->setCurlOption(CURLOPT_PROXY, $v);
|
| 130 |
+
break;
|
| 131 |
+
case 'proxy_port':
|
| 132 |
+
$this->setCurlOption(CURLOPT_PROXYPORT, $v);
|
| 133 |
+
break;
|
| 134 |
+
default:
|
| 135 |
+
$this->_config[$option] = $v;
|
| 136 |
+
break;
|
| 137 |
+
}
|
| 138 |
+
}
|
| 139 |
+
|
| 140 |
+
return $this;
|
| 141 |
+
}
|
| 142 |
+
|
| 143 |
+
/**
|
| 144 |
+
* Retrieve the array of all configuration options
|
| 145 |
+
*
|
| 146 |
+
* @return array
|
| 147 |
+
*/
|
| 148 |
+
public function getConfig()
|
| 149 |
+
{
|
| 150 |
+
return $this->_config;
|
| 151 |
+
}
|
| 152 |
+
|
| 153 |
+
/**
|
| 154 |
+
* Direct setter for cURL adapter related options.
|
| 155 |
+
*
|
| 156 |
+
* @param string|int $option
|
| 157 |
+
* @param mixed $value
|
| 158 |
+
* @return Zend_Http_Adapter_Curl
|
| 159 |
+
*/
|
| 160 |
+
public function setCurlOption($option, $value)
|
| 161 |
+
{
|
| 162 |
+
if (!isset($this->_config['curloptions'])) {
|
| 163 |
+
$this->_config['curloptions'] = array();
|
| 164 |
+
}
|
| 165 |
+
$this->_config['curloptions'][$option] = $value;
|
| 166 |
+
return $this;
|
| 167 |
+
}
|
| 168 |
+
|
| 169 |
+
/**
|
| 170 |
+
* Initialize curl
|
| 171 |
+
*
|
| 172 |
+
* @param string $host
|
| 173 |
+
* @param int $port
|
| 174 |
+
* @param boolean $secure
|
| 175 |
+
* @return void
|
| 176 |
+
* @throws Zend_Http_Client_Adapter_Exception if unable to connect
|
| 177 |
+
*/
|
| 178 |
+
public function connect($host, $port = 80, $secure = false)
|
| 179 |
+
{
|
| 180 |
+
// If we're already connected, disconnect first
|
| 181 |
+
if ($this->_curl) {
|
| 182 |
+
$this->close();
|
| 183 |
+
}
|
| 184 |
+
|
| 185 |
+
// If we are connected to a different server or port, disconnect first
|
| 186 |
+
if ($this->_curl
|
| 187 |
+
&& is_array($this->_connected_to)
|
| 188 |
+
&& ($this->_connected_to[0] != $host
|
| 189 |
+
|| $this->_connected_to[1] != $port)
|
| 190 |
+
) {
|
| 191 |
+
$this->close();
|
| 192 |
+
}
|
| 193 |
+
|
| 194 |
+
// Do the actual connection
|
| 195 |
+
$this->_curl = curl_init();
|
| 196 |
+
if ($port != 80) {
|
| 197 |
+
curl_setopt($this->_curl, CURLOPT_PORT, intval($port));
|
| 198 |
+
}
|
| 199 |
+
|
| 200 |
+
// Set timeout
|
| 201 |
+
curl_setopt($this->_curl, CURLOPT_CONNECTTIMEOUT, $this->_config['timeout']);
|
| 202 |
+
|
| 203 |
+
// Set Max redirects
|
| 204 |
+
curl_setopt($this->_curl, CURLOPT_MAXREDIRS, $this->_config['maxredirects']);
|
| 205 |
+
|
| 206 |
+
if (!$this->_curl) {
|
| 207 |
+
$this->close();
|
| 208 |
+
|
| 209 |
+
#require_once 'Zend/Http/Client/Adapter/Exception.php';
|
| 210 |
+
throw new Zend_Http_Client_Adapter_Exception('Unable to Connect to ' . $host . ':' . $port);
|
| 211 |
+
}
|
| 212 |
+
|
| 213 |
+
if ($secure !== false) {
|
| 214 |
+
// Behave the same like Zend_Http_Adapter_Socket on SSL options.
|
| 215 |
+
if (isset($this->_config['sslcert'])) {
|
| 216 |
+
curl_setopt($this->_curl, CURLOPT_SSLCERT, $this->_config['sslcert']);
|
| 217 |
+
}
|
| 218 |
+
if (isset($this->_config['sslpassphrase'])) {
|
| 219 |
+
curl_setopt($this->_curl, CURLOPT_SSLCERTPASSWD, $this->_config['sslpassphrase']);
|
| 220 |
+
}
|
| 221 |
+
}
|
| 222 |
+
|
| 223 |
+
// Update connected_to
|
| 224 |
+
$this->_connected_to = array($host, $port);
|
| 225 |
+
}
|
| 226 |
+
|
| 227 |
+
/**
|
| 228 |
+
* Send request to the remote server
|
| 229 |
+
*
|
| 230 |
+
* @param string $method
|
| 231 |
+
* @param Zend_Uri_Http $uri
|
| 232 |
+
* @param float $http_ver
|
| 233 |
+
* @param array $headers
|
| 234 |
+
* @param string $body
|
| 235 |
+
* @return string $request
|
| 236 |
+
* @throws Zend_Http_Client_Adapter_Exception If connection fails, connected to wrong host, no PUT file defined, unsupported method, or unsupported cURL option
|
| 237 |
+
*/
|
| 238 |
+
public function write($method, $uri, $httpVersion = 1.1, $headers = array(), $body = '')
|
| 239 |
+
{
|
| 240 |
+
// Make sure we're properly connected
|
| 241 |
+
if (!$this->_curl) {
|
| 242 |
+
#require_once 'Zend/Http/Client/Adapter/Exception.php';
|
| 243 |
+
throw new Zend_Http_Client_Adapter_Exception("Trying to write but we are not connected");
|
| 244 |
+
}
|
| 245 |
+
|
| 246 |
+
if ($this->_connected_to[0] != $uri->getHost() || $this->_connected_to[1] != $uri->getPort()) {
|
| 247 |
+
#require_once 'Zend/Http/Client/Adapter/Exception.php';
|
| 248 |
+
throw new Zend_Http_Client_Adapter_Exception("Trying to write but we are connected to the wrong host");
|
| 249 |
+
}
|
| 250 |
+
|
| 251 |
+
// set URL
|
| 252 |
+
curl_setopt($this->_curl, CURLOPT_URL, $uri->__toString());
|
| 253 |
+
|
| 254 |
+
// ensure correct curl call
|
| 255 |
+
$curlValue = true;
|
| 256 |
+
switch ($method) {
|
| 257 |
+
case Zend_Http_Client::GET:
|
| 258 |
+
$curlMethod = CURLOPT_HTTPGET;
|
| 259 |
+
break;
|
| 260 |
+
|
| 261 |
+
case Zend_Http_Client::POST:
|
| 262 |
+
$curlMethod = CURLOPT_POST;
|
| 263 |
+
break;
|
| 264 |
+
|
| 265 |
+
case Zend_Http_Client::PUT:
|
| 266 |
+
// There are two different types of PUT request, either a Raw Data string has been set
|
| 267 |
+
// or CURLOPT_INFILE and CURLOPT_INFILESIZE are used.
|
| 268 |
+
if(is_resource($body)) {
|
| 269 |
+
$this->_config['curloptions'][CURLOPT_INFILE] = $body;
|
| 270 |
+
}
|
| 271 |
+
if (isset($this->_config['curloptions'][CURLOPT_INFILE])) {
|
| 272 |
+
// Now we will probably already have Content-Length set, so that we have to delete it
|
| 273 |
+
// from $headers at this point:
|
| 274 |
+
foreach ($headers AS $k => $header) {
|
| 275 |
+
if (preg_match('/Content-Length:\s*(\d+)/i', $header, $m)) {
|
| 276 |
+
if(is_resource($body)) {
|
| 277 |
+
$this->_config['curloptions'][CURLOPT_INFILESIZE] = (int)$m[1];
|
| 278 |
+
}
|
| 279 |
+
unset($headers[$k]);
|
| 280 |
+
}
|
| 281 |
+
}
|
| 282 |
+
|
| 283 |
+
if (!isset($this->_config['curloptions'][CURLOPT_INFILESIZE])) {
|
| 284 |
+
#require_once 'Zend/Http/Client/Adapter/Exception.php';
|
| 285 |
+
throw new Zend_Http_Client_Adapter_Exception("Cannot set a file-handle for cURL option CURLOPT_INFILE without also setting its size in CURLOPT_INFILESIZE.");
|
| 286 |
+
}
|
| 287 |
+
|
| 288 |
+
if(is_resource($body)) {
|
| 289 |
+
$body = '';
|
| 290 |
+
}
|
| 291 |
+
|
| 292 |
+
$curlMethod = CURLOPT_PUT;
|
| 293 |
+
} else {
|
| 294 |
+
$curlMethod = CURLOPT_CUSTOMREQUEST;
|
| 295 |
+
$curlValue = "PUT";
|
| 296 |
+
}
|
| 297 |
+
break;
|
| 298 |
+
|
| 299 |
+
case Zend_Http_Client::DELETE:
|
| 300 |
+
$curlMethod = CURLOPT_CUSTOMREQUEST;
|
| 301 |
+
$curlValue = "DELETE";
|
| 302 |
+
break;
|
| 303 |
+
|
| 304 |
+
case Zend_Http_Client::OPTIONS:
|
| 305 |
+
$curlMethod = CURLOPT_CUSTOMREQUEST;
|
| 306 |
+
$curlValue = "OPTIONS";
|
| 307 |
+
break;
|
| 308 |
+
|
| 309 |
+
case Zend_Http_Client::TRACE:
|
| 310 |
+
$curlMethod = CURLOPT_CUSTOMREQUEST;
|
| 311 |
+
$curlValue = "TRACE";
|
| 312 |
+
break;
|
| 313 |
+
|
| 314 |
+
case Zend_Http_Client::HEAD:
|
| 315 |
+
$curlMethod = CURLOPT_CUSTOMREQUEST;
|
| 316 |
+
$curlValue = "HEAD";
|
| 317 |
+
break;
|
| 318 |
+
|
| 319 |
+
default:
|
| 320 |
+
// For now, through an exception for unsupported request methods
|
| 321 |
+
#require_once 'Zend/Http/Client/Adapter/Exception.php';
|
| 322 |
+
throw new Zend_Http_Client_Adapter_Exception("Method currently not supported");
|
| 323 |
+
}
|
| 324 |
+
|
| 325 |
+
if(is_resource($body) && $curlMethod != CURLOPT_PUT) {
|
| 326 |
+
#require_once 'Zend/Http/Client/Adapter/Exception.php';
|
| 327 |
+
throw new Zend_Http_Client_Adapter_Exception("Streaming requests are allowed only with PUT");
|
| 328 |
+
}
|
| 329 |
+
|
| 330 |
+
// get http version to use
|
| 331 |
+
$curlHttp = ($httpVersion == 1.1) ? CURL_HTTP_VERSION_1_1 : CURL_HTTP_VERSION_1_0;
|
| 332 |
+
|
| 333 |
+
// mark as HTTP request and set HTTP method
|
| 334 |
+
curl_setopt($this->_curl, $curlHttp, true);
|
| 335 |
+
curl_setopt($this->_curl, $curlMethod, $curlValue);
|
| 336 |
+
|
| 337 |
+
if($this->out_stream) {
|
| 338 |
+
// headers will be read into the response
|
| 339 |
+
curl_setopt($this->_curl, CURLOPT_HEADER, false);
|
| 340 |
+
curl_setopt($this->_curl, CURLOPT_HEADERFUNCTION, array($this, "readHeader"));
|
| 341 |
+
// and data will be written into the file
|
| 342 |
+
curl_setopt($this->_curl, CURLOPT_FILE, $this->out_stream);
|
| 343 |
+
} else {
|
| 344 |
+
// ensure headers are also returned
|
| 345 |
+
curl_setopt($this->_curl, CURLOPT_HEADER, true);
|
| 346 |
+
|
| 347 |
+
// ensure actual response is returned
|
| 348 |
+
curl_setopt($this->_curl, CURLOPT_RETURNTRANSFER, true);
|
| 349 |
+
}
|
| 350 |
+
|
| 351 |
+
// set additional headers
|
| 352 |
+
$headers['Accept'] = '';
|
| 353 |
+
curl_setopt($this->_curl, CURLOPT_HTTPHEADER, $headers);
|
| 354 |
+
|
| 355 |
+
/**
|
| 356 |
+
* Make sure POSTFIELDS is set after $curlMethod is set:
|
| 357 |
+
* @link http://de2.php.net/manual/en/function.curl-setopt.php#81161
|
| 358 |
+
*/
|
| 359 |
+
if ($method == Zend_Http_Client::POST) {
|
| 360 |
+
curl_setopt($this->_curl, CURLOPT_POSTFIELDS, $body);
|
| 361 |
+
} elseif ($curlMethod == CURLOPT_PUT) {
|
| 362 |
+
// this covers a PUT by file-handle:
|
| 363 |
+
// Make the setting of this options explicit (rather than setting it through the loop following a bit lower)
|
| 364 |
+
// to group common functionality together.
|
| 365 |
+
curl_setopt($this->_curl, CURLOPT_INFILE, $this->_config['curloptions'][CURLOPT_INFILE]);
|
| 366 |
+
curl_setopt($this->_curl, CURLOPT_INFILESIZE, $this->_config['curloptions'][CURLOPT_INFILESIZE]);
|
| 367 |
+
unset($this->_config['curloptions'][CURLOPT_INFILE]);
|
| 368 |
+
unset($this->_config['curloptions'][CURLOPT_INFILESIZE]);
|
| 369 |
+
} elseif ($method == Zend_Http_Client::PUT) {
|
| 370 |
+
// This is a PUT by a setRawData string, not by file-handle
|
| 371 |
+
curl_setopt($this->_curl, CURLOPT_POSTFIELDS, $body);
|
| 372 |
+
}
|
| 373 |
+
|
| 374 |
+
// set additional curl options
|
| 375 |
+
if (isset($this->_config['curloptions'])) {
|
| 376 |
+
foreach ((array)$this->_config['curloptions'] as $k => $v) {
|
| 377 |
+
if (!in_array($k, $this->_invalidOverwritableCurlOptions)) {
|
| 378 |
+
if (curl_setopt($this->_curl, $k, $v) == false) {
|
| 379 |
+
#require_once 'Zend/Http/Client/Exception.php';
|
| 380 |
+
throw new Zend_Http_Client_Exception(sprintf("Unknown or erroreous cURL option '%s' set", $k));
|
| 381 |
+
}
|
| 382 |
+
}
|
| 383 |
+
}
|
| 384 |
+
}
|
| 385 |
+
|
| 386 |
+
// send the request
|
| 387 |
+
$response = curl_exec($this->_curl);
|
| 388 |
+
|
| 389 |
+
// if we used streaming, headers are already there
|
| 390 |
+
if(!is_resource($this->out_stream)) {
|
| 391 |
+
$this->_response = $response;
|
| 392 |
+
}
|
| 393 |
+
|
| 394 |
+
$request = curl_getinfo($this->_curl, CURLINFO_HEADER_OUT);
|
| 395 |
+
$request .= $body;
|
| 396 |
+
|
| 397 |
+
if (empty($this->_response)) {
|
| 398 |
+
#require_once 'Zend/Http/Client/Exception.php';
|
| 399 |
+
throw new Zend_Http_Client_Exception("Error in cURL request: " . curl_error($this->_curl));
|
| 400 |
+
}
|
| 401 |
+
|
| 402 |
+
// cURL automatically decodes chunked-messages, this means we have to disallow the Zend_Http_Response to do it again
|
| 403 |
+
if (stripos($this->_response, "Transfer-Encoding: chunked\r\n")) {
|
| 404 |
+
$this->_response = str_ireplace("Transfer-Encoding: chunked\r\n", '', $this->_response);
|
| 405 |
+
}
|
| 406 |
+
|
| 407 |
+
// Eliminate multiple HTTP responses.
|
| 408 |
+
do {
|
| 409 |
+
$parts = preg_split('|(?:\r?\n){2}|m', $this->_response, 2);
|
| 410 |
+
$again = false;
|
| 411 |
+
|
| 412 |
+
if (isset($parts[1]) && preg_match("|^HTTP/1\.[01](.*?)\r\n|mi", $parts[1])) {
|
| 413 |
+
$this->_response = $parts[1];
|
| 414 |
+
$again = true;
|
| 415 |
+
}
|
| 416 |
+
} while ($again);
|
| 417 |
+
|
| 418 |
+
// cURL automatically handles Proxy rewrites, remove the "HTTP/1.0 200 Connection established" string:
|
| 419 |
+
if (stripos($this->_response, "HTTP/1.0 200 Connection established\r\n\r\n") !== false) {
|
| 420 |
+
$this->_response = str_ireplace("HTTP/1.0 200 Connection established\r\n\r\n", '', $this->_response);
|
| 421 |
+
}
|
| 422 |
+
|
| 423 |
+
return $request;
|
| 424 |
+
}
|
| 425 |
+
|
| 426 |
+
/**
|
| 427 |
+
* Return read response from server
|
| 428 |
+
*
|
| 429 |
+
* @return string
|
| 430 |
+
*/
|
| 431 |
+
public function read()
|
| 432 |
+
{
|
| 433 |
+
return $this->_response;
|
| 434 |
+
}
|
| 435 |
+
|
| 436 |
+
/**
|
| 437 |
+
* Close the connection to the server
|
| 438 |
+
*
|
| 439 |
+
*/
|
| 440 |
+
public function close()
|
| 441 |
+
{
|
| 442 |
+
if(is_resource($this->_curl)) {
|
| 443 |
+
curl_close($this->_curl);
|
| 444 |
+
}
|
| 445 |
+
$this->_curl = null;
|
| 446 |
+
$this->_connected_to = array(null, null);
|
| 447 |
+
}
|
| 448 |
+
|
| 449 |
+
/**
|
| 450 |
+
* Get cUrl Handle
|
| 451 |
+
*
|
| 452 |
+
* @return resource
|
| 453 |
+
*/
|
| 454 |
+
public function getHandle()
|
| 455 |
+
{
|
| 456 |
+
return $this->_curl;
|
| 457 |
+
}
|
| 458 |
+
|
| 459 |
+
/**
|
| 460 |
+
* Set output stream for the response
|
| 461 |
+
*
|
| 462 |
+
* @param resource $stream
|
| 463 |
+
* @return Zend_Http_Client_Adapter_Socket
|
| 464 |
+
*/
|
| 465 |
+
public function setOutputStream($stream)
|
| 466 |
+
{
|
| 467 |
+
$this->out_stream = $stream;
|
| 468 |
+
return $this;
|
| 469 |
+
}
|
| 470 |
+
|
| 471 |
+
/**
|
| 472 |
+
* Header reader function for CURL
|
| 473 |
+
*
|
| 474 |
+
* @param resource $curl
|
| 475 |
+
* @param string $header
|
| 476 |
+
* @return int
|
| 477 |
+
*/
|
| 478 |
+
public function readHeader($curl, $header)
|
| 479 |
+
{
|
| 480 |
+
$this->_response .= $header;
|
| 481 |
+
return strlen($header);
|
| 482 |
+
}
|
| 483 |
+
}
|
app/code/community/Allopass/Hipay/Model/Api/Http/Client/Adapter/Stream.php
ADDED
|
@@ -0,0 +1,20 @@
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
| 1 |
+
<?php
|
| 2 |
+
|
| 3 |
+
/**
|
| 4 |
+
* An interface description for Zend_Http_Client_Adapter_Stream classes.
|
| 5 |
+
*
|
| 6 |
+
* This interface decribes Zend_Http_Client_Adapter which supports streaming.
|
| 7 |
+
|
| 8 |
+
*/
|
| 9 |
+
interface Allopass_Hipay_Model_Api_Http_Client_Adapter_Stream
|
| 10 |
+
{
|
| 11 |
+
/**
|
| 12 |
+
* Set output stream
|
| 13 |
+
*
|
| 14 |
+
* This function sets output stream where the result will be stored.
|
| 15 |
+
*
|
| 16 |
+
* @param resource $stream Stream to write the output to
|
| 17 |
+
*
|
| 18 |
+
*/
|
| 19 |
+
function setOutputStream($stream);
|
| 20 |
+
}
|
app/code/community/Allopass/Hipay/Model/Api/Request.php
ADDED
|
@@ -0,0 +1,219 @@
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
| 1 |
+
<?php
|
| 2 |
+
class Allopass_Hipay_Model_Api_Request
|
| 3 |
+
{
|
| 4 |
+
|
| 5 |
+
const VAULT_ACTION_CREATE = 'create';
|
| 6 |
+
|
| 7 |
+
const VAULT_ACTION_UPDATE = 'update';
|
| 8 |
+
|
| 9 |
+
const VAULT_ACTION_LOOKUP = '';
|
| 10 |
+
|
| 11 |
+
const GATEWAY_ACTION_ORDER = 'order';
|
| 12 |
+
|
| 13 |
+
const GATEWAY_ACTION_MAINTENANCE = 'maintenance/transaction/';
|
| 14 |
+
|
| 15 |
+
const GATEWAY_ACTION_HOSTED = "hpayment";
|
| 16 |
+
|
| 17 |
+
/**
|
| 18 |
+
*
|
| 19 |
+
* @var Zend_Http_Client
|
| 20 |
+
*/
|
| 21 |
+
protected $_client = null;
|
| 22 |
+
|
| 23 |
+
protected $_methodInstance = null;
|
| 24 |
+
|
| 25 |
+
public function __construct( $methodInstance)
|
| 26 |
+
{
|
| 27 |
+
$this->_methodInstance = $methodInstance[0];
|
| 28 |
+
}
|
| 29 |
+
|
| 30 |
+
protected function getMethodInstance()
|
| 31 |
+
{
|
| 32 |
+
if(!$this->_methodInstance instanceof Mage_Payment_Model_Method_Abstract)
|
| 33 |
+
Mage::throwException("Method instance must be setted or must be type of Mage_Payment_Model_Method_Abstract");
|
| 34 |
+
|
| 35 |
+
return $this->_methodInstance;
|
| 36 |
+
}
|
| 37 |
+
|
| 38 |
+
/**
|
| 39 |
+
*
|
| 40 |
+
* @param Mage_Payment_Model_Method_Abstract $methodInstance
|
| 41 |
+
*/
|
| 42 |
+
protected function setMethodInstance($methodInstance)
|
| 43 |
+
{
|
| 44 |
+
$this->_methodInstance = $methodInstance;
|
| 45 |
+
}
|
| 46 |
+
|
| 47 |
+
|
| 48 |
+
protected function getApiUsername($storeId=null)
|
| 49 |
+
{
|
| 50 |
+
if($this->isTestMode())
|
| 51 |
+
return $this->getConfig()->getApiUsernameTest($storeId);
|
| 52 |
+
|
| 53 |
+
return $this->getConfig()->getApiUsername($storeId);
|
| 54 |
+
}
|
| 55 |
+
|
| 56 |
+
protected function getApiPassword($storeId=null)
|
| 57 |
+
{
|
| 58 |
+
if($this->isTestMode())
|
| 59 |
+
return $this->getConfig()->getApiPasswordTest($storeId);
|
| 60 |
+
|
| 61 |
+
return $this->getConfig()->getApiPassword($storeId);
|
| 62 |
+
}
|
| 63 |
+
|
| 64 |
+
protected function isTestMode()
|
| 65 |
+
{
|
| 66 |
+
return (bool)$this->getMethodInstance()->getConfigData('is_test_mode');
|
| 67 |
+
}
|
| 68 |
+
|
| 69 |
+
|
| 70 |
+
|
| 71 |
+
/**
|
| 72 |
+
*
|
| 73 |
+
* @return Allopass_Hipay_Model_Config $config
|
| 74 |
+
*/
|
| 75 |
+
protected function getConfig()
|
| 76 |
+
{
|
| 77 |
+
return Mage::getSingleton('hipay/config');
|
| 78 |
+
}
|
| 79 |
+
|
| 80 |
+
/**
|
| 81 |
+
* Get client HTTP
|
| 82 |
+
* @return Zend_Http_Client
|
| 83 |
+
*/
|
| 84 |
+
public function getClient($storeId=null)
|
| 85 |
+
{
|
| 86 |
+
if(is_null($this->_client))
|
| 87 |
+
{
|
| 88 |
+
//$credentials = $this->getApiUsername($storeId) . ':' . $this->getApiPassword($storeId);
|
| 89 |
+
|
| 90 |
+
//adapter options
|
| 91 |
+
$config = array('curloptions' => array(
|
| 92 |
+
//CURLOPT_USERPWD=>$credentials,
|
| 93 |
+
//CURLOPT_HTTPHEADER => array('Accept: application/json'),
|
| 94 |
+
CURLOPT_FAILONERROR => false,
|
| 95 |
+
CURLOPT_HEADER=>false,
|
| 96 |
+
CURLOPT_RETURNTRANSFER=>true),
|
| 97 |
+
);
|
| 98 |
+
try {
|
| 99 |
+
|
| 100 |
+
//innitialize http client and adapter curl
|
| 101 |
+
$adapter = Mage::getSingleton('hipay/api_http_client_adapter_curl');
|
| 102 |
+
|
| 103 |
+
$this->_client = new Zend_Http_Client();
|
| 104 |
+
//$adapter->setConfig($config);
|
| 105 |
+
$this->_client->setConfig($config);
|
| 106 |
+
$this->_client->setHeaders(array('Content-Type'=>'application/xml',
|
| 107 |
+
'Accept'=>'application/json'));
|
| 108 |
+
$this->_client->setAuth($this->getApiUsername($storeId),
|
| 109 |
+
$this->getApiPassword($storeId),
|
| 110 |
+
Zend_Http_Client::AUTH_BASIC);
|
| 111 |
+
$this->_client->setAdapter($adapter);
|
| 112 |
+
|
| 113 |
+
|
| 114 |
+
} catch (Exception $e) {
|
| 115 |
+
Mage::throwException($e);
|
| 116 |
+
}
|
| 117 |
+
}
|
| 118 |
+
|
| 119 |
+
return $this->_client;
|
| 120 |
+
}
|
| 121 |
+
|
| 122 |
+
protected function _request($uri,$params=array(),$method=Zend_Http_Client::POST,$storeId=null)
|
| 123 |
+
{
|
| 124 |
+
|
| 125 |
+
if($method == Zend_Http_Client::POST)
|
| 126 |
+
$this->getClient()->setParameterPost($params);
|
| 127 |
+
else
|
| 128 |
+
$this->getClient()->setParameterGet($params);
|
| 129 |
+
|
| 130 |
+
$this->getClient()->setUri($uri);
|
| 131 |
+
|
| 132 |
+
/* @var $response Zend_Http_Response */
|
| 133 |
+
$response = $this->getClient()->request($method);
|
| 134 |
+
|
| 135 |
+
if($response->isSuccessful())
|
| 136 |
+
{
|
| 137 |
+
//$this->getClient()->getAdapter()->close();
|
| 138 |
+
return json_decode($response->getBody(),true);
|
| 139 |
+
}
|
| 140 |
+
else
|
| 141 |
+
{
|
| 142 |
+
/* @var $error Allopass_Hipay_Model_Api_Response_Error */
|
| 143 |
+
$error = Mage::getSingleton('hipay/api_response_error');
|
| 144 |
+
$error->setData(json_decode($response->getBody(),true));
|
| 145 |
+
$messageError = "Code: " . $error->getCode() . ". Message: " . $error->getMessage();
|
| 146 |
+
if($error->getDescription() != "")
|
| 147 |
+
$messageError .= ". Details: " . $error->getDescription();
|
| 148 |
+
|
| 149 |
+
Mage::throwException($messageError);
|
| 150 |
+
}
|
| 151 |
+
|
| 152 |
+
|
| 153 |
+
}
|
| 154 |
+
|
| 155 |
+
public function getMethodHttp($action)
|
| 156 |
+
{
|
| 157 |
+
if($action == self::VAULT_ACTION_LOOKUP)
|
| 158 |
+
return Zend_Http_Client::GET;
|
| 159 |
+
|
| 160 |
+
return Zend_Http_Client::POST;
|
| 161 |
+
}
|
| 162 |
+
|
| 163 |
+
/**
|
| 164 |
+
*
|
| 165 |
+
*/
|
| 166 |
+
protected function getVaultApiEndpoint($storeId=null) {
|
| 167 |
+
if($this->isTestMode())
|
| 168 |
+
return $this->getConfig()->getVaultEndpointTest($storeId);
|
| 169 |
+
|
| 170 |
+
return $this->getConfig()->getVaultEndpoint($storeId);
|
| 171 |
+
|
| 172 |
+
}
|
| 173 |
+
|
| 174 |
+
/**
|
| 175 |
+
*
|
| 176 |
+
*/
|
| 177 |
+
protected function getGatewayApiEndpoint($storeId=null) {
|
| 178 |
+
if($this->isTestMode())
|
| 179 |
+
return $this->getConfig()->getGatewayEndpointTest($storeId);
|
| 180 |
+
|
| 181 |
+
return $this->getConfig()->getGatewayEndpoint($storeId);
|
| 182 |
+
|
| 183 |
+
}
|
| 184 |
+
|
| 185 |
+
|
| 186 |
+
/**
|
| 187 |
+
*
|
| 188 |
+
* @param string $action
|
| 189 |
+
* @param array $params
|
| 190 |
+
* @param int $storeId
|
| 191 |
+
* @return Allopass_Hipay_Model_Response_Vault
|
| 192 |
+
*/
|
| 193 |
+
public function vaultRequest($action,$params,$storeId=null)
|
| 194 |
+
{
|
| 195 |
+
$uri = $this->getVaultApiEndpoint($storeId) . $action . "/";
|
| 196 |
+
|
| 197 |
+
/* @var $response Allopass_Hipay_Model_Api_Response_Vault */
|
| 198 |
+
$response = Mage::getSingleton('hipay/api_response_vault', $this->_request($uri,$params,$this->getMethodHttp($action),$storeId));
|
| 199 |
+
|
| 200 |
+
return $response;
|
| 201 |
+
}
|
| 202 |
+
|
| 203 |
+
/**
|
| 204 |
+
*
|
| 205 |
+
* @param string $action
|
| 206 |
+
* @param array $params
|
| 207 |
+
* @param int $storeId
|
| 208 |
+
* @return Allopass_Hipay_Model_Response_Abstract
|
| 209 |
+
*/
|
| 210 |
+
public function gatewayRequest($action,$params,$storeId=null)
|
| 211 |
+
{
|
| 212 |
+
$uri = $this->getGatewayApiEndpoint($storeId) . $action;
|
| 213 |
+
|
| 214 |
+
/* @var $response Allopass_Hipay_Model_Api_Response_Gateway */
|
| 215 |
+
$response = Mage::getSingleton('hipay/api_response_gateway',$this->_request($uri,$params,$this->getMethodHttp($action),$storeId));
|
| 216 |
+
return $response;
|
| 217 |
+
}
|
| 218 |
+
|
| 219 |
+
}
|
app/code/community/Allopass/Hipay/Model/Api/Response/Abstract.php
ADDED
|
@@ -0,0 +1,17 @@
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
| 1 |
+
<?php
|
| 2 |
+
/**
|
| 3 |
+
*
|
| 4 |
+
* @method string getToken() card token
|
| 5 |
+
* @method string getBrand() card type
|
| 6 |
+
* @method string getPan() card number masked
|
| 7 |
+
* @method string getCardHolder() Cardholder name
|
| 8 |
+
* @method int getCardExpiryMonth() card expiry month (2 digits)
|
| 9 |
+
* @method int getCardExpiryYear() card expiry year (4 digits)
|
| 10 |
+
* @method string getIssuer() card issuing bank name
|
| 11 |
+
* @method string getCountry() bank country code (ISO 3166-1, 2 letters)
|
| 12 |
+
*
|
| 13 |
+
*/
|
| 14 |
+
abstract class Allopass_Hipay_Model_Api_Response_Abstract extends Varien_Object
|
| 15 |
+
{
|
| 16 |
+
|
| 17 |
+
}
|
app/code/community/Allopass/Hipay/Model/Api/Response/Error.php
ADDED
|
@@ -0,0 +1,12 @@
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
| 1 |
+
<?php
|
| 2 |
+
/**
|
| 3 |
+
*
|
| 4 |
+
* @method string getCode()
|
| 5 |
+
* @method string getMessage()
|
| 6 |
+
* @method string getDescription()
|
| 7 |
+
*
|
| 8 |
+
*/
|
| 9 |
+
class Allopass_Hipay_Model_Api_Response_Error extends Varien_Object
|
| 10 |
+
{
|
| 11 |
+
|
| 12 |
+
}
|
app/code/community/Allopass/Hipay/Model/Api/Response/Gateway.php
ADDED
|
@@ -0,0 +1,114 @@
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
| 1 |
+
<?php
|
| 2 |
+
/**
|
| 3 |
+
*
|
| 4 |
+
* @method string getState() transaction state. completed,forwarding, pending, declined, error
|
| 5 |
+
* @method array getReason() optional element. Reason why transaction was declined.
|
| 6 |
+
* @method string getForwardUrl() optional element. Merchant must redirect the customer's browser to this URL.
|
| 7 |
+
* @method bool getTest() true if the transaction is a testing transaction, otherwise false
|
| 8 |
+
* @method int getMid() your merchant account number (issued to you by Allopass).
|
| 9 |
+
* @method int getAttemptId() attempt id of the payment.
|
| 10 |
+
* @method string getAuthorizationCode() an authorization code (up to 35 characters) generated for each approved or pending transaction by the acquiring provider.
|
| 11 |
+
* @method string getTransactionReference() the unique identifier of the transaction.
|
| 12 |
+
* @method DateTime getDateCreated() time when transaction was created.
|
| 13 |
+
* @method DateTime getDateUpdated() time when transaction was last updated.
|
| 14 |
+
* @method DateTime getDateAuthorized() time when transaction was authorized.
|
| 15 |
+
* @method string getStatus() transaction status.
|
| 16 |
+
* @method string getMessage() transaction message.
|
| 17 |
+
* @method string getAuthorizedAmount() the transaction amount.
|
| 18 |
+
* @method string getCapturedAmount() captured amount.
|
| 19 |
+
* @method string getRefundedAmount() refunded amount.
|
| 20 |
+
* @method string getDecimals() decimal precision of transaction amount..
|
| 21 |
+
* @method string getCurrency() base currency for this transaction.
|
| 22 |
+
* @method string getIpAddress() the IP address of the customer making the purchase.
|
| 23 |
+
* @method string getIpCountry() country code associated to the customer's IP address.
|
| 24 |
+
* @method string getEci() Electronic Commerce Indicator (ECI).
|
| 25 |
+
* @method string getPaymentProduct() payment product used to complete the transaction.
|
| 26 |
+
* @method string getPaymentMethod() base currency for this transaction.
|
| 27 |
+
* @method array getFraudScreening() Result of the fraud screening.
|
| 28 |
+
*
|
| 29 |
+
*/
|
| 30 |
+
class Allopass_Hipay_Model_Api_Response_Gateway extends Allopass_Hipay_Model_Api_Response_Abstract
|
| 31 |
+
{
|
| 32 |
+
public function getForwardUrl()
|
| 33 |
+
{
|
| 34 |
+
return $this->getData('forwardUrl');
|
| 35 |
+
}
|
| 36 |
+
|
| 37 |
+
public function getAttemptId()
|
| 38 |
+
{
|
| 39 |
+
return $this->getData('attemptId');
|
| 40 |
+
}
|
| 41 |
+
|
| 42 |
+
public function getAuthorizationCode()
|
| 43 |
+
{
|
| 44 |
+
return $this->getData('authorizationCode');
|
| 45 |
+
}
|
| 46 |
+
|
| 47 |
+
|
| 48 |
+
public function getTransactionReference()
|
| 49 |
+
{
|
| 50 |
+
if($this->getData('transactionReference') == '')
|
| 51 |
+
return $this->getData('reference');
|
| 52 |
+
|
| 53 |
+
return $this->getData('transactionReference');
|
| 54 |
+
}
|
| 55 |
+
|
| 56 |
+
|
| 57 |
+
public function getDateCreated()
|
| 58 |
+
{
|
| 59 |
+
return $this->getData('dateCreated');
|
| 60 |
+
}
|
| 61 |
+
|
| 62 |
+
|
| 63 |
+
public function getDateUpdated()
|
| 64 |
+
{
|
| 65 |
+
return $this->getData('dateUpdated');
|
| 66 |
+
}
|
| 67 |
+
|
| 68 |
+
|
| 69 |
+
public function getDateAuthorized()
|
| 70 |
+
{
|
| 71 |
+
return $this->getData('dateAuthorized');
|
| 72 |
+
}
|
| 73 |
+
|
| 74 |
+
public function getAuthorizedAmount()
|
| 75 |
+
{
|
| 76 |
+
return $this->getData('authorizedAmount');
|
| 77 |
+
}
|
| 78 |
+
|
| 79 |
+
public function getCapturedAmount()
|
| 80 |
+
{
|
| 81 |
+
return $this->getData('capturedAmount');
|
| 82 |
+
}
|
| 83 |
+
|
| 84 |
+
public function getRefundedAmount()
|
| 85 |
+
{
|
| 86 |
+
return $this->getData('refundedAmount');
|
| 87 |
+
}
|
| 88 |
+
|
| 89 |
+
public function getIpAddress()
|
| 90 |
+
{
|
| 91 |
+
return $this->getData('ipAddress');
|
| 92 |
+
}
|
| 93 |
+
|
| 94 |
+
public function getIpCountry()
|
| 95 |
+
{
|
| 96 |
+
return $this->getData('ipCountry');
|
| 97 |
+
}
|
| 98 |
+
|
| 99 |
+
public function getPaymentProduct()
|
| 100 |
+
{
|
| 101 |
+
return $this->getData('paymentProduct');
|
| 102 |
+
}
|
| 103 |
+
|
| 104 |
+
public function getPaymentMethod()
|
| 105 |
+
{
|
| 106 |
+
return $this->getData('paymentMethod');
|
| 107 |
+
}
|
| 108 |
+
|
| 109 |
+
public function getFraudScreening()
|
| 110 |
+
{
|
| 111 |
+
return $this->getData('fraudScreening');
|
| 112 |
+
}
|
| 113 |
+
|
| 114 |
+
}
|
app/code/community/Allopass/Hipay/Model/Api/Response/Notification.php
ADDED
|
@@ -0,0 +1,33 @@
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
| 1 |
+
<?php
|
| 2 |
+
/**
|
| 3 |
+
*
|
| 4 |
+
* @method string getState() transaction state. completed,forwarding, pending, declined, error
|
| 5 |
+
* @method array getReason() optional element. Reason why transaction was declined.
|
| 6 |
+
* @method bool getTest() true if the transaction is a testing transaction, otherwise false
|
| 7 |
+
* @method int getMid() your merchant account number (issued to you by Allopass).
|
| 8 |
+
* @method int getAttemptId() attempt id of the payment.
|
| 9 |
+
* @method string getAuthorizationCode() an authorization code (up to 35 characters) generated for each approved or pending transaction by the acquiring provider.
|
| 10 |
+
* @method string getTransactionReference() the unique identifier of the transaction.
|
| 11 |
+
* @method DateTime getDateCreated() time when transaction was created.
|
| 12 |
+
* @method DateTime getDateUpdated() time when transaction was last updated.
|
| 13 |
+
* @method DateTime getDateAuthorized() time when transaction was authorized.
|
| 14 |
+
* @method string getStatus() transaction status.
|
| 15 |
+
* @method string getMessage() transaction message.
|
| 16 |
+
* @method string getAuthorizedAmount() the transaction amount.
|
| 17 |
+
* @method string getCapturedAmount() captured amount.
|
| 18 |
+
* @method string getRefundedAmount() refunded amount.
|
| 19 |
+
* @method string getDecimals() decimal precision of transaction amount..
|
| 20 |
+
* @method string getCurrency() base currency for this transaction.
|
| 21 |
+
* @method string getIpAddress() the IP address of the customer making the purchase.
|
| 22 |
+
* @method string getIpCountry() country code associated to the customer's IP address.
|
| 23 |
+
* @method string getEci() Electronic Commerce Indicator (ECI).
|
| 24 |
+
* @method string getPaymentProduct() payment product used to complete the transaction.
|
| 25 |
+
* @method string getPaymentMethod() base currency for this transaction.
|
| 26 |
+
* @method array getFraudScreening() Result of the fraud screening.
|
| 27 |
+
*
|
| 28 |
+
*/
|
| 29 |
+
class Allopass_Hipay_Model_Api_Response_Notification extends Allopass_Hipay_Model_Api_Response_Abstract
|
| 30 |
+
{
|
| 31 |
+
|
| 32 |
+
|
| 33 |
+
}
|
app/code/community/Allopass/Hipay/Model/Api/Response/Vault.php
ADDED
|
@@ -0,0 +1,9 @@
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
| 1 |
+
<?php
|
| 2 |
+
/**
|
| 3 |
+
* @method string getRequestId() ...
|
| 4 |
+
*
|
| 5 |
+
*/
|
| 6 |
+
class Allopass_Hipay_Model_Api_Response_Vault extends Allopass_Hipay_Model_Api_Response_Abstract
|
| 7 |
+
{
|
| 8 |
+
|
| 9 |
+
}
|
app/code/community/Allopass/Hipay/Model/Config.php
ADDED
|
@@ -0,0 +1,234 @@
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
| 1 |
+
<?php
|
| 2 |
+
class Allopass_Hipay_Model_Config extends Varien_Object
|
| 3 |
+
{
|
| 4 |
+
const API_USERNAME = 'api_username';
|
| 5 |
+
|
| 6 |
+
const API_PASSWORD = 'api_password';
|
| 7 |
+
|
| 8 |
+
const API_USERNAME_TEST = "api_username_test";
|
| 9 |
+
|
| 10 |
+
const API_PASSWORD_TEST = 'api_password_test';
|
| 11 |
+
|
| 12 |
+
const SECRET_PASSPHRASE = 'secret_passphrase';
|
| 13 |
+
|
| 14 |
+
const VAULT_ENDPOINT_TEST = 'vault_endpoint_stage';
|
| 15 |
+
|
| 16 |
+
const VAULT_ENDPOINT = 'vault_endpoint_production';
|
| 17 |
+
|
| 18 |
+
const GATEWAY_ENDPOINT_TEST = 'gateway_endpoint_stage';
|
| 19 |
+
|
| 20 |
+
const GATEWAY_ENDPOINT = 'gateway_endpoint_production';
|
| 21 |
+
|
| 22 |
+
|
| 23 |
+
/**
|
| 24 |
+
* Return config var
|
| 25 |
+
*
|
| 26 |
+
* @param string $key Var path key
|
| 27 |
+
* @param int $storeId Store View Id
|
| 28 |
+
* @return mixed
|
| 29 |
+
*/
|
| 30 |
+
public function getConfigData($key, $storeId = null)
|
| 31 |
+
{
|
| 32 |
+
|
| 33 |
+
if (!$this->hasData($key)) {
|
| 34 |
+
$value = Mage::getStoreConfig('hipay/hipay_api/' . $key, $storeId);
|
| 35 |
+
$this->setData($key, $value);
|
| 36 |
+
}
|
| 37 |
+
return $this->getData($key);
|
| 38 |
+
}
|
| 39 |
+
|
| 40 |
+
/**
|
| 41 |
+
* Return config var
|
| 42 |
+
*
|
| 43 |
+
* @param string $key Var path key
|
| 44 |
+
* @param int $storeId Store View Id
|
| 45 |
+
* @return mixed
|
| 46 |
+
*/
|
| 47 |
+
public function getConfigFlag($key, $storeId = null)
|
| 48 |
+
{
|
| 49 |
+
|
| 50 |
+
if (!$this->hasData($key)) {
|
| 51 |
+
$value = Mage::getStoreConfigFlag('hipay/hipay_api/' . $key, $storeId);
|
| 52 |
+
$this->setData($key, $value);
|
| 53 |
+
}
|
| 54 |
+
return $this->getData($key);
|
| 55 |
+
}
|
| 56 |
+
|
| 57 |
+
public function getSecretPassphrase($storeId =null)
|
| 58 |
+
{
|
| 59 |
+
return $this->getConfigData(self::SECRET_PASSPHRASE,$storeId);
|
| 60 |
+
}
|
| 61 |
+
|
| 62 |
+
public function getApiUsername($storeId =null)
|
| 63 |
+
{
|
| 64 |
+
return $this->getConfigData(self::API_USERNAME,$storeId);
|
| 65 |
+
}
|
| 66 |
+
|
| 67 |
+
public function getApiPassword($storeId=null)
|
| 68 |
+
{
|
| 69 |
+
return $this->getConfigData(self::API_PASSWORD,$storeId);
|
| 70 |
+
}
|
| 71 |
+
|
| 72 |
+
public function getApiUsernameTest($storeId =null)
|
| 73 |
+
{
|
| 74 |
+
return $this->getConfigData(self::API_USERNAME_TEST,$storeId);
|
| 75 |
+
}
|
| 76 |
+
|
| 77 |
+
public function getApiPasswordTest($storeId=null)
|
| 78 |
+
{
|
| 79 |
+
return $this->getConfigData(self::API_PASSWORD_TEST,$storeId);
|
| 80 |
+
}
|
| 81 |
+
|
| 82 |
+
public function getVaultEndpoint($storeId=null)
|
| 83 |
+
{
|
| 84 |
+
return $this->getConfigData(self::VAULT_ENDPOINT,$storeId);
|
| 85 |
+
}
|
| 86 |
+
|
| 87 |
+
public function getVaultEndpointTest($storeId=null)
|
| 88 |
+
{
|
| 89 |
+
return $this->getConfigData(self::VAULT_ENDPOINT_TEST,$storeId);
|
| 90 |
+
}
|
| 91 |
+
|
| 92 |
+
public function getGatewayEndpoint($storeId=null)
|
| 93 |
+
{
|
| 94 |
+
return $this->getConfigData(self::GATEWAY_ENDPOINT,$storeId);
|
| 95 |
+
}
|
| 96 |
+
|
| 97 |
+
public function getGatewayEndpointTest($storeId=null)
|
| 98 |
+
{
|
| 99 |
+
return $this->getConfigData(self::GATEWAY_ENDPOINT_TEST,$storeId);
|
| 100 |
+
}
|
| 101 |
+
|
| 102 |
+
/**
|
| 103 |
+
* Retrieve array of credit card types
|
| 104 |
+
*
|
| 105 |
+
* @return array
|
| 106 |
+
*/
|
| 107 |
+
public function getCcTypes()
|
| 108 |
+
{
|
| 109 |
+
$_types = Mage::getConfig()->getNode('global/payment_hipay/cc/types')->asArray();
|
| 110 |
+
|
| 111 |
+
uasort($_types, array('Allopass_Hipay_Model_Config', 'compareCcTypes'));
|
| 112 |
+
|
| 113 |
+
$types = array();
|
| 114 |
+
foreach ($_types as $data) {
|
| 115 |
+
if (isset($data['code']) && isset($data['name'])) {
|
| 116 |
+
$types[$data['code']] = $data['name'];
|
| 117 |
+
}
|
| 118 |
+
}
|
| 119 |
+
return $types;
|
| 120 |
+
}
|
| 121 |
+
|
| 122 |
+
/**
|
| 123 |
+
* Retrieve array of credit card types to get code hipay equals to code Magento
|
| 124 |
+
*
|
| 125 |
+
* @return array
|
| 126 |
+
*/
|
| 127 |
+
public function getCcTypesHipay()
|
| 128 |
+
{
|
| 129 |
+
$_types = Mage::getConfig()->getNode('global/payment_hipay/hosted/types')->asArray();
|
| 130 |
+
|
| 131 |
+
$types = array();
|
| 132 |
+
foreach ($_types as $data) {
|
| 133 |
+
if (isset($data['code']) && isset($data['code_hipay'])) {
|
| 134 |
+
$types[$data['code']] = $data['code_hipay'];
|
| 135 |
+
}
|
| 136 |
+
}
|
| 137 |
+
return $types;
|
| 138 |
+
}
|
| 139 |
+
|
| 140 |
+
/**
|
| 141 |
+
* Retrieve array of template types to display in hosted page
|
| 142 |
+
*
|
| 143 |
+
* @return array
|
| 144 |
+
*/
|
| 145 |
+
public function getTemplateHosted()
|
| 146 |
+
{
|
| 147 |
+
$_templates = Mage::getConfig()->getNode('global/template_hipay/hosted')->asArray();
|
| 148 |
+
|
| 149 |
+
$templates = array();
|
| 150 |
+
foreach ($_templates as $data) {
|
| 151 |
+
if (isset($data['value']) && isset($data['label'])) {
|
| 152 |
+
$templates[$data['value']] = $data['label'];
|
| 153 |
+
}
|
| 154 |
+
}
|
| 155 |
+
return $templates;
|
| 156 |
+
}
|
| 157 |
+
|
| 158 |
+
/**
|
| 159 |
+
* Retrieve array of credit card types to get code hipay
|
| 160 |
+
*
|
| 161 |
+
* @return array
|
| 162 |
+
*/
|
| 163 |
+
public function getCcTypesCodeHipay()
|
| 164 |
+
{
|
| 165 |
+
$_types = Mage::getConfig()->getNode('global/payment_hipay/hosted/types')->asArray();
|
| 166 |
+
|
| 167 |
+
$types = array();
|
| 168 |
+
foreach ($_types as $data) {
|
| 169 |
+
if (isset($data['code_hipay']) && isset($data['name'])) {
|
| 170 |
+
$types[$data['code_hipay']] = $data['name'];
|
| 171 |
+
}
|
| 172 |
+
}
|
| 173 |
+
return $types;
|
| 174 |
+
}
|
| 175 |
+
|
| 176 |
+
/**
|
| 177 |
+
* Retrieve list of months translation
|
| 178 |
+
*
|
| 179 |
+
* @return array
|
| 180 |
+
*/
|
| 181 |
+
public function getMonths()
|
| 182 |
+
{
|
| 183 |
+
$data = Mage::app()->getLocale()->getTranslationList('month');
|
| 184 |
+
foreach ($data as $key => $value) {
|
| 185 |
+
$monthNum = ($key < 10) ? '0'.$key : $key;
|
| 186 |
+
$data[$key] = $monthNum . ' - ' . $value;
|
| 187 |
+
}
|
| 188 |
+
return $data;
|
| 189 |
+
}
|
| 190 |
+
|
| 191 |
+
/**
|
| 192 |
+
* Retrieve array of available years
|
| 193 |
+
*
|
| 194 |
+
* @return array
|
| 195 |
+
*/
|
| 196 |
+
public function getYears()
|
| 197 |
+
{
|
| 198 |
+
$years = array();
|
| 199 |
+
$first = date("Y");
|
| 200 |
+
|
| 201 |
+
for ($index=0; $index <= 10; $index++) {
|
| 202 |
+
$year = $first + $index;
|
| 203 |
+
$years[$year] = $year;
|
| 204 |
+
}
|
| 205 |
+
return $years;
|
| 206 |
+
}
|
| 207 |
+
|
| 208 |
+
/**
|
| 209 |
+
* Statis Method for compare sort order of CC Types
|
| 210 |
+
*
|
| 211 |
+
* @param array $a
|
| 212 |
+
* @param array $b
|
| 213 |
+
* @return int
|
| 214 |
+
*/
|
| 215 |
+
static function compareCcTypes($a, $b)
|
| 216 |
+
{
|
| 217 |
+
if (!isset($a['order'])) {
|
| 218 |
+
$a['order'] = 0;
|
| 219 |
+
}
|
| 220 |
+
|
| 221 |
+
if (!isset($b['order'])) {
|
| 222 |
+
$b['order'] = 0;
|
| 223 |
+
}
|
| 224 |
+
|
| 225 |
+
if ($a['order'] == $b['order']) {
|
| 226 |
+
return 0;
|
| 227 |
+
} else if ($a['order'] > $b['order']) {
|
| 228 |
+
return 1;
|
| 229 |
+
} else {
|
| 230 |
+
return -1;
|
| 231 |
+
}
|
| 232 |
+
|
| 233 |
+
}
|
| 234 |
+
}
|
app/code/community/Allopass/Hipay/Model/Log/Adapter.php
ADDED
|
@@ -0,0 +1,118 @@
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
| 1 |
+
<?php
|
| 2 |
+
|
| 3 |
+
/**
|
| 4 |
+
* Log Adapter
|
| 5 |
+
*/
|
| 6 |
+
class Allopass_Hipay_Model_Log_Adapter
|
| 7 |
+
{
|
| 8 |
+
|
| 9 |
+
/**
|
| 10 |
+
* Store log file name
|
| 11 |
+
*
|
| 12 |
+
* @var string
|
| 13 |
+
*/
|
| 14 |
+
protected $_logFileName = '';
|
| 15 |
+
|
| 16 |
+
/**
|
| 17 |
+
* Data to log
|
| 18 |
+
*
|
| 19 |
+
* @var array
|
| 20 |
+
*/
|
| 21 |
+
protected $_data = array();
|
| 22 |
+
|
| 23 |
+
/**
|
| 24 |
+
* Fields that should be replaced in debug data with '***'
|
| 25 |
+
*
|
| 26 |
+
* @var array
|
| 27 |
+
*/
|
| 28 |
+
protected $_debugReplacePrivateDataKeys = array();
|
| 29 |
+
|
| 30 |
+
/**
|
| 31 |
+
* Set log file name
|
| 32 |
+
*
|
| 33 |
+
* @param string $fileName
|
| 34 |
+
*/
|
| 35 |
+
public function __construct($fileName)
|
| 36 |
+
{
|
| 37 |
+
$this->_logFileName = $fileName;
|
| 38 |
+
}
|
| 39 |
+
|
| 40 |
+
/**
|
| 41 |
+
* Perform forced log data to file
|
| 42 |
+
*
|
| 43 |
+
* @param mixed $data
|
| 44 |
+
* @return Mage_Core_Model_Log_Adapter
|
| 45 |
+
*/
|
| 46 |
+
public function log($data = null)
|
| 47 |
+
{
|
| 48 |
+
if ($data === null) {
|
| 49 |
+
$data = $this->_data;
|
| 50 |
+
}
|
| 51 |
+
else {
|
| 52 |
+
if (!is_array($data)) {
|
| 53 |
+
$data = array($data);
|
| 54 |
+
}
|
| 55 |
+
}
|
| 56 |
+
$data = $this->_filterDebugData($data);
|
| 57 |
+
$data['__pid'] = getmypid();
|
| 58 |
+
Mage::log($data, null, $this->_logFileName, true);
|
| 59 |
+
return $this;
|
| 60 |
+
}
|
| 61 |
+
|
| 62 |
+
/**
|
| 63 |
+
* Log data setter
|
| 64 |
+
*
|
| 65 |
+
* @param string|array $key
|
| 66 |
+
* @param mixed $value
|
| 67 |
+
* @return Mage_Core_Model_Log_Adapter
|
| 68 |
+
* @todo replace whole data
|
| 69 |
+
*/
|
| 70 |
+
public function setData($key, $value = null)
|
| 71 |
+
{
|
| 72 |
+
if(is_array($key)) {
|
| 73 |
+
$this->_data = $key;
|
| 74 |
+
}
|
| 75 |
+
else {
|
| 76 |
+
$this->_data[$key] = $value;
|
| 77 |
+
}
|
| 78 |
+
return $this;
|
| 79 |
+
}
|
| 80 |
+
|
| 81 |
+
/**
|
| 82 |
+
* Setter for private data keys, that should be replaced in debug data with '***'
|
| 83 |
+
*
|
| 84 |
+
* @param array $keys
|
| 85 |
+
* @return Mage_Core_Model_Log_Adapter
|
| 86 |
+
*/
|
| 87 |
+
public function setFilterDataKeys($keys)
|
| 88 |
+
{
|
| 89 |
+
if (!is_array($keys)) {
|
| 90 |
+
$keys = array($keys);
|
| 91 |
+
}
|
| 92 |
+
$this->_debugReplacePrivateDataKeys = $keys;
|
| 93 |
+
return $this;
|
| 94 |
+
}
|
| 95 |
+
|
| 96 |
+
/**
|
| 97 |
+
* Recursive filter data by private conventions
|
| 98 |
+
*
|
| 99 |
+
* @param mixed $debugData
|
| 100 |
+
* @return mixed
|
| 101 |
+
*/
|
| 102 |
+
protected function _filterDebugData($debugData)
|
| 103 |
+
{
|
| 104 |
+
if (is_array($debugData) && is_array($this->_debugReplacePrivateDataKeys)) {
|
| 105 |
+
foreach ($debugData as $key => $value) {
|
| 106 |
+
if (in_array($key, $this->_debugReplacePrivateDataKeys)) {
|
| 107 |
+
$debugData[$key] = '****';
|
| 108 |
+
}
|
| 109 |
+
else {
|
| 110 |
+
if (is_array($debugData[$key])) {
|
| 111 |
+
$debugData[$key] = $this->_filterDebugData($debugData[$key]);
|
| 112 |
+
}
|
| 113 |
+
}
|
| 114 |
+
}
|
| 115 |
+
}
|
| 116 |
+
return $debugData;
|
| 117 |
+
}
|
| 118 |
+
}
|
app/code/community/Allopass/Hipay/Model/Method/Abstract.php
ADDED
|
@@ -0,0 +1,1003 @@
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
| 1 |
+
<?php
|
| 2 |
+
abstract class Allopass_Hipay_Model_Method_Abstract extends Mage_Payment_Model_Method_Abstract
|
| 3 |
+
{
|
| 4 |
+
const OPERATION_SALE = "Sale";
|
| 5 |
+
const OPERATION_AUTHORIZATION = "Authorization";
|
| 6 |
+
const OPERATION_MAINTENANCE_CAPTURE = "Capture";
|
| 7 |
+
const OPERATION_MAINTENANCE_REFUND = "Refund";
|
| 8 |
+
|
| 9 |
+
|
| 10 |
+
const STATE_COMPLETED = "completed";
|
| 11 |
+
const STATE_FORWARDING = "forwarding";
|
| 12 |
+
const STATE_PENDING = "pending";
|
| 13 |
+
const STATE_DECLINED = "declined";
|
| 14 |
+
const STATE_ERROR = "error";
|
| 15 |
+
|
| 16 |
+
//const STATUS_PENDING_CAPTURE = 'pending_capture';
|
| 17 |
+
|
| 18 |
+
/**
|
| 19 |
+
* Availability options
|
| 20 |
+
*/
|
| 21 |
+
protected $_isGateway = true;
|
| 22 |
+
protected $_canAuthorize = true;
|
| 23 |
+
protected $_canCapture = true;
|
| 24 |
+
protected $_canCapturePartial = true;
|
| 25 |
+
protected $_canRefund = true;
|
| 26 |
+
protected $_canRefundInvoicePartial = true;
|
| 27 |
+
protected $_canVoid = true;
|
| 28 |
+
protected $_canUseInternal = false;
|
| 29 |
+
protected $_canUseCheckout = true;
|
| 30 |
+
protected $_canUseForMultishipping = false;
|
| 31 |
+
protected $_canSaveCc = false;
|
| 32 |
+
protected $_canReviewPayment = false;
|
| 33 |
+
|
| 34 |
+
//protected $_allowCurrencyCode = array('EUR');
|
| 35 |
+
|
| 36 |
+
/**
|
| 37 |
+
* Fields that should be replaced in debug with '***'
|
| 38 |
+
*
|
| 39 |
+
* @var array
|
| 40 |
+
*/
|
| 41 |
+
protected $_debugReplacePrivateDataKeys = array('token','cardtoken','card_number','cvc');
|
| 42 |
+
|
| 43 |
+
|
| 44 |
+
public function isInitializeNeeded()
|
| 45 |
+
{
|
| 46 |
+
return true;
|
| 47 |
+
}
|
| 48 |
+
|
| 49 |
+
|
| 50 |
+
protected function getOperation()
|
| 51 |
+
{
|
| 52 |
+
switch ($this->getConfigPaymentAction())
|
| 53 |
+
{
|
| 54 |
+
case Mage_Payment_Model_Method_Abstract::ACTION_AUTHORIZE:
|
| 55 |
+
return self::OPERATION_AUTHORIZATION;
|
| 56 |
+
default:
|
| 57 |
+
return self::OPERATION_SALE;
|
| 58 |
+
}
|
| 59 |
+
|
| 60 |
+
return '';
|
| 61 |
+
}
|
| 62 |
+
|
| 63 |
+
|
| 64 |
+
public function authorize(Varien_Object $payment, $amount)
|
| 65 |
+
{
|
| 66 |
+
parent::authorize($payment, $amount);
|
| 67 |
+
|
| 68 |
+
$payment->setSkipTransactionCreation(true);
|
| 69 |
+
return $this;
|
| 70 |
+
}
|
| 71 |
+
|
| 72 |
+
|
| 73 |
+
|
| 74 |
+
|
| 75 |
+
/**
|
| 76 |
+
*
|
| 77 |
+
* @param Allopass_Hipay_Model_Api_Response_Gateway $gatewayResponse
|
| 78 |
+
* @param Mage_Sales_Model_Order_Payment $payment
|
| 79 |
+
* @param float $amount
|
| 80 |
+
*/
|
| 81 |
+
public function processResponse($gatewayResponse,$payment,$amount)
|
| 82 |
+
{
|
| 83 |
+
|
| 84 |
+
$order = $payment->getOrder();
|
| 85 |
+
$customer = Mage::getModel('customer/customer')->load($order->getCustomerId());
|
| 86 |
+
|
| 87 |
+
//$defaultExceptionMessage = Mage::helper('hipay')->__('Error in process response!');
|
| 88 |
+
|
| 89 |
+
switch ($this->getConfigPaymentAction()) {
|
| 90 |
+
case Mage_Payment_Model_Method_Abstract::ACTION_AUTHORIZE:
|
| 91 |
+
$requestType = self::OPERATION_AUTHORIZATION;
|
| 92 |
+
$newTransactionType = Mage_Sales_Model_Order_Payment_Transaction::TYPE_AUTH;
|
| 93 |
+
$defaultExceptionMessage = Mage::helper('hipay')->__('Payment authorization error.');
|
| 94 |
+
break;
|
| 95 |
+
case Mage_Payment_Model_Method_Abstract::ACTION_AUTHORIZE_CAPTURE:
|
| 96 |
+
$requestType = self::OPERATION_SALE;
|
| 97 |
+
$newTransactionType = Mage_Sales_Model_Order_Payment_Transaction::TYPE_CAPTURE;
|
| 98 |
+
$defaultExceptionMessage = Mage::helper('hipay')->__('Payment capturing error.');
|
| 99 |
+
break;
|
| 100 |
+
}
|
| 101 |
+
|
| 102 |
+
switch ($gatewayResponse->getState())
|
| 103 |
+
{
|
| 104 |
+
case self::STATE_COMPLETED:
|
| 105 |
+
case self::STATE_PENDING:
|
| 106 |
+
switch ((int)$gatewayResponse->getStatus())
|
| 107 |
+
{
|
| 108 |
+
case 111: //denied
|
| 109 |
+
|
| 110 |
+
$this->addTransaction(
|
| 111 |
+
$payment,
|
| 112 |
+
$gatewayResponse->getTransactionReference(),
|
| 113 |
+
$newTransactionType,
|
| 114 |
+
array('is_transaction_closed' => 0),
|
| 115 |
+
array(),
|
| 116 |
+
Mage::helper('hipay')->getTransactionMessage(
|
| 117 |
+
$payment, $requestType, /*$gatewayResponse->getTransactionReference()*/null, $amount
|
| 118 |
+
)
|
| 119 |
+
);
|
| 120 |
+
|
| 121 |
+
|
| 122 |
+
if ($order->getState() == Mage_Sales_Model_Order::STATE_HOLDED) {
|
| 123 |
+
$order->unhold();
|
| 124 |
+
}
|
| 125 |
+
|
| 126 |
+
if (!$status = $this->getConfigData('order_status_payment_refused')) {
|
| 127 |
+
$status = $order->getStatus();
|
| 128 |
+
}
|
| 129 |
+
|
| 130 |
+
|
| 131 |
+
if ($status == Mage_Sales_Model_Order::STATE_HOLDED && $order->canHold()) {
|
| 132 |
+
$order->hold();
|
| 133 |
+
} elseif ($status == Mage_Sales_Model_Order::STATE_CANCELED && $order->canCancel()) {
|
| 134 |
+
$order->cancel();
|
| 135 |
+
}
|
| 136 |
+
|
| 137 |
+
$order->addStatusToHistory($status, Mage::helper('hipay')->getTransactionMessage(
|
| 138 |
+
$payment, self::OPERATION_AUTHORIZATION, null, $amount,true,$gatewayResponse->getMessage()
|
| 139 |
+
));
|
| 140 |
+
|
| 141 |
+
$order->save();
|
| 142 |
+
|
| 143 |
+
|
| 144 |
+
break;
|
| 145 |
+
case 112: //Authorized and pending
|
| 146 |
+
|
| 147 |
+
|
| 148 |
+
$this->addTransaction(
|
| 149 |
+
$payment,
|
| 150 |
+
$gatewayResponse->getTransactionReference(),
|
| 151 |
+
Mage_Sales_Model_Order_Payment_Transaction::TYPE_AUTH,
|
| 152 |
+
array('is_transaction_closed' => 0),
|
| 153 |
+
array(
|
| 154 |
+
$this->_realTransactionIdKey => $gatewayResponse->getTransactionReference(),
|
| 155 |
+
),
|
| 156 |
+
Mage::helper('hipay')->getTransactionMessage(
|
| 157 |
+
$payment, self::OPERATION_AUTHORIZATION, $gatewayResponse->getTransactionReference(), $amount,true
|
| 158 |
+
)
|
| 159 |
+
);
|
| 160 |
+
$state = Mage_Sales_Model_Order::STATE_PENDING_PAYMENT;
|
| 161 |
+
if(defined('Mage_Sales_Model_Order::STATE_PAYMENT_REVIEW'))
|
| 162 |
+
$state = Mage_Sales_Model_Order::STATE_PAYMENT_REVIEW;
|
| 163 |
+
$status = Mage_Sales_Model_Order::STATE_PENDING_PAYMENT;
|
| 164 |
+
|
| 165 |
+
if($fraudScreening = $gatewayResponse->getFraudScreening())
|
| 166 |
+
{
|
| 167 |
+
|
| 168 |
+
if(isset($fraudScreening['result'])
|
| 169 |
+
&& ($fraudScreening['result'] == 'pending' || $fraudScreening['result'] == 'challenged') )
|
| 170 |
+
{
|
| 171 |
+
if(defined('Mage_Sales_Model_Order::STATUS_FRAUD'))
|
| 172 |
+
$status = Mage_Sales_Model_Order::STATUS_FRAUD;
|
| 173 |
+
|
| 174 |
+
}
|
| 175 |
+
|
| 176 |
+
}
|
| 177 |
+
|
| 178 |
+
$order->setState($state,$status,$gatewayResponse->getMessage());
|
| 179 |
+
|
| 180 |
+
$order->save();
|
| 181 |
+
break;
|
| 182 |
+
|
| 183 |
+
case 116: //Authorized
|
| 184 |
+
|
| 185 |
+
if($order->getStatus() == 'capture_requested' || $order->getStatus() == 'processing' )// for logic process
|
| 186 |
+
break;
|
| 187 |
+
if(!$this->isPreauthorizeCapture($payment))
|
| 188 |
+
$this->addTransaction(
|
| 189 |
+
$payment,
|
| 190 |
+
$gatewayResponse->getTransactionReference(),
|
| 191 |
+
Mage_Sales_Model_Order_Payment_Transaction::TYPE_AUTH,
|
| 192 |
+
array('is_transaction_closed' => 0),
|
| 193 |
+
array(),
|
| 194 |
+
Mage::helper('hipay')->getTransactionMessage(
|
| 195 |
+
$payment, self::OPERATION_AUTHORIZATION, /*$gatewayResponse->getTransactionReference()*/null, $amount
|
| 196 |
+
)
|
| 197 |
+
);
|
| 198 |
+
|
| 199 |
+
$order->setState(
|
| 200 |
+
Mage_Sales_Model_Order::STATE_PROCESSING,
|
| 201 |
+
'pending_capture',
|
| 202 |
+
Mage::helper('hipay')
|
| 203 |
+
->__("Waiting for capture transaction ID '%s' of amount %s",
|
| 204 |
+
$gatewayResponse->getTransactionReference(),
|
| 205 |
+
$order->getBaseCurrency()->formatTxt($order->getBaseTotalDue())),
|
| 206 |
+
$notified = true);
|
| 207 |
+
|
| 208 |
+
$order->save();
|
| 209 |
+
if (!$order->getEmailSent()) {
|
| 210 |
+
$order->sendNewOrderEmail();
|
| 211 |
+
}
|
| 212 |
+
|
| 213 |
+
|
| 214 |
+
|
| 215 |
+
break;
|
| 216 |
+
case 117: //Capture Requested
|
| 217 |
+
|
| 218 |
+
$this->addTransaction(
|
| 219 |
+
$payment,
|
| 220 |
+
$gatewayResponse->getTransactionReference(),
|
| 221 |
+
Mage_Sales_Model_Order_Payment_Transaction::TYPE_CAPTURE,
|
| 222 |
+
array('is_transaction_closed' => 0),
|
| 223 |
+
array(),
|
| 224 |
+
Mage::helper('hipay')->getTransactionMessage(
|
| 225 |
+
$payment, self::OPERATION_SALE, /*$gatewayResponse->getTransactionReference()*/null, $amount
|
| 226 |
+
)
|
| 227 |
+
);
|
| 228 |
+
|
| 229 |
+
$message = Mage::helper("hipay")->__('Capture Requested by Hipay.');
|
| 230 |
+
|
| 231 |
+
$order->setState(
|
| 232 |
+
Mage_Sales_Model_Order::STATE_PROCESSING, 'capture_requested', $message, null, false
|
| 233 |
+
);
|
| 234 |
+
|
| 235 |
+
if(((int)$this->getConfigData('hipay_status_validate_order') == 117) === false )
|
| 236 |
+
break;
|
| 237 |
+
else {
|
| 238 |
+
$order->save();
|
| 239 |
+
}
|
| 240 |
+
|
| 241 |
+
case 118: //Capture
|
| 242 |
+
|
| 243 |
+
if ($order->getState() == Mage_Sales_Model_Order::STATE_HOLDED) {
|
| 244 |
+
$order->unhold();
|
| 245 |
+
}
|
| 246 |
+
|
| 247 |
+
|
| 248 |
+
if (!$status = $this->getConfigData('order_status_payment_accepted')) {
|
| 249 |
+
$status = $order->getStatus();
|
| 250 |
+
}
|
| 251 |
+
|
| 252 |
+
$message = Mage::helper("hipay")->__('Payment accepted by Hipay.');
|
| 253 |
+
|
| 254 |
+
if ($status == Mage_Sales_Model_Order::STATE_PROCESSING) {
|
| 255 |
+
$order->setState(
|
| 256 |
+
Mage_Sales_Model_Order::STATE_PROCESSING, $status, $message
|
| 257 |
+
);
|
| 258 |
+
} else if ($status == Mage_Sales_Model_Order::STATE_COMPLETE) {
|
| 259 |
+
$order->setState(
|
| 260 |
+
Mage_Sales_Model_Order::STATE_COMPLETE, $status, $message, null, false
|
| 261 |
+
);
|
| 262 |
+
} else {
|
| 263 |
+
$order->addStatusToHistory($status, $message, true);
|
| 264 |
+
}
|
| 265 |
+
|
| 266 |
+
|
| 267 |
+
|
| 268 |
+
// Create invoice
|
| 269 |
+
if ($this->getConfigData('invoice_create',$order->getStoreId()) && !$order->hasInvoices()) {
|
| 270 |
+
|
| 271 |
+
$invoice = $order->prepareInvoice();
|
| 272 |
+
$invoice->setTransactionId($gatewayResponse->getTransactionReference());
|
| 273 |
+
$invoice->register()->capture();
|
| 274 |
+
$invoice->setIsPaid(1);
|
| 275 |
+
Mage::getModel('core/resource_transaction')
|
| 276 |
+
->addObject($invoice)->addObject($invoice->getOrder())
|
| 277 |
+
->save();
|
| 278 |
+
|
| 279 |
+
}
|
| 280 |
+
elseif($order->hasInvoices())
|
| 281 |
+
{
|
| 282 |
+
foreach ($order->getInvoiceCollection() as $invoice)
|
| 283 |
+
{
|
| 284 |
+
if($invoice->getState() == Mage_Sales_Model_Order_Invoice::STATE_OPEN && $invoice->getBaseGrandTotal() == $gatewayResponse->getCapturedAmount())
|
| 285 |
+
{
|
| 286 |
+
$invoice->pay();
|
| 287 |
+
Mage::getModel('core/resource_transaction')
|
| 288 |
+
->addObject($invoice)->addObject($invoice->getOrder())
|
| 289 |
+
->save();
|
| 290 |
+
|
| 291 |
+
}
|
| 292 |
+
}
|
| 293 |
+
}
|
| 294 |
+
|
| 295 |
+
if (!$order->getEmailSent()) {
|
| 296 |
+
$order->sendNewOrderEmail();
|
| 297 |
+
}
|
| 298 |
+
|
| 299 |
+
break;
|
| 300 |
+
|
| 301 |
+
case 124: //Refund Requested
|
| 302 |
+
|
| 303 |
+
$message = Mage::helper("hipay")->__('Refund Requested by Hipay.');
|
| 304 |
+
|
| 305 |
+
$order->setState(
|
| 306 |
+
Mage_Sales_Model_Order::STATE_PROCESSING, 'refund_requested', $message, null, false
|
| 307 |
+
);
|
| 308 |
+
|
| 309 |
+
break;
|
| 310 |
+
case 125: //Refund
|
| 311 |
+
|
| 312 |
+
if($order->hasCreditmemos())
|
| 313 |
+
{
|
| 314 |
+
/* @var $creditmemo Mage_Sales_Model_Order_Creditmemo */
|
| 315 |
+
foreach ($order->getCreditmemosCollection() as $creditmemo)
|
| 316 |
+
{
|
| 317 |
+
if($creditmemo->getState() == Mage_Sales_Model_Order_Creditmemo::STATE_OPEN
|
| 318 |
+
&& $creditmemo->getGrandTotal() == $gatewayResponse->getRefundedAmount())
|
| 319 |
+
{
|
| 320 |
+
$creditmemo->setState(Mage_Sales_Model_Order_Creditmemo::STATE_REFUNDED);
|
| 321 |
+
|
| 322 |
+
$message = Mage::helper("hipay")->__('Refund accepted by Hipay.');
|
| 323 |
+
|
| 324 |
+
$order->addStatusToHistory($order->getStatus(), $message);
|
| 325 |
+
|
| 326 |
+
Mage::getModel('core/resource_transaction')
|
| 327 |
+
->addObject($creditmemo)->addObject($creditmemo->getOrder())
|
| 328 |
+
->save();
|
| 329 |
+
|
| 330 |
+
}
|
| 331 |
+
}
|
| 332 |
+
}
|
| 333 |
+
elseif($order->canCreditmemo())
|
| 334 |
+
{
|
| 335 |
+
$service = Mage::getModel('sales/service_order', $order);
|
| 336 |
+
$creditmemo = $service->prepareInvoiceCreditmemo($order->getInvoiceCollection()->getFirstItem());
|
| 337 |
+
foreach ($creditmemo->getAllItems() as $creditmemoItem) {
|
| 338 |
+
$creditmemoItem->setBackToStock(Mage::helper('cataloginventory')->isAutoReturnEnabled());
|
| 339 |
+
}
|
| 340 |
+
$creditmemo->setOfflineRequested(true);
|
| 341 |
+
$transactionSave = Mage::getModel('core/resource_transaction')
|
| 342 |
+
->addObject($creditmemo)
|
| 343 |
+
->addObject($creditmemo->getOrder());
|
| 344 |
+
if ($creditmemo->getInvoice()) {
|
| 345 |
+
$transactionSave->addObject($creditmemo->getInvoice());
|
| 346 |
+
}
|
| 347 |
+
$transactionSave->save();
|
| 348 |
+
}
|
| 349 |
+
|
| 350 |
+
break;
|
| 351 |
+
}
|
| 352 |
+
|
| 353 |
+
|
| 354 |
+
if(in_array($gatewayResponse->getPaymentProduct(), array('visa','american-express','mastercard','cb'))
|
| 355 |
+
&& ((int)$gatewayResponse->getEci() == 9 || $payment->getAdditionalInformation('create_oneclick'))
|
| 356 |
+
&& !$order->isNominal()) //Recurring E-commerce
|
| 357 |
+
{
|
| 358 |
+
|
| 359 |
+
if($customer->getId())
|
| 360 |
+
{
|
| 361 |
+
$this->responseToCustomer($customer,$gatewayResponse);
|
| 362 |
+
|
| 363 |
+
}
|
| 364 |
+
}
|
| 365 |
+
$order->save();
|
| 366 |
+
break;
|
| 367 |
+
|
| 368 |
+
case self::STATE_FORWARDING:
|
| 369 |
+
$this->addTransaction(
|
| 370 |
+
$payment,
|
| 371 |
+
$gatewayResponse->getTransactionReference(),
|
| 372 |
+
$newTransactionType,
|
| 373 |
+
array('is_transaction_closed' => 0),
|
| 374 |
+
array(),
|
| 375 |
+
Mage::helper('hipay')->getTransactionMessage(
|
| 376 |
+
$payment, $requestType, $gatewayResponse->getTransactionReference(), $amount
|
| 377 |
+
)
|
| 378 |
+
);
|
| 379 |
+
|
| 380 |
+
$payment->setIsTransactionPending(1);
|
| 381 |
+
$order->save();
|
| 382 |
+
break;
|
| 383 |
+
|
| 384 |
+
case self::STATE_DECLINED:
|
| 385 |
+
|
| 386 |
+
$reason = $gatewayResponse->getReason();
|
| 387 |
+
$this->addTransaction(
|
| 388 |
+
$payment,
|
| 389 |
+
$gatewayResponse->getTransactionReference(),
|
| 390 |
+
$newTransactionType,
|
| 391 |
+
array('is_transaction_closed' => 0),
|
| 392 |
+
array(
|
| 393 |
+
$this->_realTransactionIdKey => $gatewayResponse->getTransactionReference(),
|
| 394 |
+
$this->_isTransactionFraud => true
|
| 395 |
+
),
|
| 396 |
+
Mage::helper('hipay')->getTransactionMessage(
|
| 397 |
+
$payment, $requestType, null, $amount,true,"Code: ".$reason['code']." " . Mage::helper('hipay')->__("Reason") . " : ".$reason['message']
|
| 398 |
+
)
|
| 399 |
+
);
|
| 400 |
+
|
| 401 |
+
|
| 402 |
+
if ($order->getState() == Mage_Sales_Model_Order::STATE_HOLDED) {
|
| 403 |
+
$order->unhold();
|
| 404 |
+
}
|
| 405 |
+
|
| 406 |
+
if (!$status = $this->getConfigData('order_status_payment_refused')) {
|
| 407 |
+
$status = $order->getStatus();
|
| 408 |
+
}
|
| 409 |
+
|
| 410 |
+
if($fraudScreening = $gatewayResponse->getFraudScreening())
|
| 411 |
+
{
|
| 412 |
+
|
| 413 |
+
if(isset($fraudScreening['result']) && $fraudScreening['result'] == 'blocked' )
|
| 414 |
+
{
|
| 415 |
+
$payment->setIsFraudDetected(true);
|
| 416 |
+
|
| 417 |
+
if(defined('Mage_Sales_Model_Order::STATUS_FRAUD'))
|
| 418 |
+
$status = Mage_Sales_Model_Order::STATUS_FRAUD;
|
| 419 |
+
|
| 420 |
+
$order->addStatusToHistory($status, Mage::helper('hipay')->getTransactionMessage(
|
| 421 |
+
$payment, $this->getOperation(), null, $amount,true,$gatewayResponse->getMessage()
|
| 422 |
+
));
|
| 423 |
+
}
|
| 424 |
+
|
| 425 |
+
}
|
| 426 |
+
|
| 427 |
+
|
| 428 |
+
|
| 429 |
+
if ($status == Mage_Sales_Model_Order::STATE_HOLDED && $order->canHold()) {
|
| 430 |
+
$order->hold();
|
| 431 |
+
} elseif ($status == Mage_Sales_Model_Order::STATE_CANCELED && $order->canCancel()) {
|
| 432 |
+
$order->cancel();
|
| 433 |
+
}
|
| 434 |
+
|
| 435 |
+
|
| 436 |
+
$order->addStatusToHistory($status, Mage::helper('hipay')->getTransactionMessage(
|
| 437 |
+
$payment, $this->getOperation(), null, $amount,true,$gatewayResponse->getMessage()
|
| 438 |
+
));
|
| 439 |
+
|
| 440 |
+
$order->save();
|
| 441 |
+
|
| 442 |
+
break;
|
| 443 |
+
|
| 444 |
+
case self::STATE_ERROR:
|
| 445 |
+
default:
|
| 446 |
+
Mage::throwException($defaultExceptionMessage);
|
| 447 |
+
break;
|
| 448 |
+
|
| 449 |
+
}
|
| 450 |
+
}
|
| 451 |
+
|
| 452 |
+
/**
|
| 453 |
+
*
|
| 454 |
+
* @param Allopass_Hipay_Model_Api_Response_Gateway $gatewayResponse
|
| 455 |
+
* @param Mage_Sales_Model_Order_Payment $payment
|
| 456 |
+
* @param float $amount
|
| 457 |
+
*/
|
| 458 |
+
public function processResponseToRedirect($gatewayResponse,$payment,$amount)
|
| 459 |
+
{
|
| 460 |
+
|
| 461 |
+
$order = $payment->getOrder();
|
| 462 |
+
$customer = Mage::getModel('customer/customer')->load($order->getCustomerId());
|
| 463 |
+
|
| 464 |
+
switch ($this->getConfigPaymentAction()) {
|
| 465 |
+
case Mage_Payment_Model_Method_Abstract::ACTION_AUTHORIZE:
|
| 466 |
+
$requestType = self::OPERATION_AUTHORIZATION;
|
| 467 |
+
$newTransactionType = Mage_Sales_Model_Order_Payment_Transaction::TYPE_AUTH;
|
| 468 |
+
$defaultExceptionMessage = Mage::helper('hipay')->__('Payment authorization error.');
|
| 469 |
+
break;
|
| 470 |
+
case Mage_Payment_Model_Method_Abstract::ACTION_AUTHORIZE_CAPTURE:
|
| 471 |
+
$requestType = self::OPERATION_SALE;
|
| 472 |
+
$newTransactionType = Mage_Sales_Model_Order_Payment_Transaction::TYPE_CAPTURE;
|
| 473 |
+
$defaultExceptionMessage = Mage::helper('hipay')->__('Payment capturing error.');
|
| 474 |
+
break;
|
| 475 |
+
}
|
| 476 |
+
|
| 477 |
+
switch ($gatewayResponse->getState())
|
| 478 |
+
{
|
| 479 |
+
case self::STATE_COMPLETED:
|
| 480 |
+
return Mage::getUrl('checkout/onepage/success');
|
| 481 |
+
|
| 482 |
+
case self::STATE_FORWARDING:
|
| 483 |
+
$payment->setIsTransactionPending(1);
|
| 484 |
+
$order->save();
|
| 485 |
+
return $gatewayResponse->getForwardUrl();
|
| 486 |
+
|
| 487 |
+
case self::STATE_PENDING:
|
| 488 |
+
if($this->getConfigData('re_add_to_cart'))
|
| 489 |
+
$this->getHelper()->reAddToCart($order->getIncrementId());
|
| 490 |
+
|
| 491 |
+
return Mage::getUrl($this->getConfigData('pending_redirect_page'));
|
| 492 |
+
|
| 493 |
+
case self::STATE_DECLINED:
|
| 494 |
+
|
| 495 |
+
if($this->getConfigData('re_add_to_cart'))
|
| 496 |
+
$this->getHelper()->reAddToCart($order->getIncrementId());
|
| 497 |
+
|
| 498 |
+
return Mage::getUrl('checkout/onepage/failure');
|
| 499 |
+
|
| 500 |
+
case self::STATE_ERROR:
|
| 501 |
+
default:
|
| 502 |
+
|
| 503 |
+
if($this->getConfigData('re_add_to_cart'))
|
| 504 |
+
$this->getHelper()->reAddToCart($order->getIncrementId());
|
| 505 |
+
|
| 506 |
+
$this->_getCheckout()->setErrorMessage($defaultExceptionMessage);
|
| 507 |
+
return Mage::getUrl('checkout/onepage/failure');
|
| 508 |
+
|
| 509 |
+
}
|
| 510 |
+
}
|
| 511 |
+
|
| 512 |
+
/**
|
| 513 |
+
*
|
| 514 |
+
* @return Allopass_Hipay_Helper_Data $helper
|
| 515 |
+
*/
|
| 516 |
+
protected function getHelper()
|
| 517 |
+
{
|
| 518 |
+
return Mage::helper('hipay');
|
| 519 |
+
}
|
| 520 |
+
|
| 521 |
+
|
| 522 |
+
/**
|
| 523 |
+
*
|
| 524 |
+
* @param Mage_Customer_Model_Customer $customer
|
| 525 |
+
* @param Allopass_Hipay_Model_Api_Response_Gateway $response
|
| 526 |
+
*/
|
| 527 |
+
protected function responseToCustomer($customer,$response)
|
| 528 |
+
{
|
| 529 |
+
$this->getHelper()->responseToCustomer($customer,$response);
|
| 530 |
+
return $this;
|
| 531 |
+
}
|
| 532 |
+
|
| 533 |
+
/**
|
| 534 |
+
*
|
| 535 |
+
* @param Mage_Sales_Model_Order_Payment $payment
|
| 536 |
+
* @param float $amount
|
| 537 |
+
* @return @return Mage_Payment_Model_Abstract
|
| 538 |
+
*/
|
| 539 |
+
public function refund(Varien_Object $payment, $amount)
|
| 540 |
+
{
|
| 541 |
+
parent::refund($payment, $amount);
|
| 542 |
+
|
| 543 |
+
$transactionId = $payment->getLastTransId();
|
| 544 |
+
|
| 545 |
+
$gatewayParams = array('operation'=>'refund','amount'=>$amount);
|
| 546 |
+
/* @var $request Allopass_Hipay_Model_Api_Request */
|
| 547 |
+
$request = Mage::getModel('hipay/api_request',array($this));
|
| 548 |
+
$action = Allopass_Hipay_Model_Api_Request::GATEWAY_ACTION_MAINTENANCE . $transactionId;
|
| 549 |
+
|
| 550 |
+
|
| 551 |
+
$this->_debug($gatewayParams);
|
| 552 |
+
|
| 553 |
+
$gatewayResponse = $request->gatewayRequest($action,$gatewayParams);
|
| 554 |
+
|
| 555 |
+
$this->_debug($gatewayResponse->debug());
|
| 556 |
+
|
| 557 |
+
|
| 558 |
+
switch ($gatewayResponse->getStatus())
|
| 559 |
+
{
|
| 560 |
+
case "124":
|
| 561 |
+
case "125":
|
| 562 |
+
|
| 563 |
+
/* @var $creditmemo Mage_Sales_Model_Order_Creditmemo */
|
| 564 |
+
$creditmemo = $payment->getCreditmemo();
|
| 565 |
+
$creditmemo->setState(Mage_Sales_Model_Order_Creditmemo::STATE_OPEN);
|
| 566 |
+
|
| 567 |
+
break;
|
| 568 |
+
default:
|
| 569 |
+
Mage::throwException( $gatewayResponse->getStatus() . " ==> " .$gatewayResponse->getMessage());
|
| 570 |
+
break;
|
| 571 |
+
}
|
| 572 |
+
|
| 573 |
+
return $this;
|
| 574 |
+
}
|
| 575 |
+
|
| 576 |
+
/**
|
| 577 |
+
*
|
| 578 |
+
* @param Mage_Sales_Model_Order_Payment $payment
|
| 579 |
+
* @param float $amount
|
| 580 |
+
* @param string|null $token
|
| 581 |
+
* @return multitype:
|
| 582 |
+
*/
|
| 583 |
+
public function getGatewayParams($payment,$amount,$token=null)
|
| 584 |
+
{
|
| 585 |
+
|
| 586 |
+
$params = array();
|
| 587 |
+
|
| 588 |
+
$params['orderid'] = $payment->getOrder()->getIncrementId();
|
| 589 |
+
|
| 590 |
+
$paymentProduct = null;
|
| 591 |
+
|
| 592 |
+
$params['description'] = Mage::helper('hipay')->__("Order %s by %s",$payment->getOrder()->getIncrementId(),$payment->getOrder()->getCustomerEmail());//MANDATORY
|
| 593 |
+
$params['long_description'] = "";// optional
|
| 594 |
+
$params['currency'] = $payment->getOrder()->getOrderCurrencyCode();
|
| 595 |
+
$params['amount'] = $amount;
|
| 596 |
+
$params['shipping'] = $payment->getOrder()->getShippingAmount();
|
| 597 |
+
$params['tax'] = $payment->getOrder()->getTaxAmount();
|
| 598 |
+
$params['cid'] = $payment->getOrder()->getCustomerId();//CUSTOMER ID
|
| 599 |
+
$params['ipaddr'] = $payment->getOrder()->getRemoteIp();
|
| 600 |
+
|
| 601 |
+
$params['http_accept'] = "*/*";
|
| 602 |
+
$params['http_user_agent'] = Mage::helper('core/http')->getHttpUserAgent();
|
| 603 |
+
$params['language'] = Mage::app()->getLocale()->getLocaleCode();//strpos(Mage::app()->getLocale()->getLocaleCode(), "fr") !== false ? "fr_FR" : 'en';
|
| 604 |
+
|
| 605 |
+
/**
|
| 606 |
+
* Parameters specific to the payment product
|
| 607 |
+
*/
|
| 608 |
+
if(!is_null($token))
|
| 609 |
+
$params['cardtoken'] = $token;
|
| 610 |
+
|
| 611 |
+
$params['authentication_indicator'] = 0;
|
| 612 |
+
|
| 613 |
+
switch ((int)$this->getConfigData('use_3d_secure')) {
|
| 614 |
+
case 1:
|
| 615 |
+
$params['authentication_indicator'] = 1;
|
| 616 |
+
break;
|
| 617 |
+
case 2:
|
| 618 |
+
/* @var $rule Allopass_Hipay_Model_Rule */
|
| 619 |
+
$rule = Mage::getModel('hipay/rule')->load($this->getConfigData('config_3ds_rules'));
|
| 620 |
+
if($rule->getId())
|
| 621 |
+
$params['authentication_indicator'] = (int)$rule->validate($payment->getOrder());
|
| 622 |
+
break;
|
| 623 |
+
}
|
| 624 |
+
|
| 625 |
+
|
| 626 |
+
/**
|
| 627 |
+
* Electronic Commerce Indicator
|
| 628 |
+
*/
|
| 629 |
+
if($payment->getAdditionalInformation('use_oneclick'))
|
| 630 |
+
$params['eci'] = 9; //Recurring E-commerce
|
| 631 |
+
|
| 632 |
+
/**
|
| 633 |
+
* Redirect urls
|
| 634 |
+
*/
|
| 635 |
+
$params['accept_url'] = Mage::getUrl($this->getConfigData('accept_url'));
|
| 636 |
+
$params['decline_url'] = Mage::getUrl($this->getConfigData('decline_url'));
|
| 637 |
+
$params['pending_url'] = Mage::getUrl($this->getConfigData('pending_url'));
|
| 638 |
+
$params['exception_url'] = Mage::getUrl($this->getConfigData('exception_url'));
|
| 639 |
+
$params['cancel_url'] = Mage::getUrl($this->getConfigData('cancel_url'));
|
| 640 |
+
|
| 641 |
+
$params = $this->getCustomerParams($payment,$params);
|
| 642 |
+
$params = $this->getShippingParams($payment,$params);
|
| 643 |
+
|
| 644 |
+
|
| 645 |
+
return $params;
|
| 646 |
+
}
|
| 647 |
+
|
| 648 |
+
/**
|
| 649 |
+
*
|
| 650 |
+
* @param Mage_Sales_Model_Order_Payment $payment
|
| 651 |
+
* @param array $params
|
| 652 |
+
* @return array $params
|
| 653 |
+
*/
|
| 654 |
+
protected function getCustomerParams($payment,$params=array())
|
| 655 |
+
{
|
| 656 |
+
$order = $payment->getOrder();
|
| 657 |
+
$params['email'] = $order->getCustomerEmail();
|
| 658 |
+
$params['phone'] = $order->getBillingAddress()->getTelephone();
|
| 659 |
+
if(($dob = $order->getCustomerDob()) != "")
|
| 660 |
+
{
|
| 661 |
+
$dob = new Zend_Date($dob);
|
| 662 |
+
$params['birthdate'] = $dob->toString('YYYYMMdd');
|
| 663 |
+
}
|
| 664 |
+
|
| 665 |
+
$gender = $order->getCustomerGender();
|
| 666 |
+
|
| 667 |
+
$customer = Mage::getModel('customer/customer');
|
| 668 |
+
$customer->setData('gender',$gender);
|
| 669 |
+
$attribute = $customer->getResource()->getAttribute('gender');
|
| 670 |
+
if($attribute)
|
| 671 |
+
{
|
| 672 |
+
$gender = $attribute->getFrontend()->getValue($customer);
|
| 673 |
+
$gender = strtoupper(substr($gender, 0,1));
|
| 674 |
+
}
|
| 675 |
+
|
| 676 |
+
if($gender != "M" && $gender != "F")
|
| 677 |
+
$gender = "U";
|
| 678 |
+
|
| 679 |
+
|
| 680 |
+
$params['gender'] =$gender ;
|
| 681 |
+
$params['firstname'] = $order->getCustomerFirstname();
|
| 682 |
+
$params['lastname'] = $order->getCustomerLastname();
|
| 683 |
+
$params['recipientinfo'] = $order->getBillingAddress()->getCompany();
|
| 684 |
+
$params['streetaddress'] = $order->getBillingAddress()->getStreet1();
|
| 685 |
+
$params['streetaddress2'] = $order->getBillingAddress()->getStreet2();
|
| 686 |
+
$params['city'] = $order->getBillingAddress()->getCity();
|
| 687 |
+
//$params['state'] = $order->getBillingAddress(); //TODO checck if country is US or Canada
|
| 688 |
+
$params['zipcode'] = $order->getBillingAddress()->getPostcode();
|
| 689 |
+
$params['country'] = $order->getBillingAddress()->getCountry();
|
| 690 |
+
|
| 691 |
+
return $params;
|
| 692 |
+
}
|
| 693 |
+
|
| 694 |
+
/**
|
| 695 |
+
*
|
| 696 |
+
* @param Mage_Sales_Model_Order_Payment $payment
|
| 697 |
+
* @param array $params
|
| 698 |
+
* @return array $params
|
| 699 |
+
*/
|
| 700 |
+
protected function getShippingParams($payment,$params =array())
|
| 701 |
+
{
|
| 702 |
+
if($payment->getOrder()->getIsVirtual())
|
| 703 |
+
return $params;
|
| 704 |
+
|
| 705 |
+
$shippingAddress = $payment->getOrder()->getShippingAddress();
|
| 706 |
+
$params['shipto_firstname'] = $shippingAddress->getFirstname();
|
| 707 |
+
$params['shipto_lastname'] = $shippingAddress->getLastname();
|
| 708 |
+
$params['shipto_recipientinfo'] = $shippingAddress->getCompany();
|
| 709 |
+
$params['shipto_streetaddress'] = $shippingAddress->getStreet1();
|
| 710 |
+
$params['shipto_streetaddress2'] = $shippingAddress->getStreet2();
|
| 711 |
+
$params['shipto_city'] = $shippingAddress->getCity();
|
| 712 |
+
//$params['shipto_state'] = $shippingAddress; //TODO check if country is US or Canada
|
| 713 |
+
$params['shipto_zipcode'] = $shippingAddress->getPostcode();
|
| 714 |
+
$params['shipto_country'] = $shippingAddress->getCountry();
|
| 715 |
+
|
| 716 |
+
return $params;
|
| 717 |
+
}
|
| 718 |
+
|
| 719 |
+
/**
|
| 720 |
+
* Return true if there are authorized transactions
|
| 721 |
+
*
|
| 722 |
+
* @param Mage_Sales_Model_Order_Payment $payment
|
| 723 |
+
* @return bool
|
| 724 |
+
*/
|
| 725 |
+
static function isPreauthorizeCapture($payment)
|
| 726 |
+
{
|
| 727 |
+
$lastTransaction = $payment->getTransaction($payment->getLastTransId());
|
| 728 |
+
if (!$lastTransaction
|
| 729 |
+
|| $lastTransaction->getTxnType() != Mage_Sales_Model_Order_Payment_Transaction::TYPE_AUTH
|
| 730 |
+
) {
|
| 731 |
+
return false;
|
| 732 |
+
}
|
| 733 |
+
|
| 734 |
+
return true;
|
| 735 |
+
}
|
| 736 |
+
|
| 737 |
+
/**
|
| 738 |
+
*
|
| 739 |
+
* @param Mage_Sales_Model_Order_Payment $payment
|
| 740 |
+
* @param float $amount
|
| 741 |
+
*/
|
| 742 |
+
protected function _preauthorizeCapture($payment,$amount)
|
| 743 |
+
{
|
| 744 |
+
$transactionId = $payment->getLastTransId();
|
| 745 |
+
|
| 746 |
+
$gatewayParams = array('operation'=>'capture','amount'=>$amount);
|
| 747 |
+
$this->_debug($gatewayParams);
|
| 748 |
+
/* @var $request Allopass_Hipay_Model_Api_Request */
|
| 749 |
+
$request = Mage::getModel('hipay/api_request',array($this));
|
| 750 |
+
$uri = Allopass_Hipay_Model_Api_Request::GATEWAY_ACTION_MAINTENANCE . $transactionId;
|
| 751 |
+
|
| 752 |
+
$gatewayResponse = $request->gatewayRequest($uri,$gatewayParams);
|
| 753 |
+
|
| 754 |
+
$this->_debug($gatewayResponse->debug());
|
| 755 |
+
|
| 756 |
+
switch ($gatewayResponse->getStatus())
|
| 757 |
+
{
|
| 758 |
+
case "117": //Capture requested
|
| 759 |
+
case "118": //Capture
|
| 760 |
+
case "119": //Partially Capture
|
| 761 |
+
$this->addTransaction(
|
| 762 |
+
$payment,
|
| 763 |
+
$gatewayResponse->getTransactionReference(),
|
| 764 |
+
Mage_Sales_Model_Order_Payment_Transaction::TYPE_CAPTURE,
|
| 765 |
+
array('is_transaction_closed' => 0),
|
| 766 |
+
array(),
|
| 767 |
+
Mage::helper('hipay')->getTransactionMessage(
|
| 768 |
+
$payment, self::OPERATION_MAINTENANCE_CAPTURE, $gatewayResponse->getTransactionReference(), $amount
|
| 769 |
+
)
|
| 770 |
+
);
|
| 771 |
+
|
| 772 |
+
$payment->setIsTransactionPending(true);
|
| 773 |
+
break;
|
| 774 |
+
default:
|
| 775 |
+
Mage::throwException( $gatewayResponse->getStatus() . " ==> " .$gatewayResponse->getMessage());
|
| 776 |
+
break;
|
| 777 |
+
}
|
| 778 |
+
|
| 779 |
+
return $this;
|
| 780 |
+
}
|
| 781 |
+
|
| 782 |
+
|
| 783 |
+
/**
|
| 784 |
+
* Add payment transaction
|
| 785 |
+
*
|
| 786 |
+
* @param Mage_Sales_Model_Order_Payment $payment
|
| 787 |
+
* @param string $transactionId
|
| 788 |
+
* @param string $transactionType
|
| 789 |
+
* @param array $transactionDetails
|
| 790 |
+
* @param array $transactionAdditionalInfo
|
| 791 |
+
* @return null|Mage_Sales_Model_Order_Payment_Transaction
|
| 792 |
+
*/
|
| 793 |
+
public function addTransaction(Mage_Sales_Model_Order_Payment $payment, $transactionId, $transactionType,
|
| 794 |
+
array $transactionDetails = array(), array $transactionAdditionalInfo = array(), $message = false
|
| 795 |
+
) {
|
| 796 |
+
$payment->setTransactionId($transactionId);
|
| 797 |
+
if(method_exists($payment, "resetTransactionAdditionalInfo"))
|
| 798 |
+
$payment->resetTransactionAdditionalInfo();
|
| 799 |
+
foreach ($transactionDetails as $key => $value) {
|
| 800 |
+
$payment->setData($key, $value);
|
| 801 |
+
}
|
| 802 |
+
foreach ($transactionAdditionalInfo as $key => $value) {
|
| 803 |
+
$payment->setTransactionAdditionalInfo($key, $value);
|
| 804 |
+
}
|
| 805 |
+
|
| 806 |
+
if(!class_exists("Mage_Sales_Model_Order_Payment_Transaction"))
|
| 807 |
+
return null;
|
| 808 |
+
|
| 809 |
+
if(method_exists($payment, "addTransaction"))
|
| 810 |
+
$transaction = $payment->addTransaction($transactionType, null, false , $message);
|
| 811 |
+
else
|
| 812 |
+
$transaction = $this->_addTransaction($payment, $transactionType,null,false);
|
| 813 |
+
|
| 814 |
+
/**
|
| 815 |
+
* It for self using
|
| 816 |
+
*/
|
| 817 |
+
$transaction->setMessage($message);
|
| 818 |
+
|
| 819 |
+
return $transaction;
|
| 820 |
+
}
|
| 821 |
+
|
| 822 |
+
/**
|
| 823 |
+
* Create transaction, prepare its insertion into hierarchy and add its information to payment and comments
|
| 824 |
+
*
|
| 825 |
+
* To add transactions and related information, the following information should be set to payment before processing:
|
| 826 |
+
* - transaction_id
|
| 827 |
+
* - is_transaction_closed (optional) - whether transaction should be closed or open (closed by default)
|
| 828 |
+
* - parent_transaction_id (optional)
|
| 829 |
+
* - should_close_parent_transaction (optional) - whether to close parent transaction (closed by default)
|
| 830 |
+
*
|
| 831 |
+
* If the sales document is specified, it will be linked to the transaction as related for future usage.
|
| 832 |
+
* Currently transaction ID is set into the sales object
|
| 833 |
+
* This method writes the added transaction ID into last_trans_id field of the payment object
|
| 834 |
+
*
|
| 835 |
+
* To make sure transaction object won't cause trouble before saving, use $failsafe = true
|
| 836 |
+
*
|
| 837 |
+
* @param Mage_Sales_Model_Order_Payment
|
| 838 |
+
* @param string $type
|
| 839 |
+
* @param Mage_Sales_Model_Abstract $salesDocument
|
| 840 |
+
* @param bool $failsafe
|
| 841 |
+
* @return null|Mage_Sales_Model_Order_Payment_Transaction
|
| 842 |
+
*/
|
| 843 |
+
protected function _addTransaction($payment,$type, $salesDocument = null, $failsafe = false)
|
| 844 |
+
{
|
| 845 |
+
// look for set transaction ids
|
| 846 |
+
$transactionId = $payment->getTransactionId();
|
| 847 |
+
if (null !== $transactionId) {
|
| 848 |
+
// set transaction parameters
|
| 849 |
+
/*$transaction = Mage::getModel('sales/order_payment_transaction')
|
| 850 |
+
->setOrderPaymentObject($payment)
|
| 851 |
+
->setTxnType($type)
|
| 852 |
+
->setTxnId($transactionId)
|
| 853 |
+
->isFailsafe($failsafe)
|
| 854 |
+
;*/
|
| 855 |
+
|
| 856 |
+
// set transaction parameters
|
| 857 |
+
//$transaction = false;
|
| 858 |
+
$transaction = $this->_lookupTransaction($payment,$transactionId);
|
| 859 |
+
|
| 860 |
+
if (!$transaction) {
|
| 861 |
+
$transaction = Mage::getModel('sales/order_payment_transaction')->setTxnId($transactionId);
|
| 862 |
+
}
|
| 863 |
+
|
| 864 |
+
$transaction
|
| 865 |
+
->setOrderPaymentObject($payment)
|
| 866 |
+
->setTxnType($type)
|
| 867 |
+
->isFailsafe($failsafe);
|
| 868 |
+
|
| 869 |
+
if ($payment->hasIsTransactionClosed()) {
|
| 870 |
+
$transaction->setIsClosed((int)$payment->getIsTransactionClosed());
|
| 871 |
+
}
|
| 872 |
+
|
| 873 |
+
//set transaction addition information
|
| 874 |
+
/*if ($payment->_transactionAdditionalInfo) {
|
| 875 |
+
foreach ($payment->_transactionAdditionalInfo as $key => $value) {
|
| 876 |
+
$transaction->setAdditionalInformation($key, $value);
|
| 877 |
+
}
|
| 878 |
+
}*/
|
| 879 |
+
|
| 880 |
+
// link with sales entities
|
| 881 |
+
$payment->setLastTransId($transactionId);
|
| 882 |
+
$payment->setCreatedTransaction($transaction);
|
| 883 |
+
$payment->getOrder()->addRelatedObject($transaction);
|
| 884 |
+
if ($salesDocument && $salesDocument instanceof Mage_Sales_Model_Abstract) {
|
| 885 |
+
$salesDocument->setTransactionId($transactionId);
|
| 886 |
+
// TODO: linking transaction with the sales document
|
| 887 |
+
}
|
| 888 |
+
|
| 889 |
+
// link with parent transaction Not used because transaction Id is the same
|
| 890 |
+
$parentTransactionId = $payment->getParentTransactionId();
|
| 891 |
+
|
| 892 |
+
if ($parentTransactionId) {
|
| 893 |
+
$transaction->setParentTxnId($parentTransactionId);
|
| 894 |
+
if ($payment->getShouldCloseParentTransaction()) {
|
| 895 |
+
$parentTransaction = $this->_lookupTransaction($payment,$parentTransactionId);//
|
| 896 |
+
if ($parentTransaction) {
|
| 897 |
+
$parentTransaction->isFailsafe($failsafe)->close(false);
|
| 898 |
+
$payment->getOrder()->addRelatedObject($parentTransaction);
|
| 899 |
+
}
|
| 900 |
+
}
|
| 901 |
+
}
|
| 902 |
+
return $transaction;
|
| 903 |
+
}
|
| 904 |
+
}
|
| 905 |
+
|
| 906 |
+
/**
|
| 907 |
+
* Find one transaction by ID or type
|
| 908 |
+
* @param Mage_Sales_Model_Order_Payment
|
| 909 |
+
* @param string $txnId
|
| 910 |
+
* @param string $txnType
|
| 911 |
+
* @return Mage_Sales_Model_Order_Payment_Transaction|false
|
| 912 |
+
*/
|
| 913 |
+
protected function _lookupTransaction($payment,$txnId, $txnType = false)
|
| 914 |
+
{
|
| 915 |
+
$_transactionsLookup = array();
|
| 916 |
+
if (!$txnId) {
|
| 917 |
+
if ($txnType && $payment->getId()) {
|
| 918 |
+
$collection = Mage::getModel('sales/order_payment_transaction')->getCollection()
|
| 919 |
+
->addPaymentIdFilter($payment->getId())
|
| 920 |
+
->addTxnTypeFilter($txnType);
|
| 921 |
+
foreach ($collection as $txn) {
|
| 922 |
+
$txn->setOrderPaymentObject($payment);
|
| 923 |
+
$_transactionsLookup[$txn->getTxnId()] = $txn;
|
| 924 |
+
return $txn;
|
| 925 |
+
}
|
| 926 |
+
}
|
| 927 |
+
return false;
|
| 928 |
+
}
|
| 929 |
+
if (isset($_transactionsLookup[$txnId])) {
|
| 930 |
+
return $_transactionsLookup[$txnId];
|
| 931 |
+
}
|
| 932 |
+
$txn = Mage::getModel('sales/order_payment_transaction')
|
| 933 |
+
->setOrderPaymentObject($payment)
|
| 934 |
+
->loadByTxnId($txnId);
|
| 935 |
+
if ($txn->getId()) {
|
| 936 |
+
$_transactionsLookup[$txnId] = $txn;
|
| 937 |
+
} else {
|
| 938 |
+
$_transactionsLookup[$txnId] = false;
|
| 939 |
+
}
|
| 940 |
+
return $_transactionsLookup[$txnId];
|
| 941 |
+
}
|
| 942 |
+
|
| 943 |
+
/**
|
| 944 |
+
* Check method for processing with base currency
|
| 945 |
+
*
|
| 946 |
+
* @param string $currencyCode
|
| 947 |
+
* @return boolean
|
| 948 |
+
*/
|
| 949 |
+
public function canUseForCurrency($currencyCode)
|
| 950 |
+
{
|
| 951 |
+
/* if (!in_array($currencyCode, $this->_allowCurrencyCode)) {
|
| 952 |
+
return false;
|
| 953 |
+
}*/
|
| 954 |
+
return true;
|
| 955 |
+
}
|
| 956 |
+
|
| 957 |
+
|
| 958 |
+
/**
|
| 959 |
+
*
|
| 960 |
+
* @return Mage_Checkout_Model_Session $checkout
|
| 961 |
+
*/
|
| 962 |
+
protected function _getCheckout()
|
| 963 |
+
{
|
| 964 |
+
return Mage::getSingleton('checkout/session');
|
| 965 |
+
}
|
| 966 |
+
|
| 967 |
+
/**
|
| 968 |
+
* Log debug data to file
|
| 969 |
+
*
|
| 970 |
+
* @param mixed $debugData
|
| 971 |
+
*/
|
| 972 |
+
protected function _debug($debugData)
|
| 973 |
+
{
|
| 974 |
+
if ($this->getDebugFlag()) {
|
| 975 |
+
Mage::getModel('hipay/log_adapter', 'payment_' . $this->getCode() . '.log')
|
| 976 |
+
->setFilterDataKeys($this->_debugReplacePrivateDataKeys)
|
| 977 |
+
->log($debugData);
|
| 978 |
+
}
|
| 979 |
+
}
|
| 980 |
+
|
| 981 |
+
/**
|
| 982 |
+
* Define if debugging is enabled
|
| 983 |
+
*
|
| 984 |
+
* @return bool
|
| 985 |
+
*/
|
| 986 |
+
public function getDebugFlag()
|
| 987 |
+
{
|
| 988 |
+
return $this->getConfigData('debug');
|
| 989 |
+
}
|
| 990 |
+
|
| 991 |
+
/**
|
| 992 |
+
* Used to call debug method from not Payment Method context
|
| 993 |
+
*
|
| 994 |
+
* @param mixed $debugData
|
| 995 |
+
*/
|
| 996 |
+
public function debugData($debugData)
|
| 997 |
+
{
|
| 998 |
+
$this->_debug($debugData);
|
| 999 |
+
}
|
| 1000 |
+
|
| 1001 |
+
|
| 1002 |
+
|
| 1003 |
+
}
|
app/code/community/Allopass/Hipay/Model/Method/Cbc.php
ADDED
|
@@ -0,0 +1,5 @@
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
| 1 |
+
<?php
|
| 2 |
+
class Allopass_Hipay_Model_Method_Cbc extends Allopass_Hipay_Model_Method_Hosted
|
| 3 |
+
{
|
| 4 |
+
protected $_code = 'hipay_cbc';
|
| 5 |
+
}
|
app/code/community/Allopass/Hipay/Model/Method/Cc.php
ADDED
|
@@ -0,0 +1,517 @@
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
| 1 |
+
<?php
|
| 2 |
+
class Allopass_Hipay_Model_Method_Cc extends Allopass_Hipay_Model_Method_Abstract
|
| 3 |
+
{
|
| 4 |
+
|
| 5 |
+
const STATUS_PENDING_CAPTURE = 'pending_capture';
|
| 6 |
+
|
| 7 |
+
protected $_code = 'hipay_cc';
|
| 8 |
+
|
| 9 |
+
protected $_formBlockType = 'hipay/form_cc';
|
| 10 |
+
protected $_infoBlockType = 'hipay/info_cc';
|
| 11 |
+
|
| 12 |
+
|
| 13 |
+
/**
|
| 14 |
+
* Assign data to info model instance
|
| 15 |
+
*
|
| 16 |
+
* @param mixed $data
|
| 17 |
+
* @return Mage_Payment_Model_Info
|
| 18 |
+
*/
|
| 19 |
+
public function assignData($data)
|
| 20 |
+
{
|
| 21 |
+
if (!($data instanceof Varien_Object)) {
|
| 22 |
+
$data = new Varien_Object($data);
|
| 23 |
+
}
|
| 24 |
+
$info = $this->getInfoInstance();
|
| 25 |
+
$info->setCcType($data->getCcType())
|
| 26 |
+
->setCcOwner($data->getCcOwner())
|
| 27 |
+
->setCcLast4(substr($data->getCcNumber(), -4))
|
| 28 |
+
->setCcNumber($data->getCcNumber())
|
| 29 |
+
->setCcCid($data->getCcCid())
|
| 30 |
+
->setCcExpMonth($data->getCcExpMonth())
|
| 31 |
+
->setCcExpYear($data->getCcExpYear())
|
| 32 |
+
->setCcSsIssue($data->getCcSsIssue())
|
| 33 |
+
->setCcSsStartMonth($data->getCcSsStartMonth())
|
| 34 |
+
->setCcSsStartYear($data->getCcSsStartYear())
|
| 35 |
+
->setAdditionalInformation('create_oneclick',$data->getOneclick() == "create_oneclick" ? 1 : 0)
|
| 36 |
+
->setAdditionalInformation('use_oneclick',$data->getOneclick() == "use_oneclick" ? 1 : 0)
|
| 37 |
+
;
|
| 38 |
+
|
| 39 |
+
return $this;
|
| 40 |
+
}
|
| 41 |
+
|
| 42 |
+
/**
|
| 43 |
+
* Prepare info instance for save
|
| 44 |
+
*
|
| 45 |
+
* @return Mage_Payment_Model_Abstract
|
| 46 |
+
*/
|
| 47 |
+
public function prepareSave()
|
| 48 |
+
{
|
| 49 |
+
$info = $this->getInfoInstance();
|
| 50 |
+
if ($this->_canSaveCc) {
|
| 51 |
+
$info->setCcNumberEnc($info->encrypt($info->getCcNumber()));
|
| 52 |
+
}
|
| 53 |
+
//$info->setCcCidEnc($info->encrypt($info->getCcCid()));
|
| 54 |
+
$info->setCcNumber(null)
|
| 55 |
+
->setCcCid(null);
|
| 56 |
+
return $this;
|
| 57 |
+
}
|
| 58 |
+
|
| 59 |
+
|
| 60 |
+
/**
|
| 61 |
+
* Retrieve payment iformation model object
|
| 62 |
+
*
|
| 63 |
+
* @return Mage_Payment_Model_Info
|
| 64 |
+
*/
|
| 65 |
+
public function getInfoInstance()
|
| 66 |
+
{
|
| 67 |
+
$instance = $this->getData('info_instance');
|
| 68 |
+
if (!($instance instanceof Mage_Payment_Model_Info)) {
|
| 69 |
+
Mage::throwException(Mage::helper('payment')->__('Cannot retrieve the payment information object instance.'));
|
| 70 |
+
}
|
| 71 |
+
return $instance;
|
| 72 |
+
}
|
| 73 |
+
|
| 74 |
+
|
| 75 |
+
protected function getVaultParams($payment)
|
| 76 |
+
{
|
| 77 |
+
$params = array();
|
| 78 |
+
$params['card_number'] = $payment->getCcNumber();
|
| 79 |
+
$params['card_expiry_month'] = ($payment->getCcExpMonth() < 10) ? '0'.$payment->getCcExpMonth() : $payment->getCcExpMonth();
|
| 80 |
+
$params['card_expiry_year'] = $payment->getCcExpYear();
|
| 81 |
+
$params['cvc'] = $payment->getCcCid();
|
| 82 |
+
$params['multi_use'] = 1;
|
| 83 |
+
|
| 84 |
+
$this->_debug($params);
|
| 85 |
+
|
| 86 |
+
return $params;
|
| 87 |
+
}
|
| 88 |
+
|
| 89 |
+
|
| 90 |
+
public function getOrderPlaceRedirectUrl()
|
| 91 |
+
{
|
| 92 |
+
|
| 93 |
+
return Mage::getUrl('hipay/cc/sendRequest',array('_secure' => true));
|
| 94 |
+
|
| 95 |
+
}
|
| 96 |
+
|
| 97 |
+
|
| 98 |
+
public function initialize($paymentAction, $stateObject)
|
| 99 |
+
{
|
| 100 |
+
/* @var $payment Mage_Sales_Model_Order_Payment */
|
| 101 |
+
$payment = $this->getInfoInstance();
|
| 102 |
+
$order = $payment->getOrder();
|
| 103 |
+
$customer = Mage::getModel('customer/customer')->load($order->getCustomerId());
|
| 104 |
+
|
| 105 |
+
|
| 106 |
+
if($payment->getAdditionalInformation('use_oneclick') && $customer->getId())
|
| 107 |
+
{
|
| 108 |
+
$token = $customer->getHipayAliasOneclick();
|
| 109 |
+
}
|
| 110 |
+
else
|
| 111 |
+
{
|
| 112 |
+
$request = Mage::getModel('hipay/api_request',array($this));
|
| 113 |
+
/* @var $request Allopass_Hipay_Model_Api_Request */
|
| 114 |
+
$vaultResponse = $request->vaultRequest(Allopass_Hipay_Model_Api_Request::VAULT_ACTION_CREATE, $this->getVaultParams($payment));
|
| 115 |
+
$this->_debug($vaultResponse->debug());
|
| 116 |
+
$token = $vaultResponse->getToken();
|
| 117 |
+
}
|
| 118 |
+
$payment->setAdditionalInformation('token',$token);
|
| 119 |
+
|
| 120 |
+
return $this;
|
| 121 |
+
|
| 122 |
+
}
|
| 123 |
+
|
| 124 |
+
|
| 125 |
+
/**
|
| 126 |
+
* (non-PHPdoc)
|
| 127 |
+
* @see Mage_Payment_Model_Method_Abstract::capture()
|
| 128 |
+
*/
|
| 129 |
+
public function capture(Varien_Object $payment, $amount)
|
| 130 |
+
{
|
| 131 |
+
parent::capture($payment, $amount);
|
| 132 |
+
|
| 133 |
+
if (self::isPreauthorizeCapture($payment))
|
| 134 |
+
$this->_preauthorizeCapture($payment, $amount);
|
| 135 |
+
|
| 136 |
+
$payment->setSkipTransactionCreation(true);
|
| 137 |
+
return $this;
|
| 138 |
+
}
|
| 139 |
+
|
| 140 |
+
|
| 141 |
+
|
| 142 |
+
|
| 143 |
+
public function place($payment, $amount)
|
| 144 |
+
{
|
| 145 |
+
|
| 146 |
+
$order = $payment->getOrder();
|
| 147 |
+
$customer = Mage::getModel('customer/customer')->load($order->getCustomerId());
|
| 148 |
+
|
| 149 |
+
$request = Mage::getModel('hipay/api_request',array($this));
|
| 150 |
+
|
| 151 |
+
|
| 152 |
+
$payment->setAmount($amount);
|
| 153 |
+
|
| 154 |
+
$token = $payment->getAdditionalInformation('token');
|
| 155 |
+
$gatewayParams = $this->getGatewayParams($payment, $amount,$token);
|
| 156 |
+
|
| 157 |
+
$gatewayParams['operation'] =$this->getOperation();
|
| 158 |
+
|
| 159 |
+
$paymentProduct = null;
|
| 160 |
+
if($payment->getAdditionalInformation('use_oneclick'))
|
| 161 |
+
$paymentProduct = Mage::getSingleton('customer/session')->getCustomer()->getHipayCcType();
|
| 162 |
+
else
|
| 163 |
+
$paymentProduct = $this->getCcTypeHipay($payment->getCcType());
|
| 164 |
+
|
| 165 |
+
$gatewayParams['payment_product'] = $paymentProduct ;
|
| 166 |
+
$this->_debug($gatewayParams);
|
| 167 |
+
|
| 168 |
+
|
| 169 |
+
$gatewayResponse = $request->gatewayRequest(Allopass_Hipay_Model_Api_Request::GATEWAY_ACTION_ORDER,$gatewayParams);
|
| 170 |
+
|
| 171 |
+
$this->_debug($gatewayResponse->debug());
|
| 172 |
+
|
| 173 |
+
$redirectUrl = $this->processResponseToRedirect($gatewayResponse, $payment, $amount);
|
| 174 |
+
|
| 175 |
+
return $redirectUrl;
|
| 176 |
+
|
| 177 |
+
}
|
| 178 |
+
|
| 179 |
+
protected function getCcTypeHipay($ccTypeMagento)
|
| 180 |
+
{
|
| 181 |
+
$ccTypes = Mage::getSingleton('hipay/config')->getCcTypesHipay();
|
| 182 |
+
|
| 183 |
+
if(isset($ccTypes[$ccTypeMagento]))
|
| 184 |
+
return $ccTypes[$ccTypeMagento];
|
| 185 |
+
|
| 186 |
+
Mage::throwException(Mage::helper('hipay')->__("Code Credit Card Type Hipay not found!"));
|
| 187 |
+
}
|
| 188 |
+
|
| 189 |
+
|
| 190 |
+
|
| 191 |
+
/**
|
| 192 |
+
* Validate payment method information object
|
| 193 |
+
*
|
| 194 |
+
* @param Mage_Payment_Model_Info $info
|
| 195 |
+
* @return Mage_Payment_Model_Abstract
|
| 196 |
+
*/
|
| 197 |
+
public function validate()
|
| 198 |
+
{
|
| 199 |
+
/*
|
| 200 |
+
* calling parent validate function
|
| 201 |
+
*/
|
| 202 |
+
parent::validate();
|
| 203 |
+
|
| 204 |
+
$info = $this->getInfoInstance();
|
| 205 |
+
|
| 206 |
+
if($info->getAdditionalInformation('use_oneclick'))
|
| 207 |
+
{
|
| 208 |
+
return $this;
|
| 209 |
+
}
|
| 210 |
+
|
| 211 |
+
$errorMsg = false;
|
| 212 |
+
$availableTypes = explode(',',$this->getConfigData('cctypes'));
|
| 213 |
+
|
| 214 |
+
$ccNumber = $info->getCcNumber();
|
| 215 |
+
|
| 216 |
+
// remove credit card number delimiters such as "-" and space
|
| 217 |
+
$ccNumber = preg_replace('/[\-\s]+/', '', $ccNumber);
|
| 218 |
+
$info->setCcNumber($ccNumber);
|
| 219 |
+
|
| 220 |
+
$ccType = '';
|
| 221 |
+
|
| 222 |
+
if (in_array($info->getCcType(), $availableTypes)){
|
| 223 |
+
if ($this->validateCcNum($ccNumber)
|
| 224 |
+
// Other credit card type number validation
|
| 225 |
+
|| ($this->OtherCcType($info->getCcType()) && $this->validateCcNumOther($ccNumber))) {
|
| 226 |
+
|
| 227 |
+
$ccType = 'OT';
|
| 228 |
+
$ccTypeRegExpList = array(
|
| 229 |
+
//Solo, Switch or Maestro. International safe
|
| 230 |
+
/*
|
| 231 |
+
// Maestro / Solo
|
| 232 |
+
'SS' => '/^((6759[0-9]{12})|(6334|6767[0-9]{12})|(6334|6767[0-9]{14,15})'
|
| 233 |
+
. '|(5018|5020|5038|6304|6759|6761|6763[0-9]{12,19})|(49[013][1356][0-9]{12})'
|
| 234 |
+
. '|(633[34][0-9]{12})|(633110[0-9]{10})|(564182[0-9]{10}))([0-9]{2,3})?$/',
|
| 235 |
+
*/
|
| 236 |
+
// Solo only
|
| 237 |
+
'SO' => '/(^(6334)[5-9](\d{11}$|\d{13,14}$))|(^(6767)(\d{12}$|\d{14,15}$))/',
|
| 238 |
+
//Bancontact / mister cash
|
| 239 |
+
'BCMC' => '/^[0-9]{17}$/',
|
| 240 |
+
'SM' => '/(^(5[0678])\d{11,18}$)|(^(6[^05])\d{11,18}$)|(^(601)[^1]\d{9,16}$)|(^(6011)\d{9,11}$)'
|
| 241 |
+
. '|(^(6011)\d{13,16}$)|(^(65)\d{11,13}$)|(^(65)\d{15,18}$)'
|
| 242 |
+
. '|(^(49030)[2-9](\d{10}$|\d{12,13}$))|(^(49033)[5-9](\d{10}$|\d{12,13}$))'
|
| 243 |
+
. '|(^(49110)[1-2](\d{10}$|\d{12,13}$))|(^(49117)[4-9](\d{10}$|\d{12,13}$))'
|
| 244 |
+
. '|(^(49118)[0-2](\d{10}$|\d{12,13}$))|(^(4936)(\d{12}$|\d{14,15}$))/',
|
| 245 |
+
// Visa
|
| 246 |
+
'VI' => '/^4[0-9]{12}([0-9]{3})?$/',
|
| 247 |
+
// Master Card
|
| 248 |
+
'MC' => '/^5[1-5][0-9]{14}$/',
|
| 249 |
+
// American Express
|
| 250 |
+
'AE' => '/^3[47][0-9]{13}$/',
|
| 251 |
+
// Discovery
|
| 252 |
+
'DI' => '/^6011[0-9]{12}$/',
|
| 253 |
+
// JCB
|
| 254 |
+
'JCB' => '/^(3[0-9]{15}|(2131|1800)[0-9]{11})$/',
|
| 255 |
+
);
|
| 256 |
+
|
| 257 |
+
foreach ($ccTypeRegExpList as $ccTypeMatch=>$ccTypeRegExp) {
|
| 258 |
+
if (preg_match($ccTypeRegExp, $ccNumber)) {
|
| 259 |
+
$ccType = $ccTypeMatch;
|
| 260 |
+
break;
|
| 261 |
+
}
|
| 262 |
+
}
|
| 263 |
+
if (!$this->OtherCcType($info->getCcType()) && $ccType!=$info->getCcType()) {
|
| 264 |
+
$errorMsg = Mage::helper('payment')->__('Credit card number mismatch with credit card type.');
|
| 265 |
+
}
|
| 266 |
+
}
|
| 267 |
+
else {
|
| 268 |
+
$errorMsg = Mage::helper('payment')->__('Invalid Credit Card Number');
|
| 269 |
+
}
|
| 270 |
+
|
| 271 |
+
}
|
| 272 |
+
else {
|
| 273 |
+
$errorMsg = Mage::helper('payment')->__('Credit card type is not allowed for this payment method.');
|
| 274 |
+
}
|
| 275 |
+
|
| 276 |
+
//validate credit card verification number
|
| 277 |
+
if ($errorMsg === false && $this->hasVerification() && $info->getCcType() != 'BCMC') {
|
| 278 |
+
$verifcationRegEx = $this->getVerificationRegEx();
|
| 279 |
+
$regExp = isset($verifcationRegEx[$info->getCcType()]) ? $verifcationRegEx[$info->getCcType()] : '';
|
| 280 |
+
if (!$info->getCcCid() || !$regExp || !preg_match($regExp ,$info->getCcCid())){
|
| 281 |
+
$errorMsg = Mage::helper('payment')->__('Please enter a valid credit card verification number.');
|
| 282 |
+
}
|
| 283 |
+
}
|
| 284 |
+
|
| 285 |
+
if ($ccType != 'SS' && !$this->_validateExpDate($info->getCcExpYear(), $info->getCcExpMonth())) {
|
| 286 |
+
$errorMsg = Mage::helper('payment')->__('Incorrect credit card expiration date.');
|
| 287 |
+
}
|
| 288 |
+
|
| 289 |
+
if($errorMsg){
|
| 290 |
+
Mage::throwException($errorMsg);
|
| 291 |
+
}
|
| 292 |
+
|
| 293 |
+
//This must be after all validation conditions
|
| 294 |
+
if ($this->getIsCentinelValidationEnabled()) {
|
| 295 |
+
$this->getCentinelValidator()->validate($this->getCentinelValidationData());
|
| 296 |
+
}
|
| 297 |
+
|
| 298 |
+
return $this;
|
| 299 |
+
}
|
| 300 |
+
|
| 301 |
+
public function hasVerification()
|
| 302 |
+
{
|
| 303 |
+
$configData = $this->getConfigData('useccv');
|
| 304 |
+
if(is_null($configData)){
|
| 305 |
+
return true;
|
| 306 |
+
}
|
| 307 |
+
return (bool) $configData;
|
| 308 |
+
}
|
| 309 |
+
|
| 310 |
+
public function getVerificationRegEx()
|
| 311 |
+
{
|
| 312 |
+
$verificationExpList = array(
|
| 313 |
+
'VI' => '/^[0-9]{3}$/', // Visa
|
| 314 |
+
'MC' => '/^[0-9]{3}$/', // Master Card
|
| 315 |
+
'AE' => '/^[0-9]{4}$/', // American Express
|
| 316 |
+
'DI' => '/^[0-9]{3}$/', // Discovery
|
| 317 |
+
'SS' => '/^[0-9]{3,4}$/',
|
| 318 |
+
'SM' => '/^[0-9]{3,4}$/', // Switch or Maestro
|
| 319 |
+
'SO' => '/^[0-9]{3,4}$/', // Solo
|
| 320 |
+
'OT' => '/^[0-9]{3,4}$/',
|
| 321 |
+
'JCB' => '/^[0-9]{3,4}$/' //JCB
|
| 322 |
+
);
|
| 323 |
+
return $verificationExpList;
|
| 324 |
+
}
|
| 325 |
+
|
| 326 |
+
protected function _validateExpDate($expYear, $expMonth)
|
| 327 |
+
{
|
| 328 |
+
$date = Mage::app()->getLocale()->date();
|
| 329 |
+
if (!$expYear || !$expMonth || ($date->compareYear($expYear) == 1)
|
| 330 |
+
|| ($date->compareYear($expYear) == 0 && ($date->compareMonth($expMonth) == 1))
|
| 331 |
+
) {
|
| 332 |
+
return false;
|
| 333 |
+
}
|
| 334 |
+
return true;
|
| 335 |
+
}
|
| 336 |
+
|
| 337 |
+
public function OtherCcType($type)
|
| 338 |
+
{
|
| 339 |
+
return $type=='OT';
|
| 340 |
+
}
|
| 341 |
+
|
| 342 |
+
/**
|
| 343 |
+
* Validate credit card number
|
| 344 |
+
*
|
| 345 |
+
* @param string $cc_number
|
| 346 |
+
* @return bool
|
| 347 |
+
*/
|
| 348 |
+
public function validateCcNum($ccNumber)
|
| 349 |
+
{
|
| 350 |
+
$cardNumber = strrev($ccNumber);
|
| 351 |
+
$numSum = 0;
|
| 352 |
+
|
| 353 |
+
for ($i=0; $i<strlen($cardNumber); $i++) {
|
| 354 |
+
$currentNum = substr($cardNumber, $i, 1);
|
| 355 |
+
|
| 356 |
+
/**
|
| 357 |
+
* Double every second digit
|
| 358 |
+
*/
|
| 359 |
+
if ($i % 2 == 1) {
|
| 360 |
+
$currentNum *= 2;
|
| 361 |
+
}
|
| 362 |
+
|
| 363 |
+
/**
|
| 364 |
+
* Add digits of 2-digit numbers together
|
| 365 |
+
*/
|
| 366 |
+
if ($currentNum > 9) {
|
| 367 |
+
$firstNum = $currentNum % 10;
|
| 368 |
+
$secondNum = ($currentNum - $firstNum) / 10;
|
| 369 |
+
$currentNum = $firstNum + $secondNum;
|
| 370 |
+
}
|
| 371 |
+
|
| 372 |
+
$numSum += $currentNum;
|
| 373 |
+
}
|
| 374 |
+
|
| 375 |
+
/**
|
| 376 |
+
* If the total has no remainder it's OK
|
| 377 |
+
*/
|
| 378 |
+
return ($numSum % 10 == 0);
|
| 379 |
+
}
|
| 380 |
+
|
| 381 |
+
/**
|
| 382 |
+
* Other credit cart type number validation
|
| 383 |
+
*
|
| 384 |
+
* @param string $ccNumber
|
| 385 |
+
* @return boolean
|
| 386 |
+
*/
|
| 387 |
+
public function validateCcNumOther($ccNumber)
|
| 388 |
+
{
|
| 389 |
+
return preg_match('/^\\d+$/', $ccNumber);
|
| 390 |
+
}
|
| 391 |
+
|
| 392 |
+
/**
|
| 393 |
+
* Check whether there are CC types set in configuration
|
| 394 |
+
*
|
| 395 |
+
* @param Mage_Sales_Model_Quote|null $quote
|
| 396 |
+
* @return bool
|
| 397 |
+
*/
|
| 398 |
+
public function isAvailable($quote = null)
|
| 399 |
+
{
|
| 400 |
+
return $this->getConfigData('cctypes', ($quote ? $quote->getStoreId() : null))
|
| 401 |
+
&& parent::isAvailable($quote);
|
| 402 |
+
}
|
| 403 |
+
|
| 404 |
+
/**
|
| 405 |
+
* Whether centinel service is enabled
|
| 406 |
+
*
|
| 407 |
+
* @return bool
|
| 408 |
+
*/
|
| 409 |
+
public function getIsCentinelValidationEnabled()
|
| 410 |
+
{
|
| 411 |
+
return false !== Mage::getConfig()->getNode('modules/Mage_Centinel') && 1 == $this->getConfigData('centinel');
|
| 412 |
+
}
|
| 413 |
+
|
| 414 |
+
/**
|
| 415 |
+
* Instantiate centinel validator model
|
| 416 |
+
*
|
| 417 |
+
* @return Mage_Centinel_Model_Service
|
| 418 |
+
*/
|
| 419 |
+
public function getCentinelValidator()
|
| 420 |
+
{
|
| 421 |
+
$validator = Mage::getSingleton('centinel/service');
|
| 422 |
+
$validator
|
| 423 |
+
->setIsModeStrict($this->getConfigData('centinel_is_mode_strict'))
|
| 424 |
+
->setCustomApiEndpointUrl($this->getConfigData('centinel_api_url'))
|
| 425 |
+
->setStore($this->getStore())
|
| 426 |
+
->setIsPlaceOrder($this->_isPlaceOrder());
|
| 427 |
+
return $validator;
|
| 428 |
+
}
|
| 429 |
+
|
| 430 |
+
/**
|
| 431 |
+
* Return data for Centinel validation
|
| 432 |
+
*
|
| 433 |
+
* @return Varien_Object
|
| 434 |
+
*/
|
| 435 |
+
public function getCentinelValidationData()
|
| 436 |
+
{
|
| 437 |
+
$info = $this->getInfoInstance();
|
| 438 |
+
$params = new Varien_Object();
|
| 439 |
+
$params
|
| 440 |
+
->setPaymentMethodCode($this->getCode())
|
| 441 |
+
->setCardType($info->getCcType())
|
| 442 |
+
->setCardNumber($info->getCcNumber())
|
| 443 |
+
->setCardExpMonth($info->getCcExpMonth())
|
| 444 |
+
->setCardExpYear($info->getCcExpYear())
|
| 445 |
+
->setAmount($this->_getAmount())
|
| 446 |
+
->setCurrencyCode($this->_getCurrencyCode())
|
| 447 |
+
->setOrderNumber($this->_getOrderId());
|
| 448 |
+
return $params;
|
| 449 |
+
}
|
| 450 |
+
|
| 451 |
+
/**
|
| 452 |
+
* Order increment ID getter (either real from order or a reserved from quote)
|
| 453 |
+
*
|
| 454 |
+
* @return string
|
| 455 |
+
*/
|
| 456 |
+
private function _getOrderId()
|
| 457 |
+
{
|
| 458 |
+
$info = $this->getInfoInstance();
|
| 459 |
+
|
| 460 |
+
if ($this->_isPlaceOrder()) {
|
| 461 |
+
return $info->getOrder()->getIncrementId();
|
| 462 |
+
} else {
|
| 463 |
+
if (!$info->getQuote()->getReservedOrderId()) {
|
| 464 |
+
$info->getQuote()->reserveOrderId();
|
| 465 |
+
}
|
| 466 |
+
return $info->getQuote()->getReservedOrderId();
|
| 467 |
+
}
|
| 468 |
+
}
|
| 469 |
+
|
| 470 |
+
/**
|
| 471 |
+
* Grand total getter
|
| 472 |
+
*
|
| 473 |
+
* @return string
|
| 474 |
+
*/
|
| 475 |
+
private function _getAmount()
|
| 476 |
+
{
|
| 477 |
+
$info = $this->getInfoInstance();
|
| 478 |
+
if ($this->_isPlaceOrder()) {
|
| 479 |
+
return (double)$info->getOrder()->getQuoteBaseGrandTotal();
|
| 480 |
+
} else {
|
| 481 |
+
return (double)$info->getQuote()->getBaseGrandTotal();
|
| 482 |
+
}
|
| 483 |
+
}
|
| 484 |
+
|
| 485 |
+
/**
|
| 486 |
+
* Currency code getter
|
| 487 |
+
*
|
| 488 |
+
* @return string
|
| 489 |
+
*/
|
| 490 |
+
private function _getCurrencyCode()
|
| 491 |
+
{
|
| 492 |
+
$info = $this->getInfoInstance();
|
| 493 |
+
|
| 494 |
+
if ($this->_isPlaceOrder()) {
|
| 495 |
+
return $info->getOrder()->getBaseCurrencyCode();
|
| 496 |
+
} else {
|
| 497 |
+
return $info->getQuote()->getBaseCurrencyCode();
|
| 498 |
+
}
|
| 499 |
+
}
|
| 500 |
+
|
| 501 |
+
/**
|
| 502 |
+
* Whether current operation is order placement
|
| 503 |
+
*
|
| 504 |
+
* @return bool
|
| 505 |
+
*/
|
| 506 |
+
private function _isPlaceOrder()
|
| 507 |
+
{
|
| 508 |
+
$info = $this->getInfoInstance();
|
| 509 |
+
if ($info instanceof Mage_Sales_Model_Quote_Payment) {
|
| 510 |
+
return false;
|
| 511 |
+
} elseif ($info instanceof Mage_Sales_Model_Order_Payment) {
|
| 512 |
+
return true;
|
| 513 |
+
}
|
| 514 |
+
}
|
| 515 |
+
|
| 516 |
+
|
| 517 |
+
}
|
app/code/community/Allopass/Hipay/Model/Method/Dexia.php
ADDED
|
@@ -0,0 +1,5 @@
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
| 1 |
+
<?php
|
| 2 |
+
class Allopass_Hipay_Model_Method_Dexia extends Allopass_Hipay_Model_Method_Hosted
|
| 3 |
+
{
|
| 4 |
+
protected $_code = 'hipay_dexia';
|
| 5 |
+
}
|
app/code/community/Allopass/Hipay/Model/Method/Giropay.php
ADDED
|
@@ -0,0 +1,5 @@
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
| 1 |
+
<?php
|
| 2 |
+
class Allopass_Hipay_Model_Method_Giropay extends Allopass_Hipay_Model_Method_Hosted
|
| 3 |
+
{
|
| 4 |
+
protected $_code = 'hipay_giropay';
|
| 5 |
+
}
|
app/code/community/Allopass/Hipay/Model/Method/Hosted.php
ADDED
|
@@ -0,0 +1,118 @@
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
| 1 |
+
<?php
|
| 2 |
+
class Allopass_Hipay_Model_Method_Hosted extends Allopass_Hipay_Model_Method_Abstract
|
| 3 |
+
{
|
| 4 |
+
|
| 5 |
+
protected $_code = 'hipay_hosted';
|
| 6 |
+
|
| 7 |
+
protected $_formBlockType = 'hipay/form_hosted';
|
| 8 |
+
protected $_infoBlockType = 'hipay/info_hosted';
|
| 9 |
+
|
| 10 |
+
|
| 11 |
+
public function getOrderPlaceRedirectUrl()
|
| 12 |
+
{
|
| 13 |
+
|
| 14 |
+
return Mage::getUrl(str_replace("_", "/", $this->getCode()).'/sendRequest',array('_secure' => true));
|
| 15 |
+
}
|
| 16 |
+
|
| 17 |
+
/**
|
| 18 |
+
* Assign data to info model instance
|
| 19 |
+
*
|
| 20 |
+
* @param mixed $data
|
| 21 |
+
* @return Mage_Payment_Model_Info
|
| 22 |
+
*/
|
| 23 |
+
public function assignData($data)
|
| 24 |
+
{
|
| 25 |
+
if (!($data instanceof Varien_Object)) {
|
| 26 |
+
$data = new Varien_Object($data);
|
| 27 |
+
}
|
| 28 |
+
$info = $this->getInfoInstance();
|
| 29 |
+
$info->setAdditionalInformation('create_oneclick',$data->getOneclick() == "create_oneclick" ? 1 : 0)
|
| 30 |
+
->setAdditionalInformation('use_oneclick',$data->getOneclick() == "use_oneclick" ? 1 : 0)
|
| 31 |
+
;
|
| 32 |
+
|
| 33 |
+
return $this;
|
| 34 |
+
}
|
| 35 |
+
|
| 36 |
+
|
| 37 |
+
|
| 38 |
+
/**
|
| 39 |
+
* (non-PHPdoc)
|
| 40 |
+
* @see Mage_Payment_Model_Method_Abstract::capture()
|
| 41 |
+
*/
|
| 42 |
+
public function capture(Varien_Object $payment, $amount)
|
| 43 |
+
{
|
| 44 |
+
parent::capture($payment, $amount);
|
| 45 |
+
|
| 46 |
+
if (self::isPreauthorizeCapture($payment))
|
| 47 |
+
$this->_preauthorizeCapture($payment, $amount);
|
| 48 |
+
|
| 49 |
+
$payment->setSkipTransactionCreation(true);
|
| 50 |
+
return $this;
|
| 51 |
+
}
|
| 52 |
+
|
| 53 |
+
|
| 54 |
+
public function place($payment, $amount)
|
| 55 |
+
{
|
| 56 |
+
$order = $payment->getOrder();
|
| 57 |
+
$customer = Mage::getModel('customer/customer')->load($order->getCustomerId());
|
| 58 |
+
|
| 59 |
+
$request = Mage::getModel('hipay/api_request',array($this));
|
| 60 |
+
|
| 61 |
+
$payment->setAmount($amount);
|
| 62 |
+
|
| 63 |
+
$token = null;
|
| 64 |
+
if($payment->getAdditionalInformation('use_oneclick'))
|
| 65 |
+
{
|
| 66 |
+
$token = Mage::getSingleton('customer/session')->getCustomer()->getHipayAliasOneclick();
|
| 67 |
+
}
|
| 68 |
+
|
| 69 |
+
$gatewayParams = $this->getGatewayParams($payment, $amount,$token);
|
| 70 |
+
|
| 71 |
+
if(is_null($token))
|
| 72 |
+
{
|
| 73 |
+
|
| 74 |
+
$gatewayParams['payment_product'] = 'cb' ;
|
| 75 |
+
$gatewayParams['operation'] = $this->getOperation();
|
| 76 |
+
$gatewayParams['css'] = $this->getConfigData('css_url');
|
| 77 |
+
$gatewayParams['template'] = $this->getConfigData('display_iframe') ? 'iframe' : $this->getConfigData('template');
|
| 78 |
+
if ($this->getConfigData('template') == 'basic-js' && $gatewayParams['template'] == 'iframe') $gatewayParams['template'] .= '-js';
|
| 79 |
+
$gatewayParams['display_selector'] = $this->getConfigData('display_selector');
|
| 80 |
+
//$gatewayParams['payment_product_list'] = $this->getConfigData('cctypes');
|
| 81 |
+
|
| 82 |
+
if ($gatewayParams['country'] == 'BE')
|
| 83 |
+
$gatewayParams['payment_product_list'] = $this->getConfigData('cctypes');
|
| 84 |
+
else
|
| 85 |
+
$gatewayParams['payment_product_list'] = str_replace('bcmc', '', $this->getConfigData('cctypes'));
|
| 86 |
+
|
| 87 |
+
|
| 88 |
+
$gatewayParams['payment_product_category_list'] = "credit-card";
|
| 89 |
+
|
| 90 |
+
if(Mage::getStoreConfig('general/store_information/name') != "")
|
| 91 |
+
$gatewayParams['merchant_display_name'] = Mage::getStoreConfig('general/store_information/name');
|
| 92 |
+
|
| 93 |
+
$this->_debug($gatewayParams);
|
| 94 |
+
|
| 95 |
+
$gatewayResponse = $request->gatewayRequest(Allopass_Hipay_Model_Api_Request::GATEWAY_ACTION_HOSTED,$gatewayParams);
|
| 96 |
+
|
| 97 |
+
$this->_debug($gatewayResponse->debug());
|
| 98 |
+
|
| 99 |
+
return $gatewayResponse->getForwardUrl();
|
| 100 |
+
}
|
| 101 |
+
else
|
| 102 |
+
{
|
| 103 |
+
$gatewayParams['operation'] = $this->getOperation();
|
| 104 |
+
$gatewayParams['payment_product'] = Mage::getSingleton('customer/session')->getCustomer()->getHipayCcType();
|
| 105 |
+
|
| 106 |
+
$this->_debug($gatewayParams);
|
| 107 |
+
|
| 108 |
+
$gatewayResponse = $request->gatewayRequest(Allopass_Hipay_Model_Api_Request::GATEWAY_ACTION_ORDER,$gatewayParams);
|
| 109 |
+
|
| 110 |
+
$this->_debug($gatewayResponse->debug());
|
| 111 |
+
|
| 112 |
+
$redirectUrl = $this->processResponseToRedirect($gatewayResponse, $payment, $amount);
|
| 113 |
+
|
| 114 |
+
return $redirectUrl;
|
| 115 |
+
}
|
| 116 |
+
|
| 117 |
+
}
|
| 118 |
+
}
|
app/code/community/Allopass/Hipay/Model/Method/Ideal.php
ADDED
|
@@ -0,0 +1,5 @@
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
| 1 |
+
<?php
|
| 2 |
+
class Allopass_Hipay_Model_Method_Ideal extends Allopass_Hipay_Model_Method_Hosted
|
| 3 |
+
{
|
| 4 |
+
protected $_code = 'hipay_ideal';
|
| 5 |
+
}
|
app/code/community/Allopass/Hipay/Model/Method/Ing.php
ADDED
|
@@ -0,0 +1,5 @@
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
| 1 |
+
<?php
|
| 2 |
+
class Allopass_Hipay_Model_Method_Ing extends Allopass_Hipay_Model_Method_Hosted
|
| 3 |
+
{
|
| 4 |
+
protected $_code = 'hipay_ing';
|
| 5 |
+
}
|
app/code/community/Allopass/Hipay/Model/Method/Kbc.php
ADDED
|
@@ -0,0 +1,5 @@
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
| 1 |
+
<?php
|
| 2 |
+
class Allopass_Hipay_Model_Method_Kbc extends Allopass_Hipay_Model_Method_Hosted
|
| 3 |
+
{
|
| 4 |
+
protected $_code = 'hipay_kbc';
|
| 5 |
+
}
|
app/code/community/Allopass/Hipay/Model/Method/Przelewy24.php
ADDED
|
@@ -0,0 +1,5 @@
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
| 1 |
+
<?php
|
| 2 |
+
class Allopass_Hipay_Model_Method_Przelewy24 extends Allopass_Hipay_Model_Method_Hosted
|
| 3 |
+
{
|
| 4 |
+
protected $_code = 'hipay_przelewy24';
|
| 5 |
+
}
|
app/code/community/Allopass/Hipay/Model/Method/Przelewy24Api.php
ADDED
|
@@ -0,0 +1,83 @@
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
| 1 |
+
<?php
|
| 2 |
+
class Allopass_Hipay_Model_Method_Przelewy24Api extends Allopass_Hipay_Model_Method_Cc
|
| 3 |
+
{
|
| 4 |
+
protected $_code = 'hipay_przelewy24api';
|
| 5 |
+
|
| 6 |
+
protected $_formBlockType = 'hipay/form_hosted';
|
| 7 |
+
protected $_infoBlockType = 'hipay/info_hosted';
|
| 8 |
+
|
| 9 |
+
|
| 10 |
+
public function getOrderPlaceRedirectUrl()
|
| 11 |
+
{
|
| 12 |
+
return Mage::getUrl(str_replace("_", "/", $this->getCode()).'/sendRequest',array('_secure' => true));
|
| 13 |
+
}
|
| 14 |
+
|
| 15 |
+
|
| 16 |
+
/**
|
| 17 |
+
* Assign data to info model instance
|
| 18 |
+
*
|
| 19 |
+
* @param mixed $data
|
| 20 |
+
* @return Mage_Payment_Model_Info
|
| 21 |
+
*/
|
| 22 |
+
public function assignData($data)
|
| 23 |
+
{
|
| 24 |
+
if (!($data instanceof Varien_Object)) {
|
| 25 |
+
$data = new Varien_Object($data);
|
| 26 |
+
}
|
| 27 |
+
$info = $this->getInfoInstance();
|
| 28 |
+
$info->setCcType($this->getConfigData('cctypes'))
|
| 29 |
+
->setAdditionalInformation('create_oneclick',$data->getOneclick() == "create_oneclick" ? 1 : 0)
|
| 30 |
+
->setAdditionalInformation('use_oneclick',$data->getOneclick() == "use_oneclick" ? 1 : 0)
|
| 31 |
+
;
|
| 32 |
+
|
| 33 |
+
return $this;
|
| 34 |
+
}
|
| 35 |
+
|
| 36 |
+
public function initialize($paymentAction, $stateObject)
|
| 37 |
+
{
|
| 38 |
+
/* @var $payment Mage_Sales_Model_Order_Payment */
|
| 39 |
+
$payment = $this->getInfoInstance();
|
| 40 |
+
$order = $payment->getOrder();
|
| 41 |
+
$customer = Mage::getModel('customer/customer')->load($order->getCustomerId());
|
| 42 |
+
|
| 43 |
+
|
| 44 |
+
if($payment->getAdditionalInformation('use_oneclick') && $customer->getId())
|
| 45 |
+
{
|
| 46 |
+
$token = $customer->getHipayAliasOneclick();
|
| 47 |
+
$payment->setAdditionalInformation('token',$token);
|
| 48 |
+
}
|
| 49 |
+
|
| 50 |
+
return $this;
|
| 51 |
+
|
| 52 |
+
}
|
| 53 |
+
|
| 54 |
+
|
| 55 |
+
protected function getCcTypeHipay($ccTypeMagento)
|
| 56 |
+
{
|
| 57 |
+
return $ccTypeMagento;
|
| 58 |
+
}
|
| 59 |
+
|
| 60 |
+
/**
|
| 61 |
+
* Validate payment method information object
|
| 62 |
+
*
|
| 63 |
+
* @param Mage_Payment_Model_Info $info
|
| 64 |
+
* @return Mage_Payment_Model_Abstract
|
| 65 |
+
*/
|
| 66 |
+
public function validate()
|
| 67 |
+
{
|
| 68 |
+
/**
|
| 69 |
+
* to validate payment method is allowed for billing country or not
|
| 70 |
+
*/
|
| 71 |
+
$paymentInfo = $this->getInfoInstance();
|
| 72 |
+
if ($paymentInfo instanceof Mage_Sales_Model_Order_Payment) {
|
| 73 |
+
$billingCountry = $paymentInfo->getOrder()->getBillingAddress()->getCountryId();
|
| 74 |
+
} else {
|
| 75 |
+
$billingCountry = $paymentInfo->getQuote()->getBillingAddress()->getCountryId();
|
| 76 |
+
}
|
| 77 |
+
if (!$this->canUseForCountry($billingCountry)) {
|
| 78 |
+
Mage::throwException(Mage::helper('payment')->__('Selected payment type is not allowed for billing country.'));
|
| 79 |
+
}
|
| 80 |
+
return $this;
|
| 81 |
+
}
|
| 82 |
+
|
| 83 |
+
}
|
app/code/community/Allopass/Hipay/Model/Method/Qiwi.php
ADDED
|
@@ -0,0 +1,5 @@
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
| 1 |
+
<?php
|
| 2 |
+
class Allopass_Hipay_Model_Method_Qiwi extends Allopass_Hipay_Model_Method_Hosted
|
| 3 |
+
{
|
| 4 |
+
protected $_code = 'hipay_qiwi';
|
| 5 |
+
}
|
app/code/community/Allopass/Hipay/Model/Method/Sisal.php
ADDED
|
@@ -0,0 +1,5 @@
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
| 1 |
+
<?php
|
| 2 |
+
class Allopass_Hipay_Model_Method_Sisal extends Allopass_Hipay_Model_Method_Hosted
|
| 3 |
+
{
|
| 4 |
+
protected $_code = 'hipay_sisal';
|
| 5 |
+
}
|
app/code/community/Allopass/Hipay/Model/Method/SisalApi.php
ADDED
|
@@ -0,0 +1,83 @@
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
| 1 |
+
<?php
|
| 2 |
+
class Allopass_Hipay_Model_Method_SisalApi extends Allopass_Hipay_Model_Method_Cc
|
| 3 |
+
{
|
| 4 |
+
protected $_code = 'hipay_sisalapi';
|
| 5 |
+
|
| 6 |
+
protected $_formBlockType = 'hipay/form_hosted';
|
| 7 |
+
protected $_infoBlockType = 'hipay/info_hosted';
|
| 8 |
+
|
| 9 |
+
|
| 10 |
+
public function getOrderPlaceRedirectUrl()
|
| 11 |
+
{
|
| 12 |
+
return Mage::getUrl(str_replace("_", "/", $this->getCode()).'/sendRequest',array('_secure' => true));
|
| 13 |
+
}
|
| 14 |
+
|
| 15 |
+
|
| 16 |
+
/**
|
| 17 |
+
* Assign data to info model instance
|
| 18 |
+
*
|
| 19 |
+
* @param mixed $data
|
| 20 |
+
* @return Mage_Payment_Model_Info
|
| 21 |
+
*/
|
| 22 |
+
public function assignData($data)
|
| 23 |
+
{
|
| 24 |
+
if (!($data instanceof Varien_Object)) {
|
| 25 |
+
$data = new Varien_Object($data);
|
| 26 |
+
}
|
| 27 |
+
$info = $this->getInfoInstance();
|
| 28 |
+
$info->setCcType($this->getConfigData('cctypes'))
|
| 29 |
+
->setAdditionalInformation('create_oneclick',$data->getOneclick() == "create_oneclick" ? 1 : 0)
|
| 30 |
+
->setAdditionalInformation('use_oneclick',$data->getOneclick() == "use_oneclick" ? 1 : 0)
|
| 31 |
+
;
|
| 32 |
+
|
| 33 |
+
return $this;
|
| 34 |
+
}
|
| 35 |
+
|
| 36 |
+
public function initialize($paymentAction, $stateObject)
|
| 37 |
+
{
|
| 38 |
+
/* @var $payment Mage_Sales_Model_Order_Payment */
|
| 39 |
+
$payment = $this->getInfoInstance();
|
| 40 |
+
$order = $payment->getOrder();
|
| 41 |
+
$customer = Mage::getModel('customer/customer')->load($order->getCustomerId());
|
| 42 |
+
|
| 43 |
+
|
| 44 |
+
if($payment->getAdditionalInformation('use_oneclick') && $customer->getId())
|
| 45 |
+
{
|
| 46 |
+
$token = $customer->getHipayAliasOneclick();
|
| 47 |
+
$payment->setAdditionalInformation('token',$token);
|
| 48 |
+
}
|
| 49 |
+
|
| 50 |
+
return $this;
|
| 51 |
+
|
| 52 |
+
}
|
| 53 |
+
|
| 54 |
+
|
| 55 |
+
protected function getCcTypeHipay($ccTypeMagento)
|
| 56 |
+
{
|
| 57 |
+
return $ccTypeMagento;
|
| 58 |
+
}
|
| 59 |
+
|
| 60 |
+
/**
|
| 61 |
+
* Validate payment method information object
|
| 62 |
+
*
|
| 63 |
+
* @param Mage_Payment_Model_Info $info
|
| 64 |
+
* @return Mage_Payment_Model_Abstract
|
| 65 |
+
*/
|
| 66 |
+
public function validate()
|
| 67 |
+
{
|
| 68 |
+
/**
|
| 69 |
+
* to validate payment method is allowed for billing country or not
|
| 70 |
+
*/
|
| 71 |
+
$paymentInfo = $this->getInfoInstance();
|
| 72 |
+
if ($paymentInfo instanceof Mage_Sales_Model_Order_Payment) {
|
| 73 |
+
$billingCountry = $paymentInfo->getOrder()->getBillingAddress()->getCountryId();
|
| 74 |
+
} else {
|
| 75 |
+
$billingCountry = $paymentInfo->getQuote()->getBillingAddress()->getCountryId();
|
| 76 |
+
}
|
| 77 |
+
if (!$this->canUseForCountry($billingCountry)) {
|
| 78 |
+
Mage::throwException(Mage::helper('payment')->__('Selected payment type is not allowed for billing country.'));
|
| 79 |
+
}
|
| 80 |
+
return $this;
|
| 81 |
+
}
|
| 82 |
+
|
| 83 |
+
}
|
app/code/community/Allopass/Hipay/Model/Method/Sofort.php
ADDED
|
@@ -0,0 +1,5 @@
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
| 1 |
+
<?php
|
| 2 |
+
class Allopass_Hipay_Model_Method_Sofort extends Allopass_Hipay_Model_Method_Hosted
|
| 3 |
+
{
|
| 4 |
+
protected $_code = 'hipay_sofort';
|
| 5 |
+
}
|
app/code/community/Allopass/Hipay/Model/Method/SofortApi.php
ADDED
|
@@ -0,0 +1,83 @@
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
| 1 |
+
<?php
|
| 2 |
+
class Allopass_Hipay_Model_Method_SofortApi extends Allopass_Hipay_Model_Method_Cc
|
| 3 |
+
{
|
| 4 |
+
protected $_code = 'hipay_sofortapi';
|
| 5 |
+
|
| 6 |
+
protected $_formBlockType = 'hipay/form_hosted';
|
| 7 |
+
protected $_infoBlockType = 'hipay/info_hosted';
|
| 8 |
+
|
| 9 |
+
|
| 10 |
+
public function getOrderPlaceRedirectUrl()
|
| 11 |
+
{
|
| 12 |
+
return Mage::getUrl(str_replace("_", "/", $this->getCode()).'/sendRequest',array('_secure' => true));
|
| 13 |
+
}
|
| 14 |
+
|
| 15 |
+
|
| 16 |
+
/**
|
| 17 |
+
* Assign data to info model instance
|
| 18 |
+
*
|
| 19 |
+
* @param mixed $data
|
| 20 |
+
* @return Mage_Payment_Model_Info
|
| 21 |
+
*/
|
| 22 |
+
public function assignData($data)
|
| 23 |
+
{
|
| 24 |
+
if (!($data instanceof Varien_Object)) {
|
| 25 |
+
$data = new Varien_Object($data);
|
| 26 |
+
}
|
| 27 |
+
$info = $this->getInfoInstance();
|
| 28 |
+
$info->setCcType($this->getConfigData('cctypes'))
|
| 29 |
+
->setAdditionalInformation('create_oneclick',$data->getOneclick() == "create_oneclick" ? 1 : 0)
|
| 30 |
+
->setAdditionalInformation('use_oneclick',$data->getOneclick() == "use_oneclick" ? 1 : 0)
|
| 31 |
+
;
|
| 32 |
+
|
| 33 |
+
return $this;
|
| 34 |
+
}
|
| 35 |
+
|
| 36 |
+
public function initialize($paymentAction, $stateObject)
|
| 37 |
+
{
|
| 38 |
+
/* @var $payment Mage_Sales_Model_Order_Payment */
|
| 39 |
+
$payment = $this->getInfoInstance();
|
| 40 |
+
$order = $payment->getOrder();
|
| 41 |
+
$customer = Mage::getModel('customer/customer')->load($order->getCustomerId());
|
| 42 |
+
|
| 43 |
+
|
| 44 |
+
if($payment->getAdditionalInformation('use_oneclick') && $customer->getId())
|
| 45 |
+
{
|
| 46 |
+
$token = $customer->getHipayAliasOneclick();
|
| 47 |
+
$payment->setAdditionalInformation('token',$token);
|
| 48 |
+
}
|
| 49 |
+
|
| 50 |
+
return $this;
|
| 51 |
+
|
| 52 |
+
}
|
| 53 |
+
|
| 54 |
+
|
| 55 |
+
protected function getCcTypeHipay($ccTypeMagento)
|
| 56 |
+
{
|
| 57 |
+
return $ccTypeMagento;
|
| 58 |
+
}
|
| 59 |
+
|
| 60 |
+
/**
|
| 61 |
+
* Validate payment method information object
|
| 62 |
+
*
|
| 63 |
+
* @param Mage_Payment_Model_Info $info
|
| 64 |
+
* @return Mage_Payment_Model_Abstract
|
| 65 |
+
*/
|
| 66 |
+
public function validate()
|
| 67 |
+
{
|
| 68 |
+
/**
|
| 69 |
+
* to validate payment method is allowed for billing country or not
|
| 70 |
+
*/
|
| 71 |
+
$paymentInfo = $this->getInfoInstance();
|
| 72 |
+
if ($paymentInfo instanceof Mage_Sales_Model_Order_Payment) {
|
| 73 |
+
$billingCountry = $paymentInfo->getOrder()->getBillingAddress()->getCountryId();
|
| 74 |
+
} else {
|
| 75 |
+
$billingCountry = $paymentInfo->getQuote()->getBillingAddress()->getCountryId();
|
| 76 |
+
}
|
| 77 |
+
if (!$this->canUseForCountry($billingCountry)) {
|
| 78 |
+
Mage::throwException(Mage::helper('payment')->__('Selected payment type is not allowed for billing country.'));
|
| 79 |
+
}
|
| 80 |
+
return $this;
|
| 81 |
+
}
|
| 82 |
+
|
| 83 |
+
}
|
app/code/community/Allopass/Hipay/Model/Method/Webmoney.php
ADDED
|
@@ -0,0 +1,5 @@
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
| 1 |
+
<?php
|
| 2 |
+
class Allopass_Hipay_Model_Method_Webmoney extends Allopass_Hipay_Model_Method_Hosted
|
| 3 |
+
{
|
| 4 |
+
protected $_code = 'hipay_webmoney';
|
| 5 |
+
}
|
app/code/community/Allopass/Hipay/Model/Method/WebmoneyApi.php
ADDED
|
@@ -0,0 +1,83 @@
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
| 1 |
+
<?php
|
| 2 |
+
class Allopass_Hipay_Model_Method_WebmoneyApi extends Allopass_Hipay_Model_Method_Cc
|
| 3 |
+
{
|
| 4 |
+
protected $_code = 'hipay_webmoneyapi';
|
| 5 |
+
|
| 6 |
+
protected $_formBlockType = 'hipay/form_hosted';
|
| 7 |
+
protected $_infoBlockType = 'hipay/info_hosted';
|
| 8 |
+
|
| 9 |
+
|
| 10 |
+
public function getOrderPlaceRedirectUrl()
|
| 11 |
+
{
|
| 12 |
+
return Mage::getUrl(str_replace("_", "/", $this->getCode()).'/sendRequest',array('_secure' => true));
|
| 13 |
+
}
|
| 14 |
+
|
| 15 |
+
|
| 16 |
+
/**
|
| 17 |
+
* Assign data to info model instance
|
| 18 |
+
*
|
| 19 |
+
* @param mixed $data
|
| 20 |
+
* @return Mage_Payment_Model_Info
|
| 21 |
+
*/
|
| 22 |
+
public function assignData($data)
|
| 23 |
+
{
|
| 24 |
+
if (!($data instanceof Varien_Object)) {
|
| 25 |
+
$data = new Varien_Object($data);
|
| 26 |
+
}
|
| 27 |
+
$info = $this->getInfoInstance();
|
| 28 |
+
$info->setCcType($this->getConfigData('cctypes'))
|
| 29 |
+
->setAdditionalInformation('create_oneclick',$data->getOneclick() == "create_oneclick" ? 1 : 0)
|
| 30 |
+
->setAdditionalInformation('use_oneclick',$data->getOneclick() == "use_oneclick" ? 1 : 0)
|
| 31 |
+
;
|
| 32 |
+
|
| 33 |
+
return $this;
|
| 34 |
+
}
|
| 35 |
+
|
| 36 |
+
public function initialize($paymentAction, $stateObject)
|
| 37 |
+
{
|
| 38 |
+
/* @var $payment Mage_Sales_Model_Order_Payment */
|
| 39 |
+
$payment = $this->getInfoInstance();
|
| 40 |
+
$order = $payment->getOrder();
|
| 41 |
+
$customer = Mage::getModel('customer/customer')->load($order->getCustomerId());
|
| 42 |
+
|
| 43 |
+
|
| 44 |
+
if($payment->getAdditionalInformation('use_oneclick') && $customer->getId())
|
| 45 |
+
{
|
| 46 |
+
$token = $customer->getHipayAliasOneclick();
|
| 47 |
+
$payment->setAdditionalInformation('token',$token);
|
| 48 |
+
}
|
| 49 |
+
|
| 50 |
+
return $this;
|
| 51 |
+
|
| 52 |
+
}
|
| 53 |
+
|
| 54 |
+
|
| 55 |
+
protected function getCcTypeHipay($ccTypeMagento)
|
| 56 |
+
{
|
| 57 |
+
return $ccTypeMagento;
|
| 58 |
+
}
|
| 59 |
+
|
| 60 |
+
/**
|
| 61 |
+
* Validate payment method information object
|
| 62 |
+
*
|
| 63 |
+
* @param Mage_Payment_Model_Info $info
|
| 64 |
+
* @return Mage_Payment_Model_Abstract
|
| 65 |
+
*/
|
| 66 |
+
public function validate()
|
| 67 |
+
{
|
| 68 |
+
/**
|
| 69 |
+
* to validate payment method is allowed for billing country or not
|
| 70 |
+
*/
|
| 71 |
+
$paymentInfo = $this->getInfoInstance();
|
| 72 |
+
if ($paymentInfo instanceof Mage_Sales_Model_Order_Payment) {
|
| 73 |
+
$billingCountry = $paymentInfo->getOrder()->getBillingAddress()->getCountryId();
|
| 74 |
+
} else {
|
| 75 |
+
$billingCountry = $paymentInfo->getQuote()->getBillingAddress()->getCountryId();
|
| 76 |
+
}
|
| 77 |
+
if (!$this->canUseForCountry($billingCountry)) {
|
| 78 |
+
Mage::throwException(Mage::helper('payment')->__('Selected payment type is not allowed for billing country.'));
|
| 79 |
+
}
|
| 80 |
+
return $this;
|
| 81 |
+
}
|
| 82 |
+
|
| 83 |
+
}
|
app/code/community/Allopass/Hipay/Model/Method/Yandex.php
ADDED
|
@@ -0,0 +1,5 @@
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
| 1 |
+
<?php
|
| 2 |
+
class Allopass_Hipay_Model_Method_Yandex extends Allopass_Hipay_Model_Method_Hosted
|
| 3 |
+
{
|
| 4 |
+
protected $_code = 'hipay_yandex';
|
| 5 |
+
}
|
app/code/community/Allopass/Hipay/Model/Method/YandexApi.php
ADDED
|
@@ -0,0 +1,83 @@
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
| 1 |
+
<?php
|
| 2 |
+
class Allopass_Hipay_Model_Method_YandexApi extends Allopass_Hipay_Model_Method_Cc
|
| 3 |
+
{
|
| 4 |
+
protected $_code = 'hipay_yandexapi';
|
| 5 |
+
|
| 6 |
+
protected $_formBlockType = 'hipay/form_hosted';
|
| 7 |
+
protected $_infoBlockType = 'hipay/info_hosted';
|
| 8 |
+
|
| 9 |
+
|
| 10 |
+
public function getOrderPlaceRedirectUrl()
|
| 11 |
+
{
|
| 12 |
+
return Mage::getUrl(str_replace("_", "/", $this->getCode()).'/sendRequest',array('_secure' => true));
|
| 13 |
+
}
|
| 14 |
+
|
| 15 |
+
|
| 16 |
+
/**
|
| 17 |
+
* Assign data to info model instance
|
| 18 |
+
*
|
| 19 |
+
* @param mixed $data
|
| 20 |
+
* @return Mage_Payment_Model_Info
|
| 21 |
+
*/
|
| 22 |
+
public function assignData($data)
|
| 23 |
+
{
|
| 24 |
+
if (!($data instanceof Varien_Object)) {
|
| 25 |
+
$data = new Varien_Object($data);
|
| 26 |
+
}
|
| 27 |
+
$info = $this->getInfoInstance();
|
| 28 |
+
$info->setCcType($this->getConfigData('cctypes'))
|
| 29 |
+
->setAdditionalInformation('create_oneclick',$data->getOneclick() == "create_oneclick" ? 1 : 0)
|
| 30 |
+
->setAdditionalInformation('use_oneclick',$data->getOneclick() == "use_oneclick" ? 1 : 0)
|
| 31 |
+
;
|
| 32 |
+
|
| 33 |
+
return $this;
|
| 34 |
+
}
|
| 35 |
+
|
| 36 |
+
public function initialize($paymentAction, $stateObject)
|
| 37 |
+
{
|
| 38 |
+
/* @var $payment Mage_Sales_Model_Order_Payment */
|
| 39 |
+
$payment = $this->getInfoInstance();
|
| 40 |
+
$order = $payment->getOrder();
|
| 41 |
+
$customer = Mage::getModel('customer/customer')->load($order->getCustomerId());
|
| 42 |
+
|
| 43 |
+
|
| 44 |
+
if($payment->getAdditionalInformation('use_oneclick') && $customer->getId())
|
| 45 |
+
{
|
| 46 |
+
$token = $customer->getHipayAliasOneclick();
|
| 47 |
+
$payment->setAdditionalInformation('token',$token);
|
| 48 |
+
}
|
| 49 |
+
|
| 50 |
+
return $this;
|
| 51 |
+
|
| 52 |
+
}
|
| 53 |
+
|
| 54 |
+
|
| 55 |
+
protected function getCcTypeHipay($ccTypeMagento)
|
| 56 |
+
{
|
| 57 |
+
return $ccTypeMagento;
|
| 58 |
+
}
|
| 59 |
+
|
| 60 |
+
/**
|
| 61 |
+
* Validate payment method information object
|
| 62 |
+
*
|
| 63 |
+
* @param Mage_Payment_Model_Info $info
|
| 64 |
+
* @return Mage_Payment_Model_Abstract
|
| 65 |
+
*/
|
| 66 |
+
public function validate()
|
| 67 |
+
{
|
| 68 |
+
/**
|
| 69 |
+
* to validate payment method is allowed for billing country or not
|
| 70 |
+
*/
|
| 71 |
+
$paymentInfo = $this->getInfoInstance();
|
| 72 |
+
if ($paymentInfo instanceof Mage_Sales_Model_Order_Payment) {
|
| 73 |
+
$billingCountry = $paymentInfo->getOrder()->getBillingAddress()->getCountryId();
|
| 74 |
+
} else {
|
| 75 |
+
$billingCountry = $paymentInfo->getQuote()->getBillingAddress()->getCountryId();
|
| 76 |
+
}
|
| 77 |
+
if (!$this->canUseForCountry($billingCountry)) {
|
| 78 |
+
Mage::throwException(Mage::helper('payment')->__('Selected payment type is not allowed for billing country.'));
|
| 79 |
+
}
|
| 80 |
+
return $this;
|
| 81 |
+
}
|
| 82 |
+
|
| 83 |
+
}
|
app/code/community/Allopass/Hipay/Model/Observer.php
ADDED
|
@@ -0,0 +1,96 @@
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
| 1 |
+
<?php
|
| 2 |
+
class Allopass_Hipay_Model_Observer
|
| 3 |
+
{
|
| 4 |
+
/**
|
| 5 |
+
* Cancel orders stayed in pending because customer not validated payment form
|
| 6 |
+
*/
|
| 7 |
+
public function cancelOrdersInPending()
|
| 8 |
+
{
|
| 9 |
+
|
| 10 |
+
$methodCodes = array('hipay_cc'=>'hipay/method_cc','hipay_hosted'=>'hipay/method_hosted');
|
| 11 |
+
foreach ($methodCodes as $methodCode=>$model)
|
| 12 |
+
{
|
| 13 |
+
if(!Mage::getStoreConfig('payment/'.$methodCode."/cancel_pending_order"))
|
| 14 |
+
continue;
|
| 15 |
+
|
| 16 |
+
$limitedTime = 30;
|
| 17 |
+
|
| 18 |
+
$date = new Zend_Date();//Mage::app()->getLocale()->date();
|
| 19 |
+
|
| 20 |
+
/* @var $collection Mage_Sales_Model_Resource_Order_Collection */
|
| 21 |
+
$collection = Mage::getResourceModel('sales/order_collection');
|
| 22 |
+
$collection->addFieldToSelect(array('entity_id','state'))
|
| 23 |
+
|
| 24 |
+
->addAttributeToFilter('created_at', array('to' => ($date->subMinute($limitedTime)->toString('Y-MM-dd HH:mm:ss'))))
|
| 25 |
+
;
|
| 26 |
+
|
| 27 |
+
|
| 28 |
+
/* @var $order Mage_Sales_Model_Order */
|
| 29 |
+
foreach ($collection as $order)
|
| 30 |
+
{
|
| 31 |
+
|
| 32 |
+
if($order->getPayment()->getMethod() == $methodCode)
|
| 33 |
+
{
|
| 34 |
+
if($order->canCancel() && $order->getState() == Mage_Sales_Model_Order::STATE_NEW)
|
| 35 |
+
{
|
| 36 |
+
try {
|
| 37 |
+
$order->cancel();
|
| 38 |
+
$order
|
| 39 |
+
->addStatusToHistory($order->getStatus(),
|
| 40 |
+
// keep order status/state
|
| 41 |
+
Mage::helper('hipay')->__("Order canceled automatically by cron because order is pending since %d minutes",$limitedTime));
|
| 42 |
+
|
| 43 |
+
$order->save();
|
| 44 |
+
} catch (Exception $e) {
|
| 45 |
+
Mage::logException($e);
|
| 46 |
+
}
|
| 47 |
+
}
|
| 48 |
+
}
|
| 49 |
+
}
|
| 50 |
+
}
|
| 51 |
+
return $this;
|
| 52 |
+
}
|
| 53 |
+
|
| 54 |
+
public function manageOrdersInPendingCapture()
|
| 55 |
+
{
|
| 56 |
+
$methods = array('hipay_cc','hipay_hosted');
|
| 57 |
+
/* @var $collection Mage_Sales_Model_Resource_Order_Collection */
|
| 58 |
+
$collection = Mage::getResourceModel('sales/order_collection');
|
| 59 |
+
$collection->addFieldToFilter('status','pending_capture');
|
| 60 |
+
|
| 61 |
+
/* @var $order Mage_Sales_Model_Order */
|
| 62 |
+
foreach ($collection as $order)
|
| 63 |
+
{
|
| 64 |
+
if(!in_array($order->getPayment()->getMethod(), $methods))
|
| 65 |
+
continue;
|
| 66 |
+
|
| 67 |
+
$orderDate = "";
|
| 68 |
+
}
|
| 69 |
+
|
| 70 |
+
}
|
| 71 |
+
|
| 72 |
+
public function displaySectionCheckoutIframe($observer)
|
| 73 |
+
{
|
| 74 |
+
$payment = Mage::getSingleton('checkout/session')->getQuote()->getPayment();
|
| 75 |
+
if($payment->getAdditionalInformation('use_oneclick'))
|
| 76 |
+
return $this;
|
| 77 |
+
/* @var $controller Mage_Checkout_OnepageController */
|
| 78 |
+
$controller = $observer->getControllerAction();
|
| 79 |
+
|
| 80 |
+
$result = Mage::helper('core')->jsonDecode($controller->getResponse()->getBody());
|
| 81 |
+
|
| 82 |
+
//TODO check if payment method is hosted and iframe active and is success
|
| 83 |
+
$methodInstance = $payment->getMethodInstance();
|
| 84 |
+
if($result['success']
|
| 85 |
+
&& $methodInstance->getCode() == 'hipay_hosted'
|
| 86 |
+
&& $methodInstance->getConfigData('display_iframe'))
|
| 87 |
+
{
|
| 88 |
+
$result['iframeUrl'] = $result['redirect'];
|
| 89 |
+
}
|
| 90 |
+
|
| 91 |
+
$controller->getResponse()->setBody(Mage::helper('core')->jsonEncode($result));
|
| 92 |
+
|
| 93 |
+
return $this;
|
| 94 |
+
|
| 95 |
+
}
|
| 96 |
+
}
|
app/code/community/Allopass/Hipay/Model/Resource/Rule.php
ADDED
|
@@ -0,0 +1,19 @@
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
| 1 |
+
<?php
|
| 2 |
+
|
| 3 |
+
|
| 4 |
+
|
| 5 |
+
/**
|
| 6 |
+
* Hipay Rule resource model
|
| 7 |
+
*/
|
| 8 |
+
class Allopass_Hipay_Model_Resource_Rule extends Mage_Rule_Model_Mysql4_Rule
|
| 9 |
+
{
|
| 10 |
+
|
| 11 |
+
/**
|
| 12 |
+
* Initialize main table and table id field
|
| 13 |
+
*/
|
| 14 |
+
protected function _construct()
|
| 15 |
+
{
|
| 16 |
+
$this->_init('hipay/rule', 'rule_id');
|
| 17 |
+
}
|
| 18 |
+
|
| 19 |
+
}
|
app/code/community/Allopass/Hipay/Model/Resource/Rule/Collection.php
ADDED
|
@@ -0,0 +1,20 @@
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
| 1 |
+
<?php
|
| 2 |
+
|
| 3 |
+
|
| 4 |
+
/**
|
| 5 |
+
* Hipay resource collection model
|
| 6 |
+
*
|
| 7 |
+
*/
|
| 8 |
+
class Allopass_Hipay_Model_Resource_Rule_Collection extends Mage_Rule_Model_Mysql4_Rule_Collection
|
| 9 |
+
{
|
| 10 |
+
|
| 11 |
+
/**
|
| 12 |
+
* Set resource model and determine field mapping
|
| 13 |
+
*/
|
| 14 |
+
protected function _construct()
|
| 15 |
+
{
|
| 16 |
+
$this->_init('hipay/rule');
|
| 17 |
+
$this->_map['fields']['rule_id'] = 'main_table.rule_id';
|
| 18 |
+
}
|
| 19 |
+
|
| 20 |
+
}
|
app/code/community/Allopass/Hipay/Model/Rule.php
ADDED
|
@@ -0,0 +1,44 @@
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
| 1 |
+
<?php
|
| 2 |
+
class Allopass_Hipay_Model_Rule extends Mage_Rule_Model_Rule
|
| 3 |
+
{
|
| 4 |
+
|
| 5 |
+
/**
|
| 6 |
+
* Init resource model and id field
|
| 7 |
+
*/
|
| 8 |
+
protected function _construct()
|
| 9 |
+
{
|
| 10 |
+
parent::_construct();
|
| 11 |
+
$this->_init('hipay/rule');
|
| 12 |
+
$this->setIdFieldName('rule_id');
|
| 13 |
+
}
|
| 14 |
+
|
| 15 |
+
/**
|
| 16 |
+
* Getter for rule conditions collection
|
| 17 |
+
*
|
| 18 |
+
* @return Mage_CatalogRule_Model_Rule_Condition_Combine
|
| 19 |
+
*/
|
| 20 |
+
public function getConditionsInstance()
|
| 21 |
+
{
|
| 22 |
+
return Mage::getModel('hipay/rule_condition_combine')->setPaymentMethodCode($this->getMethodCode());
|
| 23 |
+
}
|
| 24 |
+
|
| 25 |
+
/**
|
| 26 |
+
* Get rule condition product combine model instance
|
| 27 |
+
*
|
| 28 |
+
* @return Mage_SalesRule_Model_Rule_Condition_Product_Combine
|
| 29 |
+
*/
|
| 30 |
+
public function getActionsInstance()
|
| 31 |
+
{
|
| 32 |
+
return Mage::getModel('hipay/rule_condition_product_combine');
|
| 33 |
+
}
|
| 34 |
+
|
| 35 |
+
public function getConditions()
|
| 36 |
+
{
|
| 37 |
+
parent::getConditions();
|
| 38 |
+
|
| 39 |
+
$this->_conditions->setPaymentMethodCode($this->getMethodCode());
|
| 40 |
+
|
| 41 |
+
return $this->_conditions;
|
| 42 |
+
}
|
| 43 |
+
|
| 44 |
+
}
|
app/code/community/Allopass/Hipay/Model/Rule/Condition/Address.php
ADDED
|
@@ -0,0 +1,231 @@
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
| 1 |
+
<?php
|
| 2 |
+
|
| 3 |
+
|
| 4 |
+
class Allopass_Hipay_Model_Rule_Condition_Address extends Mage_Rule_Model_Condition_Abstract
|
| 5 |
+
{
|
| 6 |
+
public function loadAttributeOptions()
|
| 7 |
+
{
|
| 8 |
+
$attributes = array(
|
| 9 |
+
'base_subtotal' => Mage::helper('sales')->__('Subtotal'),
|
| 10 |
+
'base_grand_total' => Mage::helper('sales')->__('Grand Total'),
|
| 11 |
+
'base_currency_code' => Mage::helper('adminhtml')->__('Currency'),
|
| 12 |
+
'items_qty' => Mage::helper('salesrule')->__('Total Items Quantity'),
|
| 13 |
+
'weight' => Mage::helper('salesrule')->__('Total Weight'),
|
| 14 |
+
'created_at' => Mage::helper('hipay')->__("Order's time"),
|
| 15 |
+
'shipping_method' => Mage::helper('salesrule')->__('Shipping Method'),
|
| 16 |
+
'billing_postcode' => Mage::helper('hipay')->__('Billing Postcode'),
|
| 17 |
+
'billing_region' => Mage::helper('hipay')->__('Billing Region'),
|
| 18 |
+
'billing_region_id' => Mage::helper('hipay')->__('Billing State/Province'),
|
| 19 |
+
'billing_country_id' => Mage::helper('hipay')->__('Billing Country'),
|
| 20 |
+
);
|
| 21 |
+
|
| 22 |
+
$this->setAttributeOption($attributes);
|
| 23 |
+
|
| 24 |
+
return $this;
|
| 25 |
+
}
|
| 26 |
+
|
| 27 |
+
public function getInputType()
|
| 28 |
+
{
|
| 29 |
+
switch ($this->getAttribute()) {
|
| 30 |
+
case 'base_subtotal': case 'weight': case 'total_qty': case 'base_grandtotal':
|
| 31 |
+
return 'numeric';
|
| 32 |
+
case 'shipping_method': case 'billing_country_id': case 'billing_region_id': case 'base_currency_code':
|
| 33 |
+
return 'select';
|
| 34 |
+
case 'created_at':
|
| 35 |
+
return 'boolean' ;
|
| 36 |
+
}
|
| 37 |
+
return 'string';
|
| 38 |
+
}
|
| 39 |
+
|
| 40 |
+
public function getValueElementType()
|
| 41 |
+
{
|
| 42 |
+
switch ($this->getAttribute()) {
|
| 43 |
+
case 'shipping_method': case 'billing_country_id': case 'billing_region_id': case 'base_currency_code': case 'created_at':
|
| 44 |
+
return 'select';
|
| 45 |
+
}
|
| 46 |
+
return 'text';
|
| 47 |
+
}
|
| 48 |
+
|
| 49 |
+
|
| 50 |
+
|
| 51 |
+
|
| 52 |
+
public function getValueSelectOptions()
|
| 53 |
+
{
|
| 54 |
+
if (!$this->hasData('value_select_options')) {
|
| 55 |
+
switch ($this->getAttribute()) {
|
| 56 |
+
case 'billing_country_id':
|
| 57 |
+
$options = Mage::getModel('adminhtml/system_config_source_country')
|
| 58 |
+
->toOptionArray();
|
| 59 |
+
break;
|
| 60 |
+
|
| 61 |
+
case 'billing_region_id':
|
| 62 |
+
$options = Mage::getModel('adminhtml/system_config_source_allregion')
|
| 63 |
+
->toOptionArray();
|
| 64 |
+
break;
|
| 65 |
+
|
| 66 |
+
case 'shipping_method':
|
| 67 |
+
$options = Mage::getModel('adminhtml/system_config_source_shipping_allmethods')
|
| 68 |
+
->toOptionArray();
|
| 69 |
+
break;
|
| 70 |
+
|
| 71 |
+
case 'base_currency_code':
|
| 72 |
+
$options = Mage::getModel('adminhtml/system_config_source_currency')
|
| 73 |
+
->toOptionArray(false);
|
| 74 |
+
break;
|
| 75 |
+
case 'created_at':
|
| 76 |
+
$options = array(
|
| 77 |
+
array("value"=>"00::8","label"=>Mage::helper('hipay')->__("Midnight - 8:00 a.m.")),
|
| 78 |
+
array("value"=>"8::15","label"=>Mage::helper('hipay')->__("8:00 a.m. - 3:00 p.m.")),
|
| 79 |
+
array("value"=>"15::20","label"=>Mage::helper('hipay')->__("3:00 pm. - 8:00 p.m.")),
|
| 80 |
+
array("value"=>"20::23","label"=>Mage::helper('hipay')->__("8:00 p.m. - 11:59 p.m.")),
|
| 81 |
+
);
|
| 82 |
+
break;
|
| 83 |
+
|
| 84 |
+
default:
|
| 85 |
+
$options = array();
|
| 86 |
+
}
|
| 87 |
+
$this->setData('value_select_options', $options);
|
| 88 |
+
}
|
| 89 |
+
return $this->getData('value_select_options');
|
| 90 |
+
}
|
| 91 |
+
|
| 92 |
+
/**
|
| 93 |
+
* Validate Address Rule Condition
|
| 94 |
+
*
|
| 95 |
+
* @param Varien_Object $object
|
| 96 |
+
* @return bool
|
| 97 |
+
*/
|
| 98 |
+
public function validate(Varien_Object $object)
|
| 99 |
+
{
|
| 100 |
+
$quote = Mage::getModel('sales/quote')->load($object->getQuoteId());
|
| 101 |
+
$address = $quote->getBillingAddress();
|
| 102 |
+
|
| 103 |
+
//Get infos from billing address
|
| 104 |
+
$toValidate = new Varien_Object();
|
| 105 |
+
$toValidate->setBillingPostcode($address->getPostcode());
|
| 106 |
+
$toValidate->setBillingRegion($address->getRegion());
|
| 107 |
+
$toValidate->setBillingRegionId($address->getRegionId());
|
| 108 |
+
$toValidate->setBillingCountryId($address->getCountryId());
|
| 109 |
+
|
| 110 |
+
if(!$quote->isVirtual()){//Get infos from shipping address
|
| 111 |
+
$address = $quote->getShippingAddress();
|
| 112 |
+
}
|
| 113 |
+
|
| 114 |
+
$toValidate->setBaseSubtotal($address->getBaseSubtotal());
|
| 115 |
+
$toValidate->setBaseGrandTotal($address->getBaseGrandTotal());
|
| 116 |
+
$toValidate->setWeight($address->getWeight());
|
| 117 |
+
$toValidate->setShippingMethod($address->getShippingMethod());
|
| 118 |
+
|
| 119 |
+
$toValidate->setTotalQty($quote->getItemsQty());
|
| 120 |
+
$toValidate->setBaseCurrencyCode($quote->getBaseCurrencyCode());
|
| 121 |
+
|
| 122 |
+
$toValidate->setCreatedAt($this->_getFormatCreatedAt($object));
|
| 123 |
+
|
| 124 |
+
return parent::validate($toValidate);
|
| 125 |
+
|
| 126 |
+
}
|
| 127 |
+
|
| 128 |
+
protected function _getFormatCreatedAt($object)
|
| 129 |
+
{
|
| 130 |
+
$created_at = $object->getCreatedAt();
|
| 131 |
+
|
| 132 |
+
if(!$created_at instanceof Zend_Date)
|
| 133 |
+
$created_at = Mage::app()->getLocale()->storeDate($object->getStoreId(),$created_at,true);
|
| 134 |
+
|
| 135 |
+
$hour = (int)$created_at->toString("H");
|
| 136 |
+
|
| 137 |
+
switch (true) {
|
| 138 |
+
case ($hour >= 0 && $hour <= 8):
|
| 139 |
+
return '00::8';
|
| 140 |
+
case ($hour > 8 && $hour <= 15):
|
| 141 |
+
return '8::15';
|
| 142 |
+
case ($hour > 15 && $hour <= 20):
|
| 143 |
+
return '15::20';
|
| 144 |
+
case ($hour > 20 && $hour <= 23):
|
| 145 |
+
return '20::23';
|
| 146 |
+
|
| 147 |
+
}
|
| 148 |
+
|
| 149 |
+
return '';
|
| 150 |
+
}
|
| 151 |
+
|
| 152 |
+
public function getTypeElement()
|
| 153 |
+
{
|
| 154 |
+
return $this->getForm()->addField($this->getPrefix() . '__' . $this->getId() .'_'. $this->getPaymentMethodCode() . '__type', 'hidden', array(
|
| 155 |
+
//'name' => 'rule_' . $this->getPaymentMethodCode() . '[' . $this->getPrefix() . '][' . $this->getId().'_'. $this->getPaymentMethodCode() . '][type]',
|
| 156 |
+
'name' => 'rule_' . $this->getPaymentMethodCode() . '[' . $this->getPrefix() . '][' . $this->getId() . '][type]',
|
| 157 |
+
'value' => $this->getType(),
|
| 158 |
+
'no_span' => true,
|
| 159 |
+
'class' => 'hidden',
|
| 160 |
+
));
|
| 161 |
+
}
|
| 162 |
+
|
| 163 |
+
public function getAttributeElement()
|
| 164 |
+
{
|
| 165 |
+
if (is_null($this->getAttribute())) {
|
| 166 |
+
foreach ($this->getAttributeOption() as $k => $v) {
|
| 167 |
+
$this->setAttribute($k);
|
| 168 |
+
break;
|
| 169 |
+
}
|
| 170 |
+
}
|
| 171 |
+
return $this->getForm()->addField($this->getPrefix().'__'.$this->getId().'_'. $this->getPaymentMethodCode().'__attribute', 'select', array(
|
| 172 |
+
//'name'=>'rule_' . $this->getPaymentMethodCode() . '['.$this->getPrefix().']['.$this->getId().'_'. $this->getPaymentMethodCode().'][attribute]',
|
| 173 |
+
'name'=>'rule_' . $this->getPaymentMethodCode() . '['.$this->getPrefix().']['.$this->getId().'][attribute]',
|
| 174 |
+
'values'=>$this->getAttributeSelectOptions(),
|
| 175 |
+
'value'=>$this->getAttribute(),
|
| 176 |
+
'value_name'=>$this->getAttributeName(),
|
| 177 |
+
))->setRenderer(Mage::getBlockSingleton('rule/editable'));
|
| 178 |
+
}
|
| 179 |
+
|
| 180 |
+
/**
|
| 181 |
+
* Retrieve Condition Operator element Instance
|
| 182 |
+
* If the operator value is empty - define first available operator value as default
|
| 183 |
+
*
|
| 184 |
+
* @return Varien_Data_Form_Element_Select
|
| 185 |
+
*/
|
| 186 |
+
public function getOperatorElement()
|
| 187 |
+
{
|
| 188 |
+
$options = $this->getOperatorSelectOptions();
|
| 189 |
+
if (is_null($this->getOperator())) {
|
| 190 |
+
foreach ($options as $option) {
|
| 191 |
+
$this->setOperator($option['value']);
|
| 192 |
+
break;
|
| 193 |
+
}
|
| 194 |
+
}
|
| 195 |
+
|
| 196 |
+
$elementId = sprintf('%s__%s__operator', $this->getPrefix(), $this->getId().'_'. $this->getPaymentMethodCode());
|
| 197 |
+
//$elementName = sprintf('rule_'.$this->getPaymentMethodCode().'[%s][%s][operator]', $this->getPrefix(), $this->getId().'_'. $this->getPaymentMethodCode());
|
| 198 |
+
$elementName = sprintf('rule_'.$this->getPaymentMethodCode().'[%s][%s][operator]', $this->getPrefix(), $this->getId());
|
| 199 |
+
$element = $this->getForm()->addField($elementId, 'select', array(
|
| 200 |
+
'name' => $elementName,
|
| 201 |
+
'values' => $options,
|
| 202 |
+
'value' => $this->getOperator(),
|
| 203 |
+
'value_name' => $this->getOperatorName(),
|
| 204 |
+
));
|
| 205 |
+
$element->setRenderer(Mage::getBlockSingleton('rule/editable'));
|
| 206 |
+
|
| 207 |
+
return $element;
|
| 208 |
+
}
|
| 209 |
+
|
| 210 |
+
public function getValueElement()
|
| 211 |
+
{
|
| 212 |
+
$elementParams = array(
|
| 213 |
+
//'name' => 'rule_'.$this->getPaymentMethodCode().'['.$this->getPrefix().']['.$this->getId().'_'. $this->getPaymentMethodCode().'][value]',
|
| 214 |
+
'name' => 'rule_'.$this->getPaymentMethodCode().'['.$this->getPrefix().']['.$this->getId().'][value]',
|
| 215 |
+
'value' => $this->getValue(),
|
| 216 |
+
'values' => $this->getValueSelectOptions(),
|
| 217 |
+
'value_name' => $this->getValueName(),
|
| 218 |
+
'after_element_html' => $this->getValueAfterElementHtml(),
|
| 219 |
+
'explicit_apply' => $this->getExplicitApply(),
|
| 220 |
+
);
|
| 221 |
+
if ($this->getInputType()=='date') {
|
| 222 |
+
// date format intentionally hard-coded
|
| 223 |
+
$elementParams['input_format'] = Varien_Date::DATE_INTERNAL_FORMAT;
|
| 224 |
+
$elementParams['format'] = Varien_Date::DATE_INTERNAL_FORMAT;
|
| 225 |
+
}
|
| 226 |
+
return $this->getForm()->addField($this->getPrefix().'__'.$this->getId().'_'. $this->getPaymentMethodCode().'__value',
|
| 227 |
+
$this->getValueElementType(),
|
| 228 |
+
$elementParams
|
| 229 |
+
)->setRenderer($this->getValueElementRenderer());
|
| 230 |
+
}
|
| 231 |
+
}
|
app/code/community/Allopass/Hipay/Model/Rule/Condition/Combine.php
ADDED
|
@@ -0,0 +1,183 @@
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
| 1 |
+
<?php
|
| 2 |
+
|
| 3 |
+
/**
|
| 4 |
+
* Hipay Rule Combine Condition data model
|
| 5 |
+
*/
|
| 6 |
+
class Allopass_Hipay_Model_Rule_Condition_Combine extends Mage_Rule_Model_Condition_Combine
|
| 7 |
+
{
|
| 8 |
+
protected $_paymentMethodCode = null;
|
| 9 |
+
|
| 10 |
+
public function __construct()
|
| 11 |
+
{
|
| 12 |
+
parent::__construct();
|
| 13 |
+
$this->setType('hipay/rule_condition_combine');
|
| 14 |
+
}
|
| 15 |
+
|
| 16 |
+
|
| 17 |
+
|
| 18 |
+
public function getNewChildSelectOptions()
|
| 19 |
+
{
|
| 20 |
+
$addressCondition = Mage::getModel('hipay/rule_condition_address');
|
| 21 |
+
$addressAttributes = $addressCondition->loadAttributeOptions()->getAttributeOption();
|
| 22 |
+
$attributes = array();
|
| 23 |
+
foreach ($addressAttributes as $code=>$label) {
|
| 24 |
+
$attributes[] = array('value'=>'hipay/rule_condition_address|'.$code.'|'.$this->getPaymentMethodCode(), 'label'=>$label);
|
| 25 |
+
}
|
| 26 |
+
|
| 27 |
+
$customerCondition = Mage::getModel('hipay/rule_condition_customer');
|
| 28 |
+
$customerAttributes = $customerCondition->loadAttributeOptions()->getAttributeOption();
|
| 29 |
+
$cAttributes = array();
|
| 30 |
+
foreach ($customerAttributes as $code=>$label) {
|
| 31 |
+
$cAttributes[] = array('value'=>'hipay/rule_condition_customer|'.$code.'|'.$this->getPaymentMethodCode(), 'label'=>$label);
|
| 32 |
+
}
|
| 33 |
+
|
| 34 |
+
$conditions = parent::getNewChildSelectOptions();
|
| 35 |
+
$conditions = array_merge_recursive($conditions, array(
|
| 36 |
+
array('value'=>'hipay/rule_condition_product_found||'.$this->getPaymentMethodCode(), 'label'=>Mage::helper('salesrule')->__('Product attribute combination')),
|
| 37 |
+
array('value'=>'hipay/rule_condition_product_subselect||'.$this->getPaymentMethodCode(), 'label'=>Mage::helper('salesrule')->__('Products subselection')),
|
| 38 |
+
array('value'=>'hipay/rule_condition_combine||'.$this->getPaymentMethodCode(), 'label'=>Mage::helper('salesrule')->__('Conditions combination')),
|
| 39 |
+
array('label'=>Mage::helper('hipay')->__('Order Attribute'), 'value'=>$attributes),
|
| 40 |
+
array('label'=>Mage::helper('hipay')->__('Customer Attribute'), 'value'=>$cAttributes),
|
| 41 |
+
));
|
| 42 |
+
|
| 43 |
+
$additional = new Varien_Object();
|
| 44 |
+
Mage::dispatchEvent('hipay_rule_condition_combine', array('additional' => $additional));
|
| 45 |
+
if ($additionalConditions = $additional->getConditions()) {
|
| 46 |
+
$conditions = array_merge_recursive($conditions, $additionalConditions);
|
| 47 |
+
}
|
| 48 |
+
|
| 49 |
+
return $conditions;
|
| 50 |
+
}
|
| 51 |
+
|
| 52 |
+
public function getTypeElement()
|
| 53 |
+
{
|
| 54 |
+
return $this->getForm()->addField($this->getPrefix() . '__' . $this->getId() .'_'. $this->getPaymentMethodCode() . '__type', 'hidden', array(
|
| 55 |
+
//'name' => 'rule_' . $this->getPaymentMethodCode() . '[' . $this->getPrefix() . '][' . $this->getId().'_'. $this->getPaymentMethodCode() . '][type]',
|
| 56 |
+
'name' => 'rule_' . $this->getPaymentMethodCode() . '[' . $this->getPrefix() . '][' . $this->getId() . '][type]',
|
| 57 |
+
'value' => $this->getType(),
|
| 58 |
+
'no_span' => true,
|
| 59 |
+
'class' => 'hidden',
|
| 60 |
+
));
|
| 61 |
+
}
|
| 62 |
+
|
| 63 |
+
public function getAttributeElement()
|
| 64 |
+
{
|
| 65 |
+
if (is_null($this->getAttribute())) {
|
| 66 |
+
foreach ($this->getAttributeOption() as $k => $v) {
|
| 67 |
+
$this->setAttribute($k);
|
| 68 |
+
break;
|
| 69 |
+
}
|
| 70 |
+
}
|
| 71 |
+
return $this->getForm()->addField($this->getPrefix().'__'.$this->getId().'_'. $this->getPaymentMethodCode().'__attribute', 'select', array(
|
| 72 |
+
//'name'=>'rule_' . $this->getPaymentMethodCode() . '['.$this->getPrefix().']['.$this->getId().'_'. $this->getPaymentMethodCode().'][attribute]',
|
| 73 |
+
'name'=>'rule_' . $this->getPaymentMethodCode() . '['.$this->getPrefix().']['.$this->getId().'][attribute]',
|
| 74 |
+
'values'=>$this->getAttributeSelectOptions(),
|
| 75 |
+
'value'=>$this->getAttribute(),
|
| 76 |
+
'value_name'=>$this->getAttributeName(),
|
| 77 |
+
))->setRenderer(Mage::getBlockSingleton('rule/editable'));
|
| 78 |
+
}
|
| 79 |
+
|
| 80 |
+
/**
|
| 81 |
+
* Retrieve Condition Operator element Instance
|
| 82 |
+
* If the operator value is empty - define first available operator value as default
|
| 83 |
+
*
|
| 84 |
+
* @return Varien_Data_Form_Element_Select
|
| 85 |
+
*/
|
| 86 |
+
public function getOperatorElement()
|
| 87 |
+
{
|
| 88 |
+
$options = $this->getOperatorSelectOptions();
|
| 89 |
+
if (is_null($this->getOperator())) {
|
| 90 |
+
foreach ($options as $option) {
|
| 91 |
+
$this->setOperator($option['value']);
|
| 92 |
+
break;
|
| 93 |
+
}
|
| 94 |
+
}
|
| 95 |
+
|
| 96 |
+
$elementId = sprintf('%s__%s__operator', $this->getPrefix(), $this->getId().'_'. $this->getPaymentMethodCode());
|
| 97 |
+
//$elementName = sprintf('rule_'.$this->getPaymentMethodCode().'[%s][%s][operator]', $this->getPrefix(), $this->getId().'_'. $this->getPaymentMethodCode());
|
| 98 |
+
$elementName = sprintf('rule_'.$this->getPaymentMethodCode().'[%s][%s][operator]', $this->getPrefix(), $this->getId());
|
| 99 |
+
$element = $this->getForm()->addField($elementId, 'select', array(
|
| 100 |
+
'name' => $elementName,
|
| 101 |
+
'values' => $options,
|
| 102 |
+
'value' => $this->getOperator(),
|
| 103 |
+
'value_name' => $this->getOperatorName(),
|
| 104 |
+
));
|
| 105 |
+
$element->setRenderer(Mage::getBlockSingleton('rule/editable'));
|
| 106 |
+
|
| 107 |
+
return $element;
|
| 108 |
+
}
|
| 109 |
+
|
| 110 |
+
public function getValueElement()
|
| 111 |
+
{
|
| 112 |
+
$elementParams = array(
|
| 113 |
+
//'name' => 'rule_'.$this->getPaymentMethodCode().'['.$this->getPrefix().']['.$this->getId().'_'. $this->getPaymentMethodCode().'][value]',
|
| 114 |
+
'name' => 'rule_'.$this->getPaymentMethodCode().'['.$this->getPrefix().']['.$this->getId().'][value]',
|
| 115 |
+
'value' => $this->getValue(),
|
| 116 |
+
'values' => $this->getValueSelectOptions(),
|
| 117 |
+
'value_name' => $this->getValueName(),
|
| 118 |
+
'after_element_html' => $this->getValueAfterElementHtml(),
|
| 119 |
+
'explicit_apply' => $this->getExplicitApply(),
|
| 120 |
+
);
|
| 121 |
+
if ($this->getInputType()=='date') {
|
| 122 |
+
// date format intentionally hard-coded
|
| 123 |
+
$elementParams['input_format'] = Varien_Date::DATE_INTERNAL_FORMAT;
|
| 124 |
+
$elementParams['format'] = Varien_Date::DATE_INTERNAL_FORMAT;
|
| 125 |
+
}
|
| 126 |
+
return $this->getForm()->addField($this->getPrefix().'__'.$this->getId().'_'. $this->getPaymentMethodCode().'__value',
|
| 127 |
+
$this->getValueElementType(),
|
| 128 |
+
$elementParams
|
| 129 |
+
)->setRenderer($this->getValueElementRenderer());
|
| 130 |
+
}
|
| 131 |
+
|
| 132 |
+
public function getNewChildElement()
|
| 133 |
+
{
|
| 134 |
+
return $this->getForm()->addField($this->getPrefix().'__'.$this->getId().'_'. $this->getPaymentMethodCode().'__new_child', 'select', array(
|
| 135 |
+
//'name'=>'rule_'.$this->getPaymentMethodCode().'['.$this->getPrefix().']['.$this->getId().'_'. $this->getPaymentMethodCode().'][new_child]',
|
| 136 |
+
'name'=>'rule_'.$this->getPaymentMethodCode().'['.$this->getPrefix().']['.$this->getId().'][new_child]',
|
| 137 |
+
'values'=>$this->getNewChildSelectOptions(),
|
| 138 |
+
'value_name'=>$this->getNewChildName(),
|
| 139 |
+
))->setRenderer(Mage::getBlockSingleton('rule/newchild'));
|
| 140 |
+
}
|
| 141 |
+
|
| 142 |
+
public function getAggregatorElement()
|
| 143 |
+
{
|
| 144 |
+
if (is_null($this->getAggregator())) {
|
| 145 |
+
foreach ($this->getAggregatorOption() as $k=>$v) {
|
| 146 |
+
$this->setAggregator($k);
|
| 147 |
+
break;
|
| 148 |
+
}
|
| 149 |
+
}
|
| 150 |
+
|
| 151 |
+
return $this->getForm()->addField($this->getPrefix().'__'.$this->getId().'_'. $this->getPaymentMethodCode().'__aggregator', 'select', array(
|
| 152 |
+
// 'name'=>'rule_'.$this->getPaymentMethodCode().'['.$this->getPrefix().']['.$this->getId().'_'. $this->getPaymentMethodCode().'][aggregator]',
|
| 153 |
+
'name'=>'rule_'.$this->getPaymentMethodCode().'['.$this->getPrefix().']['.$this->getId().'][aggregator]',
|
| 154 |
+
'values'=>$this->getAggregatorSelectOptions(),
|
| 155 |
+
'value'=>$this->getAggregator(),
|
| 156 |
+
'value_name'=>$this->getAggregatorName(),
|
| 157 |
+
))->setRenderer(Mage::getBlockSingleton('rule/editable'));
|
| 158 |
+
}
|
| 159 |
+
|
| 160 |
+
public function asHtmlRecursive()
|
| 161 |
+
{
|
| 162 |
+
$html = $this->asHtml().'<ul id="'.$this->getPrefix().'__'.$this->getId().'_'. $this->getPaymentMethodCode().'__children" class="rule-param-children">';
|
| 163 |
+
foreach ($this->getConditions() as $cond) {
|
| 164 |
+
$cond->setPaymentMethodCode($this->getPaymentMethodCode());
|
| 165 |
+
$html .= '<li>'.$cond->asHtmlRecursive().'</li>';
|
| 166 |
+
}
|
| 167 |
+
$html .= '<li>'.$this->getNewChildElement()->getHtml().'</li></ul>';
|
| 168 |
+
return $html;
|
| 169 |
+
}
|
| 170 |
+
|
| 171 |
+
|
| 172 |
+
public function getPaymentMethodCode()
|
| 173 |
+
{
|
| 174 |
+
|
| 175 |
+
return $this->_paymentMethodCode;
|
| 176 |
+
}
|
| 177 |
+
|
| 178 |
+
public function setPaymentMethodCode($methodCode)
|
| 179 |
+
{
|
| 180 |
+
$this->_paymentMethodCode = $methodCode;
|
| 181 |
+
return $this;
|
| 182 |
+
}
|
| 183 |
+
}
|
app/code/community/Allopass/Hipay/Model/Rule/Condition/Customer.php
ADDED
|
@@ -0,0 +1,186 @@
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
| 1 |
+
<?php
|
| 2 |
+
class Allopass_Hipay_Model_Rule_Condition_Customer extends Mage_Rule_Model_Condition_Abstract
|
| 3 |
+
{
|
| 4 |
+
public function loadAttributeOptions()
|
| 5 |
+
{
|
| 6 |
+
$attributes = array(
|
| 7 |
+
'orders_count' => Mage::helper('hipay')->__('Orders count'),
|
| 8 |
+
'customer_is_guest' => Mage::helper('sales')->__('Customer is guest'),
|
| 9 |
+
'diff_addresses' => Mage::helper('hipay')->__('Billing and shipping addresses are differents'),
|
| 10 |
+
);
|
| 11 |
+
|
| 12 |
+
$this->setAttributeOption($attributes);
|
| 13 |
+
|
| 14 |
+
return $this;
|
| 15 |
+
}
|
| 16 |
+
|
| 17 |
+
public function getInputType()
|
| 18 |
+
{
|
| 19 |
+
switch ($this->getAttribute()) {
|
| 20 |
+
case 'orders_count':
|
| 21 |
+
return 'numeric';
|
| 22 |
+
case 'customer_is_guest': case 'diff_addresses':
|
| 23 |
+
return 'boolean';
|
| 24 |
+
}
|
| 25 |
+
return 'string';
|
| 26 |
+
}
|
| 27 |
+
|
| 28 |
+
public function getValueElementType()
|
| 29 |
+
{
|
| 30 |
+
switch ($this->getAttribute()) {
|
| 31 |
+
case 'customer_is_guest': case 'diff_addresses':
|
| 32 |
+
return 'select';
|
| 33 |
+
}
|
| 34 |
+
return 'text';
|
| 35 |
+
}
|
| 36 |
+
|
| 37 |
+
public function getValueSelectOptions()
|
| 38 |
+
{
|
| 39 |
+
if (!$this->hasData('value_select_options')) {
|
| 40 |
+
switch ($this->getAttribute()) {
|
| 41 |
+
case 'customer_is_guest':
|
| 42 |
+
case 'diff_addresses':
|
| 43 |
+
$options = Mage::getModel('adminhtml/system_config_source_yesno')
|
| 44 |
+
->toOptionArray();
|
| 45 |
+
break;
|
| 46 |
+
default:
|
| 47 |
+
$options = array();
|
| 48 |
+
}
|
| 49 |
+
$this->setData('value_select_options', $options);
|
| 50 |
+
}
|
| 51 |
+
return $this->getData('value_select_options');
|
| 52 |
+
}
|
| 53 |
+
|
| 54 |
+
/**
|
| 55 |
+
* Validate Address Rule Condition
|
| 56 |
+
*
|
| 57 |
+
* @param Varien_Object $object
|
| 58 |
+
* @return bool
|
| 59 |
+
*/
|
| 60 |
+
public function validate(Varien_Object $object)
|
| 61 |
+
{
|
| 62 |
+
/* @var $order Mage_Sales_Model_Order */
|
| 63 |
+
$order = $object;
|
| 64 |
+
|
| 65 |
+
//Get infos from billing address
|
| 66 |
+
$toValidate = new Varien_Object();
|
| 67 |
+
|
| 68 |
+
$customer_id = $object->getCustomerId();
|
| 69 |
+
$orders_count = $order->getCollection()->addAttributeToFilter('customer_id',$customer_id)->count();
|
| 70 |
+
$toValidate->setOrdersCount($orders_count);
|
| 71 |
+
$toValidate->setCustomerIsGuest(is_null($order->getCustomerIsGuest()) ? 0 : $order->getCustomerIsGuest());
|
| 72 |
+
$toValidate->setDiffAddresses($this->_addressesesAreDifferent($order));
|
| 73 |
+
|
| 74 |
+
return parent::validate($toValidate);
|
| 75 |
+
|
| 76 |
+
}
|
| 77 |
+
|
| 78 |
+
/**
|
| 79 |
+
* @param Mage_Sales_Model_Order $order
|
| 80 |
+
* @return boolean $isDifferent
|
| 81 |
+
*/
|
| 82 |
+
protected function _addressesesAreDifferent($order)
|
| 83 |
+
{
|
| 84 |
+
$isDifferent = false;
|
| 85 |
+
if($order->getIsVirtual())
|
| 86 |
+
return $isDifferent;
|
| 87 |
+
|
| 88 |
+
|
| 89 |
+
$billingAddress = $order->getBillingAddress();
|
| 90 |
+
$shippingAddress = $order->getShippingAddress();
|
| 91 |
+
$methods = array('getStreetFull','getCity','getCountryId','getPostcode','getRegionId');
|
| 92 |
+
|
| 93 |
+
foreach($methods as $method_name)
|
| 94 |
+
{
|
| 95 |
+
$billingValue = call_user_func(array($billingAddress, $method_name));
|
| 96 |
+
$shippingValue = call_user_func(array($shippingAddress,$method_name));
|
| 97 |
+
if($billingValue != $shippingValue)
|
| 98 |
+
{
|
| 99 |
+
$isDifferent = true;
|
| 100 |
+
break;
|
| 101 |
+
}
|
| 102 |
+
}
|
| 103 |
+
|
| 104 |
+
return $isDifferent;
|
| 105 |
+
}
|
| 106 |
+
|
| 107 |
+
public function getTypeElement()
|
| 108 |
+
{
|
| 109 |
+
return $this->getForm()->addField($this->getPrefix() . '__' . $this->getId() .'_'. $this->getPaymentMethodCode() . '__type', 'hidden', array(
|
| 110 |
+
//'name' => 'rule_' . $this->getPaymentMethodCode() . '[' . $this->getPrefix() . '][' . $this->getId().'_'. $this->getPaymentMethodCode() . '][type]',
|
| 111 |
+
'name' => 'rule_' . $this->getPaymentMethodCode() . '[' . $this->getPrefix() . '][' . $this->getId() . '][type]',
|
| 112 |
+
'value' => $this->getType(),
|
| 113 |
+
'no_span' => true,
|
| 114 |
+
'class' => 'hidden',
|
| 115 |
+
));
|
| 116 |
+
}
|
| 117 |
+
|
| 118 |
+
public function getAttributeElement()
|
| 119 |
+
{
|
| 120 |
+
if (is_null($this->getAttribute())) {
|
| 121 |
+
foreach ($this->getAttributeOption() as $k => $v) {
|
| 122 |
+
$this->setAttribute($k);
|
| 123 |
+
break;
|
| 124 |
+
}
|
| 125 |
+
}
|
| 126 |
+
return $this->getForm()->addField($this->getPrefix().'__'.$this->getId().'_'. $this->getPaymentMethodCode().'__attribute', 'select', array(
|
| 127 |
+
//'name'=>'rule_' . $this->getPaymentMethodCode() . '['.$this->getPrefix().']['.$this->getId().'_'. $this->getPaymentMethodCode().'][attribute]',
|
| 128 |
+
'name'=>'rule_' . $this->getPaymentMethodCode() . '['.$this->getPrefix().']['.$this->getId().'][attribute]',
|
| 129 |
+
'values'=>$this->getAttributeSelectOptions(),
|
| 130 |
+
'value'=>$this->getAttribute(),
|
| 131 |
+
'value_name'=>$this->getAttributeName(),
|
| 132 |
+
))->setRenderer(Mage::getBlockSingleton('rule/editable'));
|
| 133 |
+
}
|
| 134 |
+
|
| 135 |
+
/**
|
| 136 |
+
* Retrieve Condition Operator element Instance
|
| 137 |
+
* If the operator value is empty - define first available operator value as default
|
| 138 |
+
*
|
| 139 |
+
* @return Varien_Data_Form_Element_Select
|
| 140 |
+
*/
|
| 141 |
+
public function getOperatorElement()
|
| 142 |
+
{
|
| 143 |
+
$options = $this->getOperatorSelectOptions();
|
| 144 |
+
if (is_null($this->getOperator())) {
|
| 145 |
+
foreach ($options as $option) {
|
| 146 |
+
$this->setOperator($option['value']);
|
| 147 |
+
break;
|
| 148 |
+
}
|
| 149 |
+
}
|
| 150 |
+
|
| 151 |
+
$elementId = sprintf('%s__%s__operator', $this->getPrefix(), $this->getId().'_'. $this->getPaymentMethodCode());
|
| 152 |
+
//$elementName = sprintf('rule_'.$this->getPaymentMethodCode().'[%s][%s][operator]', $this->getPrefix(), $this->getId().'_'. $this->getPaymentMethodCode());
|
| 153 |
+
$elementName = sprintf('rule_'.$this->getPaymentMethodCode().'[%s][%s][operator]', $this->getPrefix(), $this->getId());
|
| 154 |
+
$element = $this->getForm()->addField($elementId, 'select', array(
|
| 155 |
+
'name' => $elementName,
|
| 156 |
+
'values' => $options,
|
| 157 |
+
'value' => $this->getOperator(),
|
| 158 |
+
'value_name' => $this->getOperatorName(),
|
| 159 |
+
));
|
| 160 |
+
$element->setRenderer(Mage::getBlockSingleton('rule/editable'));
|
| 161 |
+
|
| 162 |
+
return $element;
|
| 163 |
+
}
|
| 164 |
+
|
| 165 |
+
public function getValueElement()
|
| 166 |
+
{
|
| 167 |
+
$elementParams = array(
|
| 168 |
+
//'name' => 'rule_'.$this->getPaymentMethodCode().'['.$this->getPrefix().']['.$this->getId().'_'. $this->getPaymentMethodCode().'][value]',
|
| 169 |
+
'name' => 'rule_'.$this->getPaymentMethodCode().'['.$this->getPrefix().']['.$this->getId().'][value]',
|
| 170 |
+
'value' => $this->getValue(),
|
| 171 |
+
'values' => $this->getValueSelectOptions(),
|
| 172 |
+
'value_name' => $this->getValueName(),
|
| 173 |
+
'after_element_html' => $this->getValueAfterElementHtml(),
|
| 174 |
+
'explicit_apply' => $this->getExplicitApply(),
|
| 175 |
+
);
|
| 176 |
+
if ($this->getInputType()=='date') {
|
| 177 |
+
// date format intentionally hard-coded
|
| 178 |
+
$elementParams['input_format'] = Varien_Date::DATE_INTERNAL_FORMAT;
|
| 179 |
+
$elementParams['format'] = Varien_Date::DATE_INTERNAL_FORMAT;
|
| 180 |
+
}
|
| 181 |
+
return $this->getForm()->addField($this->getPrefix().'__'.$this->getId().'_'. $this->getPaymentMethodCode().'__value',
|
| 182 |
+
$this->getValueElementType(),
|
| 183 |
+
$elementParams
|
| 184 |
+
)->setRenderer($this->getValueElementRenderer());
|
| 185 |
+
}
|
| 186 |
+
}
|
app/code/community/Allopass/Hipay/Model/Rule/Condition/Product.php
ADDED
|
@@ -0,0 +1,128 @@
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
| 1 |
+
<?php
|
| 2 |
+
|
| 3 |
+
/**
|
| 4 |
+
* 3ds Rule Product Condition data model
|
| 5 |
+
*/
|
| 6 |
+
class Allopass_Hipay_Model_Rule_Condition_Product extends Mage_CatalogRule_Model_Rule_Condition_Product
|
| 7 |
+
{
|
| 8 |
+
|
| 9 |
+
|
| 10 |
+
/**
|
| 11 |
+
* Add special attributes
|
| 12 |
+
*
|
| 13 |
+
* @param array $attributes
|
| 14 |
+
*/
|
| 15 |
+
protected function _addSpecialAttributes(array &$attributes)
|
| 16 |
+
{
|
| 17 |
+
parent::_addSpecialAttributes($attributes);
|
| 18 |
+
$attributes['order_item_qty'] = Mage::helper('salesrule')->__('Quantity in order');
|
| 19 |
+
$attributes['order_item_price'] = Mage::helper('salesrule')->__('Price in order');
|
| 20 |
+
$attributes['order_item_row_total'] = Mage::helper('salesrule')->__('Row total in order');
|
| 21 |
+
}
|
| 22 |
+
|
| 23 |
+
/**
|
| 24 |
+
* Validate Product Rule Condition
|
| 25 |
+
*
|
| 26 |
+
* @param Varien_Object $object
|
| 27 |
+
*
|
| 28 |
+
* @return bool
|
| 29 |
+
*/
|
| 30 |
+
public function validate(Varien_Object $object)
|
| 31 |
+
{
|
| 32 |
+
$product = false;
|
| 33 |
+
if ($object->getProduct() instanceof Mage_Catalog_Model_Product) {
|
| 34 |
+
$product = $object->getProduct();
|
| 35 |
+
} else {
|
| 36 |
+
$product = Mage::getModel('catalog/product')
|
| 37 |
+
->load($object->getProductId());
|
| 38 |
+
}
|
| 39 |
+
|
| 40 |
+
$product
|
| 41 |
+
->setOrderItemQty($object->getQtyOrdered())
|
| 42 |
+
->setOrderItemPrice($object->getPrice()) // possible bug: need to use $object->getBasePrice()
|
| 43 |
+
->setOrderItemRowTotal($object->getBaseRowTotal());
|
| 44 |
+
|
| 45 |
+
return parent::validate($product);
|
| 46 |
+
}
|
| 47 |
+
|
| 48 |
+
public function getTypeElement()
|
| 49 |
+
{
|
| 50 |
+
return $this->getForm()->addField($this->getPrefix() . '__' . $this->getId() .'_'. $this->getPaymentMethodCode() . '__type', 'hidden', array(
|
| 51 |
+
//'name' => 'rule_' . $this->getPaymentMethodCode() . '[' . $this->getPrefix() . '][' . $this->getId().'_'. $this->getPaymentMethodCode() . '][type]',
|
| 52 |
+
'name' => 'rule_' . $this->getPaymentMethodCode() . '[' . $this->getPrefix() . '][' . $this->getId() . '][type]',
|
| 53 |
+
'value' => $this->getType(),
|
| 54 |
+
'no_span' => true,
|
| 55 |
+
'class' => 'hidden',
|
| 56 |
+
));
|
| 57 |
+
}
|
| 58 |
+
|
| 59 |
+
public function getAttributeElement()
|
| 60 |
+
{
|
| 61 |
+
if (is_null($this->getAttribute())) {
|
| 62 |
+
foreach ($this->getAttributeOption() as $k => $v) {
|
| 63 |
+
$this->setAttribute($k);
|
| 64 |
+
break;
|
| 65 |
+
}
|
| 66 |
+
}
|
| 67 |
+
return $this->getForm()->addField($this->getPrefix().'__'.$this->getId().'_'. $this->getPaymentMethodCode().'__attribute', 'select', array(
|
| 68 |
+
//'name'=>'rule_' . $this->getPaymentMethodCode() . '['.$this->getPrefix().']['.$this->getId().'_'. $this->getPaymentMethodCode().'][attribute]',
|
| 69 |
+
'name'=>'rule_' . $this->getPaymentMethodCode() . '['.$this->getPrefix().']['.$this->getId().'][attribute]',
|
| 70 |
+
'values'=>$this->getAttributeSelectOptions(),
|
| 71 |
+
'value'=>$this->getAttribute(),
|
| 72 |
+
'value_name'=>$this->getAttributeName(),
|
| 73 |
+
))->setRenderer(Mage::getBlockSingleton('rule/editable'));
|
| 74 |
+
}
|
| 75 |
+
|
| 76 |
+
/**
|
| 77 |
+
* Retrieve Condition Operator element Instance
|
| 78 |
+
* If the operator value is empty - define first available operator value as default
|
| 79 |
+
*
|
| 80 |
+
* @return Varien_Data_Form_Element_Select
|
| 81 |
+
*/
|
| 82 |
+
public function getOperatorElement()
|
| 83 |
+
{
|
| 84 |
+
$options = $this->getOperatorSelectOptions();
|
| 85 |
+
if (is_null($this->getOperator())) {
|
| 86 |
+
foreach ($options as $option) {
|
| 87 |
+
$this->setOperator($option['value']);
|
| 88 |
+
break;
|
| 89 |
+
}
|
| 90 |
+
}
|
| 91 |
+
|
| 92 |
+
$elementId = sprintf('%s__%s__operator', $this->getPrefix(), $this->getId().'_'. $this->getPaymentMethodCode());
|
| 93 |
+
//$elementName = sprintf('rule_'.$this->getPaymentMethodCode().'[%s][%s][operator]', $this->getPrefix(), $this->getId().'_'. $this->getPaymentMethodCode());
|
| 94 |
+
$elementName = sprintf('rule_'.$this->getPaymentMethodCode().'[%s][%s][operator]', $this->getPrefix(), $this->getId());
|
| 95 |
+
$element = $this->getForm()->addField($elementId, 'select', array(
|
| 96 |
+
'name' => $elementName,
|
| 97 |
+
'values' => $options,
|
| 98 |
+
'value' => $this->getOperator(),
|
| 99 |
+
'value_name' => $this->getOperatorName(),
|
| 100 |
+
));
|
| 101 |
+
$element->setRenderer(Mage::getBlockSingleton('rule/editable'));
|
| 102 |
+
|
| 103 |
+
return $element;
|
| 104 |
+
}
|
| 105 |
+
|
| 106 |
+
public function getValueElement()
|
| 107 |
+
{
|
| 108 |
+
$elementParams = array(
|
| 109 |
+
//'name' => 'rule_'.$this->getPaymentMethodCode().'['.$this->getPrefix().']['.$this->getId().'_'. $this->getPaymentMethodCode().'][value]',
|
| 110 |
+
'name' => 'rule_'.$this->getPaymentMethodCode().'['.$this->getPrefix().']['.$this->getId().'][value]',
|
| 111 |
+
'value' => $this->getValue(),
|
| 112 |
+
'values' => $this->getValueSelectOptions(),
|
| 113 |
+
'value_name' => $this->getValueName(),
|
| 114 |
+
'after_element_html' => $this->getValueAfterElementHtml(),
|
| 115 |
+
'explicit_apply' => $this->getExplicitApply(),
|
| 116 |
+
);
|
| 117 |
+
if ($this->getInputType()=='date') {
|
| 118 |
+
// date format intentionally hard-coded
|
| 119 |
+
$elementParams['input_format'] = Varien_Date::DATE_INTERNAL_FORMAT;
|
| 120 |
+
$elementParams['format'] = Varien_Date::DATE_INTERNAL_FORMAT;
|
| 121 |
+
}
|
| 122 |
+
return $this->getForm()->addField($this->getPrefix().'__'.$this->getId().'_'. $this->getPaymentMethodCode().'__value',
|
| 123 |
+
$this->getValueElementType(),
|
| 124 |
+
$elementParams
|
| 125 |
+
)->setRenderer($this->getValueElementRenderer());
|
| 126 |
+
}
|
| 127 |
+
|
| 128 |
+
}
|
app/code/community/Allopass/Hipay/Model/Rule/Condition/Product/Combine.php
ADDED
|
@@ -0,0 +1,172 @@
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
| 1 |
+
<?php
|
| 2 |
+
|
| 3 |
+
class Allopass_Hipay_Model_Rule_Condition_Product_Combine extends Mage_Rule_Model_Condition_Combine
|
| 4 |
+
{
|
| 5 |
+
public function __construct()
|
| 6 |
+
{
|
| 7 |
+
parent::__construct();
|
| 8 |
+
$this->setType('hipay/rule_condition_product_combine');
|
| 9 |
+
}
|
| 10 |
+
|
| 11 |
+
public function getNewChildSelectOptions()
|
| 12 |
+
{
|
| 13 |
+
$productCondition = Mage::getModel('hipay/rule_condition_product');
|
| 14 |
+
$productAttributes = $productCondition->loadAttributeOptions()->getAttributeOption();
|
| 15 |
+
$pAttributes = array();
|
| 16 |
+
$iAttributes = array();
|
| 17 |
+
foreach ($productAttributes as $code=>$label) {
|
| 18 |
+
if (strpos($code, 'order_item_')===0) {
|
| 19 |
+
$iAttributes[] = array('value'=>'hipay/rule_condition_product|'.$code.'|'.$this->getPaymentMethodCode(), 'label'=>$label);
|
| 20 |
+
} else {
|
| 21 |
+
$pAttributes[] = array('value'=>'hipay/rule_condition_product|'.$code.'|'.$this->getPaymentMethodCode(), 'label'=>$label);
|
| 22 |
+
}
|
| 23 |
+
}
|
| 24 |
+
|
| 25 |
+
$conditions = parent::getNewChildSelectOptions();
|
| 26 |
+
$conditions = array_merge_recursive($conditions, array(
|
| 27 |
+
array('value'=>'hipay/rule_condition_product_combine||'.$this->getPaymentMethodCode(), 'label'=>Mage::helper('catalog')->__('Conditions Combination')),
|
| 28 |
+
array('label'=>Mage::helper('hipay')->__('Order Attribute'), 'value'=>$iAttributes),
|
| 29 |
+
array('label'=>Mage::helper('catalog')->__('Product Attribute'), 'value'=>$pAttributes),
|
| 30 |
+
));
|
| 31 |
+
return $conditions;
|
| 32 |
+
}
|
| 33 |
+
|
| 34 |
+
public function collectValidatedAttributes($productCollection)
|
| 35 |
+
{
|
| 36 |
+
foreach ($this->getConditions() as $condition) {
|
| 37 |
+
$condition->collectValidatedAttributes($productCollection);
|
| 38 |
+
}
|
| 39 |
+
return $this;
|
| 40 |
+
}
|
| 41 |
+
|
| 42 |
+
public function getTypeElement()
|
| 43 |
+
{
|
| 44 |
+
return $this->getForm()->addField($this->getPrefix() . '__' . $this->getId() .'_'. $this->getPaymentMethodCode() . '__type', 'hidden', array(
|
| 45 |
+
//'name' => 'rule_' . $this->getPaymentMethodCode() . '[' . $this->getPrefix() . '][' . $this->getId().'_'. $this->getPaymentMethodCode() . '][type]',
|
| 46 |
+
'name' => 'rule_' . $this->getPaymentMethodCode() . '[' . $this->getPrefix() . '][' . $this->getId() . '][type]',
|
| 47 |
+
'value' => $this->getType(),
|
| 48 |
+
'no_span' => true,
|
| 49 |
+
'class' => 'hidden',
|
| 50 |
+
));
|
| 51 |
+
}
|
| 52 |
+
|
| 53 |
+
public function getAttributeElement()
|
| 54 |
+
{
|
| 55 |
+
if (is_null($this->getAttribute())) {
|
| 56 |
+
foreach ($this->getAttributeOption() as $k => $v) {
|
| 57 |
+
$this->setAttribute($k);
|
| 58 |
+
break;
|
| 59 |
+
}
|
| 60 |
+
}
|
| 61 |
+
return $this->getForm()->addField($this->getPrefix().'__'.$this->getId().'_'. $this->getPaymentMethodCode().'__attribute', 'select', array(
|
| 62 |
+
//'name'=>'rule_' . $this->getPaymentMethodCode() . '['.$this->getPrefix().']['.$this->getId().'_'. $this->getPaymentMethodCode().'][attribute]',
|
| 63 |
+
'name'=>'rule_' . $this->getPaymentMethodCode() . '['.$this->getPrefix().']['.$this->getId().'][attribute]',
|
| 64 |
+
'values'=>$this->getAttributeSelectOptions(),
|
| 65 |
+
'value'=>$this->getAttribute(),
|
| 66 |
+
'value_name'=>$this->getAttributeName(),
|
| 67 |
+
))->setRenderer(Mage::getBlockSingleton('rule/editable'));
|
| 68 |
+
}
|
| 69 |
+
|
| 70 |
+
/**
|
| 71 |
+
* Retrieve Condition Operator element Instance
|
| 72 |
+
* If the operator value is empty - define first available operator value as default
|
| 73 |
+
*
|
| 74 |
+
* @return Varien_Data_Form_Element_Select
|
| 75 |
+
*/
|
| 76 |
+
public function getOperatorElement()
|
| 77 |
+
{
|
| 78 |
+
$options = $this->getOperatorSelectOptions();
|
| 79 |
+
if (is_null($this->getOperator())) {
|
| 80 |
+
foreach ($options as $option) {
|
| 81 |
+
$this->setOperator($option['value']);
|
| 82 |
+
break;
|
| 83 |
+
}
|
| 84 |
+
}
|
| 85 |
+
|
| 86 |
+
$elementId = sprintf('%s__%s__operator', $this->getPrefix(), $this->getId().'_'. $this->getPaymentMethodCode());
|
| 87 |
+
//$elementName = sprintf('rule_'.$this->getPaymentMethodCode().'[%s][%s][operator]', $this->getPrefix(), $this->getId().'_'. $this->getPaymentMethodCode());
|
| 88 |
+
$elementName = sprintf('rule_'.$this->getPaymentMethodCode().'[%s][%s][operator]', $this->getPrefix(), $this->getId());
|
| 89 |
+
$element = $this->getForm()->addField($elementId, 'select', array(
|
| 90 |
+
'name' => $elementName,
|
| 91 |
+
'values' => $options,
|
| 92 |
+
'value' => $this->getOperator(),
|
| 93 |
+
'value_name' => $this->getOperatorName(),
|
| 94 |
+
));
|
| 95 |
+
$element->setRenderer(Mage::getBlockSingleton('rule/editable'));
|
| 96 |
+
|
| 97 |
+
return $element;
|
| 98 |
+
}
|
| 99 |
+
|
| 100 |
+
public function getValueElement()
|
| 101 |
+
{
|
| 102 |
+
$elementParams = array(
|
| 103 |
+
//'name' => 'rule_'.$this->getPaymentMethodCode().'['.$this->getPrefix().']['.$this->getId().'_'. $this->getPaymentMethodCode().'][value]',
|
| 104 |
+
'name' => 'rule_'.$this->getPaymentMethodCode().'['.$this->getPrefix().']['.$this->getId().'][value]',
|
| 105 |
+
'value' => $this->getValue(),
|
| 106 |
+
'values' => $this->getValueSelectOptions(),
|
| 107 |
+
'value_name' => $this->getValueName(),
|
| 108 |
+
'after_element_html' => $this->getValueAfterElementHtml(),
|
| 109 |
+
'explicit_apply' => $this->getExplicitApply(),
|
| 110 |
+
);
|
| 111 |
+
if ($this->getInputType()=='date') {
|
| 112 |
+
// date format intentionally hard-coded
|
| 113 |
+
$elementParams['input_format'] = Varien_Date::DATE_INTERNAL_FORMAT;
|
| 114 |
+
$elementParams['format'] = Varien_Date::DATE_INTERNAL_FORMAT;
|
| 115 |
+
}
|
| 116 |
+
return $this->getForm()->addField($this->getPrefix().'__'.$this->getId().'_'. $this->getPaymentMethodCode().'__value',
|
| 117 |
+
$this->getValueElementType(),
|
| 118 |
+
$elementParams
|
| 119 |
+
)->setRenderer($this->getValueElementRenderer());
|
| 120 |
+
}
|
| 121 |
+
|
| 122 |
+
public function getNewChildElement()
|
| 123 |
+
{
|
| 124 |
+
return $this->getForm()->addField($this->getPrefix().'__'.$this->getId().'_'. $this->getPaymentMethodCode().'__new_child', 'select', array(
|
| 125 |
+
//'name'=>'rule_'.$this->getPaymentMethodCode().'['.$this->getPrefix().']['.$this->getId().'_'. $this->getPaymentMethodCode().'][new_child]',
|
| 126 |
+
'name'=>'rule_'.$this->getPaymentMethodCode().'['.$this->getPrefix().']['.$this->getId().'][new_child]',
|
| 127 |
+
'values'=>$this->getNewChildSelectOptions(),
|
| 128 |
+
'value_name'=>$this->getNewChildName(),
|
| 129 |
+
))->setRenderer(Mage::getBlockSingleton('rule/newchild'));
|
| 130 |
+
}
|
| 131 |
+
|
| 132 |
+
public function getAggregatorElement()
|
| 133 |
+
{
|
| 134 |
+
if (is_null($this->getAggregator())) {
|
| 135 |
+
foreach ($this->getAggregatorOption() as $k=>$v) {
|
| 136 |
+
$this->setAggregator($k);
|
| 137 |
+
break;
|
| 138 |
+
}
|
| 139 |
+
}
|
| 140 |
+
|
| 141 |
+
return $this->getForm()->addField($this->getPrefix().'__'.$this->getId().'_'. $this->getPaymentMethodCode().'__aggregator', 'select', array(
|
| 142 |
+
// 'name'=>'rule_'.$this->getPaymentMethodCode().'['.$this->getPrefix().']['.$this->getId().'_'. $this->getPaymentMethodCode().'][aggregator]',
|
| 143 |
+
'name'=>'rule_'.$this->getPaymentMethodCode().'['.$this->getPrefix().']['.$this->getId().'][aggregator]',
|
| 144 |
+
'values'=>$this->getAggregatorSelectOptions(),
|
| 145 |
+
'value'=>$this->getAggregator(),
|
| 146 |
+
'value_name'=>$this->getAggregatorName(),
|
| 147 |
+
))->setRenderer(Mage::getBlockSingleton('rule/editable'));
|
| 148 |
+
}
|
| 149 |
+
|
| 150 |
+
public function asHtmlRecursive()
|
| 151 |
+
{
|
| 152 |
+
$html = $this->asHtml().'<ul id="'.$this->getPrefix().'__'.$this->getId().'_'. $this->getPaymentMethodCode().'__children" class="rule-param-children">';
|
| 153 |
+
foreach ($this->getConditions() as $cond) {
|
| 154 |
+
$cond->setPaymentMethodCode($this->getPaymentMethodCode());
|
| 155 |
+
$html .= '<li>'.$cond->asHtmlRecursive().'</li>';
|
| 156 |
+
}
|
| 157 |
+
$html .= '<li>'.$this->getNewChildElement()->getHtml().'</li></ul>';
|
| 158 |
+
return $html;
|
| 159 |
+
}
|
| 160 |
+
|
| 161 |
+
|
| 162 |
+
public function getPaymentMethodCode()
|
| 163 |
+
{
|
| 164 |
+
return $this->_paymentMethodCode;
|
| 165 |
+
}
|
| 166 |
+
|
| 167 |
+
public function setPaymentMethodCode($methodCode)
|
| 168 |
+
{
|
| 169 |
+
$this->_paymentMethodCode = $methodCode;
|
| 170 |
+
return $this;
|
| 171 |
+
}
|
| 172 |
+
}
|
app/code/community/Allopass/Hipay/Model/Rule/Condition/Product/Found.php
ADDED
|
@@ -0,0 +1,70 @@
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
| 1 |
+
<?php
|
| 2 |
+
|
| 3 |
+
|
| 4 |
+
class Allopass_Hipay_Model_Rule_Condition_Product_Found
|
| 5 |
+
extends Allopass_Hipay_Model_Rule_Condition_Product_Combine
|
| 6 |
+
{
|
| 7 |
+
public function __construct()
|
| 8 |
+
{
|
| 9 |
+
parent::__construct();
|
| 10 |
+
$this->setType('hipay/rule_condition_product_found');
|
| 11 |
+
}
|
| 12 |
+
|
| 13 |
+
/**
|
| 14 |
+
* Load value options
|
| 15 |
+
*
|
| 16 |
+
* @return Mage_SalesRule_Model_Rule_Condition_Product_Found
|
| 17 |
+
*/
|
| 18 |
+
public function loadValueOptions()
|
| 19 |
+
{
|
| 20 |
+
$this->setValueOption(array(
|
| 21 |
+
1 => Mage::helper('salesrule')->__('FOUND'),
|
| 22 |
+
0 => Mage::helper('salesrule')->__('NOT FOUND')
|
| 23 |
+
));
|
| 24 |
+
return $this;
|
| 25 |
+
}
|
| 26 |
+
|
| 27 |
+
public function asHtml()
|
| 28 |
+
{
|
| 29 |
+
$html = $this->getTypeElement()->getHtml() . Mage::helper('salesrule')->__("If an item is %s in the cart with %s of these conditions true:", $this->getValueElement()->getHtml(), $this->getAggregatorElement()->getHtml());
|
| 30 |
+
if ($this->getId() != '1') {
|
| 31 |
+
$html.= $this->getRemoveLinkHtml();
|
| 32 |
+
}
|
| 33 |
+
return $html;
|
| 34 |
+
}
|
| 35 |
+
|
| 36 |
+
/**
|
| 37 |
+
* validate
|
| 38 |
+
*
|
| 39 |
+
* @param Varien_Object $object Quote
|
| 40 |
+
* @return boolean
|
| 41 |
+
*/
|
| 42 |
+
public function validate(Varien_Object $object)
|
| 43 |
+
{
|
| 44 |
+
$all = $this->getAggregator()==='all';
|
| 45 |
+
$true = (bool)$this->getValue();
|
| 46 |
+
$found = false;
|
| 47 |
+
foreach ($object->getAllItems() as $item) {
|
| 48 |
+
$found = $all;
|
| 49 |
+
foreach ($this->getConditions() as $cond) {
|
| 50 |
+
$validated = $cond->validate($item);
|
| 51 |
+
if (($all && !$validated) || (!$all && $validated)) {
|
| 52 |
+
$found = $validated;
|
| 53 |
+
break;
|
| 54 |
+
}
|
| 55 |
+
}
|
| 56 |
+
if (($found && $true) || (!$true && $found)) {
|
| 57 |
+
break;
|
| 58 |
+
}
|
| 59 |
+
}
|
| 60 |
+
// found an item and we're looking for existing one
|
| 61 |
+
if ($found && $true) {
|
| 62 |
+
return true;
|
| 63 |
+
}
|
| 64 |
+
// not found and we're making sure it doesn't exist
|
| 65 |
+
elseif (!$found && !$true) {
|
| 66 |
+
return true;
|
| 67 |
+
}
|
| 68 |
+
return false;
|
| 69 |
+
}
|
| 70 |
+
}
|
app/code/community/Allopass/Hipay/Model/Rule/Condition/Product/Subselect.php
ADDED
|
@@ -0,0 +1,102 @@
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
| 1 |
+
<?php
|
| 2 |
+
|
| 3 |
+
|
| 4 |
+
class Allopass_Hipay_Model_Rule_Condition_Product_Subselect
|
| 5 |
+
extends Allopass_Hipay_Model_Rule_Condition_Product_Combine
|
| 6 |
+
{
|
| 7 |
+
public function __construct()
|
| 8 |
+
{
|
| 9 |
+
parent::__construct();
|
| 10 |
+
$this->setType('hipay/rule_condition_product_subselect')
|
| 11 |
+
->setValue(null);
|
| 12 |
+
}
|
| 13 |
+
|
| 14 |
+
public function loadArray($arr, $key='conditions')
|
| 15 |
+
{
|
| 16 |
+
$this->setAttribute($arr['attribute']);
|
| 17 |
+
$this->setOperator($arr['operator']);
|
| 18 |
+
parent::loadArray($arr, $key);
|
| 19 |
+
return $this;
|
| 20 |
+
}
|
| 21 |
+
|
| 22 |
+
public function asXml($containerKey='conditions', $itemKey='condition')
|
| 23 |
+
{
|
| 24 |
+
$xml = '<attribute>'.$this->getAttribute().'</attribute>'
|
| 25 |
+
. '<operator>'.$this->getOperator().'</operator>'
|
| 26 |
+
. parent::asXml($containerKey, $itemKey);
|
| 27 |
+
return $xml;
|
| 28 |
+
}
|
| 29 |
+
|
| 30 |
+
public function loadAttributeOptions()
|
| 31 |
+
{
|
| 32 |
+
$this->setAttributeOption(array(
|
| 33 |
+
'qty' => Mage::helper('salesrule')->__('total quantity'),
|
| 34 |
+
'base_row_total' => Mage::helper('salesrule')->__('total amount'),
|
| 35 |
+
));
|
| 36 |
+
return $this;
|
| 37 |
+
}
|
| 38 |
+
|
| 39 |
+
public function loadValueOptions()
|
| 40 |
+
{
|
| 41 |
+
return $this;
|
| 42 |
+
}
|
| 43 |
+
|
| 44 |
+
public function loadOperatorOptions()
|
| 45 |
+
{
|
| 46 |
+
$this->setOperatorOption(array(
|
| 47 |
+
'==' => Mage::helper('rule')->__('is'),
|
| 48 |
+
'!=' => Mage::helper('rule')->__('is not'),
|
| 49 |
+
'>=' => Mage::helper('rule')->__('equals or greater than'),
|
| 50 |
+
'<=' => Mage::helper('rule')->__('equals or less than'),
|
| 51 |
+
'>' => Mage::helper('rule')->__('greater than'),
|
| 52 |
+
'<' => Mage::helper('rule')->__('less than'),
|
| 53 |
+
'()' => Mage::helper('rule')->__('is one of'),
|
| 54 |
+
'!()' => Mage::helper('rule')->__('is not one of'),
|
| 55 |
+
));
|
| 56 |
+
return $this;
|
| 57 |
+
}
|
| 58 |
+
|
| 59 |
+
public function getValueElementType()
|
| 60 |
+
{
|
| 61 |
+
return 'text';
|
| 62 |
+
}
|
| 63 |
+
|
| 64 |
+
public function asHtml()
|
| 65 |
+
{
|
| 66 |
+
$html = $this->getTypeElement()->getHtml().
|
| 67 |
+
Mage::helper('salesrule')->__("If %s %s %s for a subselection of items in cart matching %s of these conditions:", $this->getAttributeElement()->getHtml(), $this->getOperatorElement()->getHtml(), $this->getValueElement()->getHtml(), $this->getAggregatorElement()->getHtml());
|
| 68 |
+
if ($this->getId() != '1') {
|
| 69 |
+
$html .= $this->getRemoveLinkHtml();
|
| 70 |
+
}
|
| 71 |
+
return $html;
|
| 72 |
+
}
|
| 73 |
+
|
| 74 |
+
/**
|
| 75 |
+
* validate
|
| 76 |
+
*
|
| 77 |
+
* @param Varien_Object $object Quote
|
| 78 |
+
* @return boolean
|
| 79 |
+
*/
|
| 80 |
+
public function validate(Varien_Object $object)
|
| 81 |
+
{
|
| 82 |
+
if (!$this->getConditions()) {
|
| 83 |
+
return false;
|
| 84 |
+
}
|
| 85 |
+
|
| 86 |
+
|
| 87 |
+
// $value = $this->getValue();
|
| 88 |
+
// $aggregatorArr = explode('/', $this->getAggregator());
|
| 89 |
+
// $this->setValue((int)$aggregatorArr[0])->setAggregator($aggregatorArr[1]);
|
| 90 |
+
|
| 91 |
+
$attr = $this->getAttribute();
|
| 92 |
+
$total = 0;
|
| 93 |
+
foreach ($object->getQuote()->getAllItems() as $item) {
|
| 94 |
+
if (parent::validate($item)) {
|
| 95 |
+
$total += $item->getData($attr);
|
| 96 |
+
}
|
| 97 |
+
}
|
| 98 |
+
// $this->setAggregator(join('/', $aggregatorArr))->setValue($value);
|
| 99 |
+
|
| 100 |
+
return $this->validateAttribute($total);
|
| 101 |
+
}
|
| 102 |
+
}
|
app/code/community/Allopass/Hipay/Model/Rule/Config.php
ADDED
|
@@ -0,0 +1,93 @@
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
| 1 |
+
<?php
|
| 2 |
+
class Allopass_Hipay_Model_Rule_Config extends Mage_Core_Model_Config_Data
|
| 3 |
+
{
|
| 4 |
+
|
| 5 |
+
protected $_rule = null;
|
| 6 |
+
protected $_ruleData = null;
|
| 7 |
+
|
| 8 |
+
/**
|
| 9 |
+
* @return Allopass_Hipay_Model_Rule
|
| 10 |
+
*/
|
| 11 |
+
public function getRule()
|
| 12 |
+
{
|
| 13 |
+
if(is_null($this->_rule))
|
| 14 |
+
{
|
| 15 |
+
$this->_rule = Mage::getModel('hipay/rule');
|
| 16 |
+
}
|
| 17 |
+
|
| 18 |
+
return $this->_rule;
|
| 19 |
+
}
|
| 20 |
+
|
| 21 |
+
public function setRule($rule)
|
| 22 |
+
{
|
| 23 |
+
$this->_rule = $rule;
|
| 24 |
+
}
|
| 25 |
+
|
| 26 |
+
protected function _afterload()
|
| 27 |
+
{
|
| 28 |
+
|
| 29 |
+
parent::_afterload();
|
| 30 |
+
$rule = Mage::getModel('hipay/rule');
|
| 31 |
+
$rule->setMethodCode($this->_getMethodCode());
|
| 32 |
+
|
| 33 |
+
if($this->getValue())
|
| 34 |
+
$rule->load($this->getValue());
|
| 35 |
+
|
| 36 |
+
$this->setRule($rule);
|
| 37 |
+
|
| 38 |
+
return $this;
|
| 39 |
+
|
| 40 |
+
}
|
| 41 |
+
|
| 42 |
+
protected function _beforeSave()
|
| 43 |
+
{
|
| 44 |
+
$rule = Mage::getModel('hipay/rule')->load($this->getValue());
|
| 45 |
+
|
| 46 |
+
$validateResult = $rule->validateData(new Varien_Object($this->_getRuleData()));
|
| 47 |
+
if ($validateResult !== true) {
|
| 48 |
+
$errors = array();
|
| 49 |
+
foreach($validateResult as $errorMessage) {
|
| 50 |
+
$errors[] = $errorMessage;
|
| 51 |
+
}
|
| 52 |
+
Mage::throwException(new Exception(print_r($errors,true)));
|
| 53 |
+
|
| 54 |
+
}
|
| 55 |
+
|
| 56 |
+
$rule->setMethodCode($this->_getMethodCode());
|
| 57 |
+
$rule->loadPost($this->_getRuleData());
|
| 58 |
+
|
| 59 |
+
try{
|
| 60 |
+
|
| 61 |
+
$rule->save();
|
| 62 |
+
}
|
| 63 |
+
catch (Exception $e)
|
| 64 |
+
{
|
| 65 |
+
Mage::logException($e);
|
| 66 |
+
}
|
| 67 |
+
$this->setRule($rule);
|
| 68 |
+
|
| 69 |
+
$this->setValue($rule->getId());
|
| 70 |
+
|
| 71 |
+
parent::_beforeSave();
|
| 72 |
+
return $this;
|
| 73 |
+
}
|
| 74 |
+
|
| 75 |
+
protected function _getMethodCode()
|
| 76 |
+
{
|
| 77 |
+
list($section,$group,$field) = explode("/", $this->getData('path'));
|
| 78 |
+
return $group;
|
| 79 |
+
}
|
| 80 |
+
|
| 81 |
+
protected function _getRuleData()
|
| 82 |
+
{
|
| 83 |
+
if(is_null($this->_ruleData))
|
| 84 |
+
{
|
| 85 |
+
$post = Mage::app()->getRequest()->getPost();
|
| 86 |
+
$this->_ruleData = array();
|
| 87 |
+
if(isset($post['rule_' . $this->_getMethodCode()]['conditions']))
|
| 88 |
+
$this->_ruleData['conditions'] = $post['rule_' . $this->_getMethodCode()]['conditions'];
|
| 89 |
+
}
|
| 90 |
+
|
| 91 |
+
return $this->_ruleData;
|
| 92 |
+
}
|
| 93 |
+
}
|
app/code/community/Allopass/Hipay/Model/Source/3ds.php
ADDED
|
@@ -0,0 +1,39 @@
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
| 1 |
+
<?php
|
| 2 |
+
|
| 3 |
+
/**
|
| 4 |
+
*
|
| 5 |
+
* Allopass Hipay Activate 3DS
|
| 6 |
+
*
|
| 7 |
+
*/
|
| 8 |
+
class Allopass_Hipay_Model_Source_3ds
|
| 9 |
+
{
|
| 10 |
+
/**
|
| 11 |
+
* Options getter
|
| 12 |
+
*
|
| 13 |
+
* @return array
|
| 14 |
+
*/
|
| 15 |
+
public function toOptionArray()
|
| 16 |
+
{
|
| 17 |
+
return array(
|
| 18 |
+
array('value' => 1, 'label'=>Mage::helper('hipay')->__('Enable for all transactions')),
|
| 19 |
+
array('value' => 2, 'label'=>Mage::helper('hipay')->__('Enable for configured 3ds rules')),
|
| 20 |
+
array('value' => 0, 'label'=>Mage::helper('hipay')->__('Disabled')),
|
| 21 |
+
|
| 22 |
+
);
|
| 23 |
+
}
|
| 24 |
+
|
| 25 |
+
/**
|
| 26 |
+
* Get options in "key-value" format
|
| 27 |
+
*
|
| 28 |
+
* @return array
|
| 29 |
+
*/
|
| 30 |
+
public function toArray()
|
| 31 |
+
{
|
| 32 |
+
return array(
|
| 33 |
+
0 => Mage::helper('hipay')->__('Disabled'),
|
| 34 |
+
1 => Mage::helper('hipay')->__('Enable for all transactions'),
|
| 35 |
+
2 => Mage::helper('hipay')->__('Enable for configured 3ds rules'),
|
| 36 |
+
);
|
| 37 |
+
}
|
| 38 |
+
|
| 39 |
+
}
|
app/code/community/Allopass/Hipay/Model/Source/CcType.php
ADDED
|
@@ -0,0 +1,24 @@
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
| 1 |
+
<?php
|
| 2 |
+
|
| 3 |
+
/**
|
| 4 |
+
*
|
| 5 |
+
* Allopass Hipay Credit cards types
|
| 6 |
+
*
|
| 7 |
+
*/
|
| 8 |
+
class Allopass_Hipay_Model_Source_CcType
|
| 9 |
+
{
|
| 10 |
+
public function toOptionArray()
|
| 11 |
+
{
|
| 12 |
+
|
| 13 |
+
$options = array();
|
| 14 |
+
|
| 15 |
+
foreach (Mage::getSingleton('hipay/config')->getCcTypes() as $code => $name) {
|
| 16 |
+
$options[] = array(
|
| 17 |
+
'value' => $code,
|
| 18 |
+
'label' => $name
|
| 19 |
+
);
|
| 20 |
+
}
|
| 21 |
+
|
| 22 |
+
return $options;
|
| 23 |
+
}
|
| 24 |
+
}
|
app/code/community/Allopass/Hipay/Model/Source/CcTypeHosted.php
ADDED
|
@@ -0,0 +1,24 @@
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
| 1 |
+
<?php
|
| 2 |
+
|
| 3 |
+
/**
|
| 4 |
+
*
|
| 5 |
+
* Allopass Hipay Credit cards types
|
| 6 |
+
*
|
| 7 |
+
*/
|
| 8 |
+
class Allopass_Hipay_Model_Source_CcTypeHosted
|
| 9 |
+
{
|
| 10 |
+
public function toOptionArray()
|
| 11 |
+
{
|
| 12 |
+
|
| 13 |
+
$options = array();
|
| 14 |
+
|
| 15 |
+
foreach (Mage::getSingleton('hipay/config')->getCcTypesCodeHipay() as $code => $name) {
|
| 16 |
+
$options[] = array(
|
| 17 |
+
'value' => $code,
|
| 18 |
+
'label' => $name
|
| 19 |
+
);
|
| 20 |
+
}
|
| 21 |
+
|
| 22 |
+
return $options;
|
| 23 |
+
}
|
| 24 |
+
}
|
app/code/community/Allopass/Hipay/Model/Source/Order/HipayStatusValidate.php
ADDED
|
@@ -0,0 +1,20 @@
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
| 1 |
+
<?php
|
| 2 |
+
|
| 3 |
+
class Allopass_Hipay_Model_Source_Order_HipayStatusValidate
|
| 4 |
+
{
|
| 5 |
+
public function toOptionArray() {
|
| 6 |
+
$options = array();
|
| 7 |
+
|
| 8 |
+
$options[] = array(
|
| 9 |
+
'value' => 117,
|
| 10 |
+
'label' => Mage::helper('hipay')->__('Capture Requested')
|
| 11 |
+
);
|
| 12 |
+
|
| 13 |
+
$options[] = array(
|
| 14 |
+
'value' => 118,
|
| 15 |
+
'label' => Mage::helper('hipay')->__('Capture')
|
| 16 |
+
);
|
| 17 |
+
|
| 18 |
+
return $options;
|
| 19 |
+
}
|
| 20 |
+
}
|
app/code/community/Allopass/Hipay/Model/Source/Order/Status.php
ADDED
|
@@ -0,0 +1,28 @@
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
| 1 |
+
<?php
|
| 2 |
+
|
| 3 |
+
class Allopass_Hipay_Model_Source_Order_Status {
|
| 4 |
+
|
| 5 |
+
// set null to enable all possible
|
| 6 |
+
protected $_stateStatuses = array();
|
| 7 |
+
|
| 8 |
+
public function toOptionArray() {
|
| 9 |
+
if ($this->_stateStatuses) {
|
| 10 |
+
$statuses = Mage::getSingleton('sales/order_config')->getStateStatuses($this->_stateStatuses);
|
| 11 |
+
} else {
|
| 12 |
+
$statuses = Mage::getSingleton('sales/order_config')->getStatuses();
|
| 13 |
+
}
|
| 14 |
+
$options = array();
|
| 15 |
+
$options[] = array(
|
| 16 |
+
'value' => '',
|
| 17 |
+
'label' => Mage::helper('adminhtml')->__('-- Please Select --')
|
| 18 |
+
);
|
| 19 |
+
foreach ($statuses as $code => $label) {
|
| 20 |
+
$options[] = array(
|
| 21 |
+
'value' => $code,
|
| 22 |
+
'label' => $label
|
| 23 |
+
);
|
| 24 |
+
}
|
| 25 |
+
return $options;
|
| 26 |
+
}
|
| 27 |
+
|
| 28 |
+
}
|
app/code/community/Allopass/Hipay/Model/Source/Order/Status/Accepted.php
ADDED
|
@@ -0,0 +1,12 @@
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
| 1 |
+
<?php
|
| 2 |
+
|
| 3 |
+
class Allopass_Hipay_Model_Source_Order_Status_Accepted extends Allopass_Hipay_Model_Source_Order_Status {
|
| 4 |
+
|
| 5 |
+
// set null to enable all possible
|
| 6 |
+
protected $_stateStatuses = array(
|
| 7 |
+
Mage_Sales_Model_Order::STATE_NEW,
|
| 8 |
+
Mage_Sales_Model_Order::STATE_PROCESSING,
|
| 9 |
+
Mage_Sales_Model_Order::STATE_COMPLETE
|
| 10 |
+
);
|
| 11 |
+
|
| 12 |
+
}
|
app/code/community/Allopass/Hipay/Model/Source/Order/Status/Canceled.php
ADDED
|
@@ -0,0 +1,11 @@
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
| 1 |
+
<?php
|
| 2 |
+
|
| 3 |
+
class Allopass_Hipay_Model_Source_Order_Status_Canceled extends Allopass_Hipay_Model_Source_Order_Status {
|
| 4 |
+
|
| 5 |
+
// set null to enable all possible
|
| 6 |
+
protected $_stateStatuses = array(
|
| 7 |
+
Mage_Sales_Model_Order::STATE_HOLDED,
|
| 8 |
+
Mage_Sales_Model_Order::STATE_CANCELED
|
| 9 |
+
);
|
| 10 |
+
|
| 11 |
+
}
|
app/code/community/Allopass/Hipay/Model/Source/Order/Status/New.php
ADDED
|
@@ -0,0 +1,11 @@
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
| 1 |
+
<?php
|
| 2 |
+
|
| 3 |
+
class Allopass_Hipay_Model_Source_Order_Status_New extends Allopass_Hipay_Model_Source_Order_Status {
|
| 4 |
+
|
| 5 |
+
// set null to enable all possible
|
| 6 |
+
protected $_stateStatuses = array(
|
| 7 |
+
Mage_Sales_Model_Order::STATE_NEW,
|
| 8 |
+
Mage_Sales_Model_Order::STATE_PROCESSING
|
| 9 |
+
);
|
| 10 |
+
|
| 11 |
+
}
|
app/code/community/Allopass/Hipay/Model/Source/Order/Status/Refused.php
ADDED
|
@@ -0,0 +1,12 @@
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
| 1 |
+
<?php
|
| 2 |
+
|
| 3 |
+
class Allopass_Hipay_Model_Source_Order_Status_Refused extends Allopass_Hipay_Model_Source_Order_Status {
|
| 4 |
+
|
| 5 |
+
// set null to enable all possible
|
| 6 |
+
protected $_stateStatuses = array(
|
| 7 |
+
Mage_Sales_Model_Order::STATE_HOLDED,
|
| 8 |
+
Mage_Sales_Model_Order::STATE_CANCELED,
|
| 9 |
+
Mage_Sales_Model_Order::STATE_CLOSED
|
| 10 |
+
);
|
| 11 |
+
|
| 12 |
+
}
|
app/code/community/Allopass/Hipay/Model/Source/PaymentAction.php
ADDED
|
@@ -0,0 +1,17 @@
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
| 1 |
+
<?php
|
| 2 |
+
|
| 3 |
+
/**
|
| 4 |
+
*
|
| 5 |
+
* Allopass Hipay Payment Action Dropdown source
|
| 6 |
+
*
|
| 7 |
+
*/
|
| 8 |
+
class Allopass_Hipay_Model_Source_PaymentAction
|
| 9 |
+
{
|
| 10 |
+
public function toOptionArray()
|
| 11 |
+
{
|
| 12 |
+
return array(
|
| 13 |
+
array('value' => Mage_Payment_Model_Method_Abstract::ACTION_AUTHORIZE, 'label' => Mage::helper('hipay')->__('Authorization')),
|
| 14 |
+
array('value' => Mage_Payment_Model_Method_Abstract::ACTION_AUTHORIZE_CAPTURE, 'label' => Mage::helper('hipay')->__('Sale')),
|
| 15 |
+
);
|
| 16 |
+
}
|
| 17 |
+
}
|
app/code/community/Allopass/Hipay/Model/Source/Pendingredirect.php
ADDED
|
@@ -0,0 +1,19 @@
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
| 1 |
+
<?php
|
| 2 |
+
|
| 3 |
+
/**
|
| 4 |
+
*
|
| 5 |
+
* Allopass Hipay redirect url for pending
|
| 6 |
+
*
|
| 7 |
+
*/
|
| 8 |
+
class Allopass_Hipay_Model_Source_Pendingredirect
|
| 9 |
+
{
|
| 10 |
+
public function toOptionArray()
|
| 11 |
+
{
|
| 12 |
+
|
| 13 |
+
return array(
|
| 14 |
+
array('value' => 'hipay/checkout/pending', 'label' => Mage::helper('hipay')->__('Pending page')),
|
| 15 |
+
array('value' => 'checkout/onepage/success', 'label' => Mage::helper('hipay')->__('Success page')),
|
| 16 |
+
array('value' => 'checkout/onepage/failure', 'label' => Mage::helper('hipay')->__('Failure page')),
|
| 17 |
+
);
|
| 18 |
+
}
|
| 19 |
+
}
|
app/code/community/Allopass/Hipay/Model/Source/Template.php
ADDED
|
@@ -0,0 +1,35 @@
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
| 1 |
+
<?php
|
| 2 |
+
|
| 3 |
+
/**
|
| 4 |
+
*
|
| 5 |
+
* Allopass Hipay templates types
|
| 6 |
+
*
|
| 7 |
+
*/
|
| 8 |
+
class Allopass_Hipay_Model_Source_Template
|
| 9 |
+
{
|
| 10 |
+
/*public function toOptionArray()
|
| 11 |
+
{
|
| 12 |
+
|
| 13 |
+
return array(
|
| 14 |
+
array('value' => 'basic', 'label' => Mage::helper('hipay')->__('basic')),
|
| 15 |
+
array('value' => 'basic2', 'label' => Mage::helper('hipay')->__('basic2')),
|
| 16 |
+
array('value' => 'basic3', 'label' => Mage::helper('hipay')->__('basic3')),
|
| 17 |
+
array('value' => 'basic4', 'label' => Mage::helper('hipay')->__('basic4')),
|
| 18 |
+
);
|
| 19 |
+
}*/
|
| 20 |
+
|
| 21 |
+
public function toOptionArray()
|
| 22 |
+
{
|
| 23 |
+
|
| 24 |
+
$options = array();
|
| 25 |
+
|
| 26 |
+
foreach (Mage::getSingleton('hipay/config')->getTemplateHosted() as $value => $label) {
|
| 27 |
+
$options[] = array(
|
| 28 |
+
'value' => $value,
|
| 29 |
+
'label' => $label
|
| 30 |
+
);
|
| 31 |
+
}
|
| 32 |
+
|
| 33 |
+
return $options;
|
| 34 |
+
}
|
| 35 |
+
}
|
app/code/community/Allopass/Hipay/controllers/Adminhtml/RuleController.php
ADDED
|
@@ -0,0 +1,37 @@
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
| 1 |
+
<?php
|
| 2 |
+
|
| 3 |
+
class Allopass_Hipay_Adminhtml_RuleController extends Mage_Adminhtml_Controller_Action
|
| 4 |
+
{
|
| 5 |
+
|
| 6 |
+
|
| 7 |
+
public function newConditionHtmlAction()
|
| 8 |
+
{
|
| 9 |
+
$id = $this->getRequest()->getParam('id');
|
| 10 |
+
$typeArr = explode('|', str_replace('-', '/', $this->getRequest()->getParam('type')));
|
| 11 |
+
$type = $typeArr[0];
|
| 12 |
+
$method_code = $typeArr[2];
|
| 13 |
+
$id = str_replace("_".$method_code, "", $id);
|
| 14 |
+
$model = Mage::getModel($type)
|
| 15 |
+
->setId($id)
|
| 16 |
+
->setType($type)
|
| 17 |
+
->setRule(Mage::getModel('hipay/rule'))
|
| 18 |
+
->setPrefix('conditions')
|
| 19 |
+
->setPaymentMethodCode($method_code);
|
| 20 |
+
if (!empty($typeArr[1])) {
|
| 21 |
+
$model->setAttribute($typeArr[1]);
|
| 22 |
+
}
|
| 23 |
+
|
| 24 |
+
if ($model instanceof Mage_Rule_Model_Condition_Abstract) {
|
| 25 |
+
$model->setJsFormObject($this->getRequest()->getParam('form'));
|
| 26 |
+
$html = $model->asHtmlRecursive();
|
| 27 |
+
} else {
|
| 28 |
+
$html = '';
|
| 29 |
+
}
|
| 30 |
+
$this->getResponse()->setBody($html);
|
| 31 |
+
}
|
| 32 |
+
|
| 33 |
+
|
| 34 |
+
|
| 35 |
+
|
| 36 |
+
|
| 37 |
+
}
|
app/code/community/Allopass/Hipay/controllers/CbcController.php
ADDED
|
@@ -0,0 +1,8 @@
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
| 1 |
+
<?php
|
| 2 |
+
class Allopass_Hipay_CbcController extends Allopass_Hipay_Controller_Payment
|
| 3 |
+
{
|
| 4 |
+
protected function _getMethodInstance()
|
| 5 |
+
{
|
| 6 |
+
return Mage::getSingleton('hipay/method_cbc');
|
| 7 |
+
}
|
| 8 |
+
}
|
app/code/community/Allopass/Hipay/controllers/CcController.php
ADDED
|
@@ -0,0 +1,15 @@
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
| 1 |
+
<?php
|
| 2 |
+
class Allopass_Hipay_CcController extends Allopass_Hipay_Controller_Payment
|
| 3 |
+
{
|
| 4 |
+
|
| 5 |
+
|
| 6 |
+
/**
|
| 7 |
+
*
|
| 8 |
+
* @return Allopass_Hipay_Model_Method_Cc $methodInstance
|
| 9 |
+
*/
|
| 10 |
+
protected function _getMethodInstance()
|
| 11 |
+
{
|
| 12 |
+
return Mage::getSingleton('hipay/method_cc'); ;
|
| 13 |
+
}
|
| 14 |
+
|
| 15 |
+
}
|
app/code/community/Allopass/Hipay/controllers/CheckoutController.php
ADDED
|
@@ -0,0 +1,40 @@
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
| 1 |
+
<?php
|
| 2 |
+
class Allopass_Hipay_CheckoutController extends Mage_Core_Controller_Front_Action
|
| 3 |
+
{
|
| 4 |
+
|
| 5 |
+
|
| 6 |
+
|
| 7 |
+
/**
|
| 8 |
+
* @return Mage_Core_Controller_Front_Action
|
| 9 |
+
*/
|
| 10 |
+
public function preDispatch() {
|
| 11 |
+
parent::preDispatch();
|
| 12 |
+
//Mage::log($this->getRequest()->getParams(),null,$this->getRequest()->getActionName() . ".log");
|
| 13 |
+
}
|
| 14 |
+
|
| 15 |
+
|
| 16 |
+
public function pendingAction()
|
| 17 |
+
{
|
| 18 |
+
|
| 19 |
+
$lastQuoteId = $this->getOnepage()->getCheckout()->getLastQuoteId();
|
| 20 |
+
$lastOrderId = $this->getOnepage()->getCheckout()->getLastOrderId();
|
| 21 |
+
$this->getOnepage()->getCheckout()->setErrorMessage("");
|
| 22 |
+
if (!$lastQuoteId || !$lastOrderId) {
|
| 23 |
+
$this->_redirect('checkout/cart');
|
| 24 |
+
return;
|
| 25 |
+
}
|
| 26 |
+
|
| 27 |
+
$this->loadLayout();
|
| 28 |
+
$this->renderLayout();
|
| 29 |
+
}
|
| 30 |
+
|
| 31 |
+
/**
|
| 32 |
+
* Get one page checkout model
|
| 33 |
+
*
|
| 34 |
+
* @return Mage_Checkout_Model_Type_Onepage
|
| 35 |
+
*/
|
| 36 |
+
public function getOnepage()
|
| 37 |
+
{
|
| 38 |
+
return Mage::getSingleton('checkout/type_onepage');
|
| 39 |
+
}
|
| 40 |
+
}
|
app/code/community/Allopass/Hipay/controllers/DexiaController.php
ADDED
|
@@ -0,0 +1,8 @@
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
| 1 |
+
<?php
|
| 2 |
+
class Allopass_Hipay_DexiaController extends Allopass_Hipay_Controller_Payment
|
| 3 |
+
{
|
| 4 |
+
protected function _getMethodInstance()
|
| 5 |
+
{
|
| 6 |
+
return Mage::getSingleton('hipay/method_dexia');
|
| 7 |
+
}
|
| 8 |
+
}
|
app/code/community/Allopass/Hipay/controllers/GiropayController.php
ADDED
|
@@ -0,0 +1,8 @@
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
| 1 |
+
<?php
|
| 2 |
+
class Allopass_Hipay_GiropayController extends Allopass_Hipay_Controller_Payment
|
| 3 |
+
{
|
| 4 |
+
protected function _getMethodInstance()
|
| 5 |
+
{
|
| 6 |
+
return Mage::getSingleton('hipay/method_giropay');
|
| 7 |
+
}
|
| 8 |
+
}
|
app/code/community/Allopass/Hipay/controllers/HostedController.php
ADDED
|
@@ -0,0 +1,12 @@
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
| 1 |
+
<?php
|
| 2 |
+
class Allopass_Hipay_HostedController extends Allopass_Hipay_Controller_Payment
|
| 3 |
+
{
|
| 4 |
+
|
| 5 |
+
|
| 6 |
+
protected function _getMethodInstance()
|
| 7 |
+
{
|
| 8 |
+
return Mage::getSingleton('hipay/method_hosted'); ;
|
| 9 |
+
}
|
| 10 |
+
|
| 11 |
+
|
| 12 |
+
}
|
app/code/community/Allopass/Hipay/controllers/IdealController.php
ADDED
|
@@ -0,0 +1,8 @@
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
| 1 |
+
<?php
|
| 2 |
+
class Allopass_Hipay_IdealController extends Allopass_Hipay_Controller_Payment
|
| 3 |
+
{
|
| 4 |
+
protected function _getMethodInstance()
|
| 5 |
+
{
|
| 6 |
+
return Mage::getSingleton('hipay/method_ideal');
|
| 7 |
+
}
|
| 8 |
+
}
|
app/code/community/Allopass/Hipay/controllers/IngController.php
ADDED
|
@@ -0,0 +1,8 @@
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
| 1 |
+
<?php
|
| 2 |
+
class Allopass_Hipay_IngController extends Allopass_Hipay_Controller_Payment
|
| 3 |
+
{
|
| 4 |
+
protected function _getMethodInstance()
|
| 5 |
+
{
|
| 6 |
+
return Mage::getSingleton('hipay/method_ing');
|
| 7 |
+
}
|
| 8 |
+
}
|
app/code/community/Allopass/Hipay/controllers/KbcController.php
ADDED
|
@@ -0,0 +1,8 @@
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
| 1 |
+
<?php
|
| 2 |
+
class Allopass_Hipay_KbcController extends Allopass_Hipay_Controller_Payment
|
| 3 |
+
{
|
| 4 |
+
protected function _getMethodInstance()
|
| 5 |
+
{
|
| 6 |
+
return Mage::getSingleton('hipay/method_kbc');
|
| 7 |
+
}
|
| 8 |
+
}
|
app/code/community/Allopass/Hipay/controllers/NotifyController.php
ADDED
|
@@ -0,0 +1,193 @@
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
| 1 |
+
<?php
|
| 2 |
+
class Allopass_Hipay_NotifyController extends Mage_Core_Controller_Front_Action
|
| 3 |
+
{
|
| 4 |
+
/**
|
| 5 |
+
*
|
| 6 |
+
* @var Mage_Sales_Model_Order $order
|
| 7 |
+
*/
|
| 8 |
+
protected $_order = null;
|
| 9 |
+
|
| 10 |
+
|
| 11 |
+
/**
|
| 12 |
+
* @return Mage_Core_Controller_Front_Action
|
| 13 |
+
*/
|
| 14 |
+
public function preDispatch() {
|
| 15 |
+
parent::preDispatch();
|
| 16 |
+
|
| 17 |
+
//Mage::log($this->getRequest()->getParams(),null,$this->getRequest()->getActionName() . ".log");
|
| 18 |
+
if (!$this->_validateSignature()) {
|
| 19 |
+
$this->getResponse()->setBody("NOK. Wrong Signature!");
|
| 20 |
+
$this->setFlag('', 'no-dispatch', true);
|
| 21 |
+
}
|
| 22 |
+
}
|
| 23 |
+
|
| 24 |
+
protected function _validateSignature()
|
| 25 |
+
{
|
| 26 |
+
/* @var $_helper Allopass_Hipay_Helper_Data */
|
| 27 |
+
$_helper = Mage::helper('hipay');
|
| 28 |
+
|
| 29 |
+
|
| 30 |
+
$signature = $this->getRequest()->getServer('HTTP_X_ALLOPASS_SIGNATURE');
|
| 31 |
+
return $_helper->checkSignature($signature,true);
|
| 32 |
+
}
|
| 33 |
+
|
| 34 |
+
|
| 35 |
+
|
| 36 |
+
public function indexAction()
|
| 37 |
+
{
|
| 38 |
+
/* @var $response Allopass_Hipay_Model_Api_Response_Notification */
|
| 39 |
+
$response = Mage::getSingleton('hipay/api_response_notification',$this->getRequest()->getParams());
|
| 40 |
+
$orderArr = $response->getOrder();
|
| 41 |
+
|
| 42 |
+
/* @var $order Mage_Sales_Model_Order */
|
| 43 |
+
$order = Mage::getModel('sales/order')->loadByIncrementId($orderArr['id']);
|
| 44 |
+
|
| 45 |
+
if(!$order->getId() && strpos($orderArr['id'], 'recurring') === false)
|
| 46 |
+
Mage::throwException("Order not found in notification");
|
| 47 |
+
|
| 48 |
+
if(strpos($orderArr['id'], 'recurring') !== false)
|
| 49 |
+
{
|
| 50 |
+
//return $this;
|
| 51 |
+
|
| 52 |
+
list($action,$type,$profileId) = explode("-", $orderArr['id']);
|
| 53 |
+
|
| 54 |
+
if($profileId)
|
| 55 |
+
{
|
| 56 |
+
/* @var $profile Mage_Sales_Model_Recurring_Profile */
|
| 57 |
+
$profile = Mage::getModel('sales/recurring_profile')->load($profileId);
|
| 58 |
+
if($profile->getId())
|
| 59 |
+
{
|
| 60 |
+
|
| 61 |
+
|
| 62 |
+
if($action == 'create' || $action == "payment")
|
| 63 |
+
{
|
| 64 |
+
//$order = $this->createProfileOrder($profile, $response);
|
| 65 |
+
}
|
| 66 |
+
|
| 67 |
+
//return $this;
|
| 68 |
+
|
| 69 |
+
}
|
| 70 |
+
else
|
| 71 |
+
Mage::throwException(Mage::helper('hipay')->__("Profile for ID: %d doesn't exists (Recurring).",$profileId));
|
| 72 |
+
}
|
| 73 |
+
else
|
| 74 |
+
Mage::throwException(Mage::helper('hipay')->__("Order Id not present (Recurring)."));
|
| 75 |
+
|
| 76 |
+
}
|
| 77 |
+
|
| 78 |
+
$payment = $order->getPayment();
|
| 79 |
+
/* @var $methodInstance Allopass_Hipay_Model_Method_Abstract */
|
| 80 |
+
$methodInstance = $payment->getMethodInstance();
|
| 81 |
+
$methodInstance->debugData($response->debug());
|
| 82 |
+
$amount = 0;
|
| 83 |
+
if((int)$response->getRefundedAmount() == 0 && (int)$response->getCapturedAmount() == 0)
|
| 84 |
+
$amount = $response->getAuthorizedAmount();
|
| 85 |
+
elseif((int)$response->getRefundedAmount() == 0 && (int)$response->getCapturedAmount() > 0 )
|
| 86 |
+
$amount = $response->getCapturedAmount();
|
| 87 |
+
else
|
| 88 |
+
$amount = $response->getRefundedAmount();
|
| 89 |
+
|
| 90 |
+
$transactionId = $response->getTransactionReference();
|
| 91 |
+
|
| 92 |
+
|
| 93 |
+
$methodInstance->processResponse($response, $payment, $amount);
|
| 94 |
+
|
| 95 |
+
|
| 96 |
+
$message = Mage::helper('hipay')->__("Notification from Hipay:") . " " . Mage::helper('hipay')->__("status") . ": ". $response->getStatus(). " Message: " .$response->getMessage()." ".Mage::helper('hipay')->__('amount: %s',(string)$amount);
|
| 97 |
+
//
|
| 98 |
+
$order->addStatusToHistory($order->getStatus(), $message);
|
| 99 |
+
$order->save();
|
| 100 |
+
|
| 101 |
+
return $this;
|
| 102 |
+
|
| 103 |
+
|
| 104 |
+
}
|
| 105 |
+
|
| 106 |
+
/**
|
| 107 |
+
*
|
| 108 |
+
* @param Mage_Sales_Model_Recurring_Profile $profile
|
| 109 |
+
* @param Allopass_Hipay_Model_Api_Response_Notification $response
|
| 110 |
+
* @return Mage_Sales_Model_Order
|
| 111 |
+
*/
|
| 112 |
+
protected function createProfileOrder(Mage_Sales_Model_Recurring_Profile $profile,Allopass_Hipay_Model_Api_Response_Notification $response)
|
| 113 |
+
{
|
| 114 |
+
|
| 115 |
+
$amount = $this->getAmountFromProfile($profile);
|
| 116 |
+
|
| 117 |
+
$productItemInfo = new Varien_Object;
|
| 118 |
+
$type = "Regular";
|
| 119 |
+
if ($type == 'Trial') {
|
| 120 |
+
$productItemInfo->setPaymentType(Mage_Sales_Model_Recurring_Profile::PAYMENT_TYPE_TRIAL);
|
| 121 |
+
} elseif ($type == 'Regular') {
|
| 122 |
+
$productItemInfo->setPaymentType(Mage_Sales_Model_Recurring_Profile::PAYMENT_TYPE_REGULAR);
|
| 123 |
+
}
|
| 124 |
+
|
| 125 |
+
if($this->isInitialProfileOrder($profile))// because is not additonned in prodile obj
|
| 126 |
+
$productItemInfo->setPrice($profile->getBillingAmount() + $profile->getInitAmount());
|
| 127 |
+
|
| 128 |
+
/* @var $order Mage_Sales_Model_Order */
|
| 129 |
+
$order = $profile->createOrder($productItemInfo);
|
| 130 |
+
|
| 131 |
+
//$this->responseToPayment($order->getPayment(),$response);
|
| 132 |
+
$additionalInfo = $profile->getAdditionalInfo();
|
| 133 |
+
|
| 134 |
+
$order->getPayment()->setCcType($additionalInfo['ccType']);
|
| 135 |
+
$order->getPayment()->setCcExpMonth($additionalInfo['ccExpMonth']);
|
| 136 |
+
$order->getPayment()->setCcExpYear($additionalInfo['ccExpYear']);
|
| 137 |
+
$order->getPayment()->setAdditionalInformation('token',$additionalInfo['token']);
|
| 138 |
+
$order->getPayment()->setAdditionalInformation('create_oneclick',$additionalInfo['create_oneclick']);
|
| 139 |
+
$order->getPayment()->setAdditionalInformation('use_oneclick',$additionalInfo['use_oneclick']);
|
| 140 |
+
|
| 141 |
+
$order->setState(Mage_Sales_Model_Order::STATE_NEW,'pending',Mage::helper('hipay')->__("New Order Recurring!"));
|
| 142 |
+
|
| 143 |
+
$order->save();
|
| 144 |
+
|
| 145 |
+
$profile->addOrderRelation($order->getId());
|
| 146 |
+
$profile->save();
|
| 147 |
+
|
| 148 |
+
return $order;
|
| 149 |
+
|
| 150 |
+
|
| 151 |
+
$order->getPayment()->registerCaptureNotification($amount);
|
| 152 |
+
$order->save();
|
| 153 |
+
|
| 154 |
+
// notify customer
|
| 155 |
+
if ($invoice = $order->getPayment()->getCreatedInvoice()) {
|
| 156 |
+
$message = Mage::helper('hipay')->__('Notified customer about invoice #%s.', $invoice->getIncrementId());
|
| 157 |
+
$comment = $order->sendNewOrderEmail()->addStatusHistoryComment($message)
|
| 158 |
+
->setIsCustomerNotified(true)
|
| 159 |
+
->save();
|
| 160 |
+
|
| 161 |
+
/* Add this to send invoice to customer */
|
| 162 |
+
$invoice->setEmailSent(true);
|
| 163 |
+
$invoice->save();
|
| 164 |
+
$invoice->sendEmail();
|
| 165 |
+
}
|
| 166 |
+
|
| 167 |
+
return $order;
|
| 168 |
+
|
| 169 |
+
}
|
| 170 |
+
|
| 171 |
+
/**
|
| 172 |
+
* Add method to calculate amount from recurring profile
|
| 173 |
+
* @param Mage_Sales_Model_Recurring_Profile $profile
|
| 174 |
+
* @return int $amount
|
| 175 |
+
**/
|
| 176 |
+
public function getAmountFromProfile(Mage_Sales_Model_Recurring_Profile $profile) {
|
| 177 |
+
$amount = $profile->getBillingAmount() + $profile->getTaxAmount() + $profile->getShippingAmount();
|
| 178 |
+
|
| 179 |
+
if($this->isInitialProfileOrder($profile))
|
| 180 |
+
$amount += $profile->getInitAmount() ;
|
| 181 |
+
|
| 182 |
+
return $amount;
|
| 183 |
+
}
|
| 184 |
+
|
| 185 |
+
protected function isInitialProfileOrder(Mage_Sales_Model_Recurring_Profile $profile)
|
| 186 |
+
{
|
| 187 |
+
if(count($profile->getChildOrderIds()) && current($profile->getChildOrderIds()) == "-1")
|
| 188 |
+
return true;
|
| 189 |
+
|
| 190 |
+
return false;
|
| 191 |
+
}
|
| 192 |
+
|
| 193 |
+
}
|
app/code/community/Allopass/Hipay/controllers/Przelewy24Controller.php
ADDED
|
@@ -0,0 +1,8 @@
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
| 1 |
+
<?php
|
| 2 |
+
class Allopass_Hipay_Przelewy24Controller extends Allopass_Hipay_Controller_Payment
|
| 3 |
+
{
|
| 4 |
+
protected function _getMethodInstance()
|
| 5 |
+
{
|
| 6 |
+
return Mage::getSingleton('hipay/method_przelewy24');
|
| 7 |
+
}
|
| 8 |
+
}
|
app/code/community/Allopass/Hipay/controllers/Przelewy24apiController.php
ADDED
|
@@ -0,0 +1,8 @@
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
| 1 |
+
<?php
|
| 2 |
+
class Allopass_Hipay_Przelewy24apiController extends Allopass_Hipay_Controller_Payment
|
| 3 |
+
{
|
| 4 |
+
protected function _getMethodInstance()
|
| 5 |
+
{
|
| 6 |
+
return Mage::getSingleton('hipay/method_przelewy24Api');
|
| 7 |
+
}
|
| 8 |
+
}
|
app/code/community/Allopass/Hipay/controllers/QiwiController.php
ADDED
|
@@ -0,0 +1,8 @@
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
| 1 |
+
<?php
|
| 2 |
+
class Allopass_Hipay_QiwiController extends Allopass_Hipay_Controller_Payment
|
| 3 |
+
{
|
| 4 |
+
protected function _getMethodInstance()
|
| 5 |
+
{
|
| 6 |
+
return Mage::getSingleton('hipay/method_qiwi');
|
| 7 |
+
}
|
| 8 |
+
}
|
app/code/community/Allopass/Hipay/controllers/SisalController.php
ADDED
|
@@ -0,0 +1,8 @@
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
| 1 |
+
<?php
|
| 2 |
+
class Allopass_Hipay_SisalController extends Allopass_Hipay_Controller_Payment
|
| 3 |
+
{
|
| 4 |
+
protected function _getMethodInstance()
|
| 5 |
+
{
|
| 6 |
+
return Mage::getSingleton('hipay/method_sisal');
|
| 7 |
+
}
|
| 8 |
+
}
|
app/code/community/Allopass/Hipay/controllers/SisalapiController.php
ADDED
|
@@ -0,0 +1,8 @@
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
| 1 |
+
<?php
|
| 2 |
+
class Allopass_Hipay_SisalapiController extends Allopass_Hipay_Controller_Payment
|
| 3 |
+
{
|
| 4 |
+
protected function _getMethodInstance()
|
| 5 |
+
{
|
| 6 |
+
return Mage::getSingleton('hipay/method_sisalApi');
|
| 7 |
+
}
|
| 8 |
+
}
|
app/code/community/Allopass/Hipay/controllers/SofortController.php
ADDED
|
@@ -0,0 +1,8 @@
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
| 1 |
+
<?php
|
| 2 |
+
class Allopass_Hipay_SofortController extends Allopass_Hipay_Controller_Payment
|
| 3 |
+
{
|
| 4 |
+
protected function _getMethodInstance()
|
| 5 |
+
{
|
| 6 |
+
return Mage::getSingleton('hipay/method_sofort');
|
| 7 |
+
}
|
| 8 |
+
}
|
app/code/community/Allopass/Hipay/controllers/SofortapiController.php
ADDED
|
@@ -0,0 +1,8 @@
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
| 1 |
+
<?php
|
| 2 |
+
class Allopass_Hipay_SofortapiController extends Allopass_Hipay_Controller_Payment
|
| 3 |
+
{
|
| 4 |
+
protected function _getMethodInstance()
|
| 5 |
+
{
|
| 6 |
+
return Mage::getSingleton('hipay/method_sofortApi');
|
| 7 |
+
}
|
| 8 |
+
}
|
app/code/community/Allopass/Hipay/controllers/WebmoneyController.php
ADDED
|
@@ -0,0 +1,8 @@
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
| 1 |
+
<?php
|
| 2 |
+
class Allopass_Hipay_WebmoneyController extends Allopass_Hipay_Controller_Payment
|
| 3 |
+
{
|
| 4 |
+
protected function _getMethodInstance()
|
| 5 |
+
{
|
| 6 |
+
return Mage::getSingleton('hipay/method_webmoney');
|
| 7 |
+
}
|
| 8 |
+
}
|
app/code/community/Allopass/Hipay/controllers/WebmoneyapiController.php
ADDED
|
@@ -0,0 +1,8 @@
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
| 1 |
+
<?php
|
| 2 |
+
class Allopass_Hipay_WebmoneyapiController extends Allopass_Hipay_Controller_Payment
|
| 3 |
+
{
|
| 4 |
+
protected function _getMethodInstance()
|
| 5 |
+
{
|
| 6 |
+
return Mage::getSingleton('hipay/method_webmoneyApi');
|
| 7 |
+
}
|
| 8 |
+
}
|
app/code/community/Allopass/Hipay/controllers/YandexController.php
ADDED
|
@@ -0,0 +1,8 @@
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
| 1 |
+
<?php
|
| 2 |
+
class Allopass_Hipay_YandexController extends Allopass_Hipay_Controller_Payment
|
| 3 |
+
{
|
| 4 |
+
protected function _getMethodInstance()
|
| 5 |
+
{
|
| 6 |
+
return Mage::getSingleton('hipay/method_yandex');
|
| 7 |
+
}
|
| 8 |
+
}
|
app/code/community/Allopass/Hipay/controllers/YandexapiController.php
ADDED
|
@@ -0,0 +1,8 @@
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
| 1 |
+
<?php
|
| 2 |
+
class Allopass_Hipay_YandexapiController extends Allopass_Hipay_Controller_Payment
|
| 3 |
+
{
|
| 4 |
+
protected function _getMethodInstance()
|
| 5 |
+
{
|
| 6 |
+
return Mage::getSingleton('hipay/method_yandexApi');
|
| 7 |
+
}
|
| 8 |
+
}
|
app/code/community/Allopass/Hipay/etc/config.xml
ADDED
|
@@ -0,0 +1,637 @@
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
| 1 |
+
<?xml version="1.0" encoding="UTF-8"?>
|
| 2 |
+
<config>
|
| 3 |
+
<modules>
|
| 4 |
+
<Allopass_Hipay>
|
| 5 |
+
<version>1.0.0</version>
|
| 6 |
+
</Allopass_Hipay>
|
| 7 |
+
</modules>
|
| 8 |
+
<global>
|
| 9 |
+
<blocks>
|
| 10 |
+
<hipay>
|
| 11 |
+
<class>Allopass_Hipay_Block</class>
|
| 12 |
+
</hipay>
|
| 13 |
+
</blocks>
|
| 14 |
+
<helpers>
|
| 15 |
+
<hipay>
|
| 16 |
+
<class>Allopass_Hipay_Helper</class>
|
| 17 |
+
</hipay>
|
| 18 |
+
</helpers>
|
| 19 |
+
<models>
|
| 20 |
+
<hipay>
|
| 21 |
+
<class>Allopass_Hipay_Model</class>
|
| 22 |
+
<resourceModel>hipay_resource</resourceModel>
|
| 23 |
+
</hipay>
|
| 24 |
+
<hipay_resource>
|
| 25 |
+
<class>Allopass_Hipay_Model_Resource</class>
|
| 26 |
+
<!-- <deprecatedNode>hipay_mysql4</deprecatedNode> -->
|
| 27 |
+
<entities>
|
| 28 |
+
<rule>
|
| 29 |
+
<table>hipay_rule</table>
|
| 30 |
+
</rule>
|
| 31 |
+
</entities>
|
| 32 |
+
</hipay_resource>
|
| 33 |
+
</models>
|
| 34 |
+
<resources>
|
| 35 |
+
<allopass_hipay_setup>
|
| 36 |
+
<setup>
|
| 37 |
+
<module>Allopass_Hipay</module>
|
| 38 |
+
</setup>
|
| 39 |
+
</allopass_hipay_setup>
|
| 40 |
+
</resources>
|
| 41 |
+
<template_hipay>
|
| 42 |
+
<hosted>
|
| 43 |
+
<basic>
|
| 44 |
+
<label>Basic</label>
|
| 45 |
+
<value>basic</value>
|
| 46 |
+
</basic>
|
| 47 |
+
<basicjs>
|
| 48 |
+
<label>Basic-js</label>
|
| 49 |
+
<value>basic-js</value>
|
| 50 |
+
</basicjs>
|
| 51 |
+
</hosted>
|
| 52 |
+
</template_hipay>
|
| 53 |
+
<payment_hipay>
|
| 54 |
+
<cc>
|
| 55 |
+
<types>
|
| 56 |
+
<AE>
|
| 57 |
+
<code>AE</code>
|
| 58 |
+
<code_hipay>american-express</code_hipay>
|
| 59 |
+
<name>American Express</name>
|
| 60 |
+
<order>0</order>
|
| 61 |
+
</AE>
|
| 62 |
+
<VI>
|
| 63 |
+
<code>VI</code>
|
| 64 |
+
<code_hipay>visa</code_hipay>
|
| 65 |
+
<name>Visa</name>
|
| 66 |
+
<order>10</order>
|
| 67 |
+
</VI>
|
| 68 |
+
<MC>
|
| 69 |
+
<code>MC</code>
|
| 70 |
+
<code_hipay>mastercard</code_hipay>
|
| 71 |
+
<name>MasterCard</name>
|
| 72 |
+
<order>20</order>
|
| 73 |
+
</MC>
|
| 74 |
+
<SM>
|
| 75 |
+
<code>SM</code>
|
| 76 |
+
<code_hipay>maestro</code_hipay>
|
| 77 |
+
<name>Maestro</name>
|
| 78 |
+
<order>40</order>
|
| 79 |
+
</SM>
|
| 80 |
+
<BCMC>
|
| 81 |
+
<code>BCMC</code>
|
| 82 |
+
<code_hipay>bcmc</code_hipay>
|
| 83 |
+
<name>Bancontact / Mister Cash</name>
|
| 84 |
+
<order>60</order>
|
| 85 |
+
</BCMC>
|
| 86 |
+
</types>
|
| 87 |
+
</cc>
|
| 88 |
+
<hosted>
|
| 89 |
+
<types>
|
| 90 |
+
<AE>
|
| 91 |
+
<code>AE</code>
|
| 92 |
+
<code_hipay>american-express</code_hipay>
|
| 93 |
+
<name>American Express</name>
|
| 94 |
+
<order>0</order>
|
| 95 |
+
</AE>
|
| 96 |
+
<VI>
|
| 97 |
+
<code>VI</code>
|
| 98 |
+
<code_hipay>visa</code_hipay>
|
| 99 |
+
<name>Visa</name>
|
| 100 |
+
<order>10</order>
|
| 101 |
+
</VI>
|
| 102 |
+
<MC>
|
| 103 |
+
<code>MC</code>
|
| 104 |
+
<code_hipay>mastercard</code_hipay>
|
| 105 |
+
<name>MasterCard</name>
|
| 106 |
+
<order>20</order>
|
| 107 |
+
</MC>
|
| 108 |
+
<SM>
|
| 109 |
+
<code>SM</code>
|
| 110 |
+
<code_hipay>maestro</code_hipay>
|
| 111 |
+
<name>Maestro</name>
|
| 112 |
+
<order>30</order>
|
| 113 |
+
</SM>
|
| 114 |
+
<BCMC>
|
| 115 |
+
<code>BCMC</code>
|
| 116 |
+
<code_hipay>bcmc</code_hipay>
|
| 117 |
+
<name>Bancontact / Mister Cash</name>
|
| 118 |
+
<order>60</order>
|
| 119 |
+
</BCMC>
|
| 120 |
+
</types>
|
| 121 |
+
</hosted>
|
| 122 |
+
</payment_hipay>
|
| 123 |
+
<sales>
|
| 124 |
+
<order>
|
| 125 |
+
<statuses>
|
| 126 |
+
<!-- retained for backwards compatibility, not used after version 1.4.2 -->
|
| 127 |
+
<pending_capture translate="label"><label>Pending Capture</label></pending_capture>
|
| 128 |
+
<capture_requested translate="label"><label>Capture Requested</label></capture_requested>
|
| 129 |
+
<refund_requested translate="label"><label>Refund Requested</label></refund_requested>
|
| 130 |
+
</statuses>
|
| 131 |
+
</order>
|
| 132 |
+
</sales>
|
| 133 |
+
</global>
|
| 134 |
+
<frontend>
|
| 135 |
+
<secure_url>
|
| 136 |
+
<hipay_payment>/hipay/payment</hipay_payment>
|
| 137 |
+
</secure_url>
|
| 138 |
+
<routers>
|
| 139 |
+
<hipay>
|
| 140 |
+
<use>standard</use>
|
| 141 |
+
<args>
|
| 142 |
+
<module>Allopass_Hipay</module>
|
| 143 |
+
<frontName>hipay</frontName>
|
| 144 |
+
</args>
|
| 145 |
+
</hipay>
|
| 146 |
+
</routers>
|
| 147 |
+
<translate>
|
| 148 |
+
<modules>
|
| 149 |
+
<Allopass_Hipay>
|
| 150 |
+
<files>
|
| 151 |
+
<default>Allopass_Hipay.csv</default>
|
| 152 |
+
</files>
|
| 153 |
+
</Allopass_Hipay>
|
| 154 |
+
</modules>
|
| 155 |
+
</translate>
|
| 156 |
+
<layout>
|
| 157 |
+
<updates>
|
| 158 |
+
<hipay>
|
| 159 |
+
<file>hipay.xml</file>
|
| 160 |
+
</hipay>
|
| 161 |
+
</updates>
|
| 162 |
+
</layout>
|
| 163 |
+
<events>
|
| 164 |
+
<controller_action_postdispatch_checkout_onepage_saveOrder>
|
| 165 |
+
<observers>
|
| 166 |
+
<displaySectionCheckoutIframe>
|
| 167 |
+
<class>hipay/observer</class>
|
| 168 |
+
<method>displaySectionCheckoutIframe</method>
|
| 169 |
+
</displaySectionCheckoutIframe>
|
| 170 |
+
</observers>
|
| 171 |
+
</controller_action_postdispatch_checkout_onepage_saveOrder>
|
| 172 |
+
</events>
|
| 173 |
+
</frontend>
|
| 174 |
+
<adminhtml>
|
| 175 |
+
<routers>
|
| 176 |
+
<hipay>
|
| 177 |
+
<use>admin</use>
|
| 178 |
+
<args>
|
| 179 |
+
<module>Allopass_Hipay</module>
|
| 180 |
+
<frontName>hipay</frontName>
|
| 181 |
+
</args>
|
| 182 |
+
</hipay>
|
| 183 |
+
</routers>
|
| 184 |
+
<translate>
|
| 185 |
+
<modules>
|
| 186 |
+
<Allopass_Hipay>
|
| 187 |
+
<files>
|
| 188 |
+
<default>Allopass_Hipay.csv</default>
|
| 189 |
+
</files>
|
| 190 |
+
</Allopass_Hipay>
|
| 191 |
+
</modules>
|
| 192 |
+
</translate>
|
| 193 |
+
<acl>
|
| 194 |
+
<resources>
|
| 195 |
+
<admin>
|
| 196 |
+
<children>
|
| 197 |
+
<system>
|
| 198 |
+
<children>
|
| 199 |
+
<config>
|
| 200 |
+
<children>
|
| 201 |
+
<hipay>
|
| 202 |
+
<title>Hipay API Configuration</title>
|
| 203 |
+
</hipay>
|
| 204 |
+
<payment>
|
| 205 |
+
<children>
|
| 206 |
+
<hipay_cc translate="title">
|
| 207 |
+
<title>Hipay Credit Card</title>
|
| 208 |
+
</hipay_cc>
|
| 209 |
+
</children>
|
| 210 |
+
</payment>
|
| 211 |
+
</children>
|
| 212 |
+
</config>
|
| 213 |
+
</children>
|
| 214 |
+
</system>
|
| 215 |
+
</children>
|
| 216 |
+
</admin>
|
| 217 |
+
</resources>
|
| 218 |
+
</acl>
|
| 219 |
+
<layout>
|
| 220 |
+
<updates>
|
| 221 |
+
<hipay>
|
| 222 |
+
<file>hipay.xml</file>
|
| 223 |
+
</hipay>
|
| 224 |
+
</updates>
|
| 225 |
+
</layout>
|
| 226 |
+
</adminhtml>
|
| 227 |
+
<default>
|
| 228 |
+
<hipay>
|
| 229 |
+
<hipay_api>
|
| 230 |
+
<api_password backend_model="adminhtml/system_config_backend_encrypted"/>
|
| 231 |
+
<api_password_test backend_model="adminhtml/system_config_backend_encrypted"/>
|
| 232 |
+
<secret_passphrase backend_model="adminhtml/system_config_backend_encrypted"/>
|
| 233 |
+
<vault_endpoint_stage>https://stage-secure-vault.allopass.com/rest/v1/token/</vault_endpoint_stage>
|
| 234 |
+
<vault_endpoint_production>https://secure-vault.allopass.com/rest/v1/token/</vault_endpoint_production>
|
| 235 |
+
<gateway_endpoint_stage>https://stage-secure-gateway.allopass.com/rest/v1/</gateway_endpoint_stage>
|
| 236 |
+
<gateway_endpoint_production>https://secure-gateway.allopass.com/rest/v1/</gateway_endpoint_production>
|
| 237 |
+
</hipay_api>
|
| 238 |
+
</hipay>
|
| 239 |
+
<payment>
|
| 240 |
+
<hipay_cc>
|
| 241 |
+
<active>0</active>
|
| 242 |
+
<title>HiPay Credit Card</title>
|
| 243 |
+
<payment_action>authorize_capture</payment_action>
|
| 244 |
+
<cctypes>AE,VI,MC</cctypes>
|
| 245 |
+
<useccv>1</useccv>
|
| 246 |
+
<order_status_payment_accepted>processing</order_status_payment_accepted>
|
| 247 |
+
<order_status_payment_refused>canceled</order_status_payment_refused>
|
| 248 |
+
<order_status_payment_canceled>canceled</order_status_payment_canceled>
|
| 249 |
+
<hipay_status_validate_order>118</hipay_status_validate_order>
|
| 250 |
+
<pending_redirect_page>hipay/checkout/pending</pending_redirect_page>
|
| 251 |
+
<allow_use_oneclick>0</allow_use_oneclick>
|
| 252 |
+
<invoice_create>1</invoice_create>
|
| 253 |
+
<re_add_to_cart>0</re_add_to_cart>
|
| 254 |
+
<cancel_pending_order>1</cancel_pending_order>
|
| 255 |
+
<is_test_mode>0</is_test_mode>
|
| 256 |
+
<debug>0</debug>
|
| 257 |
+
<model>hipay/method_cc</model>
|
| 258 |
+
<accept_url>hipay/cc/accept</accept_url>
|
| 259 |
+
<pending_url>hipay/cc/pending</pending_url>
|
| 260 |
+
<decline_url>hipay/cc/decline</decline_url>
|
| 261 |
+
<exception_url>hipay/cc/exception</exception_url>
|
| 262 |
+
<cancel_url>hipay/cc/cancel</cancel_url>
|
| 263 |
+
<use_3d_secure>1</use_3d_secure>
|
| 264 |
+
</hipay_cc>
|
| 265 |
+
<hipay_hosted>
|
| 266 |
+
<active>0</active>
|
| 267 |
+
<title>HiPay Hosted</title>
|
| 268 |
+
<payment_action>authorize_capture</payment_action>
|
| 269 |
+
<cctypes>american-express,visa,mastercard</cctypes>
|
| 270 |
+
<order_status_payment_accepted>processing</order_status_payment_accepted>
|
| 271 |
+
<order_status_payment_refused>canceled</order_status_payment_refused>
|
| 272 |
+
<order_status_payment_canceled>canceled</order_status_payment_canceled>
|
| 273 |
+
<hipay_status_validate_order>118</hipay_status_validate_order>
|
| 274 |
+
<pending_redirect_page>hipay/checkout/pending</pending_redirect_page>
|
| 275 |
+
<display_selector>1</display_selector>
|
| 276 |
+
<template>basic</template>
|
| 277 |
+
<allow_use_oneclick>0</allow_use_oneclick>
|
| 278 |
+
<invoice_create>1</invoice_create>
|
| 279 |
+
<re_add_to_cart>0</re_add_to_cart>
|
| 280 |
+
<cancel_pending_order>1</cancel_pending_order>
|
| 281 |
+
<display_iframe>0</display_iframe>
|
| 282 |
+
<iframe_width>450</iframe_width>
|
| 283 |
+
<iframe_height>670</iframe_height>
|
| 284 |
+
<iframe_style>border:1px solid #CCC;border-radius:15px;padding:10px;max-width:500px;</iframe_style>
|
| 285 |
+
<is_test_mode>0</is_test_mode>
|
| 286 |
+
<debug>0</debug>
|
| 287 |
+
<model>hipay/method_hosted</model>
|
| 288 |
+
<accept_url>hipay/hosted/accept</accept_url>
|
| 289 |
+
<pending_url>hipay/hosted/pending</pending_url>
|
| 290 |
+
<decline_url>hipay/hosted/decline</decline_url>
|
| 291 |
+
<exception_url>hipay/hosted/exception</exception_url>
|
| 292 |
+
<cancel_url>hipay/hosted/cancel</cancel_url>
|
| 293 |
+
<use_3d_secure>1</use_3d_secure>
|
| 294 |
+
</hipay_hosted>
|
| 295 |
+
<hipay_sofortapi>
|
| 296 |
+
<active>0</active> <!-- Activé ou non -->
|
| 297 |
+
<title>HiPay Sofort</title> <!-- Titre par défaut modifiable en admin -->
|
| 298 |
+
<payment_action>authorize_capture</payment_action> <!-- Type d'action de paiement (authorize_capture ou authorize) -->
|
| 299 |
+
<cctypes>sofort-uberweisung</cctypes> <!-- Types de carte disponibles (valeur Hipay pour le mode hosted, valeur Magento pour le mode API) -->
|
| 300 |
+
<!-- <useccv>1</useccv> --> <!-- permet de rendre obligatoire la saisie du CCV (uniquement en mode API) -->
|
| 301 |
+
<order_status_payment_accepted>processing</order_status_payment_accepted><!-- valeur par défaut du statut quand le paiement est accepté -->
|
| 302 |
+
<order_status_payment_refused>canceled</order_status_payment_refused><!-- valeur par défaut du statut quand le paiement est refusé -->
|
| 303 |
+
<order_status_payment_canceled>canceled</order_status_payment_canceled><!-- valeur par défaut du statut quand le paiement est annulé -->
|
| 304 |
+
<hipay_status_validate_order>118</hipay_status_validate_order><!-- valeur par défaut du statut hipay qui valide la commande (118 ou 117)-->
|
| 305 |
+
<pending_redirect_page>hipay/checkout/pending</pending_redirect_page><!-- valeur par défaut pour la page de redirection en cas de state "pending"-->
|
| 306 |
+
<allow_use_oneclick>0</allow_use_oneclick><!-- valeur par défaut de l'utilisation du oneclick -->
|
| 307 |
+
<invoice_create>1</invoice_create><!-- valeur par défaut de la création de la facture -->
|
| 308 |
+
<re_add_to_cart>0</re_add_to_cart><!-- valeur par défaut du re-remplissage du panier -->
|
| 309 |
+
<cancel_pending_order>1</cancel_pending_order><!-- valeur par défaut des annulation de commande "en attente" depuis 30 minutes -->
|
| 310 |
+
<display_iframe>0</display_iframe><!-- valeur par défaut mode Iframe (uniquement en mode Hosted)-->
|
| 311 |
+
<is_test_mode>0</is_test_mode><!-- valeur par défaut du mode test -->
|
| 312 |
+
<debug>0</debug><!-- valeur par défaut du mode debug -->
|
| 313 |
+
<model>hipay/method_sofortApi</model><!-- Classe model de la méthode -->
|
| 314 |
+
<accept_url>hipay/sofortapi/accept</accept_url><!-- Url accept de la méthode -->
|
| 315 |
+
<pending_url>hipay/sofortapi/pending</pending_url><!-- Url pending de la méthode -->
|
| 316 |
+
<decline_url>hipay/sofortapi/decline</decline_url><!-- Url decline de la méthode -->
|
| 317 |
+
<exception_url>hipay/sofortapi/exception</exception_url><!-- Url execption de la méthode -->
|
| 318 |
+
<cancel_url>hipay/sofortapi/cancel</cancel_url><!-- Url cancel de la méthode -->
|
| 319 |
+
<use_3d_secure>0</use_3d_secure><!-- valeur par défaut pour activer le 3ds -->
|
| 320 |
+
</hipay_sofortapi>
|
| 321 |
+
<hipay_ideal>
|
| 322 |
+
<active>0</active> <!-- Activé ou non -->
|
| 323 |
+
<title>HiPay iDeal</title> <!-- Titre par défaut modifiable en admin -->
|
| 324 |
+
<payment_action>authorize_capture</payment_action> <!-- Type d'action de paiement (authorize_capture ou authorize) -->
|
| 325 |
+
<cctypes>ideal</cctypes> <!-- Types de carte disponibles (valeur Hipay pour le mode hosted, valeur Magento pour le mode API) -->
|
| 326 |
+
<!-- <useccv>1</useccv> --> <!-- permet de rendre obligatoire la saisie du CCV (uniquement en mode API) -->
|
| 327 |
+
<order_status_payment_accepted>processing</order_status_payment_accepted><!-- valeur par défaut du statut quand le paiement est accepté -->
|
| 328 |
+
<order_status_payment_refused>canceled</order_status_payment_refused><!-- valeur par défaut du statut quand le paiement est refusé -->
|
| 329 |
+
<order_status_payment_canceled>canceled</order_status_payment_canceled><!-- valeur par défaut du statut quand le paiement est annulé -->
|
| 330 |
+
<hipay_status_validate_order>118</hipay_status_validate_order><!-- valeur par défaut du statut hipay qui valide la commande (118 ou 117)-->
|
| 331 |
+
<pending_redirect_page>hipay/checkout/pending</pending_redirect_page><!-- valeur par défaut pour la page de redirection en cas de state "pending"-->
|
| 332 |
+
<display_selector>0</display_selector><!-- valeur par défaut l'affichage du selecteur de carte (uniquement en mode Hosted)-->
|
| 333 |
+
<template>basic</template><!-- valeur par défaut du template de la page hénergé (uniquement en mode Hosted)-->
|
| 334 |
+
<allow_use_oneclick>0</allow_use_oneclick><!-- valeur par défaut de l'utilisation du oneclick -->
|
| 335 |
+
<invoice_create>1</invoice_create><!-- valeur par défaut de la création de la facture -->
|
| 336 |
+
<re_add_to_cart>0</re_add_to_cart><!-- valeur par défaut du re-remplissage du panier -->
|
| 337 |
+
<cancel_pending_order>1</cancel_pending_order><!-- valeur par défaut des annulation de commande "en attente" depuis 30 minutes -->
|
| 338 |
+
<display_iframe>0</display_iframe><!-- valeur par défaut mode Iframe (uniquement en mode Hosted)-->
|
| 339 |
+
<is_test_mode>0</is_test_mode><!-- valeur par défaut du mode test -->
|
| 340 |
+
<debug>0</debug><!-- valeur par défaut du mode debug -->
|
| 341 |
+
<model>hipay/method_ideal</model><!-- Classe model de la méthode -->
|
| 342 |
+
<accept_url>hipay/ideal/accept</accept_url><!-- Url accept de la méthode -->
|
| 343 |
+
<pending_url>hipay/ideal/pending</pending_url><!-- Url pending de la méthode -->
|
| 344 |
+
<decline_url>hipay/ideal/decline</decline_url><!-- Url decline de la méthode -->
|
| 345 |
+
<exception_url>hipay/ideal/exception</exception_url><!-- Url execption de la méthode -->
|
| 346 |
+
<cancel_url>hipay/ideal/cancel</cancel_url><!-- Url cancel de la méthode -->
|
| 347 |
+
<use_3d_secure>0</use_3d_secure><!-- valeur par défaut pour activer le 3ds -->
|
| 348 |
+
</hipay_ideal>
|
| 349 |
+
<hipay_ing>
|
| 350 |
+
<active>0</active> <!-- Activé ou non -->
|
| 351 |
+
<title>HiPay ING Home'Pay</title> <!-- Titre par défaut modifiable en admin -->
|
| 352 |
+
<payment_action>authorize_capture</payment_action> <!-- Type d'action de paiement (authorize_capture ou authorize) -->
|
| 353 |
+
<cctypes>ing-homepay</cctypes> <!-- Types de carte disponibles (valeur Hipay pour le mode hosted, valeur Magento pour le mode API) -->
|
| 354 |
+
<!-- <useccv>1</useccv> --> <!-- permet de rendre obligatoire la saisie du CCV (uniquement en mode API) -->
|
| 355 |
+
<order_status_payment_accepted>processing</order_status_payment_accepted><!-- valeur par défaut du statut quand le paiement est accepté -->
|
| 356 |
+
<order_status_payment_refused>canceled</order_status_payment_refused><!-- valeur par défaut du statut quand le paiement est refusé -->
|
| 357 |
+
<order_status_payment_canceled>canceled</order_status_payment_canceled><!-- valeur par défaut du statut quand le paiement est annulé -->
|
| 358 |
+
<hipay_status_validate_order>118</hipay_status_validate_order><!-- valeur par défaut du statut hipay qui valide la commande (118 ou 117)-->
|
| 359 |
+
<pending_redirect_page>hipay/checkout/pending</pending_redirect_page><!-- valeur par défaut pour la page de redirection en cas de state "pending"-->
|
| 360 |
+
<display_selector>0</display_selector><!-- valeur par défaut l'affichage du selecteur de carte (uniquement en mode Hosted)-->
|
| 361 |
+
<template>basic</template><!-- valeur par défaut du template de la page hénergé (uniquement en mode Hosted)-->
|
| 362 |
+
<allow_use_oneclick>0</allow_use_oneclick><!-- valeur par défaut de l'utilisation du oneclick -->
|
| 363 |
+
<invoice_create>1</invoice_create><!-- valeur par défaut de la création de la facture -->
|
| 364 |
+
<re_add_to_cart>0</re_add_to_cart><!-- valeur par défaut du re-remplissage du panier -->
|
| 365 |
+
<cancel_pending_order>1</cancel_pending_order><!-- valeur par défaut des annulation de commande "en attente" depuis 30 minutes -->
|
| 366 |
+
<display_iframe>0</display_iframe><!-- valeur par défaut mode Iframe (uniquement en mode Hosted)-->
|
| 367 |
+
<is_test_mode>0</is_test_mode><!-- valeur par défaut du mode test -->
|
| 368 |
+
<debug>0</debug><!-- valeur par défaut du mode debug -->
|
| 369 |
+
<model>hipay/method_ing</model><!-- Classe model de la méthode -->
|
| 370 |
+
<accept_url>hipay/ing/accept</accept_url><!-- Url accept de la méthode -->
|
| 371 |
+
<pending_url>hipay/ing/pending</pending_url><!-- Url pending de la méthode -->
|
| 372 |
+
<decline_url>hipay/ing/decline</decline_url><!-- Url decline de la méthode -->
|
| 373 |
+
<exception_url>hipay/ing/exception</exception_url><!-- Url execption de la méthode -->
|
| 374 |
+
<cancel_url>hipay/ing/cancel</cancel_url><!-- Url cancel de la méthode -->
|
| 375 |
+
<use_3d_secure>0</use_3d_secure><!-- valeur par défaut pour activer le 3ds -->
|
| 376 |
+
</hipay_ing>
|
| 377 |
+
<hipay_dexia>
|
| 378 |
+
<active>0</active> <!-- Activé ou non -->
|
| 379 |
+
<title>HiPay Belfius / Dexia Direct Net</title> <!-- Titre par défaut modifiable en admin -->
|
| 380 |
+
<payment_action>authorize_capture</payment_action> <!-- Type d'action de paiement (authorize_capture ou authorize) -->
|
| 381 |
+
<cctypes>dexia-directnet</cctypes> <!-- Types de carte disponibles (valeur Hipay pour le mode hosted, valeur Magento pour le mode API) -->
|
| 382 |
+
<!-- <useccv>1</useccv> --> <!-- permet de rendre obligatoire la saisie du CCV (uniquement en mode API) -->
|
| 383 |
+
<order_status_payment_accepted>processing</order_status_payment_accepted><!-- valeur par défaut du statut quand le paiement est accepté -->
|
| 384 |
+
<order_status_payment_refused>canceled</order_status_payment_refused><!-- valeur par défaut du statut quand le paiement est refusé -->
|
| 385 |
+
<order_status_payment_canceled>canceled</order_status_payment_canceled><!-- valeur par défaut du statut quand le paiement est annulé -->
|
| 386 |
+
<hipay_status_validate_order>118</hipay_status_validate_order><!-- valeur par défaut du statut hipay qui valide la commande (118 ou 117)-->
|
| 387 |
+
<pending_redirect_page>hipay/checkout/pending</pending_redirect_page><!-- valeur par défaut pour la page de redirection en cas de state "pending"-->
|
| 388 |
+
<display_selector>0</display_selector><!-- valeur par défaut l'affichage du selecteur de carte (uniquement en mode Hosted)-->
|
| 389 |
+
<template>basic</template><!-- valeur par défaut du template de la page hénergé (uniquement en mode Hosted)-->
|
| 390 |
+
<allow_use_oneclick>0</allow_use_oneclick><!-- valeur par défaut de l'utilisation du oneclick -->
|
| 391 |
+
<invoice_create>1</invoice_create><!-- valeur par défaut de la création de la facture -->
|
| 392 |
+
<re_add_to_cart>0</re_add_to_cart><!-- valeur par défaut du re-remplissage du panier -->
|
| 393 |
+
<cancel_pending_order>1</cancel_pending_order><!-- valeur par défaut des annulation de commande "en attente" depuis 30 minutes -->
|
| 394 |
+
<display_iframe>0</display_iframe><!-- valeur par défaut mode Iframe (uniquement en mode Hosted)-->
|
| 395 |
+
<is_test_mode>0</is_test_mode><!-- valeur par défaut du mode test -->
|
| 396 |
+
<debug>0</debug><!-- valeur par défaut du mode debug -->
|
| 397 |
+
<model>hipay/method_dexia</model><!-- Classe model de la méthode -->
|
| 398 |
+
<accept_url>hipay/dexia/accept</accept_url><!-- Url accept de la méthode -->
|
| 399 |
+
<pending_url>hipay/dexia/pending</pending_url><!-- Url pending de la méthode -->
|
| 400 |
+
<decline_url>hipay/dexia/decline</decline_url><!-- Url decline de la méthode -->
|
| 401 |
+
<exception_url>hipay/dexia/exception</exception_url><!-- Url execption de la méthode -->
|
| 402 |
+
<cancel_url>hipay/dexia/cancel</cancel_url><!-- Url cancel de la méthode -->
|
| 403 |
+
<use_3d_secure>0</use_3d_secure><!-- valeur par défaut pour activer le 3ds -->
|
| 404 |
+
</hipay_dexia>
|
| 405 |
+
<hipay_cbc>
|
| 406 |
+
<active>0</active> <!-- Activé ou non -->
|
| 407 |
+
<title>HiPay CBC Online</title> <!-- Titre par défaut modifiable en admin -->
|
| 408 |
+
<payment_action>authorize_capture</payment_action> <!-- Type d'action de paiement (authorize_capture ou authorize) -->
|
| 409 |
+
<cctypes>cbc-online</cctypes> <!-- Types de carte disponibles (valeur Hipay pour le mode hosted, valeur Magento pour le mode API) -->
|
| 410 |
+
<!-- <useccv>1</useccv> --> <!-- permet de rendre obligatoire la saisie du CCV (uniquement en mode API) -->
|
| 411 |
+
<order_status_payment_accepted>processing</order_status_payment_accepted><!-- valeur par défaut du statut quand le paiement est accepté -->
|
| 412 |
+
<order_status_payment_refused>canceled</order_status_payment_refused><!-- valeur par défaut du statut quand le paiement est refusé -->
|
| 413 |
+
<order_status_payment_canceled>canceled</order_status_payment_canceled><!-- valeur par défaut du statut quand le paiement est annulé -->
|
| 414 |
+
<hipay_status_validate_order>118</hipay_status_validate_order><!-- valeur par défaut du statut hipay qui valide la commande (118 ou 117)-->
|
| 415 |
+
<pending_redirect_page>hipay/checkout/pending</pending_redirect_page><!-- valeur par défaut pour la page de redirection en cas de state "pending"-->
|
| 416 |
+
<display_selector>0</display_selector><!-- valeur par défaut l'affichage du selecteur de carte (uniquement en mode Hosted)-->
|
| 417 |
+
<template>basic</template><!-- valeur par défaut du template de la page hénergé (uniquement en mode Hosted)-->
|
| 418 |
+
<allow_use_oneclick>0</allow_use_oneclick><!-- valeur par défaut de l'utilisation du oneclick -->
|
| 419 |
+
<invoice_create>1</invoice_create><!-- valeur par défaut de la création de la facture -->
|
| 420 |
+
<re_add_to_cart>0</re_add_to_cart><!-- valeur par défaut du re-remplissage du panier -->
|
| 421 |
+
<cancel_pending_order>1</cancel_pending_order><!-- valeur par défaut des annulation de commande "en attente" depuis 30 minutes -->
|
| 422 |
+
<display_iframe>0</display_iframe><!-- valeur par défaut mode Iframe (uniquement en mode Hosted)-->
|
| 423 |
+
<is_test_mode>0</is_test_mode><!-- valeur par défaut du mode test -->
|
| 424 |
+
<debug>0</debug><!-- valeur par défaut du mode debug -->
|
| 425 |
+
<model>hipay/method_cbc</model><!-- Classe model de la méthode -->
|
| 426 |
+
<accept_url>hipay/cbc/accept</accept_url><!-- Url accept de la méthode -->
|
| 427 |
+
<pending_url>hipay/cbc/pending</pending_url><!-- Url pending de la méthode -->
|
| 428 |
+
<decline_url>hipay/cbc/decline</decline_url><!-- Url decline de la méthode -->
|
| 429 |
+
<exception_url>hipay/cbc/exception</exception_url><!-- Url execption de la méthode -->
|
| 430 |
+
<cancel_url>hipay/cbc/cancel</cancel_url><!-- Url cancel de la méthode -->
|
| 431 |
+
<use_3d_secure>0</use_3d_secure><!-- valeur par défaut pour activer le 3ds -->
|
| 432 |
+
</hipay_cbc>
|
| 433 |
+
<hipay_kbc>
|
| 434 |
+
<active>0</active> <!-- Activé ou non -->
|
| 435 |
+
<title>HiPay KBC Online</title> <!-- Titre par défaut modifiable en admin -->
|
| 436 |
+
<payment_action>authorize_capture</payment_action> <!-- Type d'action de paiement (authorize_capture ou authorize) -->
|
| 437 |
+
<cctypes>kbc-online</cctypes> <!-- Types de carte disponibles (valeur Hipay pour le mode hosted, valeur Magento pour le mode API) -->
|
| 438 |
+
<!-- <useccv>1</useccv> --> <!-- permet de rendre obligatoire la saisie du CCV (uniquement en mode API) -->
|
| 439 |
+
<order_status_payment_accepted>processing</order_status_payment_accepted><!-- valeur par défaut du statut quand le paiement est accepté -->
|
| 440 |
+
<order_status_payment_refused>canceled</order_status_payment_refused><!-- valeur par défaut du statut quand le paiement est refusé -->
|
| 441 |
+
<order_status_payment_canceled>canceled</order_status_payment_canceled><!-- valeur par défaut du statut quand le paiement est annulé -->
|
| 442 |
+
<hipay_status_validate_order>118</hipay_status_validate_order><!-- valeur par défaut du statut hipay qui valide la commande (118 ou 117)-->
|
| 443 |
+
<pending_redirect_page>hipay/checkout/pending</pending_redirect_page><!-- valeur par défaut pour la page de redirection en cas de state "pending"-->
|
| 444 |
+
<display_selector>0</display_selector><!-- valeur par défaut l'affichage du selecteur de carte (uniquement en mode Hosted)-->
|
| 445 |
+
<template>basic</template><!-- valeur par défaut du template de la page hénergé (uniquement en mode Hosted)-->
|
| 446 |
+
<allow_use_oneclick>0</allow_use_oneclick><!-- valeur par défaut de l'utilisation du oneclick -->
|
| 447 |
+
<invoice_create>1</invoice_create><!-- valeur par défaut de la création de la facture -->
|
| 448 |
+
<re_add_to_cart>0</re_add_to_cart><!-- valeur par défaut du re-remplissage du panier -->
|
| 449 |
+
<cancel_pending_order>1</cancel_pending_order><!-- valeur par défaut des annulation de commande "en attente" depuis 30 minutes -->
|
| 450 |
+
<display_iframe>0</display_iframe><!-- valeur par défaut mode Iframe (uniquement en mode Hosted)-->
|
| 451 |
+
<is_test_mode>0</is_test_mode><!-- valeur par défaut du mode test -->
|
| 452 |
+
<debug>0</debug><!-- valeur par défaut du mode debug -->
|
| 453 |
+
<model>hipay/method_kbc</model><!-- Classe model de la méthode -->
|
| 454 |
+
<accept_url>hipay/kbc/accept</accept_url><!-- Url accept de la méthode -->
|
| 455 |
+
<pending_url>hipay/kbc/pending</pending_url><!-- Url pending de la méthode -->
|
| 456 |
+
<decline_url>hipay/kbc/decline</decline_url><!-- Url decline de la méthode -->
|
| 457 |
+
<exception_url>hipay/kbc/exception</exception_url><!-- Url execption de la méthode -->
|
| 458 |
+
<cancel_url>hipay/kbc/cancel</cancel_url><!-- Url cancel de la méthode -->
|
| 459 |
+
<use_3d_secure>0</use_3d_secure><!-- valeur par défaut pour activer le 3ds -->
|
| 460 |
+
</hipay_kbc>
|
| 461 |
+
<hipay_giropay>
|
| 462 |
+
<active>0</active> <!-- Activé ou non -->
|
| 463 |
+
<title>HiPay Giropay</title> <!-- Titre par défaut modifiable en admin -->
|
| 464 |
+
<payment_action>authorize_capture</payment_action> <!-- Type d'action de paiement (authorize_capture ou authorize) -->
|
| 465 |
+
<cctypes>giropay</cctypes> <!-- Types de carte disponibles (valeur Hipay pour le mode hosted, valeur Magento pour le mode API) -->
|
| 466 |
+
<!-- <useccv>1</useccv> --> <!-- permet de rendre obligatoire la saisie du CCV (uniquement en mode API) -->
|
| 467 |
+
<order_status_payment_accepted>processing</order_status_payment_accepted><!-- valeur par défaut du statut quand le paiement est accepté -->
|
| 468 |
+
<order_status_payment_refused>canceled</order_status_payment_refused><!-- valeur par défaut du statut quand le paiement est refusé -->
|
| 469 |
+
<order_status_payment_canceled>canceled</order_status_payment_canceled><!-- valeur par défaut du statut quand le paiement est annulé -->
|
| 470 |
+
<hipay_status_validate_order>118</hipay_status_validate_order><!-- valeur par défaut du statut hipay qui valide la commande (118 ou 117)-->
|
| 471 |
+
<pending_redirect_page>hipay/checkout/pending</pending_redirect_page><!-- valeur par défaut pour la page de redirection en cas de state "pending"-->
|
| 472 |
+
<display_selector>0</display_selector><!-- valeur par défaut l'affichage du selecteur de carte (uniquement en mode Hosted)-->
|
| 473 |
+
<template>basic</template><!-- valeur par défaut du template de la page hénergé (uniquement en mode Hosted)-->
|
| 474 |
+
<allow_use_oneclick>0</allow_use_oneclick><!-- valeur par défaut de l'utilisation du oneclick -->
|
| 475 |
+
<invoice_create>1</invoice_create><!-- valeur par défaut de la création de la facture -->
|
| 476 |
+
<re_add_to_cart>0</re_add_to_cart><!-- valeur par défaut du re-remplissage du panier -->
|
| 477 |
+
<cancel_pending_order>1</cancel_pending_order><!-- valeur par défaut des annulation de commande "en attente" depuis 30 minutes -->
|
| 478 |
+
<display_iframe>0</display_iframe><!-- valeur par défaut mode Iframe (uniquement en mode Hosted)-->
|
| 479 |
+
<is_test_mode>0</is_test_mode><!-- valeur par défaut du mode test -->
|
| 480 |
+
<debug>0</debug><!-- valeur par défaut du mode debug -->
|
| 481 |
+
<model>hipay/method_giropay</model><!-- Classe model de la méthode -->
|
| 482 |
+
<accept_url>hipay/giropay/accept</accept_url><!-- Url accept de la méthode -->
|
| 483 |
+
<pending_url>hipay/giropay/pending</pending_url><!-- Url pending de la méthode -->
|
| 484 |
+
<decline_url>hipay/giropay/decline</decline_url><!-- Url decline de la méthode -->
|
| 485 |
+
<exception_url>hipay/giropay/exception</exception_url><!-- Url execption de la méthode -->
|
| 486 |
+
<cancel_url>hipay/giropay/cancel</cancel_url><!-- Url cancel de la méthode -->
|
| 487 |
+
<use_3d_secure>0</use_3d_secure><!-- valeur par défaut pour activer le 3ds -->
|
| 488 |
+
</hipay_giropay>
|
| 489 |
+
<hipay_przelewy24api>
|
| 490 |
+
<active>0</active> <!-- Activé ou non -->
|
| 491 |
+
<title>HiPay Przelewy24</title> <!-- Titre par défaut modifiable en admin -->
|
| 492 |
+
<payment_action>authorize_capture</payment_action> <!-- Type d'action de paiement (authorize_capture ou authorize) -->
|
| 493 |
+
<cctypes>przelewy24</cctypes> <!-- Types de carte disponibles (valeur Hipay pour le mode hosted, valeur Magento pour le mode API) -->
|
| 494 |
+
<!-- <useccv>1</useccv> --> <!-- permet de rendre obligatoire la saisie du CCV (uniquement en mode API) -->
|
| 495 |
+
<order_status_payment_accepted>processing</order_status_payment_accepted><!-- valeur par défaut du statut quand le paiement est accepté -->
|
| 496 |
+
<order_status_payment_refused>canceled</order_status_payment_refused><!-- valeur par défaut du statut quand le paiement est refusé -->
|
| 497 |
+
<order_status_payment_canceled>canceled</order_status_payment_canceled><!-- valeur par défaut du statut quand le paiement est annulé -->
|
| 498 |
+
<hipay_status_validate_order>118</hipay_status_validate_order><!-- valeur par défaut du statut hipay qui valide la commande (118 ou 117)-->
|
| 499 |
+
<pending_redirect_page>hipay/checkout/pending</pending_redirect_page><!-- valeur par défaut pour la page de redirection en cas de state "pending"-->
|
| 500 |
+
<display_selector>0</display_selector><!-- valeur par défaut l'affichage du selecteur de carte (uniquement en mode Hosted)-->
|
| 501 |
+
<template>basic</template><!-- valeur par défaut du template de la page hénergé (uniquement en mode Hosted)-->
|
| 502 |
+
<allow_use_oneclick>0</allow_use_oneclick><!-- valeur par défaut de l'utilisation du oneclick -->
|
| 503 |
+
<invoice_create>1</invoice_create><!-- valeur par défaut de la création de la facture -->
|
| 504 |
+
<re_add_to_cart>0</re_add_to_cart><!-- valeur par défaut du re-remplissage du panier -->
|
| 505 |
+
<cancel_pending_order>1</cancel_pending_order><!-- valeur par défaut des annulation de commande "en attente" depuis 30 minutes -->
|
| 506 |
+
<display_iframe>0</display_iframe><!-- valeur par défaut mode Iframe (uniquement en mode Hosted)-->
|
| 507 |
+
<is_test_mode>0</is_test_mode><!-- valeur par défaut du mode test -->
|
| 508 |
+
<debug>0</debug><!-- valeur par défaut du mode debug -->
|
| 509 |
+
<model>hipay/method_przelewy24Api</model><!-- Classe model de la méthode -->
|
| 510 |
+
<accept_url>hipay/przelewy24api/accept</accept_url><!-- Url accept de la méthode -->
|
| 511 |
+
<pending_url>hipay/przelewy24api/pending</pending_url><!-- Url pending de la méthode -->
|
| 512 |
+
<decline_url>hipay/przelewy24api/decline</decline_url><!-- Url decline de la méthode -->
|
| 513 |
+
<exception_url>hipay/przelewy24api/exception</exception_url><!-- Url execption de la méthode -->
|
| 514 |
+
<cancel_url>hipay/przelewy24api/cancel</cancel_url><!-- Url cancel de la méthode -->
|
| 515 |
+
<use_3d_secure>0</use_3d_secure><!-- valeur par défaut pour activer le 3ds -->
|
| 516 |
+
</hipay_przelewy24api>
|
| 517 |
+
<hipay_sisalapi>
|
| 518 |
+
<active>0</active> <!-- Activé ou non -->
|
| 519 |
+
<title>HiPay Sisal</title> <!-- Titre par défaut modifiable en admin -->
|
| 520 |
+
<payment_action>authorize_capture</payment_action> <!-- Type d'action de paiement (authorize_capture ou authorize) -->
|
| 521 |
+
<cctypes>sisal</cctypes> <!-- Types de carte disponibles (valeur Hipay pour le mode hosted, valeur Magento pour le mode API) -->
|
| 522 |
+
<!-- <useccv>1</useccv> --> <!-- permet de rendre obligatoire la saisie du CCV (uniquement en mode API) -->
|
| 523 |
+
<order_status_payment_accepted>processing</order_status_payment_accepted><!-- valeur par défaut du statut quand le paiement est accepté -->
|
| 524 |
+
<order_status_payment_refused>canceled</order_status_payment_refused><!-- valeur par défaut du statut quand le paiement est refusé -->
|
| 525 |
+
<order_status_payment_canceled>canceled</order_status_payment_canceled><!-- valeur par défaut du statut quand le paiement est annulé -->
|
| 526 |
+
<hipay_status_validate_order>118</hipay_status_validate_order><!-- valeur par défaut du statut hipay qui valide la commande (118 ou 117)-->
|
| 527 |
+
<pending_redirect_page>hipay/checkout/pending</pending_redirect_page><!-- valeur par défaut pour la page de redirection en cas de state "pending"-->
|
| 528 |
+
<allow_use_oneclick>0</allow_use_oneclick><!-- valeur par défaut de l'utilisation du oneclick -->
|
| 529 |
+
<invoice_create>1</invoice_create><!-- valeur par défaut de la création de la facture -->
|
| 530 |
+
<re_add_to_cart>0</re_add_to_cart><!-- valeur par défaut du re-remplissage du panier -->
|
| 531 |
+
<cancel_pending_order>1</cancel_pending_order><!-- valeur par défaut des annulation de commande "en attente" depuis 30 minutes -->
|
| 532 |
+
<display_iframe>0</display_iframe><!-- valeur par défaut mode Iframe (uniquement en mode Hosted)-->
|
| 533 |
+
<is_test_mode>0</is_test_mode><!-- valeur par défaut du mode test -->
|
| 534 |
+
<debug>0</debug><!-- valeur par défaut du mode debug -->
|
| 535 |
+
<model>hipay/method_sisalApi</model><!-- Classe model de la méthode -->
|
| 536 |
+
<accept_url>hipay/sisalapi/accept</accept_url><!-- Url accept de la méthode -->
|
| 537 |
+
<pending_url>hipay/sisalapi/pending</pending_url><!-- Url pending de la méthode -->
|
| 538 |
+
<decline_url>hipay/sisalapi/decline</decline_url><!-- Url decline de la méthode -->
|
| 539 |
+
<exception_url>hipay/sisalapi/exception</exception_url><!-- Url execption de la méthode -->
|
| 540 |
+
<cancel_url>hipay/sisalapi/cancel</cancel_url><!-- Url cancel de la méthode -->
|
| 541 |
+
<use_3d_secure>0</use_3d_secure><!-- valeur par défaut pour activer le 3ds -->
|
| 542 |
+
</hipay_sisalapi>
|
| 543 |
+
<hipay_qiwi>
|
| 544 |
+
<active>0</active> <!-- Activé ou non -->
|
| 545 |
+
<title>HiPay Visa Qiwi Wallet</title> <!-- Titre par défaut modifiable en admin -->
|
| 546 |
+
<payment_action>authorize_capture</payment_action> <!-- Type d'action de paiement (authorize_capture ou authorize) -->
|
| 547 |
+
<cctypes>qiwi-wallet</cctypes> <!-- Types de carte disponibles (valeur Hipay pour le mode hosted, valeur Magento pour le mode API) -->
|
| 548 |
+
<!-- <useccv>1</useccv> --> <!-- permet de rendre obligatoire la saisie du CCV (uniquement en mode API) -->
|
| 549 |
+
<order_status_payment_accepted>processing</order_status_payment_accepted><!-- valeur par défaut du statut quand le paiement est accepté -->
|
| 550 |
+
<order_status_payment_refused>canceled</order_status_payment_refused><!-- valeur par défaut du statut quand le paiement est refusé -->
|
| 551 |
+
<order_status_payment_canceled>canceled</order_status_payment_canceled><!-- valeur par défaut du statut quand le paiement est annulé -->
|
| 552 |
+
<hipay_status_validate_order>118</hipay_status_validate_order><!-- valeur par défaut du statut hipay qui valide la commande (118 ou 117)-->
|
| 553 |
+
<pending_redirect_page>hipay/checkout/pending</pending_redirect_page><!-- valeur par défaut pour la page de redirection en cas de state "pending"-->
|
| 554 |
+
<display_selector>0</display_selector><!-- valeur par défaut l'affichage du selecteur de carte (uniquement en mode Hosted)-->
|
| 555 |
+
<template>basic</template><!-- valeur par défaut du template de la page hénergé (uniquement en mode Hosted)-->
|
| 556 |
+
<allow_use_oneclick>0</allow_use_oneclick><!-- valeur par défaut de l'utilisation du oneclick -->
|
| 557 |
+
<invoice_create>1</invoice_create><!-- valeur par défaut de la création de la facture -->
|
| 558 |
+
<re_add_to_cart>0</re_add_to_cart><!-- valeur par défaut du re-remplissage du panier -->
|
| 559 |
+
<cancel_pending_order>1</cancel_pending_order><!-- valeur par défaut des annulation de commande "en attente" depuis 30 minutes -->
|
| 560 |
+
<display_iframe>0</display_iframe><!-- valeur par défaut mode Iframe (uniquement en mode Hosted)-->
|
| 561 |
+
<is_test_mode>0</is_test_mode><!-- valeur par défaut du mode test -->
|
| 562 |
+
<debug>0</debug><!-- valeur par défaut du mode debug -->
|
| 563 |
+
<model>hipay/method_qiwi</model><!-- Classe model de la méthode -->
|
| 564 |
+
<accept_url>hipay/qiwi/accept</accept_url><!-- Url accept de la méthode -->
|
| 565 |
+
<pending_url>hipay/qiwi/pending</pending_url><!-- Url pending de la méthode -->
|
| 566 |
+
<decline_url>hipay/qiwi/decline</decline_url><!-- Url decline de la méthode -->
|
| 567 |
+
<exception_url>hipay/qiwi/exception</exception_url><!-- Url execption de la méthode -->
|
| 568 |
+
<cancel_url>hipay/qiwi/cancel</cancel_url><!-- Url cancel de la méthode -->
|
| 569 |
+
<use_3d_secure>0</use_3d_secure><!-- valeur par défaut pour activer le 3ds -->
|
| 570 |
+
</hipay_qiwi>
|
| 571 |
+
<hipay_webmoneyapi>
|
| 572 |
+
<active>0</active> <!-- Activé ou non -->
|
| 573 |
+
<title>HiPay WebMoney Transfer</title> <!-- Titre par défaut modifiable en admin -->
|
| 574 |
+
<payment_action>authorize_capture</payment_action> <!-- Type d'action de paiement (authorize_capture ou authorize) -->
|
| 575 |
+
<cctypes>webmoney-transfer</cctypes> <!-- Types de carte disponibles (valeur Hipay pour le mode hosted, valeur Magento pour le mode API) -->
|
| 576 |
+
<!-- <useccv>1</useccv> --> <!-- permet de rendre obligatoire la saisie du CCV (uniquement en mode API) -->
|
| 577 |
+
<order_status_payment_accepted>processing</order_status_payment_accepted><!-- valeur par défaut du statut quand le paiement est accepté -->
|
| 578 |
+
<order_status_payment_refused>canceled</order_status_payment_refused><!-- valeur par défaut du statut quand le paiement est refusé -->
|
| 579 |
+
<order_status_payment_canceled>canceled</order_status_payment_canceled><!-- valeur par défaut du statut quand le paiement est annulé -->
|
| 580 |
+
<hipay_status_validate_order>118</hipay_status_validate_order><!-- valeur par défaut du statut hipay qui valide la commande (118 ou 117)-->
|
| 581 |
+
<pending_redirect_page>hipay/checkout/pending</pending_redirect_page><!-- valeur par défaut pour la page de redirection en cas de state "pending"-->
|
| 582 |
+
<display_selector>0</display_selector><!-- valeur par défaut l'affichage du selecteur de carte (uniquement en mode Hosted)-->
|
| 583 |
+
<template>basic</template><!-- valeur par défaut du template de la page hénergé (uniquement en mode Hosted)-->
|
| 584 |
+
<allow_use_oneclick>0</allow_use_oneclick><!-- valeur par défaut de l'utilisation du oneclick -->
|
| 585 |
+
<invoice_create>1</invoice_create><!-- valeur par défaut de la création de la facture -->
|
| 586 |
+
<re_add_to_cart>0</re_add_to_cart><!-- valeur par défaut du re-remplissage du panier -->
|
| 587 |
+
<cancel_pending_order>1</cancel_pending_order><!-- valeur par défaut des annulation de commande "en attente" depuis 30 minutes -->
|
| 588 |
+
<display_iframe>0</display_iframe><!-- valeur par défaut mode Iframe (uniquement en mode Hosted)-->
|
| 589 |
+
<is_test_mode>0</is_test_mode><!-- valeur par défaut du mode test -->
|
| 590 |
+
<debug>0</debug><!-- valeur par défaut du mode debug -->
|
| 591 |
+
<model>hipay/method_webmoneyApi</model><!-- Classe model de la méthode -->
|
| 592 |
+
<accept_url>hipay/webmoneyapi/accept</accept_url><!-- Url accept de la méthode -->
|
| 593 |
+
<pending_url>hipay/webmoneyapi/pending</pending_url><!-- Url pending de la méthode -->
|
| 594 |
+
<decline_url>hipay/webmoneyapi/decline</decline_url><!-- Url decline de la méthode -->
|
| 595 |
+
<exception_url>hipay/webmoneyapi/exception</exception_url><!-- Url execption de la méthode -->
|
| 596 |
+
<cancel_url>hipay/webmoneyapi/cancel</cancel_url><!-- Url cancel de la méthode -->
|
| 597 |
+
<use_3d_secure>0</use_3d_secure><!-- valeur par défaut pour activer le 3ds -->
|
| 598 |
+
</hipay_webmoneyapi>
|
| 599 |
+
<hipay_yandexapi>
|
| 600 |
+
<active>0</active> <!-- Activé ou non -->
|
| 601 |
+
<title>HiPay Yandex.Money</title> <!-- Titre par défaut modifiable en admin -->
|
| 602 |
+
<payment_action>authorize_capture</payment_action> <!-- Type d'action de paiement (authorize_capture ou authorize) -->
|
| 603 |
+
<cctypes>yandex</cctypes> <!-- Types de carte disponibles (valeur Hipay pour le mode hosted, valeur Magento pour le mode API) -->
|
| 604 |
+
<!-- <useccv>1</useccv> --> <!-- permet de rendre obligatoire la saisie du CCV (uniquement en mode API) -->
|
| 605 |
+
<order_status_payment_accepted>processing</order_status_payment_accepted><!-- valeur par défaut du statut quand le paiement est accepté -->
|
| 606 |
+
<order_status_payment_refused>canceled</order_status_payment_refused><!-- valeur par défaut du statut quand le paiement est refusé -->
|
| 607 |
+
<order_status_payment_canceled>canceled</order_status_payment_canceled><!-- valeur par défaut du statut quand le paiement est annulé -->
|
| 608 |
+
<hipay_status_validate_order>118</hipay_status_validate_order><!-- valeur par défaut du statut hipay qui valide la commande (118 ou 117)-->
|
| 609 |
+
<pending_redirect_page>hipay/checkout/pending</pending_redirect_page><!-- valeur par défaut pour la page de redirection en cas de state "pending"-->
|
| 610 |
+
<display_selector>0</display_selector><!-- valeur par défaut l'affichage du selecteur de carte (uniquement en mode Hosted)-->
|
| 611 |
+
<template>basic</template><!-- valeur par défaut du template de la page hénergé (uniquement en mode Hosted)-->
|
| 612 |
+
<allow_use_oneclick>0</allow_use_oneclick><!-- valeur par défaut de l'utilisation du oneclick -->
|
| 613 |
+
<invoice_create>1</invoice_create><!-- valeur par défaut de la création de la facture -->
|
| 614 |
+
<re_add_to_cart>0</re_add_to_cart><!-- valeur par défaut du re-remplissage du panier -->
|
| 615 |
+
<cancel_pending_order>1</cancel_pending_order><!-- valeur par défaut des annulation de commande "en attente" depuis 30 minutes -->
|
| 616 |
+
<display_iframe>0</display_iframe><!-- valeur par défaut mode Iframe (uniquement en mode Hosted)-->
|
| 617 |
+
<is_test_mode>0</is_test_mode><!-- valeur par défaut du mode test -->
|
| 618 |
+
<debug>0</debug><!-- valeur par défaut du mode debug -->
|
| 619 |
+
<model>hipay/method_yandexApi</model><!-- Classe model de la méthode -->
|
| 620 |
+
<accept_url>hipay/yandexapi/accept</accept_url><!-- Url accept de la méthode -->
|
| 621 |
+
<pending_url>hipay/yandexapi/pending</pending_url><!-- Url pending de la méthode -->
|
| 622 |
+
<decline_url>hipay/yandexapi/decline</decline_url><!-- Url decline de la méthode -->
|
| 623 |
+
<exception_url>hipay/yandexapi/exception</exception_url><!-- Url execption de la méthode -->
|
| 624 |
+
<cancel_url>hipay/yandexapi/cancel</cancel_url><!-- Url cancel de la méthode -->
|
| 625 |
+
<use_3d_secure>0</use_3d_secure><!-- valeur par défaut pour activer le 3ds -->
|
| 626 |
+
</hipay_yandexapi>
|
| 627 |
+
</payment>
|
| 628 |
+
</default>
|
| 629 |
+
<crontab>
|
| 630 |
+
<jobs>
|
| 631 |
+
<clean_orders_hipay_in_pending>
|
| 632 |
+
<schedule><cron_expr>*/15 * * * *</cron_expr></schedule>
|
| 633 |
+
<run><model>hipay/observer::cancelOrdersInPending</model></run>
|
| 634 |
+
</clean_orders_hipay_in_pending>
|
| 635 |
+
</jobs>
|
| 636 |
+
</crontab>
|
| 637 |
+
</config>
|
app/code/community/Allopass/Hipay/etc/system.xml
ADDED
|
@@ -0,0 +1,2586 @@
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
| 1 |
+
<?xml version="1.0" encoding="UTF-8"?>
|
| 2 |
+
<config>
|
| 3 |
+
<sections>
|
| 4 |
+
<hipay translate="label" module="hipay">
|
| 5 |
+
<label>HiPay Fullservice</label>
|
| 6 |
+
<tab>sales</tab>
|
| 7 |
+
<frontend_type>text</frontend_type>
|
| 8 |
+
<sort_order>398</sort_order>
|
| 9 |
+
<show_in_default>1</show_in_default>
|
| 10 |
+
<show_in_website>1</show_in_website>
|
| 11 |
+
<show_in_store>1</show_in_store>
|
| 12 |
+
<groups>
|
| 13 |
+
<hipay_api>
|
| 14 |
+
<label>HiPay Fullservice credentials configuration</label>
|
| 15 |
+
<frontend_type>text</frontend_type>
|
| 16 |
+
<comment></comment>
|
| 17 |
+
<sort_order>10</sort_order>
|
| 18 |
+
<show_in_default>1</show_in_default>
|
| 19 |
+
<show_in_website>1</show_in_website>
|
| 20 |
+
<show_in_store>0</show_in_store>
|
| 21 |
+
<fields>
|
| 22 |
+
<api_username translate="label">
|
| 23 |
+
<label>Api username (production account)</label>
|
| 24 |
+
<frontend_type>text</frontend_type>
|
| 25 |
+
<sort_order>10</sort_order>
|
| 26 |
+
<show_in_default>1</show_in_default>
|
| 27 |
+
<show_in_website>1</show_in_website>
|
| 28 |
+
<show_in_store>0</show_in_store>
|
| 29 |
+
</api_username>
|
| 30 |
+
<api_password translate="label">
|
| 31 |
+
<label>Api password (production account)</label>
|
| 32 |
+
<frontend_type>obscure</frontend_type>
|
| 33 |
+
<backend_model>adminhtml/system_config_backend_encrypted</backend_model>
|
| 34 |
+
<sort_order>20</sort_order>
|
| 35 |
+
<show_in_default>1</show_in_default>
|
| 36 |
+
<show_in_website>1</show_in_website>
|
| 37 |
+
<show_in_store>0</show_in_store>
|
| 38 |
+
</api_password>
|
| 39 |
+
<secret_passphrase translate="label comment">
|
| 40 |
+
<label>Secret passphrase (production account)</label>
|
| 41 |
+
<comment>The same of your HiPay Fullservice production account</comment>
|
| 42 |
+
<frontend_type>obscure</frontend_type>
|
| 43 |
+
<backend_model>adminhtml/system_config_backend_encrypted</backend_model>
|
| 44 |
+
<sort_order>25</sort_order>
|
| 45 |
+
<show_in_default>1</show_in_default>
|
| 46 |
+
<show_in_website>1</show_in_website>
|
| 47 |
+
<show_in_store>0</show_in_store>
|
| 48 |
+
</secret_passphrase>
|
| 49 |
+
<api_username_test translate="label">
|
| 50 |
+
<label>Api username (test account)</label>
|
| 51 |
+
<frontend_type>text</frontend_type>
|
| 52 |
+
<sort_order>30</sort_order>
|
| 53 |
+
<show_in_default>1</show_in_default>
|
| 54 |
+
<show_in_website>1</show_in_website>
|
| 55 |
+
<show_in_store>0</show_in_store>
|
| 56 |
+
</api_username_test>
|
| 57 |
+
<api_password_test translate="label">
|
| 58 |
+
<label>Api password (test account)</label>
|
| 59 |
+
<frontend_type>obscure</frontend_type>
|
| 60 |
+
<backend_model>adminhtml/system_config_backend_encrypted</backend_model>
|
| 61 |
+
<sort_order>40</sort_order>
|
| 62 |
+
<show_in_default>1</show_in_default>
|
| 63 |
+
<show_in_website>1</show_in_website>
|
| 64 |
+
<show_in_store>0</show_in_store>
|
| 65 |
+
</api_password_test>
|
| 66 |
+
</fields>
|
| 67 |
+
</hipay_api>
|
| 68 |
+
</groups>
|
| 69 |
+
</hipay>
|
| 70 |
+
<payment>
|
| 71 |
+
<groups>
|
| 72 |
+
<hipay_cc translate="label" module="hipay">
|
| 73 |
+
<label>HiPay Fullservice Credit Card</label>
|
| 74 |
+
<frontend_type>text</frontend_type>
|
| 75 |
+
<sort_order>200</sort_order>
|
| 76 |
+
<show_in_default>1</show_in_default>
|
| 77 |
+
<show_in_website>1</show_in_website>
|
| 78 |
+
<show_in_store>1</show_in_store>
|
| 79 |
+
<fields>
|
| 80 |
+
<active translate="label">
|
| 81 |
+
<label>Enabled</label>
|
| 82 |
+
<frontend_type>select</frontend_type>
|
| 83 |
+
<source_model>adminhtml/system_config_source_yesno</source_model>
|
| 84 |
+
<sort_order>10</sort_order>
|
| 85 |
+
<show_in_default>1</show_in_default>
|
| 86 |
+
<show_in_website>1</show_in_website>
|
| 87 |
+
<show_in_store>1</show_in_store>
|
| 88 |
+
</active>
|
| 89 |
+
<title translate="label">
|
| 90 |
+
<label>Title</label>
|
| 91 |
+
<frontend_type>text</frontend_type>
|
| 92 |
+
<sort_order>20</sort_order>
|
| 93 |
+
<show_in_default>1</show_in_default>
|
| 94 |
+
<show_in_website>1</show_in_website>
|
| 95 |
+
<show_in_store>1</show_in_store>
|
| 96 |
+
</title>
|
| 97 |
+
<order_status_payment_accepted translate="label">
|
| 98 |
+
<label>Order status when payment accepted</label>
|
| 99 |
+
<frontend_type>select</frontend_type>
|
| 100 |
+
<source_model>hipay/source_order_status_accepted</source_model>
|
| 101 |
+
<sort_order>23</sort_order>
|
| 102 |
+
<show_in_default>1</show_in_default>
|
| 103 |
+
<show_in_website>1</show_in_website>
|
| 104 |
+
<show_in_store>0</show_in_store>
|
| 105 |
+
</order_status_payment_accepted>
|
| 106 |
+
<order_status_payment_refused translate="label">
|
| 107 |
+
<label>Order status when payment refused</label>
|
| 108 |
+
<frontend_type>select</frontend_type>
|
| 109 |
+
<source_model>hipay/source_order_status_refused</source_model>
|
| 110 |
+
<sort_order>24</sort_order>
|
| 111 |
+
<show_in_default>1</show_in_default>
|
| 112 |
+
<show_in_website>1</show_in_website>
|
| 113 |
+
<show_in_store>0</show_in_store>
|
| 114 |
+
</order_status_payment_refused>
|
| 115 |
+
<order_status_payment_canceled translate="label">
|
| 116 |
+
<label>Order status when payment canceled by customer</label>
|
| 117 |
+
<frontend_type>select</frontend_type>
|
| 118 |
+
<source_model>hipay/source_order_status_canceled</source_model>
|
| 119 |
+
<sort_order>25</sort_order>
|
| 120 |
+
<show_in_default>1</show_in_default>
|
| 121 |
+
<show_in_website>1</show_in_website>
|
| 122 |
+
<show_in_store>0</show_in_store>
|
| 123 |
+
</order_status_payment_canceled>
|
| 124 |
+
<hipay_status_validate_order translate="label">
|
| 125 |
+
<label>Hipay status to validate order</label>
|
| 126 |
+
<frontend_type>select</frontend_type>
|
| 127 |
+
<source_model>hipay/source_order_hipayStatusValidate</source_model>
|
| 128 |
+
<sort_order>26</sort_order>
|
| 129 |
+
<show_in_default>1</show_in_default>
|
| 130 |
+
<show_in_website>1</show_in_website>
|
| 131 |
+
<show_in_store>0</show_in_store>
|
| 132 |
+
</hipay_status_validate_order>
|
| 133 |
+
<pending_redirect_page translate="label">
|
| 134 |
+
<label>Redirect page pending status</label>
|
| 135 |
+
<comment>Page to redirect when transaction is in pending status</comment>
|
| 136 |
+
<frontend_type>select</frontend_type>
|
| 137 |
+
<source_model>hipay/source_pendingredirect</source_model>
|
| 138 |
+
<sort_order>27</sort_order>
|
| 139 |
+
<show_in_default>1</show_in_default>
|
| 140 |
+
<show_in_website>1</show_in_website>
|
| 141 |
+
<show_in_store>0</show_in_store>
|
| 142 |
+
</pending_redirect_page>
|
| 143 |
+
<payment_action translate="label">
|
| 144 |
+
<label>Payment Action</label>
|
| 145 |
+
<frontend_type>select</frontend_type>
|
| 146 |
+
<source_model>hipay/source_paymentAction</source_model>
|
| 147 |
+
<sort_order>30</sort_order>
|
| 148 |
+
<show_in_default>1</show_in_default>
|
| 149 |
+
<show_in_website>1</show_in_website>
|
| 150 |
+
<show_in_store>0</show_in_store>
|
| 151 |
+
</payment_action>
|
| 152 |
+
<cctypes translate="label">
|
| 153 |
+
<label>Credit Card Types</label>
|
| 154 |
+
<frontend_type>multiselect</frontend_type>
|
| 155 |
+
<source_model>hipay/source_ccType</source_model>
|
| 156 |
+
<sort_order>40</sort_order>
|
| 157 |
+
<show_in_default>1</show_in_default>
|
| 158 |
+
<show_in_website>1</show_in_website>
|
| 159 |
+
<show_in_store>0</show_in_store>
|
| 160 |
+
</cctypes>
|
| 161 |
+
<useccv translate="label">
|
| 162 |
+
<label>Credit Card Verification</label>
|
| 163 |
+
<frontend_type>select</frontend_type>
|
| 164 |
+
<source_model>adminhtml/system_config_source_yesno</source_model>
|
| 165 |
+
<sort_order>50</sort_order>
|
| 166 |
+
<show_in_default>1</show_in_default>
|
| 167 |
+
<show_in_website>1</show_in_website>
|
| 168 |
+
<show_in_store>0</show_in_store>
|
| 169 |
+
</useccv>
|
| 170 |
+
<use_3d_secure translate="label">
|
| 171 |
+
<label>Use 3D Secure</label>
|
| 172 |
+
<frontend_type>select</frontend_type>
|
| 173 |
+
<source_model>hipay/source_3ds</source_model>
|
| 174 |
+
<sort_order>60</sort_order>
|
| 175 |
+
<show_in_default>1</show_in_default>
|
| 176 |
+
<show_in_website>1</show_in_website>
|
| 177 |
+
<show_in_store>0</show_in_store>
|
| 178 |
+
</use_3d_secure>
|
| 179 |
+
<config_3ds_rules translate="label comment">
|
| 180 |
+
<label>Rules 3D Secure</label>
|
| 181 |
+
<comment>Configure Rules to activate 3D Secure</comment>
|
| 182 |
+
<frontend_model>hipay/adminhtml_system_config_form_field_3dsRule</frontend_model>
|
| 183 |
+
<backend_model>hipay/rule_config</backend_model>
|
| 184 |
+
<sort_order>61</sort_order>
|
| 185 |
+
<show_in_default>1</show_in_default>
|
| 186 |
+
<show_in_website>1</show_in_website>
|
| 187 |
+
<show_in_store>0</show_in_store>
|
| 188 |
+
</config_3ds_rules>
|
| 189 |
+
<allow_use_oneclick translate="label">
|
| 190 |
+
<label>Use Oneclick</label>
|
| 191 |
+
<frontend_type>select</frontend_type>
|
| 192 |
+
<source_model>adminhtml/system_config_source_yesno</source_model>
|
| 193 |
+
<sort_order>70</sort_order>
|
| 194 |
+
<show_in_default>1</show_in_default>
|
| 195 |
+
<show_in_website>1</show_in_website>
|
| 196 |
+
<show_in_store>0</show_in_store>
|
| 197 |
+
</allow_use_oneclick>
|
| 198 |
+
<re_add_to_cart translate="label comment">
|
| 199 |
+
<label>Add product to cart</label>
|
| 200 |
+
<comment>Fill cart when payment canceled or refused</comment>
|
| 201 |
+
<frontend_type>select</frontend_type>
|
| 202 |
+
<source_model>adminhtml/system_config_source_yesno</source_model>
|
| 203 |
+
<sort_order>95</sort_order>
|
| 204 |
+
<show_in_default>1</show_in_default>
|
| 205 |
+
<show_in_website>1</show_in_website>
|
| 206 |
+
<show_in_store>0</show_in_store>
|
| 207 |
+
</re_add_to_cart>
|
| 208 |
+
<cancel_pending_order translate="label comment">
|
| 209 |
+
<label>Cancel pending order</label>
|
| 210 |
+
<comment>Cancel orders stayed in pending because customer not validated payment</comment>
|
| 211 |
+
<frontend_type>select</frontend_type>
|
| 212 |
+
<source_model>adminhtml/system_config_source_yesno</source_model>
|
| 213 |
+
<sort_order>97</sort_order>
|
| 214 |
+
<show_in_default>1</show_in_default>
|
| 215 |
+
<show_in_website>1</show_in_website>
|
| 216 |
+
<show_in_store>0</show_in_store>
|
| 217 |
+
</cancel_pending_order>
|
| 218 |
+
<allowspecific translate="label">
|
| 219 |
+
<label>Payment from applicable countries</label>
|
| 220 |
+
<frontend_type>allowspecific</frontend_type>
|
| 221 |
+
<sort_order>100</sort_order>
|
| 222 |
+
<source_model>adminhtml/system_config_source_payment_allspecificcountries</source_model>
|
| 223 |
+
<show_in_default>1</show_in_default>
|
| 224 |
+
<show_in_website>1</show_in_website>
|
| 225 |
+
<show_in_store>1</show_in_store>
|
| 226 |
+
</allowspecific>
|
| 227 |
+
<specificcountry translate="label">
|
| 228 |
+
<label>Payment from Specific countries</label>
|
| 229 |
+
<frontend_type>multiselect</frontend_type>
|
| 230 |
+
<sort_order>110</sort_order>
|
| 231 |
+
<source_model>adminhtml/system_config_source_country</source_model>
|
| 232 |
+
<show_in_default>1</show_in_default>
|
| 233 |
+
<show_in_website>1</show_in_website>
|
| 234 |
+
<show_in_store>1</show_in_store>
|
| 235 |
+
</specificcountry>
|
| 236 |
+
<min_order_total translate="label">
|
| 237 |
+
<label>Minimum Order Total</label>
|
| 238 |
+
<frontend_type>text</frontend_type>
|
| 239 |
+
<sort_order>120</sort_order>
|
| 240 |
+
<show_in_default>1</show_in_default>
|
| 241 |
+
<show_in_website>1</show_in_website>
|
| 242 |
+
<show_in_store>1</show_in_store>
|
| 243 |
+
</min_order_total>
|
| 244 |
+
<max_order_total translate="label">
|
| 245 |
+
<label>Maximum Order Total</label>
|
| 246 |
+
<frontend_type>text</frontend_type>
|
| 247 |
+
<sort_order>121</sort_order>
|
| 248 |
+
<show_in_default>1</show_in_default>
|
| 249 |
+
<show_in_website>1</show_in_website>
|
| 250 |
+
<show_in_store>1</show_in_store>
|
| 251 |
+
</max_order_total>
|
| 252 |
+
<sort_order translate="label">
|
| 253 |
+
<label>Sort Order</label>
|
| 254 |
+
<frontend_type>text</frontend_type>
|
| 255 |
+
<sort_order>130</sort_order>
|
| 256 |
+
<show_in_default>1</show_in_default>
|
| 257 |
+
<show_in_website>1</show_in_website>
|
| 258 |
+
<show_in_store>1</show_in_store>
|
| 259 |
+
</sort_order>
|
| 260 |
+
<debug>
|
| 261 |
+
<label>Enable debug log</label>
|
| 262 |
+
<comment></comment>
|
| 263 |
+
<frontend_type>select</frontend_type>
|
| 264 |
+
<source_model>adminhtml/system_config_source_yesno</source_model>
|
| 265 |
+
<sort_order>150</sort_order>
|
| 266 |
+
<show_in_default>1</show_in_default>
|
| 267 |
+
<show_in_website>1</show_in_website>
|
| 268 |
+
<show_in_store>0</show_in_store>
|
| 269 |
+
</debug>
|
| 270 |
+
<is_test_mode translate="label comment">
|
| 271 |
+
<label>Enable test mode</label>
|
| 272 |
+
<comment></comment>
|
| 273 |
+
<frontend_type>select</frontend_type>
|
| 274 |
+
<source_model>adminhtml/system_config_source_yesno</source_model>
|
| 275 |
+
<sort_order>200</sort_order>
|
| 276 |
+
<show_in_default>1</show_in_default>
|
| 277 |
+
<show_in_website>1</show_in_website>
|
| 278 |
+
<show_in_store>1</show_in_store>
|
| 279 |
+
</is_test_mode>
|
| 280 |
+
</fields>
|
| 281 |
+
</hipay_cc>
|
| 282 |
+
<hipay_hosted translate="label" module="hipay">
|
| 283 |
+
<label>HiPay Fullservice Hosted Page</label>
|
| 284 |
+
<frontend_type>text</frontend_type>
|
| 285 |
+
<sort_order>210</sort_order>
|
| 286 |
+
<show_in_default>1</show_in_default>
|
| 287 |
+
<show_in_website>1</show_in_website>
|
| 288 |
+
<show_in_store>1</show_in_store>
|
| 289 |
+
<fields>
|
| 290 |
+
<active translate="label">
|
| 291 |
+
<label>Enabled</label>
|
| 292 |
+
<frontend_type>select</frontend_type>
|
| 293 |
+
<source_model>adminhtml/system_config_source_yesno</source_model>
|
| 294 |
+
<sort_order>10</sort_order>
|
| 295 |
+
<show_in_default>1</show_in_default>
|
| 296 |
+
<show_in_website>1</show_in_website>
|
| 297 |
+
<show_in_store>1</show_in_store>
|
| 298 |
+
</active>
|
| 299 |
+
<title translate="label">
|
| 300 |
+
<label>Title</label>
|
| 301 |
+
<frontend_type>text</frontend_type>
|
| 302 |
+
<sort_order>20</sort_order>
|
| 303 |
+
<show_in_default>1</show_in_default>
|
| 304 |
+
<show_in_website>1</show_in_website>
|
| 305 |
+
<show_in_store>1</show_in_store>
|
| 306 |
+
</title>
|
| 307 |
+
<order_status_payment_accepted translate="label">
|
| 308 |
+
<label>Order status when payment accepted</label>
|
| 309 |
+
<frontend_type>select</frontend_type>
|
| 310 |
+
<source_model>hipay/source_order_status_accepted</source_model>
|
| 311 |
+
<sort_order>23</sort_order>
|
| 312 |
+
<show_in_default>1</show_in_default>
|
| 313 |
+
<show_in_website>1</show_in_website>
|
| 314 |
+
<show_in_store>0</show_in_store>
|
| 315 |
+
</order_status_payment_accepted>
|
| 316 |
+
<order_status_payment_refused translate="label">
|
| 317 |
+
<label>Order status when payment refused</label>
|
| 318 |
+
<frontend_type>select</frontend_type>
|
| 319 |
+
<source_model>hipay/source_order_status_refused</source_model>
|
| 320 |
+
<sort_order>24</sort_order>
|
| 321 |
+
<show_in_default>1</show_in_default>
|
| 322 |
+
<show_in_website>1</show_in_website>
|
| 323 |
+
<show_in_store>0</show_in_store>
|
| 324 |
+
</order_status_payment_refused>
|
| 325 |
+
<order_status_payment_canceled translate="label">
|
| 326 |
+
<label>Order status when payment canceled by customer</label>
|
| 327 |
+
<frontend_type>select</frontend_type>
|
| 328 |
+
<source_model>hipay/source_order_status_canceled</source_model>
|
| 329 |
+
<sort_order>25</sort_order>
|
| 330 |
+
<show_in_default>1</show_in_default>
|
| 331 |
+
<show_in_website>1</show_in_website>
|
| 332 |
+
<show_in_store>0</show_in_store>
|
| 333 |
+
</order_status_payment_canceled>
|
| 334 |
+
<hipay_status_validate_order translate="label">
|
| 335 |
+
<label>Hipay status to validate order</label>
|
| 336 |
+
<frontend_type>select</frontend_type>
|
| 337 |
+
<source_model>hipay/source_order_hipayStatusValidate</source_model>
|
| 338 |
+
<sort_order>26</sort_order>
|
| 339 |
+
<show_in_default>1</show_in_default>
|
| 340 |
+
<show_in_website>1</show_in_website>
|
| 341 |
+
<show_in_store>0</show_in_store>
|
| 342 |
+
</hipay_status_validate_order>
|
| 343 |
+
<pending_redirect_page translate="label">
|
| 344 |
+
<label>Redirect page pending status</label>
|
| 345 |
+
<comment>Page to redirect when transaction is in pending status</comment>
|
| 346 |
+
<frontend_type>select</frontend_type>
|
| 347 |
+
<source_model>hipay/source_pendingredirect</source_model>
|
| 348 |
+
<sort_order>27</sort_order>
|
| 349 |
+
<show_in_default>1</show_in_default>
|
| 350 |
+
<show_in_website>1</show_in_website>
|
| 351 |
+
<show_in_store>0</show_in_store>
|
| 352 |
+
</pending_redirect_page>
|
| 353 |
+
<payment_action translate="label">
|
| 354 |
+
<label>Payment Action</label>
|
| 355 |
+
<frontend_type>select</frontend_type>
|
| 356 |
+
<source_model>hipay/source_paymentAction</source_model>
|
| 357 |
+
<sort_order>28</sort_order>
|
| 358 |
+
<show_in_default>1</show_in_default>
|
| 359 |
+
<show_in_website>1</show_in_website>
|
| 360 |
+
<show_in_store>0</show_in_store>
|
| 361 |
+
</payment_action>
|
| 362 |
+
<cctypes translate="label">
|
| 363 |
+
<label>Credit Card Types</label>
|
| 364 |
+
<frontend_type>multiselect</frontend_type>
|
| 365 |
+
<source_model>hipay/source_ccTypeHosted</source_model>
|
| 366 |
+
<sort_order>29</sort_order>
|
| 367 |
+
<show_in_default>1</show_in_default>
|
| 368 |
+
<show_in_website>1</show_in_website>
|
| 369 |
+
<show_in_store>0</show_in_store>
|
| 370 |
+
</cctypes>
|
| 371 |
+
<css_url translate="label coment">
|
| 372 |
+
<label>Css Url</label>
|
| 373 |
+
<comment>Important, HTTPS protocol is required</comment>
|
| 374 |
+
<frontend_type>text</frontend_type>
|
| 375 |
+
<sort_order>30</sort_order>
|
| 376 |
+
<show_in_default>1</show_in_default>
|
| 377 |
+
<show_in_website>1</show_in_website>
|
| 378 |
+
<show_in_store>1</show_in_store>
|
| 379 |
+
</css_url>
|
| 380 |
+
<template translate="label">
|
| 381 |
+
<label>Page payment template</label>
|
| 382 |
+
<frontend_type>select</frontend_type>
|
| 383 |
+
<source_model>hipay/source_template</source_model>
|
| 384 |
+
<sort_order>35</sort_order>
|
| 385 |
+
<show_in_default>1</show_in_default>
|
| 386 |
+
<show_in_website>1</show_in_website>
|
| 387 |
+
<show_in_store>0</show_in_store>
|
| 388 |
+
</template>
|
| 389 |
+
<display_iframe translate="label">
|
| 390 |
+
<label>Display hosted page in Iframe</label>
|
| 391 |
+
<frontend_type>select</frontend_type>
|
| 392 |
+
<source_model>adminhtml/system_config_source_yesno</source_model>
|
| 393 |
+
<sort_order>36</sort_order>
|
| 394 |
+
<show_in_default>1</show_in_default>
|
| 395 |
+
<show_in_website>1</show_in_website>
|
| 396 |
+
<show_in_store>0</show_in_store>
|
| 397 |
+
</display_iframe>
|
| 398 |
+
<iframe_width translate="label">
|
| 399 |
+
<label>iFrame Width</label>
|
| 400 |
+
<frontend_type>text</frontend_type>
|
| 401 |
+
<sort_order>37</sort_order>
|
| 402 |
+
<show_in_default>1</show_in_default>
|
| 403 |
+
<show_in_website>1</show_in_website>
|
| 404 |
+
<show_in_store>1</show_in_store>
|
| 405 |
+
</iframe_width>
|
| 406 |
+
<iframe_height translate="label">
|
| 407 |
+
<label>iFrame Height</label>
|
| 408 |
+
<frontend_type>text</frontend_type>
|
| 409 |
+
<sort_order>38</sort_order>
|
| 410 |
+
<show_in_default>1</show_in_default>
|
| 411 |
+
<show_in_website>1</show_in_website>
|
| 412 |
+
<show_in_store>1</show_in_store>
|
| 413 |
+
</iframe_height>
|
| 414 |
+
<iframe_style translate="label">
|
| 415 |
+
<label>iFrame Style</label>
|
| 416 |
+
<frontend_type>text</frontend_type>
|
| 417 |
+
<sort_order>39</sort_order>
|
| 418 |
+
<show_in_default>1</show_in_default>
|
| 419 |
+
<show_in_website>1</show_in_website>
|
| 420 |
+
<show_in_store>1</show_in_store>
|
| 421 |
+
</iframe_style>
|
| 422 |
+
<display_selector translate="label">
|
| 423 |
+
<label>Display card selector</label>
|
| 424 |
+
<frontend_type>select</frontend_type>
|
| 425 |
+
<source_model>adminhtml/system_config_source_yesno</source_model>
|
| 426 |
+
<sort_order>40</sort_order>
|
| 427 |
+
<show_in_default>1</show_in_default>
|
| 428 |
+
<show_in_website>1</show_in_website>
|
| 429 |
+
<show_in_store>0</show_in_store>
|
| 430 |
+
</display_selector>
|
| 431 |
+
<use_3d_secure translate="label">
|
| 432 |
+
<label>Use 3D Secure</label>
|
| 433 |
+
<frontend_type>select</frontend_type>
|
| 434 |
+
<source_model>hipay/source_3ds</source_model>
|
| 435 |
+
<sort_order>60</sort_order>
|
| 436 |
+
<show_in_default>1</show_in_default>
|
| 437 |
+
<show_in_website>1</show_in_website>
|
| 438 |
+
<show_in_store>0</show_in_store>
|
| 439 |
+
</use_3d_secure>
|
| 440 |
+
<config_3ds_rules translate="label comment">
|
| 441 |
+
<label>Rules 3D Secure</label>
|
| 442 |
+
<comment>Configure Rules to activate 3D Secure</comment>
|
| 443 |
+
<frontend_model>hipay/adminhtml_system_config_form_field_3dsRule</frontend_model>
|
| 444 |
+
<backend_model>hipay/rule_config</backend_model>
|
| 445 |
+
<sort_order>61</sort_order>
|
| 446 |
+
<show_in_default>1</show_in_default>
|
| 447 |
+
<show_in_website>1</show_in_website>
|
| 448 |
+
<show_in_store>0</show_in_store>
|
| 449 |
+
</config_3ds_rules>
|
| 450 |
+
<allow_use_oneclick translate="label">
|
| 451 |
+
<label>Use Oneclick</label>
|
| 452 |
+
<frontend_type>select</frontend_type>
|
| 453 |
+
<source_model>adminhtml/system_config_source_yesno</source_model>
|
| 454 |
+
<sort_order>70</sort_order>
|
| 455 |
+
<show_in_default>1</show_in_default>
|
| 456 |
+
<show_in_website>1</show_in_website>
|
| 457 |
+
<show_in_store>0</show_in_store>
|
| 458 |
+
</allow_use_oneclick>
|
| 459 |
+
<re_add_to_cart translate="label comment">
|
| 460 |
+
<label>Add product to cart</label>
|
| 461 |
+
<comment>Fill cart when payment canceled or refused</comment>
|
| 462 |
+
<frontend_type>select</frontend_type>
|
| 463 |
+
<source_model>adminhtml/system_config_source_yesno</source_model>
|
| 464 |
+
<sort_order>95</sort_order>
|
| 465 |
+
<show_in_default>1</show_in_default>
|
| 466 |
+
<show_in_website>1</show_in_website>
|
| 467 |
+
<show_in_store>0</show_in_store>
|
| 468 |
+
</re_add_to_cart>
|
| 469 |
+
<cancel_pending_order translate="label comment">
|
| 470 |
+
<label>Cancel pending order</label>
|
| 471 |
+
<comment>Cancel orders stayed in pending because customer not validated payment</comment>
|
| 472 |
+
<frontend_type>select</frontend_type>
|
| 473 |
+
<source_model>adminhtml/system_config_source_yesno</source_model>
|
| 474 |
+
<sort_order>97</sort_order>
|
| 475 |
+
<show_in_default>1</show_in_default>
|
| 476 |
+
<show_in_website>1</show_in_website>
|
| 477 |
+
<show_in_store>0</show_in_store>
|
| 478 |
+
</cancel_pending_order>
|
| 479 |
+
<allowspecific translate="label">
|
| 480 |
+
<label>Payment from applicable countries</label>
|
| 481 |
+
<frontend_type>allowspecific</frontend_type>
|
| 482 |
+
<sort_order>100</sort_order>
|
| 483 |
+
<source_model>adminhtml/system_config_source_payment_allspecificcountries</source_model>
|
| 484 |
+
<show_in_default>1</show_in_default>
|
| 485 |
+
<show_in_website>1</show_in_website>
|
| 486 |
+
<show_in_store>1</show_in_store>
|
| 487 |
+
</allowspecific>
|
| 488 |
+
<specificcountry translate="label">
|
| 489 |
+
<label>Payment from Specific countries</label>
|
| 490 |
+
<frontend_type>multiselect</frontend_type>
|
| 491 |
+
<sort_order>110</sort_order>
|
| 492 |
+
<source_model>adminhtml/system_config_source_country</source_model>
|
| 493 |
+
<show_in_default>1</show_in_default>
|
| 494 |
+
<show_in_website>1</show_in_website>
|
| 495 |
+
<show_in_store>1</show_in_store>
|
| 496 |
+
</specificcountry>
|
| 497 |
+
<min_order_total translate="label">
|
| 498 |
+
<label>Minimum Order Total</label>
|
| 499 |
+
<frontend_type>text</frontend_type>
|
| 500 |
+
<sort_order>120</sort_order>
|
| 501 |
+
<show_in_default>1</show_in_default>
|
| 502 |
+
<show_in_website>1</show_in_website>
|
| 503 |
+
<show_in_store>1</show_in_store>
|
| 504 |
+
</min_order_total>
|
| 505 |
+
<max_order_total translate="label">
|
| 506 |
+
<label>Maximum Order Total</label>
|
| 507 |
+
<frontend_type>text</frontend_type>
|
| 508 |
+
<sort_order>121</sort_order>
|
| 509 |
+
<show_in_default>1</show_in_default>
|
| 510 |
+
<show_in_website>1</show_in_website>
|
| 511 |
+
<show_in_store>1</show_in_store>
|
| 512 |
+
</max_order_total>
|
| 513 |
+
<sort_order translate="label">
|
| 514 |
+
<label>Sort Order</label>
|
| 515 |
+
<frontend_type>text</frontend_type>
|
| 516 |
+
<sort_order>130</sort_order>
|
| 517 |
+
<show_in_default>1</show_in_default>
|
| 518 |
+
<show_in_website>1</show_in_website>
|
| 519 |
+
<show_in_store>1</show_in_store>
|
| 520 |
+
</sort_order>
|
| 521 |
+
<debug translate="label">
|
| 522 |
+
<label>Enable debug log</label>
|
| 523 |
+
<comment></comment>
|
| 524 |
+
<frontend_type>select</frontend_type>
|
| 525 |
+
<source_model>adminhtml/system_config_source_yesno</source_model>
|
| 526 |
+
<sort_order>150</sort_order>
|
| 527 |
+
<show_in_default>1</show_in_default>
|
| 528 |
+
<show_in_website>1</show_in_website>
|
| 529 |
+
<show_in_store>0</show_in_store>
|
| 530 |
+
</debug>
|
| 531 |
+
<is_test_mode translate="label comment">
|
| 532 |
+
<label>Enable test mode</label>
|
| 533 |
+
<comment></comment>
|
| 534 |
+
<frontend_type>select</frontend_type>
|
| 535 |
+
<source_model>adminhtml/system_config_source_yesno</source_model>
|
| 536 |
+
<sort_order>200</sort_order>
|
| 537 |
+
<show_in_default>1</show_in_default>
|
| 538 |
+
<show_in_website>1</show_in_website>
|
| 539 |
+
<show_in_store>1</show_in_store>
|
| 540 |
+
</is_test_mode>
|
| 541 |
+
</fields>
|
| 542 |
+
</hipay_hosted>
|
| 543 |
+
<hipay_ideal translate="label" module="hipay">
|
| 544 |
+
<label>HiPay Fullservice iDeal</label>
|
| 545 |
+
<frontend_type>text</frontend_type>
|
| 546 |
+
<sort_order>220</sort_order>
|
| 547 |
+
<show_in_default>1</show_in_default>
|
| 548 |
+
<show_in_website>1</show_in_website>
|
| 549 |
+
<show_in_store>1</show_in_store>
|
| 550 |
+
<fields>
|
| 551 |
+
<active translate="label">
|
| 552 |
+
<label>Enabled</label>
|
| 553 |
+
<frontend_type>select</frontend_type>
|
| 554 |
+
<source_model>adminhtml/system_config_source_yesno</source_model>
|
| 555 |
+
<sort_order>10</sort_order>
|
| 556 |
+
<show_in_default>1</show_in_default>
|
| 557 |
+
<show_in_website>1</show_in_website>
|
| 558 |
+
<show_in_store>1</show_in_store>
|
| 559 |
+
</active>
|
| 560 |
+
<title translate="label">
|
| 561 |
+
<label>Title</label>
|
| 562 |
+
<frontend_type>text</frontend_type>
|
| 563 |
+
<sort_order>20</sort_order>
|
| 564 |
+
<show_in_default>1</show_in_default>
|
| 565 |
+
<show_in_website>1</show_in_website>
|
| 566 |
+
<show_in_store>1</show_in_store>
|
| 567 |
+
</title>
|
| 568 |
+
<order_status_payment_accepted translate="label">
|
| 569 |
+
<label>Order status when payment accepted</label>
|
| 570 |
+
<frontend_type>select</frontend_type>
|
| 571 |
+
<source_model>hipay/source_order_status_accepted</source_model>
|
| 572 |
+
<sort_order>23</sort_order>
|
| 573 |
+
<show_in_default>1</show_in_default>
|
| 574 |
+
<show_in_website>1</show_in_website>
|
| 575 |
+
<show_in_store>0</show_in_store>
|
| 576 |
+
</order_status_payment_accepted>
|
| 577 |
+
<order_status_payment_refused translate="label">
|
| 578 |
+
<label>Order status when payment refused</label>
|
| 579 |
+
<frontend_type>select</frontend_type>
|
| 580 |
+
<source_model>hipay/source_order_status_refused</source_model>
|
| 581 |
+
<sort_order>24</sort_order>
|
| 582 |
+
<show_in_default>1</show_in_default>
|
| 583 |
+
<show_in_website>1</show_in_website>
|
| 584 |
+
<show_in_store>0</show_in_store>
|
| 585 |
+
</order_status_payment_refused>
|
| 586 |
+
<order_status_payment_canceled translate="label">
|
| 587 |
+
<label>Order status when payment canceled by customer</label>
|
| 588 |
+
<frontend_type>select</frontend_type>
|
| 589 |
+
<source_model>hipay/source_order_status_canceled</source_model>
|
| 590 |
+
<sort_order>25</sort_order>
|
| 591 |
+
<show_in_default>1</show_in_default>
|
| 592 |
+
<show_in_website>1</show_in_website>
|
| 593 |
+
<show_in_store>0</show_in_store>
|
| 594 |
+
</order_status_payment_canceled>
|
| 595 |
+
<hipay_status_validate_order translate="label">
|
| 596 |
+
<label>Hipay status to validate order</label>
|
| 597 |
+
<frontend_type>select</frontend_type>
|
| 598 |
+
<source_model>hipay/source_order_hipayStatusValidate</source_model>
|
| 599 |
+
<sort_order>26</sort_order>
|
| 600 |
+
<show_in_default>1</show_in_default>
|
| 601 |
+
<show_in_website>1</show_in_website>
|
| 602 |
+
<show_in_store>0</show_in_store>
|
| 603 |
+
</hipay_status_validate_order>
|
| 604 |
+
<pending_redirect_page translate="label">
|
| 605 |
+
<label>Redirect page pending status</label>
|
| 606 |
+
<comment>Page to redirect when transaction is in pending status</comment>
|
| 607 |
+
<frontend_type>select</frontend_type>
|
| 608 |
+
<source_model>hipay/source_pendingredirect</source_model>
|
| 609 |
+
<sort_order>27</sort_order>
|
| 610 |
+
<show_in_default>1</show_in_default>
|
| 611 |
+
<show_in_website>1</show_in_website>
|
| 612 |
+
<show_in_store>0</show_in_store>
|
| 613 |
+
</pending_redirect_page>
|
| 614 |
+
<css_url translate="label coment">
|
| 615 |
+
<label>Css Url</label>
|
| 616 |
+
<comment>Important, HTTPS protocol is required</comment>
|
| 617 |
+
<frontend_type>text</frontend_type>
|
| 618 |
+
<sort_order>30</sort_order>
|
| 619 |
+
<show_in_default>1</show_in_default>
|
| 620 |
+
<show_in_website>1</show_in_website>
|
| 621 |
+
<show_in_store>1</show_in_store>
|
| 622 |
+
</css_url>
|
| 623 |
+
<template translate="label">
|
| 624 |
+
<label>Page payment template</label>
|
| 625 |
+
<frontend_type>select</frontend_type>
|
| 626 |
+
<source_model>hipay/source_template</source_model>
|
| 627 |
+
<sort_order>35</sort_order>
|
| 628 |
+
<show_in_default>1</show_in_default>
|
| 629 |
+
<show_in_website>1</show_in_website>
|
| 630 |
+
<show_in_store>0</show_in_store>
|
| 631 |
+
</template>
|
| 632 |
+
<re_add_to_cart translate="label comment">
|
| 633 |
+
<label>Add product to cart</label>
|
| 634 |
+
<comment>Fill cart when payment canceled or refused</comment>
|
| 635 |
+
<frontend_type>select</frontend_type>
|
| 636 |
+
<source_model>adminhtml/system_config_source_yesno</source_model>
|
| 637 |
+
<sort_order>95</sort_order>
|
| 638 |
+
<show_in_default>1</show_in_default>
|
| 639 |
+
<show_in_website>1</show_in_website>
|
| 640 |
+
<show_in_store>0</show_in_store>
|
| 641 |
+
</re_add_to_cart>
|
| 642 |
+
<cancel_pending_order translate="label comment">
|
| 643 |
+
<label>Cancel pending order</label>
|
| 644 |
+
<comment>Cancel orders stayed in pending because customer not validated payment</comment>
|
| 645 |
+
<frontend_type>select</frontend_type>
|
| 646 |
+
<source_model>adminhtml/system_config_source_yesno</source_model>
|
| 647 |
+
<sort_order>97</sort_order>
|
| 648 |
+
<show_in_default>1</show_in_default>
|
| 649 |
+
<show_in_website>1</show_in_website>
|
| 650 |
+
<show_in_store>0</show_in_store>
|
| 651 |
+
</cancel_pending_order>
|
| 652 |
+
<allowspecific translate="label">
|
| 653 |
+
<label>Payment from applicable countries</label>
|
| 654 |
+
<frontend_type>allowspecific</frontend_type>
|
| 655 |
+
<sort_order>100</sort_order>
|
| 656 |
+
<source_model>adminhtml/system_config_source_payment_allspecificcountries</source_model>
|
| 657 |
+
<show_in_default>1</show_in_default>
|
| 658 |
+
<show_in_website>1</show_in_website>
|
| 659 |
+
<show_in_store>1</show_in_store>
|
| 660 |
+
</allowspecific>
|
| 661 |
+
<specificcountry translate="label">
|
| 662 |
+
<label>Payment from Specific countries</label>
|
| 663 |
+
<frontend_type>multiselect</frontend_type>
|
| 664 |
+
<sort_order>110</sort_order>
|
| 665 |
+
<source_model>adminhtml/system_config_source_country</source_model>
|
| 666 |
+
<show_in_default>1</show_in_default>
|
| 667 |
+
<show_in_website>1</show_in_website>
|
| 668 |
+
<show_in_store>1</show_in_store>
|
| 669 |
+
</specificcountry>
|
| 670 |
+
<min_order_total translate="label">
|
| 671 |
+
<label>Minimum Order Total</label>
|
| 672 |
+
<frontend_type>text</frontend_type>
|
| 673 |
+
<sort_order>120</sort_order>
|
| 674 |
+
<show_in_default>1</show_in_default>
|
| 675 |
+
<show_in_website>1</show_in_website>
|
| 676 |
+
<show_in_store>1</show_in_store>
|
| 677 |
+
</min_order_total>
|
| 678 |
+
<max_order_total translate="label">
|
| 679 |
+
<label>Maximum Order Total</label>
|
| 680 |
+
<frontend_type>text</frontend_type>
|
| 681 |
+
<sort_order>121</sort_order>
|
| 682 |
+
<show_in_default>1</show_in_default>
|
| 683 |
+
<show_in_website>1</show_in_website>
|
| 684 |
+
<show_in_store>1</show_in_store>
|
| 685 |
+
</max_order_total>
|
| 686 |
+
<sort_order translate="label">
|
| 687 |
+
<label>Sort Order</label>
|
| 688 |
+
<frontend_type>text</frontend_type>
|
| 689 |
+
<sort_order>130</sort_order>
|
| 690 |
+
<show_in_default>1</show_in_default>
|
| 691 |
+
<show_in_website>1</show_in_website>
|
| 692 |
+
<show_in_store>1</show_in_store>
|
| 693 |
+
</sort_order>
|
| 694 |
+
<debug translate="label">
|
| 695 |
+
<label>Enable debug log</label>
|
| 696 |
+
<comment></comment>
|
| 697 |
+
<frontend_type>select</frontend_type>
|
| 698 |
+
<source_model>adminhtml/system_config_source_yesno</source_model>
|
| 699 |
+
<sort_order>150</sort_order>
|
| 700 |
+
<show_in_default>1</show_in_default>
|
| 701 |
+
<show_in_website>1</show_in_website>
|
| 702 |
+
<show_in_store>0</show_in_store>
|
| 703 |
+
</debug>
|
| 704 |
+
<is_test_mode translate="label comment">
|
| 705 |
+
<label>Enable test mode</label>
|
| 706 |
+
<comment></comment>
|
| 707 |
+
<frontend_type>select</frontend_type>
|
| 708 |
+
<source_model>adminhtml/system_config_source_yesno</source_model>
|
| 709 |
+
<sort_order>200</sort_order>
|
| 710 |
+
<show_in_default>1</show_in_default>
|
| 711 |
+
<show_in_website>1</show_in_website>
|
| 712 |
+
<show_in_store>1</show_in_store>
|
| 713 |
+
</is_test_mode>
|
| 714 |
+
</fields>
|
| 715 |
+
</hipay_ideal>
|
| 716 |
+
<hipay_ing translate="label" module="hipay">
|
| 717 |
+
<label>HiPay Fullservice ING Home'Pay</label>
|
| 718 |
+
<frontend_type>text</frontend_type>
|
| 719 |
+
<sort_order>220</sort_order>
|
| 720 |
+
<show_in_default>1</show_in_default>
|
| 721 |
+
<show_in_website>1</show_in_website>
|
| 722 |
+
<show_in_store>1</show_in_store>
|
| 723 |
+
<fields>
|
| 724 |
+
<active translate="label">
|
| 725 |
+
<label>Enabled</label>
|
| 726 |
+
<frontend_type>select</frontend_type>
|
| 727 |
+
<source_model>adminhtml/system_config_source_yesno</source_model>
|
| 728 |
+
<sort_order>10</sort_order>
|
| 729 |
+
<show_in_default>1</show_in_default>
|
| 730 |
+
<show_in_website>1</show_in_website>
|
| 731 |
+
<show_in_store>1</show_in_store>
|
| 732 |
+
</active>
|
| 733 |
+
<title translate="label">
|
| 734 |
+
<label>Title</label>
|
| 735 |
+
<frontend_type>text</frontend_type>
|
| 736 |
+
<sort_order>20</sort_order>
|
| 737 |
+
<show_in_default>1</show_in_default>
|
| 738 |
+
<show_in_website>1</show_in_website>
|
| 739 |
+
<show_in_store>1</show_in_store>
|
| 740 |
+
</title>
|
| 741 |
+
<order_status_payment_accepted translate="label">
|
| 742 |
+
<label>Order status when payment accepted</label>
|
| 743 |
+
<frontend_type>select</frontend_type>
|
| 744 |
+
<source_model>hipay/source_order_status_accepted</source_model>
|
| 745 |
+
<sort_order>23</sort_order>
|
| 746 |
+
<show_in_default>1</show_in_default>
|
| 747 |
+
<show_in_website>1</show_in_website>
|
| 748 |
+
<show_in_store>0</show_in_store>
|
| 749 |
+
</order_status_payment_accepted>
|
| 750 |
+
<order_status_payment_refused translate="label">
|
| 751 |
+
<label>Order status when payment refused</label>
|
| 752 |
+
<frontend_type>select</frontend_type>
|
| 753 |
+
<source_model>hipay/source_order_status_refused</source_model>
|
| 754 |
+
<sort_order>24</sort_order>
|
| 755 |
+
<show_in_default>1</show_in_default>
|
| 756 |
+
<show_in_website>1</show_in_website>
|
| 757 |
+
<show_in_store>0</show_in_store>
|
| 758 |
+
</order_status_payment_refused>
|
| 759 |
+
<order_status_payment_canceled translate="label">
|
| 760 |
+
<label>Order status when payment canceled by customer</label>
|
| 761 |
+
<frontend_type>select</frontend_type>
|
| 762 |
+
<source_model>hipay/source_order_status_canceled</source_model>
|
| 763 |
+
<sort_order>25</sort_order>
|
| 764 |
+
<show_in_default>1</show_in_default>
|
| 765 |
+
<show_in_website>1</show_in_website>
|
| 766 |
+
<show_in_store>0</show_in_store>
|
| 767 |
+
</order_status_payment_canceled>
|
| 768 |
+
<hipay_status_validate_order translate="label">
|
| 769 |
+
<label>Hipay status to validate order</label>
|
| 770 |
+
<frontend_type>select</frontend_type>
|
| 771 |
+
<source_model>hipay/source_order_hipayStatusValidate</source_model>
|
| 772 |
+
<sort_order>26</sort_order>
|
| 773 |
+
<show_in_default>1</show_in_default>
|
| 774 |
+
<show_in_website>1</show_in_website>
|
| 775 |
+
<show_in_store>0</show_in_store>
|
| 776 |
+
</hipay_status_validate_order>
|
| 777 |
+
<pending_redirect_page translate="label">
|
| 778 |
+
<label>Redirect page pending status</label>
|
| 779 |
+
<comment>Page to redirect when transaction is in pending status</comment>
|
| 780 |
+
<frontend_type>select</frontend_type>
|
| 781 |
+
<source_model>hipay/source_pendingredirect</source_model>
|
| 782 |
+
<sort_order>27</sort_order>
|
| 783 |
+
<show_in_default>1</show_in_default>
|
| 784 |
+
<show_in_website>1</show_in_website>
|
| 785 |
+
<show_in_store>0</show_in_store>
|
| 786 |
+
</pending_redirect_page>
|
| 787 |
+
<css_url translate="label coment">
|
| 788 |
+
<label>Css Url</label>
|
| 789 |
+
<comment>Important, HTTPS protocol is required</comment>
|
| 790 |
+
<frontend_type>text</frontend_type>
|
| 791 |
+
<sort_order>30</sort_order>
|
| 792 |
+
<show_in_default>1</show_in_default>
|
| 793 |
+
<show_in_website>1</show_in_website>
|
| 794 |
+
<show_in_store>1</show_in_store>
|
| 795 |
+
</css_url>
|
| 796 |
+
<template translate="label">
|
| 797 |
+
<label>Page payment template</label>
|
| 798 |
+
<frontend_type>select</frontend_type>
|
| 799 |
+
<source_model>hipay/source_template</source_model>
|
| 800 |
+
<sort_order>35</sort_order>
|
| 801 |
+
<show_in_default>1</show_in_default>
|
| 802 |
+
<show_in_website>1</show_in_website>
|
| 803 |
+
<show_in_store>0</show_in_store>
|
| 804 |
+
</template>
|
| 805 |
+
<re_add_to_cart translate="label comment">
|
| 806 |
+
<label>Add product to cart</label>
|
| 807 |
+
<comment>Fill cart when payment canceled or refused</comment>
|
| 808 |
+
<frontend_type>select</frontend_type>
|
| 809 |
+
<source_model>adminhtml/system_config_source_yesno</source_model>
|
| 810 |
+
<sort_order>95</sort_order>
|
| 811 |
+
<show_in_default>1</show_in_default>
|
| 812 |
+
<show_in_website>1</show_in_website>
|
| 813 |
+
<show_in_store>0</show_in_store>
|
| 814 |
+
</re_add_to_cart>
|
| 815 |
+
<cancel_pending_order translate="label comment">
|
| 816 |
+
<label>Cancel pending order</label>
|
| 817 |
+
<comment>Cancel orders stayed in pending because customer not validated payment</comment>
|
| 818 |
+
<frontend_type>select</frontend_type>
|
| 819 |
+
<source_model>adminhtml/system_config_source_yesno</source_model>
|
| 820 |
+
<sort_order>97</sort_order>
|
| 821 |
+
<show_in_default>1</show_in_default>
|
| 822 |
+
<show_in_website>1</show_in_website>
|
| 823 |
+
<show_in_store>0</show_in_store>
|
| 824 |
+
</cancel_pending_order>
|
| 825 |
+
<allowspecific translate="label">
|
| 826 |
+
<label>Payment from applicable countries</label>
|
| 827 |
+
<frontend_type>allowspecific</frontend_type>
|
| 828 |
+
<sort_order>100</sort_order>
|
| 829 |
+
<source_model>adminhtml/system_config_source_payment_allspecificcountries</source_model>
|
| 830 |
+
<show_in_default>1</show_in_default>
|
| 831 |
+
<show_in_website>1</show_in_website>
|
| 832 |
+
<show_in_store>1</show_in_store>
|
| 833 |
+
</allowspecific>
|
| 834 |
+
<specificcountry translate="label">
|
| 835 |
+
<label>Payment from Specific countries</label>
|
| 836 |
+
<frontend_type>multiselect</frontend_type>
|
| 837 |
+
<sort_order>110</sort_order>
|
| 838 |
+
<source_model>adminhtml/system_config_source_country</source_model>
|
| 839 |
+
<show_in_default>1</show_in_default>
|
| 840 |
+
<show_in_website>1</show_in_website>
|
| 841 |
+
<show_in_store>1</show_in_store>
|
| 842 |
+
</specificcountry>
|
| 843 |
+
<min_order_total translate="label">
|
| 844 |
+
<label>Minimum Order Total</label>
|
| 845 |
+
<frontend_type>text</frontend_type>
|
| 846 |
+
<sort_order>120</sort_order>
|
| 847 |
+
<show_in_default>1</show_in_default>
|
| 848 |
+
<show_in_website>1</show_in_website>
|
| 849 |
+
<show_in_store>1</show_in_store>
|
| 850 |
+
</min_order_total>
|
| 851 |
+
<max_order_total translate="label">
|
| 852 |
+
<label>Maximum Order Total</label>
|
| 853 |
+
<frontend_type>text</frontend_type>
|
| 854 |
+
<sort_order>121</sort_order>
|
| 855 |
+
<show_in_default>1</show_in_default>
|
| 856 |
+
<show_in_website>1</show_in_website>
|
| 857 |
+
<show_in_store>1</show_in_store>
|
| 858 |
+
</max_order_total>
|
| 859 |
+
<sort_order translate="label">
|
| 860 |
+
<label>Sort Order</label>
|
| 861 |
+
<frontend_type>text</frontend_type>
|
| 862 |
+
<sort_order>130</sort_order>
|
| 863 |
+
<show_in_default>1</show_in_default>
|
| 864 |
+
<show_in_website>1</show_in_website>
|
| 865 |
+
<show_in_store>1</show_in_store>
|
| 866 |
+
</sort_order>
|
| 867 |
+
<debug translate="label">
|
| 868 |
+
<label>Enable debug log</label>
|
| 869 |
+
<comment></comment>
|
| 870 |
+
<frontend_type>select</frontend_type>
|
| 871 |
+
<source_model>adminhtml/system_config_source_yesno</source_model>
|
| 872 |
+
<sort_order>150</sort_order>
|
| 873 |
+
<show_in_default>1</show_in_default>
|
| 874 |
+
<show_in_website>1</show_in_website>
|
| 875 |
+
<show_in_store>0</show_in_store>
|
| 876 |
+
</debug>
|
| 877 |
+
<is_test_mode translate="label comment">
|
| 878 |
+
<label>Enable test mode</label>
|
| 879 |
+
<comment></comment>
|
| 880 |
+
<frontend_type>select</frontend_type>
|
| 881 |
+
<source_model>adminhtml/system_config_source_yesno</source_model>
|
| 882 |
+
<sort_order>200</sort_order>
|
| 883 |
+
<show_in_default>1</show_in_default>
|
| 884 |
+
<show_in_website>1</show_in_website>
|
| 885 |
+
<show_in_store>1</show_in_store>
|
| 886 |
+
</is_test_mode>
|
| 887 |
+
</fields>
|
| 888 |
+
</hipay_ing>
|
| 889 |
+
<hipay_dexia translate="label" module="hipay">
|
| 890 |
+
<label>HiPay Fullservice Belfius / Dexia Direct Net</label>
|
| 891 |
+
<frontend_type>text</frontend_type>
|
| 892 |
+
<sort_order>220</sort_order>
|
| 893 |
+
<show_in_default>1</show_in_default>
|
| 894 |
+
<show_in_website>1</show_in_website>
|
| 895 |
+
<show_in_store>1</show_in_store>
|
| 896 |
+
<fields>
|
| 897 |
+
<active translate="label">
|
| 898 |
+
<label>Enabled</label>
|
| 899 |
+
<frontend_type>select</frontend_type>
|
| 900 |
+
<source_model>adminhtml/system_config_source_yesno</source_model>
|
| 901 |
+
<sort_order>10</sort_order>
|
| 902 |
+
<show_in_default>1</show_in_default>
|
| 903 |
+
<show_in_website>1</show_in_website>
|
| 904 |
+
<show_in_store>1</show_in_store>
|
| 905 |
+
</active>
|
| 906 |
+
<title translate="label">
|
| 907 |
+
<label>Title</label>
|
| 908 |
+
<frontend_type>text</frontend_type>
|
| 909 |
+
<sort_order>20</sort_order>
|
| 910 |
+
<show_in_default>1</show_in_default>
|
| 911 |
+
<show_in_website>1</show_in_website>
|
| 912 |
+
<show_in_store>1</show_in_store>
|
| 913 |
+
</title>
|
| 914 |
+
<order_status_payment_accepted translate="label">
|
| 915 |
+
<label>Order status when payment accepted</label>
|
| 916 |
+
<frontend_type>select</frontend_type>
|
| 917 |
+
<source_model>hipay/source_order_status_accepted</source_model>
|
| 918 |
+
<sort_order>23</sort_order>
|
| 919 |
+
<show_in_default>1</show_in_default>
|
| 920 |
+
<show_in_website>1</show_in_website>
|
| 921 |
+
<show_in_store>0</show_in_store>
|
| 922 |
+
</order_status_payment_accepted>
|
| 923 |
+
<order_status_payment_refused translate="label">
|
| 924 |
+
<label>Order status when payment refused</label>
|
| 925 |
+
<frontend_type>select</frontend_type>
|
| 926 |
+
<source_model>hipay/source_order_status_refused</source_model>
|
| 927 |
+
<sort_order>24</sort_order>
|
| 928 |
+
<show_in_default>1</show_in_default>
|
| 929 |
+
<show_in_website>1</show_in_website>
|
| 930 |
+
<show_in_store>0</show_in_store>
|
| 931 |
+
</order_status_payment_refused>
|
| 932 |
+
<order_status_payment_canceled translate="label">
|
| 933 |
+
<label>Order status when payment canceled by customer</label>
|
| 934 |
+
<frontend_type>select</frontend_type>
|
| 935 |
+
<source_model>hipay/source_order_status_canceled</source_model>
|
| 936 |
+
<sort_order>25</sort_order>
|
| 937 |
+
<show_in_default>1</show_in_default>
|
| 938 |
+
<show_in_website>1</show_in_website>
|
| 939 |
+
<show_in_store>0</show_in_store>
|
| 940 |
+
</order_status_payment_canceled>
|
| 941 |
+
<hipay_status_validate_order translate="label">
|
| 942 |
+
<label>Hipay status to validate order</label>
|
| 943 |
+
<frontend_type>select</frontend_type>
|
| 944 |
+
<source_model>hipay/source_order_hipayStatusValidate</source_model>
|
| 945 |
+
<sort_order>26</sort_order>
|
| 946 |
+
<show_in_default>1</show_in_default>
|
| 947 |
+
<show_in_website>1</show_in_website>
|
| 948 |
+
<show_in_store>0</show_in_store>
|
| 949 |
+
</hipay_status_validate_order>
|
| 950 |
+
<pending_redirect_page translate="label">
|
| 951 |
+
<label>Redirect page pending status</label>
|
| 952 |
+
<comment>Page to redirect when transaction is in pending status</comment>
|
| 953 |
+
<frontend_type>select</frontend_type>
|
| 954 |
+
<source_model>hipay/source_pendingredirect</source_model>
|
| 955 |
+
<sort_order>27</sort_order>
|
| 956 |
+
<show_in_default>1</show_in_default>
|
| 957 |
+
<show_in_website>1</show_in_website>
|
| 958 |
+
<show_in_store>0</show_in_store>
|
| 959 |
+
</pending_redirect_page>
|
| 960 |
+
<css_url translate="label coment">
|
| 961 |
+
<label>Css Url</label>
|
| 962 |
+
<comment>Important, HTTPS protocol is required</comment>
|
| 963 |
+
<frontend_type>text</frontend_type>
|
| 964 |
+
<sort_order>30</sort_order>
|
| 965 |
+
<show_in_default>1</show_in_default>
|
| 966 |
+
<show_in_website>1</show_in_website>
|
| 967 |
+
<show_in_store>1</show_in_store>
|
| 968 |
+
</css_url>
|
| 969 |
+
<template translate="label">
|
| 970 |
+
<label>Page payment template</label>
|
| 971 |
+
<frontend_type>select</frontend_type>
|
| 972 |
+
<source_model>hipay/source_template</source_model>
|
| 973 |
+
<sort_order>35</sort_order>
|
| 974 |
+
<show_in_default>1</show_in_default>
|
| 975 |
+
<show_in_website>1</show_in_website>
|
| 976 |
+
<show_in_store>0</show_in_store>
|
| 977 |
+
</template>
|
| 978 |
+
<re_add_to_cart translate="label comment">
|
| 979 |
+
<label>Add product to cart</label>
|
| 980 |
+
<comment>Fill cart when payment canceled or refused</comment>
|
| 981 |
+
<frontend_type>select</frontend_type>
|
| 982 |
+
<source_model>adminhtml/system_config_source_yesno</source_model>
|
| 983 |
+
<sort_order>95</sort_order>
|
| 984 |
+
<show_in_default>1</show_in_default>
|
| 985 |
+
<show_in_website>1</show_in_website>
|
| 986 |
+
<show_in_store>0</show_in_store>
|
| 987 |
+
</re_add_to_cart>
|
| 988 |
+
<cancel_pending_order translate="label comment">
|
| 989 |
+
<label>Cancel pending order</label>
|
| 990 |
+
<comment>Cancel orders stayed in pending because customer not validated payment</comment>
|
| 991 |
+
<frontend_type>select</frontend_type>
|
| 992 |
+
<source_model>adminhtml/system_config_source_yesno</source_model>
|
| 993 |
+
<sort_order>97</sort_order>
|
| 994 |
+
<show_in_default>1</show_in_default>
|
| 995 |
+
<show_in_website>1</show_in_website>
|
| 996 |
+
<show_in_store>0</show_in_store>
|
| 997 |
+
</cancel_pending_order>
|
| 998 |
+
<allowspecific translate="label">
|
| 999 |
+
<label>Payment from applicable countries</label>
|
| 1000 |
+
<frontend_type>allowspecific</frontend_type>
|
| 1001 |
+
<sort_order>100</sort_order>
|
| 1002 |
+
<source_model>adminhtml/system_config_source_payment_allspecificcountries</source_model>
|
| 1003 |
+
<show_in_default>1</show_in_default>
|
| 1004 |
+
<show_in_website>1</show_in_website>
|
| 1005 |
+
<show_in_store>1</show_in_store>
|
| 1006 |
+
</allowspecific>
|
| 1007 |
+
<specificcountry translate="label">
|
| 1008 |
+
<label>Payment from Specific countries</label>
|
| 1009 |
+
<frontend_type>multiselect</frontend_type>
|
| 1010 |
+
<sort_order>110</sort_order>
|
| 1011 |
+
<source_model>adminhtml/system_config_source_country</source_model>
|
| 1012 |
+
<show_in_default>1</show_in_default>
|
| 1013 |
+
<show_in_website>1</show_in_website>
|
| 1014 |
+
<show_in_store>1</show_in_store>
|
| 1015 |
+
</specificcountry>
|
| 1016 |
+
<min_order_total translate="label">
|
| 1017 |
+
<label>Minimum Order Total</label>
|
| 1018 |
+
<frontend_type>text</frontend_type>
|
| 1019 |
+
<sort_order>120</sort_order>
|
| 1020 |
+
<show_in_default>1</show_in_default>
|
| 1021 |
+
<show_in_website>1</show_in_website>
|
| 1022 |
+
<show_in_store>1</show_in_store>
|
| 1023 |
+
</min_order_total>
|
| 1024 |
+
<max_order_total translate="label">
|
| 1025 |
+
<label>Maximum Order Total</label>
|
| 1026 |
+
<frontend_type>text</frontend_type>
|
| 1027 |
+
<sort_order>121</sort_order>
|
| 1028 |
+
<show_in_default>1</show_in_default>
|
| 1029 |
+
<show_in_website>1</show_in_website>
|
| 1030 |
+
<show_in_store>1</show_in_store>
|
| 1031 |
+
</max_order_total>
|
| 1032 |
+
<sort_order translate="label">
|
| 1033 |
+
<label>Sort Order</label>
|
| 1034 |
+
<frontend_type>text</frontend_type>
|
| 1035 |
+
<sort_order>130</sort_order>
|
| 1036 |
+
<show_in_default>1</show_in_default>
|
| 1037 |
+
<show_in_website>1</show_in_website>
|
| 1038 |
+
<show_in_store>1</show_in_store>
|
| 1039 |
+
</sort_order>
|
| 1040 |
+
<debug translate="label">
|
| 1041 |
+
<label>Enable debug log</label>
|
| 1042 |
+
<comment></comment>
|
| 1043 |
+
<frontend_type>select</frontend_type>
|
| 1044 |
+
<source_model>adminhtml/system_config_source_yesno</source_model>
|
| 1045 |
+
<sort_order>150</sort_order>
|
| 1046 |
+
<show_in_default>1</show_in_default>
|
| 1047 |
+
<show_in_website>1</show_in_website>
|
| 1048 |
+
<show_in_store>0</show_in_store>
|
| 1049 |
+
</debug>
|
| 1050 |
+
<is_test_mode translate="label comment">
|
| 1051 |
+
<label>Enable test mode</label>
|
| 1052 |
+
<comment></comment>
|
| 1053 |
+
<frontend_type>select</frontend_type>
|
| 1054 |
+
<source_model>adminhtml/system_config_source_yesno</source_model>
|
| 1055 |
+
<sort_order>200</sort_order>
|
| 1056 |
+
<show_in_default>1</show_in_default>
|
| 1057 |
+
<show_in_website>1</show_in_website>
|
| 1058 |
+
<show_in_store>1</show_in_store>
|
| 1059 |
+
</is_test_mode>
|
| 1060 |
+
</fields>
|
| 1061 |
+
</hipay_dexia>
|
| 1062 |
+
<hipay_cbc translate="label" module="hipay">
|
| 1063 |
+
<label>HiPay Fullservice CBC Online</label>
|
| 1064 |
+
<frontend_type>text</frontend_type>
|
| 1065 |
+
<sort_order>220</sort_order>
|
| 1066 |
+
<show_in_default>1</show_in_default>
|
| 1067 |
+
<show_in_website>1</show_in_website>
|
| 1068 |
+
<show_in_store>1</show_in_store>
|
| 1069 |
+
<fields>
|
| 1070 |
+
<active translate="label">
|
| 1071 |
+
<label>Enabled</label>
|
| 1072 |
+
<frontend_type>select</frontend_type>
|
| 1073 |
+
<source_model>adminhtml/system_config_source_yesno</source_model>
|
| 1074 |
+
<sort_order>10</sort_order>
|
| 1075 |
+
<show_in_default>1</show_in_default>
|
| 1076 |
+
<show_in_website>1</show_in_website>
|
| 1077 |
+
<show_in_store>1</show_in_store>
|
| 1078 |
+
</active>
|
| 1079 |
+
<title translate="label">
|
| 1080 |
+
<label>Title</label>
|
| 1081 |
+
<frontend_type>text</frontend_type>
|
| 1082 |
+
<sort_order>20</sort_order>
|
| 1083 |
+
<show_in_default>1</show_in_default>
|
| 1084 |
+
<show_in_website>1</show_in_website>
|
| 1085 |
+
<show_in_store>1</show_in_store>
|
| 1086 |
+
</title>
|
| 1087 |
+
<order_status_payment_accepted translate="label">
|
| 1088 |
+
<label>Order status when payment accepted</label>
|
| 1089 |
+
<frontend_type>select</frontend_type>
|
| 1090 |
+
<source_model>hipay/source_order_status_accepted</source_model>
|
| 1091 |
+
<sort_order>23</sort_order>
|
| 1092 |
+
<show_in_default>1</show_in_default>
|
| 1093 |
+
<show_in_website>1</show_in_website>
|
| 1094 |
+
<show_in_store>0</show_in_store>
|
| 1095 |
+
</order_status_payment_accepted>
|
| 1096 |
+
<order_status_payment_refused translate="label">
|
| 1097 |
+
<label>Order status when payment refused</label>
|
| 1098 |
+
<frontend_type>select</frontend_type>
|
| 1099 |
+
<source_model>hipay/source_order_status_refused</source_model>
|
| 1100 |
+
<sort_order>24</sort_order>
|
| 1101 |
+
<show_in_default>1</show_in_default>
|
| 1102 |
+
<show_in_website>1</show_in_website>
|
| 1103 |
+
<show_in_store>0</show_in_store>
|
| 1104 |
+
</order_status_payment_refused>
|
| 1105 |
+
<order_status_payment_canceled translate="label">
|
| 1106 |
+
<label>Order status when payment canceled by customer</label>
|
| 1107 |
+
<frontend_type>select</frontend_type>
|
| 1108 |
+
<source_model>hipay/source_order_status_canceled</source_model>
|
| 1109 |
+
<sort_order>25</sort_order>
|
| 1110 |
+
<show_in_default>1</show_in_default>
|
| 1111 |
+
<show_in_website>1</show_in_website>
|
| 1112 |
+
<show_in_store>0</show_in_store>
|
| 1113 |
+
</order_status_payment_canceled>
|
| 1114 |
+
<hipay_status_validate_order translate="label">
|
| 1115 |
+
<label>Hipay status to validate order</label>
|
| 1116 |
+
<frontend_type>select</frontend_type>
|
| 1117 |
+
<source_model>hipay/source_order_hipayStatusValidate</source_model>
|
| 1118 |
+
<sort_order>26</sort_order>
|
| 1119 |
+
<show_in_default>1</show_in_default>
|
| 1120 |
+
<show_in_website>1</show_in_website>
|
| 1121 |
+
<show_in_store>0</show_in_store>
|
| 1122 |
+
</hipay_status_validate_order>
|
| 1123 |
+
<pending_redirect_page translate="label">
|
| 1124 |
+
<label>Redirect page pending status</label>
|
| 1125 |
+
<comment>Page to redirect when transaction is in pending status</comment>
|
| 1126 |
+
<frontend_type>select</frontend_type>
|
| 1127 |
+
<source_model>hipay/source_pendingredirect</source_model>
|
| 1128 |
+
<sort_order>27</sort_order>
|
| 1129 |
+
<show_in_default>1</show_in_default>
|
| 1130 |
+
<show_in_website>1</show_in_website>
|
| 1131 |
+
<show_in_store>0</show_in_store>
|
| 1132 |
+
</pending_redirect_page>
|
| 1133 |
+
<css_url translate="label coment">
|
| 1134 |
+
<label>Css Url</label>
|
| 1135 |
+
<comment>Important, HTTPS protocol is required</comment>
|
| 1136 |
+
<frontend_type>text</frontend_type>
|
| 1137 |
+
<sort_order>30</sort_order>
|
| 1138 |
+
<show_in_default>1</show_in_default>
|
| 1139 |
+
<show_in_website>1</show_in_website>
|
| 1140 |
+
<show_in_store>1</show_in_store>
|
| 1141 |
+
</css_url>
|
| 1142 |
+
<template translate="label">
|
| 1143 |
+
<label>Page payment template</label>
|
| 1144 |
+
<frontend_type>select</frontend_type>
|
| 1145 |
+
<source_model>hipay/source_template</source_model>
|
| 1146 |
+
<sort_order>35</sort_order>
|
| 1147 |
+
<show_in_default>1</show_in_default>
|
| 1148 |
+
<show_in_website>1</show_in_website>
|
| 1149 |
+
<show_in_store>0</show_in_store>
|
| 1150 |
+
</template>
|
| 1151 |
+
<re_add_to_cart translate="label comment">
|
| 1152 |
+
<label>Add product to cart</label>
|
| 1153 |
+
<comment>Fill cart when payment canceled or refused</comment>
|
| 1154 |
+
<frontend_type>select</frontend_type>
|
| 1155 |
+
<source_model>adminhtml/system_config_source_yesno</source_model>
|
| 1156 |
+
<sort_order>95</sort_order>
|
| 1157 |
+
<show_in_default>1</show_in_default>
|
| 1158 |
+
<show_in_website>1</show_in_website>
|
| 1159 |
+
<show_in_store>0</show_in_store>
|
| 1160 |
+
</re_add_to_cart>
|
| 1161 |
+
<cancel_pending_order translate="label comment">
|
| 1162 |
+
<label>Cancel pending order</label>
|
| 1163 |
+
<comment>Cancel orders stayed in pending because customer not validated payment</comment>
|
| 1164 |
+
<frontend_type>select</frontend_type>
|
| 1165 |
+
<source_model>adminhtml/system_config_source_yesno</source_model>
|
| 1166 |
+
<sort_order>97</sort_order>
|
| 1167 |
+
<show_in_default>1</show_in_default>
|
| 1168 |
+
<show_in_website>1</show_in_website>
|
| 1169 |
+
<show_in_store>0</show_in_store>
|
| 1170 |
+
</cancel_pending_order>
|
| 1171 |
+
<allowspecific translate="label">
|
| 1172 |
+
<label>Payment from applicable countries</label>
|
| 1173 |
+
<frontend_type>allowspecific</frontend_type>
|
| 1174 |
+
<sort_order>100</sort_order>
|
| 1175 |
+
<source_model>adminhtml/system_config_source_payment_allspecificcountries</source_model>
|
| 1176 |
+
<show_in_default>1</show_in_default>
|
| 1177 |
+
<show_in_website>1</show_in_website>
|
| 1178 |
+
<show_in_store>1</show_in_store>
|
| 1179 |
+
</allowspecific>
|
| 1180 |
+
<specificcountry translate="label">
|
| 1181 |
+
<label>Payment from Specific countries</label>
|
| 1182 |
+
<frontend_type>multiselect</frontend_type>
|
| 1183 |
+
<sort_order>110</sort_order>
|
| 1184 |
+
<source_model>adminhtml/system_config_source_country</source_model>
|
| 1185 |
+
<show_in_default>1</show_in_default>
|
| 1186 |
+
<show_in_website>1</show_in_website>
|
| 1187 |
+
<show_in_store>1</show_in_store>
|
| 1188 |
+
</specificcountry>
|
| 1189 |
+
<min_order_total translate="label">
|
| 1190 |
+
<label>Minimum Order Total</label>
|
| 1191 |
+
<frontend_type>text</frontend_type>
|
| 1192 |
+
<sort_order>120</sort_order>
|
| 1193 |
+
<show_in_default>1</show_in_default>
|
| 1194 |
+
<show_in_website>1</show_in_website>
|
| 1195 |
+
<show_in_store>1</show_in_store>
|
| 1196 |
+
</min_order_total>
|
| 1197 |
+
<max_order_total translate="label">
|
| 1198 |
+
<label>Maximum Order Total</label>
|
| 1199 |
+
<frontend_type>text</frontend_type>
|
| 1200 |
+
<sort_order>121</sort_order>
|
| 1201 |
+
<show_in_default>1</show_in_default>
|
| 1202 |
+
<show_in_website>1</show_in_website>
|
| 1203 |
+
<show_in_store>1</show_in_store>
|
| 1204 |
+
</max_order_total>
|
| 1205 |
+
<sort_order translate="label">
|
| 1206 |
+
<label>Sort Order</label>
|
| 1207 |
+
<frontend_type>text</frontend_type>
|
| 1208 |
+
<sort_order>130</sort_order>
|
| 1209 |
+
<show_in_default>1</show_in_default>
|
| 1210 |
+
<show_in_website>1</show_in_website>
|
| 1211 |
+
<show_in_store>1</show_in_store>
|
| 1212 |
+
</sort_order>
|
| 1213 |
+
<debug translate="label">
|
| 1214 |
+
<label>Enable debug log</label>
|
| 1215 |
+
<comment></comment>
|
| 1216 |
+
<frontend_type>select</frontend_type>
|
| 1217 |
+
<source_model>adminhtml/system_config_source_yesno</source_model>
|
| 1218 |
+
<sort_order>150</sort_order>
|
| 1219 |
+
<show_in_default>1</show_in_default>
|
| 1220 |
+
<show_in_website>1</show_in_website>
|
| 1221 |
+
<show_in_store>0</show_in_store>
|
| 1222 |
+
</debug>
|
| 1223 |
+
<is_test_mode translate="label comment">
|
| 1224 |
+
<label>Enable test mode</label>
|
| 1225 |
+
<comment></comment>
|
| 1226 |
+
<frontend_type>select</frontend_type>
|
| 1227 |
+
<source_model>adminhtml/system_config_source_yesno</source_model>
|
| 1228 |
+
<sort_order>200</sort_order>
|
| 1229 |
+
<show_in_default>1</show_in_default>
|
| 1230 |
+
<show_in_website>1</show_in_website>
|
| 1231 |
+
<show_in_store>1</show_in_store>
|
| 1232 |
+
</is_test_mode>
|
| 1233 |
+
</fields>
|
| 1234 |
+
</hipay_cbc>
|
| 1235 |
+
<hipay_kbc translate="label" module="hipay">
|
| 1236 |
+
<label>HiPay Fullservice KBC Online</label>
|
| 1237 |
+
<frontend_type>text</frontend_type>
|
| 1238 |
+
<sort_order>220</sort_order>
|
| 1239 |
+
<show_in_default>1</show_in_default>
|
| 1240 |
+
<show_in_website>1</show_in_website>
|
| 1241 |
+
<show_in_store>1</show_in_store>
|
| 1242 |
+
<fields>
|
| 1243 |
+
<active translate="label">
|
| 1244 |
+
<label>Enabled</label>
|
| 1245 |
+
<frontend_type>select</frontend_type>
|
| 1246 |
+
<source_model>adminhtml/system_config_source_yesno</source_model>
|
| 1247 |
+
<sort_order>10</sort_order>
|
| 1248 |
+
<show_in_default>1</show_in_default>
|
| 1249 |
+
<show_in_website>1</show_in_website>
|
| 1250 |
+
<show_in_store>1</show_in_store>
|
| 1251 |
+
</active>
|
| 1252 |
+
<title translate="label">
|
| 1253 |
+
<label>Title</label>
|
| 1254 |
+
<frontend_type>text</frontend_type>
|
| 1255 |
+
<sort_order>20</sort_order>
|
| 1256 |
+
<show_in_default>1</show_in_default>
|
| 1257 |
+
<show_in_website>1</show_in_website>
|
| 1258 |
+
<show_in_store>1</show_in_store>
|
| 1259 |
+
</title>
|
| 1260 |
+
<order_status_payment_accepted translate="label">
|
| 1261 |
+
<label>Order status when payment accepted</label>
|
| 1262 |
+
<frontend_type>select</frontend_type>
|
| 1263 |
+
<source_model>hipay/source_order_status_accepted</source_model>
|
| 1264 |
+
<sort_order>23</sort_order>
|
| 1265 |
+
<show_in_default>1</show_in_default>
|
| 1266 |
+
<show_in_website>1</show_in_website>
|
| 1267 |
+
<show_in_store>0</show_in_store>
|
| 1268 |
+
</order_status_payment_accepted>
|
| 1269 |
+
<order_status_payment_refused translate="label">
|
| 1270 |
+
<label>Order status when payment refused</label>
|
| 1271 |
+
<frontend_type>select</frontend_type>
|
| 1272 |
+
<source_model>hipay/source_order_status_refused</source_model>
|
| 1273 |
+
<sort_order>24</sort_order>
|
| 1274 |
+
<show_in_default>1</show_in_default>
|
| 1275 |
+
<show_in_website>1</show_in_website>
|
| 1276 |
+
<show_in_store>0</show_in_store>
|
| 1277 |
+
</order_status_payment_refused>
|
| 1278 |
+
<order_status_payment_canceled translate="label">
|
| 1279 |
+
<label>Order status when payment canceled by customer</label>
|
| 1280 |
+
<frontend_type>select</frontend_type>
|
| 1281 |
+
<source_model>hipay/source_order_status_canceled</source_model>
|
| 1282 |
+
<sort_order>25</sort_order>
|
| 1283 |
+
<show_in_default>1</show_in_default>
|
| 1284 |
+
<show_in_website>1</show_in_website>
|
| 1285 |
+
<show_in_store>0</show_in_store>
|
| 1286 |
+
</order_status_payment_canceled>
|
| 1287 |
+
<hipay_status_validate_order translate="label">
|
| 1288 |
+
<label>Hipay status to validate order</label>
|
| 1289 |
+
<frontend_type>select</frontend_type>
|
| 1290 |
+
<source_model>hipay/source_order_hipayStatusValidate</source_model>
|
| 1291 |
+
<sort_order>26</sort_order>
|
| 1292 |
+
<show_in_default>1</show_in_default>
|
| 1293 |
+
<show_in_website>1</show_in_website>
|
| 1294 |
+
<show_in_store>0</show_in_store>
|
| 1295 |
+
</hipay_status_validate_order>
|
| 1296 |
+
<pending_redirect_page translate="label">
|
| 1297 |
+
<label>Redirect page pending status</label>
|
| 1298 |
+
<comment>Page to redirect when transaction is in pending status</comment>
|
| 1299 |
+
<frontend_type>select</frontend_type>
|
| 1300 |
+
<source_model>hipay/source_pendingredirect</source_model>
|
| 1301 |
+
<sort_order>27</sort_order>
|
| 1302 |
+
<show_in_default>1</show_in_default>
|
| 1303 |
+
<show_in_website>1</show_in_website>
|
| 1304 |
+
<show_in_store>0</show_in_store>
|
| 1305 |
+
</pending_redirect_page>
|
| 1306 |
+
<css_url translate="label coment">
|
| 1307 |
+
<label>Css Url</label>
|
| 1308 |
+
<comment>Important, HTTPS protocol is required</comment>
|
| 1309 |
+
<frontend_type>text</frontend_type>
|
| 1310 |
+
<sort_order>30</sort_order>
|
| 1311 |
+
<show_in_default>1</show_in_default>
|
| 1312 |
+
<show_in_website>1</show_in_website>
|
| 1313 |
+
<show_in_store>1</show_in_store>
|
| 1314 |
+
</css_url>
|
| 1315 |
+
<template translate="label">
|
| 1316 |
+
<label>Page payment template</label>
|
| 1317 |
+
<frontend_type>select</frontend_type>
|
| 1318 |
+
<source_model>hipay/source_template</source_model>
|
| 1319 |
+
<sort_order>35</sort_order>
|
| 1320 |
+
<show_in_default>1</show_in_default>
|
| 1321 |
+
<show_in_website>1</show_in_website>
|
| 1322 |
+
<show_in_store>0</show_in_store>
|
| 1323 |
+
</template>
|
| 1324 |
+
<re_add_to_cart translate="label comment">
|
| 1325 |
+
<label>Add product to cart</label>
|
| 1326 |
+
<comment>Fill cart when payment canceled or refused</comment>
|
| 1327 |
+
<frontend_type>select</frontend_type>
|
| 1328 |
+
<source_model>adminhtml/system_config_source_yesno</source_model>
|
| 1329 |
+
<sort_order>95</sort_order>
|
| 1330 |
+
<show_in_default>1</show_in_default>
|
| 1331 |
+
<show_in_website>1</show_in_website>
|
| 1332 |
+
<show_in_store>0</show_in_store>
|
| 1333 |
+
</re_add_to_cart>
|
| 1334 |
+
<cancel_pending_order translate="label comment">
|
| 1335 |
+
<label>Cancel pending order</label>
|
| 1336 |
+
<comment>Cancel orders stayed in pending because customer not validated payment</comment>
|
| 1337 |
+
<frontend_type>select</frontend_type>
|
| 1338 |
+
<source_model>adminhtml/system_config_source_yesno</source_model>
|
| 1339 |
+
<sort_order>97</sort_order>
|
| 1340 |
+
<show_in_default>1</show_in_default>
|
| 1341 |
+
<show_in_website>1</show_in_website>
|
| 1342 |
+
<show_in_store>0</show_in_store>
|
| 1343 |
+
</cancel_pending_order>
|
| 1344 |
+
<allowspecific translate="label">
|
| 1345 |
+
<label>Payment from applicable countries</label>
|
| 1346 |
+
<frontend_type>allowspecific</frontend_type>
|
| 1347 |
+
<sort_order>100</sort_order>
|
| 1348 |
+
<source_model>adminhtml/system_config_source_payment_allspecificcountries</source_model>
|
| 1349 |
+
<show_in_default>1</show_in_default>
|
| 1350 |
+
<show_in_website>1</show_in_website>
|
| 1351 |
+
<show_in_store>1</show_in_store>
|
| 1352 |
+
</allowspecific>
|
| 1353 |
+
<specificcountry translate="label">
|
| 1354 |
+
<label>Payment from Specific countries</label>
|
| 1355 |
+
<frontend_type>multiselect</frontend_type>
|
| 1356 |
+
<sort_order>110</sort_order>
|
| 1357 |
+
<source_model>adminhtml/system_config_source_country</source_model>
|
| 1358 |
+
<show_in_default>1</show_in_default>
|
| 1359 |
+
<show_in_website>1</show_in_website>
|
| 1360 |
+
<show_in_store>1</show_in_store>
|
| 1361 |
+
</specificcountry>
|
| 1362 |
+
<min_order_total translate="label">
|
| 1363 |
+
<label>Minimum Order Total</label>
|
| 1364 |
+
<frontend_type>text</frontend_type>
|
| 1365 |
+
<sort_order>120</sort_order>
|
| 1366 |
+
<show_in_default>1</show_in_default>
|
| 1367 |
+
<show_in_website>1</show_in_website>
|
| 1368 |
+
<show_in_store>1</show_in_store>
|
| 1369 |
+
</min_order_total>
|
| 1370 |
+
<max_order_total translate="label">
|
| 1371 |
+
<label>Maximum Order Total</label>
|
| 1372 |
+
<frontend_type>text</frontend_type>
|
| 1373 |
+
<sort_order>121</sort_order>
|
| 1374 |
+
<show_in_default>1</show_in_default>
|
| 1375 |
+
<show_in_website>1</show_in_website>
|
| 1376 |
+
<show_in_store>1</show_in_store>
|
| 1377 |
+
</max_order_total>
|
| 1378 |
+
<sort_order translate="label">
|
| 1379 |
+
<label>Sort Order</label>
|
| 1380 |
+
<frontend_type>text</frontend_type>
|
| 1381 |
+
<sort_order>130</sort_order>
|
| 1382 |
+
<show_in_default>1</show_in_default>
|
| 1383 |
+
<show_in_website>1</show_in_website>
|
| 1384 |
+
<show_in_store>1</show_in_store>
|
| 1385 |
+
</sort_order>
|
| 1386 |
+
<debug translate="label">
|
| 1387 |
+
<label>Enable debug log</label>
|
| 1388 |
+
<comment></comment>
|
| 1389 |
+
<frontend_type>select</frontend_type>
|
| 1390 |
+
<source_model>adminhtml/system_config_source_yesno</source_model>
|
| 1391 |
+
<sort_order>150</sort_order>
|
| 1392 |
+
<show_in_default>1</show_in_default>
|
| 1393 |
+
<show_in_website>1</show_in_website>
|
| 1394 |
+
<show_in_store>0</show_in_store>
|
| 1395 |
+
</debug>
|
| 1396 |
+
<is_test_mode translate="label comment">
|
| 1397 |
+
<label>Enable test mode</label>
|
| 1398 |
+
<comment></comment>
|
| 1399 |
+
<frontend_type>select</frontend_type>
|
| 1400 |
+
<source_model>adminhtml/system_config_source_yesno</source_model>
|
| 1401 |
+
<sort_order>200</sort_order>
|
| 1402 |
+
<show_in_default>1</show_in_default>
|
| 1403 |
+
<show_in_website>1</show_in_website>
|
| 1404 |
+
<show_in_store>1</show_in_store>
|
| 1405 |
+
</is_test_mode>
|
| 1406 |
+
</fields>
|
| 1407 |
+
</hipay_kbc>
|
| 1408 |
+
<hipay_giropay translate="label" module="hipay">
|
| 1409 |
+
<label>HiPay Fullservice Giropay</label>
|
| 1410 |
+
<frontend_type>text</frontend_type>
|
| 1411 |
+
<sort_order>220</sort_order>
|
| 1412 |
+
<show_in_default>1</show_in_default>
|
| 1413 |
+
<show_in_website>1</show_in_website>
|
| 1414 |
+
<show_in_store>1</show_in_store>
|
| 1415 |
+
<fields>
|
| 1416 |
+
<active translate="label">
|
| 1417 |
+
<label>Enabled</label>
|
| 1418 |
+
<frontend_type>select</frontend_type>
|
| 1419 |
+
<source_model>adminhtml/system_config_source_yesno</source_model>
|
| 1420 |
+
<sort_order>10</sort_order>
|
| 1421 |
+
<show_in_default>1</show_in_default>
|
| 1422 |
+
<show_in_website>1</show_in_website>
|
| 1423 |
+
<show_in_store>1</show_in_store>
|
| 1424 |
+
</active>
|
| 1425 |
+
<title translate="label">
|
| 1426 |
+
<label>Title</label>
|
| 1427 |
+
<frontend_type>text</frontend_type>
|
| 1428 |
+
<sort_order>20</sort_order>
|
| 1429 |
+
<show_in_default>1</show_in_default>
|
| 1430 |
+
<show_in_website>1</show_in_website>
|
| 1431 |
+
<show_in_store>1</show_in_store>
|
| 1432 |
+
</title>
|
| 1433 |
+
<order_status_payment_accepted translate="label">
|
| 1434 |
+
<label>Order status when payment accepted</label>
|
| 1435 |
+
<frontend_type>select</frontend_type>
|
| 1436 |
+
<source_model>hipay/source_order_status_accepted</source_model>
|
| 1437 |
+
<sort_order>23</sort_order>
|
| 1438 |
+
<show_in_default>1</show_in_default>
|
| 1439 |
+
<show_in_website>1</show_in_website>
|
| 1440 |
+
<show_in_store>0</show_in_store>
|
| 1441 |
+
</order_status_payment_accepted>
|
| 1442 |
+
<order_status_payment_refused translate="label">
|
| 1443 |
+
<label>Order status when payment refused</label>
|
| 1444 |
+
<frontend_type>select</frontend_type>
|
| 1445 |
+
<source_model>hipay/source_order_status_refused</source_model>
|
| 1446 |
+
<sort_order>24</sort_order>
|
| 1447 |
+
<show_in_default>1</show_in_default>
|
| 1448 |
+
<show_in_website>1</show_in_website>
|
| 1449 |
+
<show_in_store>0</show_in_store>
|
| 1450 |
+
</order_status_payment_refused>
|
| 1451 |
+
<order_status_payment_canceled translate="label">
|
| 1452 |
+
<label>Order status when payment canceled by customer</label>
|
| 1453 |
+
<frontend_type>select</frontend_type>
|
| 1454 |
+
<source_model>hipay/source_order_status_canceled</source_model>
|
| 1455 |
+
<sort_order>25</sort_order>
|
| 1456 |
+
<show_in_default>1</show_in_default>
|
| 1457 |
+
<show_in_website>1</show_in_website>
|
| 1458 |
+
<show_in_store>0</show_in_store>
|
| 1459 |
+
</order_status_payment_canceled>
|
| 1460 |
+
<hipay_status_validate_order translate="label">
|
| 1461 |
+
<label>Hipay status to validate order</label>
|
| 1462 |
+
<frontend_type>select</frontend_type>
|
| 1463 |
+
<source_model>hipay/source_order_hipayStatusValidate</source_model>
|
| 1464 |
+
<sort_order>26</sort_order>
|
| 1465 |
+
<show_in_default>1</show_in_default>
|
| 1466 |
+
<show_in_website>1</show_in_website>
|
| 1467 |
+
<show_in_store>0</show_in_store>
|
| 1468 |
+
</hipay_status_validate_order>
|
| 1469 |
+
<pending_redirect_page translate="label">
|
| 1470 |
+
<label>Redirect page pending status</label>
|
| 1471 |
+
<comment>Page to redirect when transaction is in pending status</comment>
|
| 1472 |
+
<frontend_type>select</frontend_type>
|
| 1473 |
+
<source_model>hipay/source_pendingredirect</source_model>
|
| 1474 |
+
<sort_order>27</sort_order>
|
| 1475 |
+
<show_in_default>1</show_in_default>
|
| 1476 |
+
<show_in_website>1</show_in_website>
|
| 1477 |
+
<show_in_store>0</show_in_store>
|
| 1478 |
+
</pending_redirect_page>
|
| 1479 |
+
<css_url translate="label coment">
|
| 1480 |
+
<label>Css Url</label>
|
| 1481 |
+
<comment>Important, HTTPS protocol is required</comment>
|
| 1482 |
+
<frontend_type>text</frontend_type>
|
| 1483 |
+
<sort_order>30</sort_order>
|
| 1484 |
+
<show_in_default>1</show_in_default>
|
| 1485 |
+
<show_in_website>1</show_in_website>
|
| 1486 |
+
<show_in_store>1</show_in_store>
|
| 1487 |
+
</css_url>
|
| 1488 |
+
<template translate="label">
|
| 1489 |
+
<label>Page payment template</label>
|
| 1490 |
+
<frontend_type>select</frontend_type>
|
| 1491 |
+
<source_model>hipay/source_template</source_model>
|
| 1492 |
+
<sort_order>35</sort_order>
|
| 1493 |
+
<show_in_default>1</show_in_default>
|
| 1494 |
+
<show_in_website>1</show_in_website>
|
| 1495 |
+
<show_in_store>0</show_in_store>
|
| 1496 |
+
</template>
|
| 1497 |
+
<re_add_to_cart translate="label comment">
|
| 1498 |
+
<label>Add product to cart</label>
|
| 1499 |
+
<comment>Fill cart when payment canceled or refused</comment>
|
| 1500 |
+
<frontend_type>select</frontend_type>
|
| 1501 |
+
<source_model>adminhtml/system_config_source_yesno</source_model>
|
| 1502 |
+
<sort_order>95</sort_order>
|
| 1503 |
+
<show_in_default>1</show_in_default>
|
| 1504 |
+
<show_in_website>1</show_in_website>
|
| 1505 |
+
<show_in_store>0</show_in_store>
|
| 1506 |
+
</re_add_to_cart>
|
| 1507 |
+
<cancel_pending_order translate="label comment">
|
| 1508 |
+
<label>Cancel pending order</label>
|
| 1509 |
+
<comment>Cancel orders stayed in pending because customer not validated payment</comment>
|
| 1510 |
+
<frontend_type>select</frontend_type>
|
| 1511 |
+
<source_model>adminhtml/system_config_source_yesno</source_model>
|
| 1512 |
+
<sort_order>97</sort_order>
|
| 1513 |
+
<show_in_default>1</show_in_default>
|
| 1514 |
+
<show_in_website>1</show_in_website>
|
| 1515 |
+
<show_in_store>0</show_in_store>
|
| 1516 |
+
</cancel_pending_order>
|
| 1517 |
+
<allowspecific translate="label">
|
| 1518 |
+
<label>Payment from applicable countries</label>
|
| 1519 |
+
<frontend_type>allowspecific</frontend_type>
|
| 1520 |
+
<sort_order>100</sort_order>
|
| 1521 |
+
<source_model>adminhtml/system_config_source_payment_allspecificcountries</source_model>
|
| 1522 |
+
<show_in_default>1</show_in_default>
|
| 1523 |
+
<show_in_website>1</show_in_website>
|
| 1524 |
+
<show_in_store>1</show_in_store>
|
| 1525 |
+
</allowspecific>
|
| 1526 |
+
<specificcountry translate="label">
|
| 1527 |
+
<label>Payment from Specific countries</label>
|
| 1528 |
+
<frontend_type>multiselect</frontend_type>
|
| 1529 |
+
<sort_order>110</sort_order>
|
| 1530 |
+
<source_model>adminhtml/system_config_source_country</source_model>
|
| 1531 |
+
<show_in_default>1</show_in_default>
|
| 1532 |
+
<show_in_website>1</show_in_website>
|
| 1533 |
+
<show_in_store>1</show_in_store>
|
| 1534 |
+
</specificcountry>
|
| 1535 |
+
<min_order_total translate="label">
|
| 1536 |
+
<label>Minimum Order Total</label>
|
| 1537 |
+
<frontend_type>text</frontend_type>
|
| 1538 |
+
<sort_order>120</sort_order>
|
| 1539 |
+
<show_in_default>1</show_in_default>
|
| 1540 |
+
<show_in_website>1</show_in_website>
|
| 1541 |
+
<show_in_store>1</show_in_store>
|
| 1542 |
+
</min_order_total>
|
| 1543 |
+
<max_order_total translate="label">
|
| 1544 |
+
<label>Maximum Order Total</label>
|
| 1545 |
+
<frontend_type>text</frontend_type>
|
| 1546 |
+
<sort_order>121</sort_order>
|
| 1547 |
+
<show_in_default>1</show_in_default>
|
| 1548 |
+
<show_in_website>1</show_in_website>
|
| 1549 |
+
<show_in_store>1</show_in_store>
|
| 1550 |
+
</max_order_total>
|
| 1551 |
+
<sort_order translate="label">
|
| 1552 |
+
<label>Sort Order</label>
|
| 1553 |
+
<frontend_type>text</frontend_type>
|
| 1554 |
+
<sort_order>130</sort_order>
|
| 1555 |
+
<show_in_default>1</show_in_default>
|
| 1556 |
+
<show_in_website>1</show_in_website>
|
| 1557 |
+
<show_in_store>1</show_in_store>
|
| 1558 |
+
</sort_order>
|
| 1559 |
+
<debug translate="label">
|
| 1560 |
+
<label>Enable debug log</label>
|
| 1561 |
+
<comment></comment>
|
| 1562 |
+
<frontend_type>select</frontend_type>
|
| 1563 |
+
<source_model>adminhtml/system_config_source_yesno</source_model>
|
| 1564 |
+
<sort_order>150</sort_order>
|
| 1565 |
+
<show_in_default>1</show_in_default>
|
| 1566 |
+
<show_in_website>1</show_in_website>
|
| 1567 |
+
<show_in_store>0</show_in_store>
|
| 1568 |
+
</debug>
|
| 1569 |
+
<is_test_mode translate="label comment">
|
| 1570 |
+
<label>Enable test mode</label>
|
| 1571 |
+
<comment></comment>
|
| 1572 |
+
<frontend_type>select</frontend_type>
|
| 1573 |
+
<source_model>adminhtml/system_config_source_yesno</source_model>
|
| 1574 |
+
<sort_order>200</sort_order>
|
| 1575 |
+
<show_in_default>1</show_in_default>
|
| 1576 |
+
<show_in_website>1</show_in_website>
|
| 1577 |
+
<show_in_store>1</show_in_store>
|
| 1578 |
+
</is_test_mode>
|
| 1579 |
+
</fields>
|
| 1580 |
+
</hipay_giropay>
|
| 1581 |
+
<hipay_przelewy24api translate="label" module="hipay">
|
| 1582 |
+
<label>HiPay Fullservice Przelewy24</label>
|
| 1583 |
+
<frontend_type>text</frontend_type>
|
| 1584 |
+
<sort_order>220</sort_order>
|
| 1585 |
+
<show_in_default>1</show_in_default>
|
| 1586 |
+
<show_in_website>1</show_in_website>
|
| 1587 |
+
<show_in_store>1</show_in_store>
|
| 1588 |
+
<fields>
|
| 1589 |
+
<active translate="label">
|
| 1590 |
+
<label>Enabled</label>
|
| 1591 |
+
<frontend_type>select</frontend_type>
|
| 1592 |
+
<source_model>adminhtml/system_config_source_yesno</source_model>
|
| 1593 |
+
<sort_order>10</sort_order>
|
| 1594 |
+
<show_in_default>1</show_in_default>
|
| 1595 |
+
<show_in_website>1</show_in_website>
|
| 1596 |
+
<show_in_store>1</show_in_store>
|
| 1597 |
+
</active>
|
| 1598 |
+
<title translate="label">
|
| 1599 |
+
<label>Title</label>
|
| 1600 |
+
<frontend_type>text</frontend_type>
|
| 1601 |
+
<sort_order>20</sort_order>
|
| 1602 |
+
<show_in_default>1</show_in_default>
|
| 1603 |
+
<show_in_website>1</show_in_website>
|
| 1604 |
+
<show_in_store>1</show_in_store>
|
| 1605 |
+
</title>
|
| 1606 |
+
<order_status_payment_accepted translate="label">
|
| 1607 |
+
<label>Order status when payment accepted</label>
|
| 1608 |
+
<frontend_type>select</frontend_type>
|
| 1609 |
+
<source_model>hipay/source_order_status_accepted</source_model>
|
| 1610 |
+
<sort_order>23</sort_order>
|
| 1611 |
+
<show_in_default>1</show_in_default>
|
| 1612 |
+
<show_in_website>1</show_in_website>
|
| 1613 |
+
<show_in_store>0</show_in_store>
|
| 1614 |
+
</order_status_payment_accepted>
|
| 1615 |
+
<order_status_payment_refused translate="label">
|
| 1616 |
+
<label>Order status when payment refused</label>
|
| 1617 |
+
<frontend_type>select</frontend_type>
|
| 1618 |
+
<source_model>hipay/source_order_status_refused</source_model>
|
| 1619 |
+
<sort_order>24</sort_order>
|
| 1620 |
+
<show_in_default>1</show_in_default>
|
| 1621 |
+
<show_in_website>1</show_in_website>
|
| 1622 |
+
<show_in_store>0</show_in_store>
|
| 1623 |
+
</order_status_payment_refused>
|
| 1624 |
+
<order_status_payment_canceled translate="label">
|
| 1625 |
+
<label>Order status when payment canceled by customer</label>
|
| 1626 |
+
<frontend_type>select</frontend_type>
|
| 1627 |
+
<source_model>hipay/source_order_status_canceled</source_model>
|
| 1628 |
+
<sort_order>25</sort_order>
|
| 1629 |
+
<show_in_default>1</show_in_default>
|
| 1630 |
+
<show_in_website>1</show_in_website>
|
| 1631 |
+
<show_in_store>0</show_in_store>
|
| 1632 |
+
</order_status_payment_canceled>
|
| 1633 |
+
<hipay_status_validate_order translate="label">
|
| 1634 |
+
<label>Hipay status to validate order</label>
|
| 1635 |
+
<frontend_type>select</frontend_type>
|
| 1636 |
+
<source_model>hipay/source_order_hipayStatusValidate</source_model>
|
| 1637 |
+
<sort_order>26</sort_order>
|
| 1638 |
+
<show_in_default>1</show_in_default>
|
| 1639 |
+
<show_in_website>1</show_in_website>
|
| 1640 |
+
<show_in_store>0</show_in_store>
|
| 1641 |
+
</hipay_status_validate_order>
|
| 1642 |
+
<pending_redirect_page translate="label">
|
| 1643 |
+
<label>Redirect page pending status</label>
|
| 1644 |
+
<comment>Page to redirect when transaction is in pending status</comment>
|
| 1645 |
+
<frontend_type>select</frontend_type>
|
| 1646 |
+
<source_model>hipay/source_pendingredirect</source_model>
|
| 1647 |
+
<sort_order>27</sort_order>
|
| 1648 |
+
<show_in_default>1</show_in_default>
|
| 1649 |
+
<show_in_website>1</show_in_website>
|
| 1650 |
+
<show_in_store>0</show_in_store>
|
| 1651 |
+
</pending_redirect_page>
|
| 1652 |
+
<css_url translate="label coment">
|
| 1653 |
+
<label>Css Url</label>
|
| 1654 |
+
<comment>Important, HTTPS protocol is required</comment>
|
| 1655 |
+
<frontend_type>text</frontend_type>
|
| 1656 |
+
<sort_order>30</sort_order>
|
| 1657 |
+
<show_in_default>1</show_in_default>
|
| 1658 |
+
<show_in_website>1</show_in_website>
|
| 1659 |
+
<show_in_store>1</show_in_store>
|
| 1660 |
+
</css_url>
|
| 1661 |
+
<template translate="label">
|
| 1662 |
+
<label>Page payment template</label>
|
| 1663 |
+
<frontend_type>select</frontend_type>
|
| 1664 |
+
<source_model>hipay/source_template</source_model>
|
| 1665 |
+
<sort_order>35</sort_order>
|
| 1666 |
+
<show_in_default>1</show_in_default>
|
| 1667 |
+
<show_in_website>1</show_in_website>
|
| 1668 |
+
<show_in_store>0</show_in_store>
|
| 1669 |
+
</template>
|
| 1670 |
+
<re_add_to_cart translate="label comment">
|
| 1671 |
+
<label>Add product to cart</label>
|
| 1672 |
+
<comment>Fill cart when payment canceled or refused</comment>
|
| 1673 |
+
<frontend_type>select</frontend_type>
|
| 1674 |
+
<source_model>adminhtml/system_config_source_yesno</source_model>
|
| 1675 |
+
<sort_order>95</sort_order>
|
| 1676 |
+
<show_in_default>1</show_in_default>
|
| 1677 |
+
<show_in_website>1</show_in_website>
|
| 1678 |
+
<show_in_store>0</show_in_store>
|
| 1679 |
+
</re_add_to_cart>
|
| 1680 |
+
<cancel_pending_order translate="label comment">
|
| 1681 |
+
<label>Cancel pending order</label>
|
| 1682 |
+
<comment>Cancel orders stayed in pending because customer not validated payment</comment>
|
| 1683 |
+
<frontend_type>select</frontend_type>
|
| 1684 |
+
<source_model>adminhtml/system_config_source_yesno</source_model>
|
| 1685 |
+
<sort_order>97</sort_order>
|
| 1686 |
+
<show_in_default>1</show_in_default>
|
| 1687 |
+
<show_in_website>1</show_in_website>
|
| 1688 |
+
<show_in_store>0</show_in_store>
|
| 1689 |
+
</cancel_pending_order>
|
| 1690 |
+
<allowspecific translate="label">
|
| 1691 |
+
<label>Payment from applicable countries</label>
|
| 1692 |
+
<frontend_type>allowspecific</frontend_type>
|
| 1693 |
+
<sort_order>100</sort_order>
|
| 1694 |
+
<source_model>adminhtml/system_config_source_payment_allspecificcountries</source_model>
|
| 1695 |
+
<show_in_default>1</show_in_default>
|
| 1696 |
+
<show_in_website>1</show_in_website>
|
| 1697 |
+
<show_in_store>1</show_in_store>
|
| 1698 |
+
</allowspecific>
|
| 1699 |
+
<specificcountry translate="label">
|
| 1700 |
+
<label>Payment from Specific countries</label>
|
| 1701 |
+
<frontend_type>multiselect</frontend_type>
|
| 1702 |
+
<sort_order>110</sort_order>
|
| 1703 |
+
<source_model>adminhtml/system_config_source_country</source_model>
|
| 1704 |
+
<show_in_default>1</show_in_default>
|
| 1705 |
+
<show_in_website>1</show_in_website>
|
| 1706 |
+
<show_in_store>1</show_in_store>
|
| 1707 |
+
</specificcountry>
|
| 1708 |
+
<min_order_total translate="label">
|
| 1709 |
+
<label>Minimum Order Total</label>
|
| 1710 |
+
<frontend_type>text</frontend_type>
|
| 1711 |
+
<sort_order>120</sort_order>
|
| 1712 |
+
<show_in_default>1</show_in_default>
|
| 1713 |
+
<show_in_website>1</show_in_website>
|
| 1714 |
+
<show_in_store>1</show_in_store>
|
| 1715 |
+
</min_order_total>
|
| 1716 |
+
<max_order_total translate="label">
|
| 1717 |
+
<label>Maximum Order Total</label>
|
| 1718 |
+
<frontend_type>text</frontend_type>
|
| 1719 |
+
<sort_order>121</sort_order>
|
| 1720 |
+
<show_in_default>1</show_in_default>
|
| 1721 |
+
<show_in_website>1</show_in_website>
|
| 1722 |
+
<show_in_store>1</show_in_store>
|
| 1723 |
+
</max_order_total>
|
| 1724 |
+
<sort_order translate="label">
|
| 1725 |
+
<label>Sort Order</label>
|
| 1726 |
+
<frontend_type>text</frontend_type>
|
| 1727 |
+
<sort_order>130</sort_order>
|
| 1728 |
+
<show_in_default>1</show_in_default>
|
| 1729 |
+
<show_in_website>1</show_in_website>
|
| 1730 |
+
<show_in_store>1</show_in_store>
|
| 1731 |
+
</sort_order>
|
| 1732 |
+
<debug translate="label">
|
| 1733 |
+
<label>Enable debug log</label>
|
| 1734 |
+
<comment></comment>
|
| 1735 |
+
<frontend_type>select</frontend_type>
|
| 1736 |
+
<source_model>adminhtml/system_config_source_yesno</source_model>
|
| 1737 |
+
<sort_order>150</sort_order>
|
| 1738 |
+
<show_in_default>1</show_in_default>
|
| 1739 |
+
<show_in_website>1</show_in_website>
|
| 1740 |
+
<show_in_store>0</show_in_store>
|
| 1741 |
+
</debug>
|
| 1742 |
+
<is_test_mode translate="label comment">
|
| 1743 |
+
<label>Enable test mode</label>
|
| 1744 |
+
<comment></comment>
|
| 1745 |
+
<frontend_type>select</frontend_type>
|
| 1746 |
+
<source_model>adminhtml/system_config_source_yesno</source_model>
|
| 1747 |
+
<sort_order>200</sort_order>
|
| 1748 |
+
<show_in_default>1</show_in_default>
|
| 1749 |
+
<show_in_website>1</show_in_website>
|
| 1750 |
+
<show_in_store>1</show_in_store>
|
| 1751 |
+
</is_test_mode>
|
| 1752 |
+
</fields>
|
| 1753 |
+
</hipay_przelewy24api>
|
| 1754 |
+
<hipay_qiwi translate="label" module="hipay">
|
| 1755 |
+
<label>HiPay Fullservice Visa Qiwi Wallet</label>
|
| 1756 |
+
<frontend_type>text</frontend_type>
|
| 1757 |
+
<sort_order>220</sort_order>
|
| 1758 |
+
<show_in_default>1</show_in_default>
|
| 1759 |
+
<show_in_website>1</show_in_website>
|
| 1760 |
+
<show_in_store>1</show_in_store>
|
| 1761 |
+
<fields>
|
| 1762 |
+
<active translate="label">
|
| 1763 |
+
<label>Enabled</label>
|
| 1764 |
+
<frontend_type>select</frontend_type>
|
| 1765 |
+
<source_model>adminhtml/system_config_source_yesno</source_model>
|
| 1766 |
+
<sort_order>10</sort_order>
|
| 1767 |
+
<show_in_default>1</show_in_default>
|
| 1768 |
+
<show_in_website>1</show_in_website>
|
| 1769 |
+
<show_in_store>1</show_in_store>
|
| 1770 |
+
</active>
|
| 1771 |
+
<title translate="label">
|
| 1772 |
+
<label>Title</label>
|
| 1773 |
+
<frontend_type>text</frontend_type>
|
| 1774 |
+
<sort_order>20</sort_order>
|
| 1775 |
+
<show_in_default>1</show_in_default>
|
| 1776 |
+
<show_in_website>1</show_in_website>
|
| 1777 |
+
<show_in_store>1</show_in_store>
|
| 1778 |
+
</title>
|
| 1779 |
+
<order_status_payment_accepted translate="label">
|
| 1780 |
+
<label>Order status when payment accepted</label>
|
| 1781 |
+
<frontend_type>select</frontend_type>
|
| 1782 |
+
<source_model>hipay/source_order_status_accepted</source_model>
|
| 1783 |
+
<sort_order>23</sort_order>
|
| 1784 |
+
<show_in_default>1</show_in_default>
|
| 1785 |
+
<show_in_website>1</show_in_website>
|
| 1786 |
+
<show_in_store>0</show_in_store>
|
| 1787 |
+
</order_status_payment_accepted>
|
| 1788 |
+
<order_status_payment_refused translate="label">
|
| 1789 |
+
<label>Order status when payment refused</label>
|
| 1790 |
+
<frontend_type>select</frontend_type>
|
| 1791 |
+
<source_model>hipay/source_order_status_refused</source_model>
|
| 1792 |
+
<sort_order>24</sort_order>
|
| 1793 |
+
<show_in_default>1</show_in_default>
|
| 1794 |
+
<show_in_website>1</show_in_website>
|
| 1795 |
+
<show_in_store>0</show_in_store>
|
| 1796 |
+
</order_status_payment_refused>
|
| 1797 |
+
<order_status_payment_canceled translate="label">
|
| 1798 |
+
<label>Order status when payment canceled by customer</label>
|
| 1799 |
+
<frontend_type>select</frontend_type>
|
| 1800 |
+
<source_model>hipay/source_order_status_canceled</source_model>
|
| 1801 |
+
<sort_order>25</sort_order>
|
| 1802 |
+
<show_in_default>1</show_in_default>
|
| 1803 |
+
<show_in_website>1</show_in_website>
|
| 1804 |
+
<show_in_store>0</show_in_store>
|
| 1805 |
+
</order_status_payment_canceled>
|
| 1806 |
+
<hipay_status_validate_order translate="label">
|
| 1807 |
+
<label>Hipay status to validate order</label>
|
| 1808 |
+
<frontend_type>select</frontend_type>
|
| 1809 |
+
<source_model>hipay/source_order_hipayStatusValidate</source_model>
|
| 1810 |
+
<sort_order>26</sort_order>
|
| 1811 |
+
<show_in_default>1</show_in_default>
|
| 1812 |
+
<show_in_website>1</show_in_website>
|
| 1813 |
+
<show_in_store>0</show_in_store>
|
| 1814 |
+
</hipay_status_validate_order>
|
| 1815 |
+
<pending_redirect_page translate="label">
|
| 1816 |
+
<label>Redirect page pending status</label>
|
| 1817 |
+
<comment>Page to redirect when transaction is in pending status</comment>
|
| 1818 |
+
<frontend_type>select</frontend_type>
|
| 1819 |
+
<source_model>hipay/source_pendingredirect</source_model>
|
| 1820 |
+
<sort_order>27</sort_order>
|
| 1821 |
+
<show_in_default>1</show_in_default>
|
| 1822 |
+
<show_in_website>1</show_in_website>
|
| 1823 |
+
<show_in_store>0</show_in_store>
|
| 1824 |
+
</pending_redirect_page>
|
| 1825 |
+
<css_url translate="label coment">
|
| 1826 |
+
<label>Css Url</label>
|
| 1827 |
+
<comment>Important, HTTPS protocol is required</comment>
|
| 1828 |
+
<frontend_type>text</frontend_type>
|
| 1829 |
+
<sort_order>30</sort_order>
|
| 1830 |
+
<show_in_default>1</show_in_default>
|
| 1831 |
+
<show_in_website>1</show_in_website>
|
| 1832 |
+
<show_in_store>1</show_in_store>
|
| 1833 |
+
</css_url>
|
| 1834 |
+
<template translate="label">
|
| 1835 |
+
<label>Page payment template</label>
|
| 1836 |
+
<frontend_type>select</frontend_type>
|
| 1837 |
+
<source_model>hipay/source_template</source_model>
|
| 1838 |
+
<sort_order>35</sort_order>
|
| 1839 |
+
<show_in_default>1</show_in_default>
|
| 1840 |
+
<show_in_website>1</show_in_website>
|
| 1841 |
+
<show_in_store>0</show_in_store>
|
| 1842 |
+
</template>
|
| 1843 |
+
<re_add_to_cart translate="label comment">
|
| 1844 |
+
<label>Add product to cart</label>
|
| 1845 |
+
<comment>Fill cart when payment canceled or refused</comment>
|
| 1846 |
+
<frontend_type>select</frontend_type>
|
| 1847 |
+
<source_model>adminhtml/system_config_source_yesno</source_model>
|
| 1848 |
+
<sort_order>95</sort_order>
|
| 1849 |
+
<show_in_default>1</show_in_default>
|
| 1850 |
+
<show_in_website>1</show_in_website>
|
| 1851 |
+
<show_in_store>0</show_in_store>
|
| 1852 |
+
</re_add_to_cart>
|
| 1853 |
+
<cancel_pending_order translate="label comment">
|
| 1854 |
+
<label>Cancel pending order</label>
|
| 1855 |
+
<comment>Cancel orders stayed in pending because customer not validated payment</comment>
|
| 1856 |
+
<frontend_type>select</frontend_type>
|
| 1857 |
+
<source_model>adminhtml/system_config_source_yesno</source_model>
|
| 1858 |
+
<sort_order>97</sort_order>
|
| 1859 |
+
<show_in_default>1</show_in_default>
|
| 1860 |
+
<show_in_website>1</show_in_website>
|
| 1861 |
+
<show_in_store>0</show_in_store>
|
| 1862 |
+
</cancel_pending_order>
|
| 1863 |
+
<allowspecific translate="label">
|
| 1864 |
+
<label>Payment from applicable countries</label>
|
| 1865 |
+
<frontend_type>allowspecific</frontend_type>
|
| 1866 |
+
<sort_order>100</sort_order>
|
| 1867 |
+
<source_model>adminhtml/system_config_source_payment_allspecificcountries</source_model>
|
| 1868 |
+
<show_in_default>1</show_in_default>
|
| 1869 |
+
<show_in_website>1</show_in_website>
|
| 1870 |
+
<show_in_store>1</show_in_store>
|
| 1871 |
+
</allowspecific>
|
| 1872 |
+
<specificcountry translate="label">
|
| 1873 |
+
<label>Payment from Specific countries</label>
|
| 1874 |
+
<frontend_type>multiselect</frontend_type>
|
| 1875 |
+
<sort_order>110</sort_order>
|
| 1876 |
+
<source_model>adminhtml/system_config_source_country</source_model>
|
| 1877 |
+
<show_in_default>1</show_in_default>
|
| 1878 |
+
<show_in_website>1</show_in_website>
|
| 1879 |
+
<show_in_store>1</show_in_store>
|
| 1880 |
+
</specificcountry>
|
| 1881 |
+
<min_order_total translate="label">
|
| 1882 |
+
<label>Minimum Order Total</label>
|
| 1883 |
+
<frontend_type>text</frontend_type>
|
| 1884 |
+
<sort_order>120</sort_order>
|
| 1885 |
+
<show_in_default>1</show_in_default>
|
| 1886 |
+
<show_in_website>1</show_in_website>
|
| 1887 |
+
<show_in_store>1</show_in_store>
|
| 1888 |
+
</min_order_total>
|
| 1889 |
+
<max_order_total translate="label">
|
| 1890 |
+
<label>Maximum Order Total</label>
|
| 1891 |
+
<frontend_type>text</frontend_type>
|
| 1892 |
+
<sort_order>121</sort_order>
|
| 1893 |
+
<show_in_default>1</show_in_default>
|
| 1894 |
+
<show_in_website>1</show_in_website>
|
| 1895 |
+
<show_in_store>1</show_in_store>
|
| 1896 |
+
</max_order_total>
|
| 1897 |
+
<sort_order translate="label">
|
| 1898 |
+
<label>Sort Order</label>
|
| 1899 |
+
<frontend_type>text</frontend_type>
|
| 1900 |
+
<sort_order>130</sort_order>
|
| 1901 |
+
<show_in_default>1</show_in_default>
|
| 1902 |
+
<show_in_website>1</show_in_website>
|
| 1903 |
+
<show_in_store>1</show_in_store>
|
| 1904 |
+
</sort_order>
|
| 1905 |
+
<debug translate="label">
|
| 1906 |
+
<label>Enable debug log</label>
|
| 1907 |
+
<comment></comment>
|
| 1908 |
+
<frontend_type>select</frontend_type>
|
| 1909 |
+
<source_model>adminhtml/system_config_source_yesno</source_model>
|
| 1910 |
+
<sort_order>150</sort_order>
|
| 1911 |
+
<show_in_default>1</show_in_default>
|
| 1912 |
+
<show_in_website>1</show_in_website>
|
| 1913 |
+
<show_in_store>0</show_in_store>
|
| 1914 |
+
</debug>
|
| 1915 |
+
<is_test_mode translate="label comment">
|
| 1916 |
+
<label>Enable test mode</label>
|
| 1917 |
+
<comment></comment>
|
| 1918 |
+
<frontend_type>select</frontend_type>
|
| 1919 |
+
<source_model>adminhtml/system_config_source_yesno</source_model>
|
| 1920 |
+
<sort_order>200</sort_order>
|
| 1921 |
+
<show_in_default>1</show_in_default>
|
| 1922 |
+
<show_in_website>1</show_in_website>
|
| 1923 |
+
<show_in_store>1</show_in_store>
|
| 1924 |
+
</is_test_mode>
|
| 1925 |
+
</fields>
|
| 1926 |
+
</hipay_qiwi>
|
| 1927 |
+
<hipay_webmoneyapi translate="label" module="hipay">
|
| 1928 |
+
<label>HiPay Fullservice WebMoney Transfer</label>
|
| 1929 |
+
<frontend_type>text</frontend_type>
|
| 1930 |
+
<sort_order>220</sort_order>
|
| 1931 |
+
<show_in_default>1</show_in_default>
|
| 1932 |
+
<show_in_website>1</show_in_website>
|
| 1933 |
+
<show_in_store>1</show_in_store>
|
| 1934 |
+
<fields>
|
| 1935 |
+
<active translate="label">
|
| 1936 |
+
<label>Enabled</label>
|
| 1937 |
+
<frontend_type>select</frontend_type>
|
| 1938 |
+
<source_model>adminhtml/system_config_source_yesno</source_model>
|
| 1939 |
+
<sort_order>10</sort_order>
|
| 1940 |
+
<show_in_default>1</show_in_default>
|
| 1941 |
+
<show_in_website>1</show_in_website>
|
| 1942 |
+
<show_in_store>1</show_in_store>
|
| 1943 |
+
</active>
|
| 1944 |
+
<title translate="label">
|
| 1945 |
+
<label>Title</label>
|
| 1946 |
+
<frontend_type>text</frontend_type>
|
| 1947 |
+
<sort_order>20</sort_order>
|
| 1948 |
+
<show_in_default>1</show_in_default>
|
| 1949 |
+
<show_in_website>1</show_in_website>
|
| 1950 |
+
<show_in_store>1</show_in_store>
|
| 1951 |
+
</title>
|
| 1952 |
+
<order_status_payment_accepted translate="label">
|
| 1953 |
+
<label>Order status when payment accepted</label>
|
| 1954 |
+
<frontend_type>select</frontend_type>
|
| 1955 |
+
<source_model>hipay/source_order_status_accepted</source_model>
|
| 1956 |
+
<sort_order>23</sort_order>
|
| 1957 |
+
<show_in_default>1</show_in_default>
|
| 1958 |
+
<show_in_website>1</show_in_website>
|
| 1959 |
+
<show_in_store>0</show_in_store>
|
| 1960 |
+
</order_status_payment_accepted>
|
| 1961 |
+
<order_status_payment_refused translate="label">
|
| 1962 |
+
<label>Order status when payment refused</label>
|
| 1963 |
+
<frontend_type>select</frontend_type>
|
| 1964 |
+
<source_model>hipay/source_order_status_refused</source_model>
|
| 1965 |
+
<sort_order>24</sort_order>
|
| 1966 |
+
<show_in_default>1</show_in_default>
|
| 1967 |
+
<show_in_website>1</show_in_website>
|
| 1968 |
+
<show_in_store>0</show_in_store>
|
| 1969 |
+
</order_status_payment_refused>
|
| 1970 |
+
<order_status_payment_canceled translate="label">
|
| 1971 |
+
<label>Order status when payment canceled by customer</label>
|
| 1972 |
+
<frontend_type>select</frontend_type>
|
| 1973 |
+
<source_model>hipay/source_order_status_canceled</source_model>
|
| 1974 |
+
<sort_order>25</sort_order>
|
| 1975 |
+
<show_in_default>1</show_in_default>
|
| 1976 |
+
<show_in_website>1</show_in_website>
|
| 1977 |
+
<show_in_store>0</show_in_store>
|
| 1978 |
+
</order_status_payment_canceled>
|
| 1979 |
+
<hipay_status_validate_order translate="label">
|
| 1980 |
+
<label>Hipay status to validate order</label>
|
| 1981 |
+
<frontend_type>select</frontend_type>
|
| 1982 |
+
<source_model>hipay/source_order_hipayStatusValidate</source_model>
|
| 1983 |
+
<sort_order>26</sort_order>
|
| 1984 |
+
<show_in_default>1</show_in_default>
|
| 1985 |
+
<show_in_website>1</show_in_website>
|
| 1986 |
+
<show_in_store>0</show_in_store>
|
| 1987 |
+
</hipay_status_validate_order>
|
| 1988 |
+
<pending_redirect_page translate="label">
|
| 1989 |
+
<label>Redirect page pending status</label>
|
| 1990 |
+
<comment>Page to redirect when transaction is in pending status</comment>
|
| 1991 |
+
<frontend_type>select</frontend_type>
|
| 1992 |
+
<source_model>hipay/source_pendingredirect</source_model>
|
| 1993 |
+
<sort_order>27</sort_order>
|
| 1994 |
+
<show_in_default>1</show_in_default>
|
| 1995 |
+
<show_in_website>1</show_in_website>
|
| 1996 |
+
<show_in_store>0</show_in_store>
|
| 1997 |
+
</pending_redirect_page>
|
| 1998 |
+
<css_url translate="label coment">
|
| 1999 |
+
<label>Css Url</label>
|
| 2000 |
+
<comment>Important, HTTPS protocol is required</comment>
|
| 2001 |
+
<frontend_type>text</frontend_type>
|
| 2002 |
+
<sort_order>30</sort_order>
|
| 2003 |
+
<show_in_default>1</show_in_default>
|
| 2004 |
+
<show_in_website>1</show_in_website>
|
| 2005 |
+
<show_in_store>1</show_in_store>
|
| 2006 |
+
</css_url>
|
| 2007 |
+
<template translate="label">
|
| 2008 |
+
<label>Page payment template</label>
|
| 2009 |
+
<frontend_type>select</frontend_type>
|
| 2010 |
+
<source_model>hipay/source_template</source_model>
|
| 2011 |
+
<sort_order>35</sort_order>
|
| 2012 |
+
<show_in_default>1</show_in_default>
|
| 2013 |
+
<show_in_website>1</show_in_website>
|
| 2014 |
+
<show_in_store>0</show_in_store>
|
| 2015 |
+
</template>
|
| 2016 |
+
<re_add_to_cart translate="label comment">
|
| 2017 |
+
<label>Add product to cart</label>
|
| 2018 |
+
<comment>Fill cart when payment canceled or refused</comment>
|
| 2019 |
+
<frontend_type>select</frontend_type>
|
| 2020 |
+
<source_model>adminhtml/system_config_source_yesno</source_model>
|
| 2021 |
+
<sort_order>95</sort_order>
|
| 2022 |
+
<show_in_default>1</show_in_default>
|
| 2023 |
+
<show_in_website>1</show_in_website>
|
| 2024 |
+
<show_in_store>0</show_in_store>
|
| 2025 |
+
</re_add_to_cart>
|
| 2026 |
+
<cancel_pending_order translate="label comment">
|
| 2027 |
+
<label>Cancel pending order</label>
|
| 2028 |
+
<comment>Cancel orders stayed in pending because customer not validated payment</comment>
|
| 2029 |
+
<frontend_type>select</frontend_type>
|
| 2030 |
+
<source_model>adminhtml/system_config_source_yesno</source_model>
|
| 2031 |
+
<sort_order>97</sort_order>
|
| 2032 |
+
<show_in_default>1</show_in_default>
|
| 2033 |
+
<show_in_website>1</show_in_website>
|
| 2034 |
+
<show_in_store>0</show_in_store>
|
| 2035 |
+
</cancel_pending_order>
|
| 2036 |
+
<allowspecific translate="label">
|
| 2037 |
+
<label>Payment from applicable countries</label>
|
| 2038 |
+
<frontend_type>allowspecific</frontend_type>
|
| 2039 |
+
<sort_order>100</sort_order>
|
| 2040 |
+
<source_model>adminhtml/system_config_source_payment_allspecificcountries</source_model>
|
| 2041 |
+
<show_in_default>1</show_in_default>
|
| 2042 |
+
<show_in_website>1</show_in_website>
|
| 2043 |
+
<show_in_store>1</show_in_store>
|
| 2044 |
+
</allowspecific>
|
| 2045 |
+
<specificcountry translate="label">
|
| 2046 |
+
<label>Payment from Specific countries</label>
|
| 2047 |
+
<frontend_type>multiselect</frontend_type>
|
| 2048 |
+
<sort_order>110</sort_order>
|
| 2049 |
+
<source_model>adminhtml/system_config_source_country</source_model>
|
| 2050 |
+
<show_in_default>1</show_in_default>
|
| 2051 |
+
<show_in_website>1</show_in_website>
|
| 2052 |
+
<show_in_store>1</show_in_store>
|
| 2053 |
+
</specificcountry>
|
| 2054 |
+
<min_order_total translate="label">
|
| 2055 |
+
<label>Minimum Order Total</label>
|
| 2056 |
+
<frontend_type>text</frontend_type>
|
| 2057 |
+
<sort_order>120</sort_order>
|
| 2058 |
+
<show_in_default>1</show_in_default>
|
| 2059 |
+
<show_in_website>1</show_in_website>
|
| 2060 |
+
<show_in_store>1</show_in_store>
|
| 2061 |
+
</min_order_total>
|
| 2062 |
+
<max_order_total translate="label">
|
| 2063 |
+
<label>Maximum Order Total</label>
|
| 2064 |
+
<frontend_type>text</frontend_type>
|
| 2065 |
+
<sort_order>121</sort_order>
|
| 2066 |
+
<show_in_default>1</show_in_default>
|
| 2067 |
+
<show_in_website>1</show_in_website>
|
| 2068 |
+
<show_in_store>1</show_in_store>
|
| 2069 |
+
</max_order_total>
|
| 2070 |
+
<sort_order translate="label">
|
| 2071 |
+
<label>Sort Order</label>
|
| 2072 |
+
<frontend_type>text</frontend_type>
|
| 2073 |
+
<sort_order>130</sort_order>
|
| 2074 |
+
<show_in_default>1</show_in_default>
|
| 2075 |
+
<show_in_website>1</show_in_website>
|
| 2076 |
+
<show_in_store>1</show_in_store>
|
| 2077 |
+
</sort_order>
|
| 2078 |
+
<debug translate="label">
|
| 2079 |
+
<label>Enable debug log</label>
|
| 2080 |
+
<comment></comment>
|
| 2081 |
+
<frontend_type>select</frontend_type>
|
| 2082 |
+
<source_model>adminhtml/system_config_source_yesno</source_model>
|
| 2083 |
+
<sort_order>150</sort_order>
|
| 2084 |
+
<show_in_default>1</show_in_default>
|
| 2085 |
+
<show_in_website>1</show_in_website>
|
| 2086 |
+
<show_in_store>0</show_in_store>
|
| 2087 |
+
</debug>
|
| 2088 |
+
<is_test_mode translate="label comment">
|
| 2089 |
+
<label>Enable test mode</label>
|
| 2090 |
+
<comment></comment>
|
| 2091 |
+
<frontend_type>select</frontend_type>
|
| 2092 |
+
<source_model>adminhtml/system_config_source_yesno</source_model>
|
| 2093 |
+
<sort_order>200</sort_order>
|
| 2094 |
+
<show_in_default>1</show_in_default>
|
| 2095 |
+
<show_in_website>1</show_in_website>
|
| 2096 |
+
<show_in_store>1</show_in_store>
|
| 2097 |
+
</is_test_mode>
|
| 2098 |
+
</fields>
|
| 2099 |
+
</hipay_webmoneyapi>
|
| 2100 |
+
<hipay_yandexapi translate="label" module="hipay">
|
| 2101 |
+
<label>HiPay Fullservice Yandex.Money</label>
|
| 2102 |
+
<frontend_type>text</frontend_type>
|
| 2103 |
+
<sort_order>220</sort_order>
|
| 2104 |
+
<show_in_default>1</show_in_default>
|
| 2105 |
+
<show_in_website>1</show_in_website>
|
| 2106 |
+
<show_in_store>1</show_in_store>
|
| 2107 |
+
<fields>
|
| 2108 |
+
<active translate="label">
|
| 2109 |
+
<label>Enabled</label>
|
| 2110 |
+
<frontend_type>select</frontend_type>
|
| 2111 |
+
<source_model>adminhtml/system_config_source_yesno</source_model>
|
| 2112 |
+
<sort_order>10</sort_order>
|
| 2113 |
+
<show_in_default>1</show_in_default>
|
| 2114 |
+
<show_in_website>1</show_in_website>
|
| 2115 |
+
<show_in_store>1</show_in_store>
|
| 2116 |
+
</active>
|
| 2117 |
+
<title translate="label">
|
| 2118 |
+
<label>Title</label>
|
| 2119 |
+
<frontend_type>text</frontend_type>
|
| 2120 |
+
<sort_order>20</sort_order>
|
| 2121 |
+
<show_in_default>1</show_in_default>
|
| 2122 |
+
<show_in_website>1</show_in_website>
|
| 2123 |
+
<show_in_store>1</show_in_store>
|
| 2124 |
+
</title>
|
| 2125 |
+
<order_status_payment_accepted translate="label">
|
| 2126 |
+
<label>Order status when payment accepted</label>
|
| 2127 |
+
<frontend_type>select</frontend_type>
|
| 2128 |
+
<source_model>hipay/source_order_status_accepted</source_model>
|
| 2129 |
+
<sort_order>23</sort_order>
|
| 2130 |
+
<show_in_default>1</show_in_default>
|
| 2131 |
+
<show_in_website>1</show_in_website>
|
| 2132 |
+
<show_in_store>0</show_in_store>
|
| 2133 |
+
</order_status_payment_accepted>
|
| 2134 |
+
<order_status_payment_refused translate="label">
|
| 2135 |
+
<label>Order status when payment refused</label>
|
| 2136 |
+
<frontend_type>select</frontend_type>
|
| 2137 |
+
<source_model>hipay/source_order_status_refused</source_model>
|
| 2138 |
+
<sort_order>24</sort_order>
|
| 2139 |
+
<show_in_default>1</show_in_default>
|
| 2140 |
+
<show_in_website>1</show_in_website>
|
| 2141 |
+
<show_in_store>0</show_in_store>
|
| 2142 |
+
</order_status_payment_refused>
|
| 2143 |
+
<order_status_payment_canceled translate="label">
|
| 2144 |
+
<label>Order status when payment canceled by customer</label>
|
| 2145 |
+
<frontend_type>select</frontend_type>
|
| 2146 |
+
<source_model>hipay/source_order_status_canceled</source_model>
|
| 2147 |
+
<sort_order>25</sort_order>
|
| 2148 |
+
<show_in_default>1</show_in_default>
|
| 2149 |
+
<show_in_website>1</show_in_website>
|
| 2150 |
+
<show_in_store>0</show_in_store>
|
| 2151 |
+
</order_status_payment_canceled>
|
| 2152 |
+
<hipay_status_validate_order translate="label">
|
| 2153 |
+
<label>Hipay status to validate order</label>
|
| 2154 |
+
<frontend_type>select</frontend_type>
|
| 2155 |
+
<source_model>hipay/source_order_hipayStatusValidate</source_model>
|
| 2156 |
+
<sort_order>26</sort_order>
|
| 2157 |
+
<show_in_default>1</show_in_default>
|
| 2158 |
+
<show_in_website>1</show_in_website>
|
| 2159 |
+
<show_in_store>0</show_in_store>
|
| 2160 |
+
</hipay_status_validate_order>
|
| 2161 |
+
<pending_redirect_page translate="label">
|
| 2162 |
+
<label>Redirect page pending status</label>
|
| 2163 |
+
<comment>Page to redirect when transaction is in pending status</comment>
|
| 2164 |
+
<frontend_type>select</frontend_type>
|
| 2165 |
+
<source_model>hipay/source_pendingredirect</source_model>
|
| 2166 |
+
<sort_order>27</sort_order>
|
| 2167 |
+
<show_in_default>1</show_in_default>
|
| 2168 |
+
<show_in_website>1</show_in_website>
|
| 2169 |
+
<show_in_store>0</show_in_store>
|
| 2170 |
+
</pending_redirect_page>
|
| 2171 |
+
<css_url translate="label coment">
|
| 2172 |
+
<label>Css Url</label>
|
| 2173 |
+
<comment>Important, HTTPS protocol is required</comment>
|
| 2174 |
+
<frontend_type>text</frontend_type>
|
| 2175 |
+
<sort_order>30</sort_order>
|
| 2176 |
+
<show_in_default>1</show_in_default>
|
| 2177 |
+
<show_in_website>1</show_in_website>
|
| 2178 |
+
<show_in_store>1</show_in_store>
|
| 2179 |
+
</css_url>
|
| 2180 |
+
<template translate="label">
|
| 2181 |
+
<label>Page payment template</label>
|
| 2182 |
+
<frontend_type>select</frontend_type>
|
| 2183 |
+
<source_model>hipay/source_template</source_model>
|
| 2184 |
+
<sort_order>35</sort_order>
|
| 2185 |
+
<show_in_default>1</show_in_default>
|
| 2186 |
+
<show_in_website>1</show_in_website>
|
| 2187 |
+
<show_in_store>0</show_in_store>
|
| 2188 |
+
</template>
|
| 2189 |
+
<re_add_to_cart translate="label comment">
|
| 2190 |
+
<label>Add product to cart</label>
|
| 2191 |
+
<comment>Fill cart when payment canceled or refused</comment>
|
| 2192 |
+
<frontend_type>select</frontend_type>
|
| 2193 |
+
<source_model>adminhtml/system_config_source_yesno</source_model>
|
| 2194 |
+
<sort_order>95</sort_order>
|
| 2195 |
+
<show_in_default>1</show_in_default>
|
| 2196 |
+
<show_in_website>1</show_in_website>
|
| 2197 |
+
<show_in_store>0</show_in_store>
|
| 2198 |
+
</re_add_to_cart>
|
| 2199 |
+
<cancel_pending_order translate="label comment">
|
| 2200 |
+
<label>Cancel pending order</label>
|
| 2201 |
+
<comment>Cancel orders stayed in pending because customer not validated payment</comment>
|
| 2202 |
+
<frontend_type>select</frontend_type>
|
| 2203 |
+
<source_model>adminhtml/system_config_source_yesno</source_model>
|
| 2204 |
+
<sort_order>97</sort_order>
|
| 2205 |
+
<show_in_default>1</show_in_default>
|
| 2206 |
+
<show_in_website>1</show_in_website>
|
| 2207 |
+
<show_in_store>0</show_in_store>
|
| 2208 |
+
</cancel_pending_order>
|
| 2209 |
+
<allowspecific translate="label">
|
| 2210 |
+
<label>Payment from applicable countries</label>
|
| 2211 |
+
<frontend_type>allowspecific</frontend_type>
|
| 2212 |
+
<sort_order>100</sort_order>
|
| 2213 |
+
<source_model>adminhtml/system_config_source_payment_allspecificcountries</source_model>
|
| 2214 |
+
<show_in_default>1</show_in_default>
|
| 2215 |
+
<show_in_website>1</show_in_website>
|
| 2216 |
+
<show_in_store>1</show_in_store>
|
| 2217 |
+
</allowspecific>
|
| 2218 |
+
<specificcountry translate="label">
|
| 2219 |
+
<label>Payment from Specific countries</label>
|
| 2220 |
+
<frontend_type>multiselect</frontend_type>
|
| 2221 |
+
<sort_order>110</sort_order>
|
| 2222 |
+
<source_model>adminhtml/system_config_source_country</source_model>
|
| 2223 |
+
<show_in_default>1</show_in_default>
|
| 2224 |
+
<show_in_website>1</show_in_website>
|
| 2225 |
+
<show_in_store>1</show_in_store>
|
| 2226 |
+
</specificcountry>
|
| 2227 |
+
<min_order_total translate="label">
|
| 2228 |
+
<label>Minimum Order Total</label>
|
| 2229 |
+
<frontend_type>text</frontend_type>
|
| 2230 |
+
<sort_order>120</sort_order>
|
| 2231 |
+
<show_in_default>1</show_in_default>
|
| 2232 |
+
<show_in_website>1</show_in_website>
|
| 2233 |
+
<show_in_store>1</show_in_store>
|
| 2234 |
+
</min_order_total>
|
| 2235 |
+
<max_order_total translate="label">
|
| 2236 |
+
<label>Maximum Order Total</label>
|
| 2237 |
+
<frontend_type>text</frontend_type>
|
| 2238 |
+
<sort_order>121</sort_order>
|
| 2239 |
+
<show_in_default>1</show_in_default>
|
| 2240 |
+
<show_in_website>1</show_in_website>
|
| 2241 |
+
<show_in_store>1</show_in_store>
|
| 2242 |
+
</max_order_total>
|
| 2243 |
+
<sort_order translate="label">
|
| 2244 |
+
<label>Sort Order</label>
|
| 2245 |
+
<frontend_type>text</frontend_type>
|
| 2246 |
+
<sort_order>130</sort_order>
|
| 2247 |
+
<show_in_default>1</show_in_default>
|
| 2248 |
+
<show_in_website>1</show_in_website>
|
| 2249 |
+
<show_in_store>1</show_in_store>
|
| 2250 |
+
</sort_order>
|
| 2251 |
+
<debug translate="label">
|
| 2252 |
+
<label>Enable debug log</label>
|
| 2253 |
+
<comment></comment>
|
| 2254 |
+
<frontend_type>select</frontend_type>
|
| 2255 |
+
<source_model>adminhtml/system_config_source_yesno</source_model>
|
| 2256 |
+
<sort_order>150</sort_order>
|
| 2257 |
+
<show_in_default>1</show_in_default>
|
| 2258 |
+
<show_in_website>1</show_in_website>
|
| 2259 |
+
<show_in_store>0</show_in_store>
|
| 2260 |
+
</debug>
|
| 2261 |
+
<is_test_mode translate="label comment">
|
| 2262 |
+
<label>Enable test mode</label>
|
| 2263 |
+
<comment></comment>
|
| 2264 |
+
<frontend_type>select</frontend_type>
|
| 2265 |
+
<source_model>adminhtml/system_config_source_yesno</source_model>
|
| 2266 |
+
<sort_order>200</sort_order>
|
| 2267 |
+
<show_in_default>1</show_in_default>
|
| 2268 |
+
<show_in_website>1</show_in_website>
|
| 2269 |
+
<show_in_store>1</show_in_store>
|
| 2270 |
+
</is_test_mode>
|
| 2271 |
+
</fields>
|
| 2272 |
+
</hipay_yandexapi>
|
| 2273 |
+
<hipay_sofortapi translate="label" module="hipay">
|
| 2274 |
+
<label>HiPay Fullservice Sofort Überweisung</label>
|
| 2275 |
+
<frontend_type>text</frontend_type>
|
| 2276 |
+
<sort_order>225</sort_order>
|
| 2277 |
+
<show_in_default>1</show_in_default>
|
| 2278 |
+
<show_in_website>1</show_in_website>
|
| 2279 |
+
<show_in_store>1</show_in_store>
|
| 2280 |
+
<fields>
|
| 2281 |
+
<active translate="label">
|
| 2282 |
+
<label>Enabled</label>
|
| 2283 |
+
<frontend_type>select</frontend_type>
|
| 2284 |
+
<source_model>adminhtml/system_config_source_yesno</source_model>
|
| 2285 |
+
<sort_order>10</sort_order>
|
| 2286 |
+
<show_in_default>1</show_in_default>
|
| 2287 |
+
<show_in_website>1</show_in_website>
|
| 2288 |
+
<show_in_store>1</show_in_store>
|
| 2289 |
+
</active>
|
| 2290 |
+
<title translate="label">
|
| 2291 |
+
<label>Title</label>
|
| 2292 |
+
<frontend_type>text</frontend_type>
|
| 2293 |
+
<sort_order>20</sort_order>
|
| 2294 |
+
<show_in_default>1</show_in_default>
|
| 2295 |
+
<show_in_website>1</show_in_website>
|
| 2296 |
+
<show_in_store>1</show_in_store>
|
| 2297 |
+
</title>
|
| 2298 |
+
<order_status_payment_accepted translate="label">
|
| 2299 |
+
<label>Order status when payment accepted</label>
|
| 2300 |
+
<frontend_type>select</frontend_type>
|
| 2301 |
+
<source_model>hipay/source_order_status_accepted</source_model>
|
| 2302 |
+
<sort_order>23</sort_order>
|
| 2303 |
+
<show_in_default>1</show_in_default>
|
| 2304 |
+
<show_in_website>1</show_in_website>
|
| 2305 |
+
<show_in_store>0</show_in_store>
|
| 2306 |
+
</order_status_payment_accepted>
|
| 2307 |
+
<order_status_payment_refused translate="label">
|
| 2308 |
+
<label>Order status when payment refused</label>
|
| 2309 |
+
<frontend_type>select</frontend_type>
|
| 2310 |
+
<source_model>hipay/source_order_status_refused</source_model>
|
| 2311 |
+
<sort_order>24</sort_order>
|
| 2312 |
+
<show_in_default>1</show_in_default>
|
| 2313 |
+
<show_in_website>1</show_in_website>
|
| 2314 |
+
<show_in_store>0</show_in_store>
|
| 2315 |
+
</order_status_payment_refused>
|
| 2316 |
+
<order_status_payment_canceled translate="label">
|
| 2317 |
+
<label>Order status when payment canceled by customer</label>
|
| 2318 |
+
<frontend_type>select</frontend_type>
|
| 2319 |
+
<source_model>hipay/source_order_status_canceled</source_model>
|
| 2320 |
+
<sort_order>25</sort_order>
|
| 2321 |
+
<show_in_default>1</show_in_default>
|
| 2322 |
+
<show_in_website>1</show_in_website>
|
| 2323 |
+
<show_in_store>0</show_in_store>
|
| 2324 |
+
</order_status_payment_canceled>
|
| 2325 |
+
<hipay_status_validate_order translate="label">
|
| 2326 |
+
<label>Hipay status to validate order</label>
|
| 2327 |
+
<frontend_type>select</frontend_type>
|
| 2328 |
+
<source_model>hipay/source_order_hipayStatusValidate</source_model>
|
| 2329 |
+
<sort_order>26</sort_order>
|
| 2330 |
+
<show_in_default>1</show_in_default>
|
| 2331 |
+
<show_in_website>1</show_in_website>
|
| 2332 |
+
<show_in_store>0</show_in_store>
|
| 2333 |
+
</hipay_status_validate_order>
|
| 2334 |
+
<pending_redirect_page translate="label">
|
| 2335 |
+
<label>Redirect page pending status</label>
|
| 2336 |
+
<comment>Page to redirect when transaction is in pending status</comment>
|
| 2337 |
+
<frontend_type>select</frontend_type>
|
| 2338 |
+
<source_model>hipay/source_pendingredirect</source_model>
|
| 2339 |
+
<sort_order>27</sort_order>
|
| 2340 |
+
<show_in_default>1</show_in_default>
|
| 2341 |
+
<show_in_website>1</show_in_website>
|
| 2342 |
+
<show_in_store>0</show_in_store>
|
| 2343 |
+
</pending_redirect_page>
|
| 2344 |
+
<re_add_to_cart translate="label comment">
|
| 2345 |
+
<label>Add product to cart</label>
|
| 2346 |
+
<comment>Fill cart when payment canceled or refused</comment>
|
| 2347 |
+
<frontend_type>select</frontend_type>
|
| 2348 |
+
<source_model>adminhtml/system_config_source_yesno</source_model>
|
| 2349 |
+
<sort_order>95</sort_order>
|
| 2350 |
+
<show_in_default>1</show_in_default>
|
| 2351 |
+
<show_in_website>1</show_in_website>
|
| 2352 |
+
<show_in_store>0</show_in_store>
|
| 2353 |
+
</re_add_to_cart>
|
| 2354 |
+
<cancel_pending_order translate="label comment">
|
| 2355 |
+
<label>Cancel pending order</label>
|
| 2356 |
+
<comment>Cancel orders stayed in pending because customer not validated payment</comment>
|
| 2357 |
+
<frontend_type>select</frontend_type>
|
| 2358 |
+
<source_model>adminhtml/system_config_source_yesno</source_model>
|
| 2359 |
+
<sort_order>97</sort_order>
|
| 2360 |
+
<show_in_default>1</show_in_default>
|
| 2361 |
+
<show_in_website>1</show_in_website>
|
| 2362 |
+
<show_in_store>0</show_in_store>
|
| 2363 |
+
</cancel_pending_order>
|
| 2364 |
+
<allowspecific translate="label">
|
| 2365 |
+
<label>Payment from applicable countries</label>
|
| 2366 |
+
<frontend_type>allowspecific</frontend_type>
|
| 2367 |
+
<sort_order>100</sort_order>
|
| 2368 |
+
<source_model>adminhtml/system_config_source_payment_allspecificcountries</source_model>
|
| 2369 |
+
<show_in_default>1</show_in_default>
|
| 2370 |
+
<show_in_website>1</show_in_website>
|
| 2371 |
+
<show_in_store>1</show_in_store>
|
| 2372 |
+
</allowspecific>
|
| 2373 |
+
<specificcountry translate="label">
|
| 2374 |
+
<label>Payment from Specific countries</label>
|
| 2375 |
+
<frontend_type>multiselect</frontend_type>
|
| 2376 |
+
<sort_order>110</sort_order>
|
| 2377 |
+
<source_model>adminhtml/system_config_source_country</source_model>
|
| 2378 |
+
<show_in_default>1</show_in_default>
|
| 2379 |
+
<show_in_website>1</show_in_website>
|
| 2380 |
+
<show_in_store>1</show_in_store>
|
| 2381 |
+
</specificcountry>
|
| 2382 |
+
<min_order_total translate="label">
|
| 2383 |
+
<label>Minimum Order Total</label>
|
| 2384 |
+
<frontend_type>text</frontend_type>
|
| 2385 |
+
<sort_order>120</sort_order>
|
| 2386 |
+
<show_in_default>1</show_in_default>
|
| 2387 |
+
<show_in_website>1</show_in_website>
|
| 2388 |
+
<show_in_store>1</show_in_store>
|
| 2389 |
+
</min_order_total>
|
| 2390 |
+
<max_order_total translate="label">
|
| 2391 |
+
<label>Maximum Order Total</label>
|
| 2392 |
+
<frontend_type>text</frontend_type>
|
| 2393 |
+
<sort_order>121</sort_order>
|
| 2394 |
+
<show_in_default>1</show_in_default>
|
| 2395 |
+
<show_in_website>1</show_in_website>
|
| 2396 |
+
<show_in_store>1</show_in_store>
|
| 2397 |
+
</max_order_total>
|
| 2398 |
+
<sort_order translate="label">
|
| 2399 |
+
<label>Sort Order</label>
|
| 2400 |
+
<frontend_type>text</frontend_type>
|
| 2401 |
+
<sort_order>130</sort_order>
|
| 2402 |
+
<show_in_default>1</show_in_default>
|
| 2403 |
+
<show_in_website>1</show_in_website>
|
| 2404 |
+
<show_in_store>1</show_in_store>
|
| 2405 |
+
</sort_order>
|
| 2406 |
+
<debug translate="label">
|
| 2407 |
+
<label>Enable debug log</label>
|
| 2408 |
+
<comment></comment>
|
| 2409 |
+
<frontend_type>select</frontend_type>
|
| 2410 |
+
<source_model>adminhtml/system_config_source_yesno</source_model>
|
| 2411 |
+
<sort_order>150</sort_order>
|
| 2412 |
+
<show_in_default>1</show_in_default>
|
| 2413 |
+
<show_in_website>1</show_in_website>
|
| 2414 |
+
<show_in_store>0</show_in_store>
|
| 2415 |
+
</debug>
|
| 2416 |
+
<is_test_mode translate="label comment">
|
| 2417 |
+
<label>Enable test mode</label>
|
| 2418 |
+
<comment></comment>
|
| 2419 |
+
<frontend_type>select</frontend_type>
|
| 2420 |
+
<source_model>adminhtml/system_config_source_yesno</source_model>
|
| 2421 |
+
<sort_order>200</sort_order>
|
| 2422 |
+
<show_in_default>1</show_in_default>
|
| 2423 |
+
<show_in_website>1</show_in_website>
|
| 2424 |
+
<show_in_store>1</show_in_store>
|
| 2425 |
+
</is_test_mode>
|
| 2426 |
+
</fields>
|
| 2427 |
+
</hipay_sofortapi>
|
| 2428 |
+
<hipay_sisalapi translate="label" module="hipay">
|
| 2429 |
+
<label>HiPay Fullservice Sisal</label>
|
| 2430 |
+
<frontend_type>text</frontend_type>
|
| 2431 |
+
<sort_order>225</sort_order>
|
| 2432 |
+
<show_in_default>1</show_in_default>
|
| 2433 |
+
<show_in_website>1</show_in_website>
|
| 2434 |
+
<show_in_store>1</show_in_store>
|
| 2435 |
+
<fields>
|
| 2436 |
+
<active translate="label">
|
| 2437 |
+
<label>Enabled</label>
|
| 2438 |
+
<frontend_type>select</frontend_type>
|
| 2439 |
+
<source_model>adminhtml/system_config_source_yesno</source_model>
|
| 2440 |
+
<sort_order>10</sort_order>
|
| 2441 |
+
<show_in_default>1</show_in_default>
|
| 2442 |
+
<show_in_website>1</show_in_website>
|
| 2443 |
+
<show_in_store>1</show_in_store>
|
| 2444 |
+
</active>
|
| 2445 |
+
<title translate="label">
|
| 2446 |
+
<label>Title</label>
|
| 2447 |
+
<frontend_type>text</frontend_type>
|
| 2448 |
+
<sort_order>20</sort_order>
|
| 2449 |
+
<show_in_default>1</show_in_default>
|
| 2450 |
+
<show_in_website>1</show_in_website>
|
| 2451 |
+
<show_in_store>1</show_in_store>
|
| 2452 |
+
</title>
|
| 2453 |
+
<order_status_payment_accepted translate="label">
|
| 2454 |
+
<label>Order status when payment accepted</label>
|
| 2455 |
+
<frontend_type>select</frontend_type>
|
| 2456 |
+
<source_model>hipay/source_order_status_accepted</source_model>
|
| 2457 |
+
<sort_order>23</sort_order>
|
| 2458 |
+
<show_in_default>1</show_in_default>
|
| 2459 |
+
<show_in_website>1</show_in_website>
|
| 2460 |
+
<show_in_store>0</show_in_store>
|
| 2461 |
+
</order_status_payment_accepted>
|
| 2462 |
+
<order_status_payment_refused translate="label">
|
| 2463 |
+
<label>Order status when payment refused</label>
|
| 2464 |
+
<frontend_type>select</frontend_type>
|
| 2465 |
+
<source_model>hipay/source_order_status_refused</source_model>
|
| 2466 |
+
<sort_order>24</sort_order>
|
| 2467 |
+
<show_in_default>1</show_in_default>
|
| 2468 |
+
<show_in_website>1</show_in_website>
|
| 2469 |
+
<show_in_store>0</show_in_store>
|
| 2470 |
+
</order_status_payment_refused>
|
| 2471 |
+
<order_status_payment_canceled translate="label">
|
| 2472 |
+
<label>Order status when payment canceled by customer</label>
|
| 2473 |
+
<frontend_type>select</frontend_type>
|
| 2474 |
+
<source_model>hipay/source_order_status_canceled</source_model>
|
| 2475 |
+
<sort_order>25</sort_order>
|
| 2476 |
+
<show_in_default>1</show_in_default>
|
| 2477 |
+
<show_in_website>1</show_in_website>
|
| 2478 |
+
<show_in_store>0</show_in_store>
|
| 2479 |
+
</order_status_payment_canceled>
|
| 2480 |
+
<hipay_status_validate_order translate="label">
|
| 2481 |
+
<label>Hipay status to validate order</label>
|
| 2482 |
+
<frontend_type>select</frontend_type>
|
| 2483 |
+
<source_model>hipay/source_order_hipayStatusValidate</source_model>
|
| 2484 |
+
<sort_order>26</sort_order>
|
| 2485 |
+
<show_in_default>1</show_in_default>
|
| 2486 |
+
<show_in_website>1</show_in_website>
|
| 2487 |
+
<show_in_store>0</show_in_store>
|
| 2488 |
+
</hipay_status_validate_order>
|
| 2489 |
+
<pending_redirect_page translate="label">
|
| 2490 |
+
<label>Redirect page pending status</label>
|
| 2491 |
+
<comment>Page to redirect when transaction is in pending status</comment>
|
| 2492 |
+
<frontend_type>select</frontend_type>
|
| 2493 |
+
<source_model>hipay/source_pendingredirect</source_model>
|
| 2494 |
+
<sort_order>27</sort_order>
|
| 2495 |
+
<show_in_default>1</show_in_default>
|
| 2496 |
+
<show_in_website>1</show_in_website>
|
| 2497 |
+
<show_in_store>0</show_in_store>
|
| 2498 |
+
</pending_redirect_page>
|
| 2499 |
+
<re_add_to_cart translate="label comment">
|
| 2500 |
+
<label>Add product to cart</label>
|
| 2501 |
+
<comment>Fill cart when payment canceled or refused</comment>
|
| 2502 |
+
<frontend_type>select</frontend_type>
|
| 2503 |
+
<source_model>adminhtml/system_config_source_yesno</source_model>
|
| 2504 |
+
<sort_order>95</sort_order>
|
| 2505 |
+
<show_in_default>1</show_in_default>
|
| 2506 |
+
<show_in_website>1</show_in_website>
|
| 2507 |
+
<show_in_store>0</show_in_store>
|
| 2508 |
+
</re_add_to_cart>
|
| 2509 |
+
<cancel_pending_order translate="label comment">
|
| 2510 |
+
<label>Cancel pending order</label>
|
| 2511 |
+
<comment>Cancel orders stayed in pending because customer not validated payment</comment>
|
| 2512 |
+
<frontend_type>select</frontend_type>
|
| 2513 |
+
<source_model>adminhtml/system_config_source_yesno</source_model>
|
| 2514 |
+
<sort_order>97</sort_order>
|
| 2515 |
+
<show_in_default>1</show_in_default>
|
| 2516 |
+
<show_in_website>1</show_in_website>
|
| 2517 |
+
<show_in_store>0</show_in_store>
|
| 2518 |
+
</cancel_pending_order>
|
| 2519 |
+
<allowspecific translate="label">
|
| 2520 |
+
<label>Payment from applicable countries</label>
|
| 2521 |
+
<frontend_type>allowspecific</frontend_type>
|
| 2522 |
+
<sort_order>100</sort_order>
|
| 2523 |
+
<source_model>adminhtml/system_config_source_payment_allspecificcountries</source_model>
|
| 2524 |
+
<show_in_default>1</show_in_default>
|
| 2525 |
+
<show_in_website>1</show_in_website>
|
| 2526 |
+
<show_in_store>1</show_in_store>
|
| 2527 |
+
</allowspecific>
|
| 2528 |
+
<specificcountry translate="label">
|
| 2529 |
+
<label>Payment from Specific countries</label>
|
| 2530 |
+
<frontend_type>multiselect</frontend_type>
|
| 2531 |
+
<sort_order>110</sort_order>
|
| 2532 |
+
<source_model>adminhtml/system_config_source_country</source_model>
|
| 2533 |
+
<show_in_default>1</show_in_default>
|
| 2534 |
+
<show_in_website>1</show_in_website>
|
| 2535 |
+
<show_in_store>1</show_in_store>
|
| 2536 |
+
</specificcountry>
|
| 2537 |
+
<min_order_total translate="label">
|
| 2538 |
+
<label>Minimum Order Total</label>
|
| 2539 |
+
<frontend_type>text</frontend_type>
|
| 2540 |
+
<sort_order>120</sort_order>
|
| 2541 |
+
<show_in_default>1</show_in_default>
|
| 2542 |
+
<show_in_website>1</show_in_website>
|
| 2543 |
+
<show_in_store>1</show_in_store>
|
| 2544 |
+
</min_order_total>
|
| 2545 |
+
<max_order_total translate="label">
|
| 2546 |
+
<label>Maximum Order Total</label>
|
| 2547 |
+
<frontend_type>text</frontend_type>
|
| 2548 |
+
<sort_order>121</sort_order>
|
| 2549 |
+
<show_in_default>1</show_in_default>
|
| 2550 |
+
<show_in_website>1</show_in_website>
|
| 2551 |
+
<show_in_store>1</show_in_store>
|
| 2552 |
+
</max_order_total>
|
| 2553 |
+
<sort_order translate="label">
|
| 2554 |
+
<label>Sort Order</label>
|
| 2555 |
+
<frontend_type>text</frontend_type>
|
| 2556 |
+
<sort_order>130</sort_order>
|
| 2557 |
+
<show_in_default>1</show_in_default>
|
| 2558 |
+
<show_in_website>1</show_in_website>
|
| 2559 |
+
<show_in_store>1</show_in_store>
|
| 2560 |
+
</sort_order>
|
| 2561 |
+
<debug translate="label">
|
| 2562 |
+
<label>Enable debug log</label>
|
| 2563 |
+
<comment></comment>
|
| 2564 |
+
<frontend_type>select</frontend_type>
|
| 2565 |
+
<source_model>adminhtml/system_config_source_yesno</source_model>
|
| 2566 |
+
<sort_order>150</sort_order>
|
| 2567 |
+
<show_in_default>1</show_in_default>
|
| 2568 |
+
<show_in_website>1</show_in_website>
|
| 2569 |
+
<show_in_store>0</show_in_store>
|
| 2570 |
+
</debug>
|
| 2571 |
+
<is_test_mode translate="label comment">
|
| 2572 |
+
<label>Enable test mode</label>
|
| 2573 |
+
<comment></comment>
|
| 2574 |
+
<frontend_type>select</frontend_type>
|
| 2575 |
+
<source_model>adminhtml/system_config_source_yesno</source_model>
|
| 2576 |
+
<sort_order>200</sort_order>
|
| 2577 |
+
<show_in_default>1</show_in_default>
|
| 2578 |
+
<show_in_website>1</show_in_website>
|
| 2579 |
+
<show_in_store>1</show_in_store>
|
| 2580 |
+
</is_test_mode>
|
| 2581 |
+
</fields>
|
| 2582 |
+
</hipay_sisalapi>
|
| 2583 |
+
</groups>
|
| 2584 |
+
</payment>
|
| 2585 |
+
</sections>
|
| 2586 |
+
</config>
|
app/code/community/Allopass/Hipay/sql/allopass_hipay_setup/mysql4-install-0.1.0.php
ADDED
|
@@ -0,0 +1,45 @@
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
| 1 |
+
<?php
|
| 2 |
+
|
| 3 |
+
$installer = $this;
|
| 4 |
+
|
| 5 |
+
|
| 6 |
+
|
| 7 |
+
$installer->startSetup();
|
| 8 |
+
|
| 9 |
+
$currentVersion = Mage::getVersion();
|
| 10 |
+
if (version_compare($currentVersion, '1.4.2') == 1)
|
| 11 |
+
{
|
| 12 |
+
|
| 13 |
+
$statusTable = $installer->getTable('sales/order_status');
|
| 14 |
+
$statusStateTable = $installer->getTable('sales/order_status_state');
|
| 15 |
+
$statusLabelTable = $installer->getTable('sales/order_status_label');
|
| 16 |
+
|
| 17 |
+
$status = 'pending_capture';
|
| 18 |
+
$label = 'Pending Capture';
|
| 19 |
+
$code = "processing";
|
| 20 |
+
|
| 21 |
+
//Insert new Status in DB
|
| 22 |
+
$data[0] = array(
|
| 23 |
+
'status' => $status,
|
| 24 |
+
'label' => $label,
|
| 25 |
+
);
|
| 26 |
+
|
| 27 |
+
$installer->getConnection()->insertArray($statusTable, array('status', 'label'), $data);
|
| 28 |
+
//Insert relation between state and status
|
| 29 |
+
$data[0] = array(
|
| 30 |
+
'status' => $status,
|
| 31 |
+
'state' => $code,
|
| 32 |
+
'is_default'=> 0,
|
| 33 |
+
);
|
| 34 |
+
|
| 35 |
+
$installer->getConnection()->insertArray(
|
| 36 |
+
$statusStateTable,
|
| 37 |
+
array('status', 'state', 'is_default'),
|
| 38 |
+
$data
|
| 39 |
+
);
|
| 40 |
+
}
|
| 41 |
+
|
| 42 |
+
|
| 43 |
+
|
| 44 |
+
$installer->endSetup();
|
| 45 |
+
|
app/code/community/Allopass/Hipay/sql/allopass_hipay_setup/mysql4-upgrade-0.1.0-0.1.1.php
ADDED
|
@@ -0,0 +1,123 @@
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
| 1 |
+
<?php
|
| 2 |
+
|
| 3 |
+
$installerCustomer = new Mage_Customer_Model_Entity_Setup('allopass_hipay_setup');
|
| 4 |
+
/* @var $installerCustomer Mage_Customer_Model_Entity_Setup */
|
| 5 |
+
|
| 6 |
+
$installerCustomer->startSetup();
|
| 7 |
+
|
| 8 |
+
$entityId = $installerCustomer->getEntityTypeId('customer');
|
| 9 |
+
$attribute = $installerCustomer->getAttribute($entityId,'hipay_alias_oneclick');
|
| 10 |
+
if(!$attribute)
|
| 11 |
+
{
|
| 12 |
+
|
| 13 |
+
$installerCustomer->addAttribute('customer','hipay_alias_oneclick',array(
|
| 14 |
+
'type' => 'varchar',
|
| 15 |
+
'label' => 'Alias Oneclick Hipay',
|
| 16 |
+
'visible' => true,
|
| 17 |
+
'required' => false,
|
| 18 |
+
'unique' => false,
|
| 19 |
+
'sort_order' => 700,
|
| 20 |
+
'default' => 0,
|
| 21 |
+
'input' => 'text',
|
| 22 |
+
|
| 23 |
+
));
|
| 24 |
+
|
| 25 |
+
$usedInForms = array(
|
| 26 |
+
'adminhtml_customer',
|
| 27 |
+
);
|
| 28 |
+
|
| 29 |
+
$attribute = Mage::getSingleton('eav/config')->getAttribute('customer', 'hipay_alias_oneclick');
|
| 30 |
+
$attribute->setData('used_in_forms', $usedInForms);
|
| 31 |
+
$attribute->setData('sort_order', 700);
|
| 32 |
+
|
| 33 |
+
$attribute->save();
|
| 34 |
+
|
| 35 |
+
}
|
| 36 |
+
|
| 37 |
+
$entityId = $installerCustomer->getEntityTypeId('customer');
|
| 38 |
+
$attribute = $installerCustomer->getAttribute($entityId,'hipay_alias_recurring');
|
| 39 |
+
if(!$attribute)
|
| 40 |
+
{
|
| 41 |
+
|
| 42 |
+
$installerCustomer->addAttribute('customer','hipay_alias_recurring',array(
|
| 43 |
+
'type' => 'varchar',
|
| 44 |
+
'label' => 'Alias Recurring Hipay',
|
| 45 |
+
'visible' => true,
|
| 46 |
+
'required' => false,
|
| 47 |
+
'unique' => false,
|
| 48 |
+
'sort_order' => 710,
|
| 49 |
+
'default' => 0,
|
| 50 |
+
'input' => 'text',
|
| 51 |
+
|
| 52 |
+
));
|
| 53 |
+
|
| 54 |
+
$usedInForms = array(
|
| 55 |
+
'adminhtml_customer',
|
| 56 |
+
);
|
| 57 |
+
|
| 58 |
+
$attribute = Mage::getSingleton('eav/config')->getAttribute('customer', 'hipay_alias_recurring');
|
| 59 |
+
$attribute->setData('used_in_forms', $usedInForms);
|
| 60 |
+
$attribute->setData('sort_order', 700);
|
| 61 |
+
|
| 62 |
+
$attribute->save();
|
| 63 |
+
|
| 64 |
+
}
|
| 65 |
+
|
| 66 |
+
$attribute = $installerCustomer->getAttribute($entityId,'hipay_cc_number_enc');
|
| 67 |
+
if(!$attribute)
|
| 68 |
+
{
|
| 69 |
+
|
| 70 |
+
$installerCustomer->addAttribute('customer','hipay_cc_number_enc',array(
|
| 71 |
+
'type' => 'varchar',
|
| 72 |
+
'label' => 'Card number encrypted hipay',
|
| 73 |
+
'visible' => true,
|
| 74 |
+
'required' => false,
|
| 75 |
+
'unique' => false,
|
| 76 |
+
'sort_order' => 750,
|
| 77 |
+
'default' => 0,
|
| 78 |
+
'input' => 'text',
|
| 79 |
+
|
| 80 |
+
));
|
| 81 |
+
|
| 82 |
+
$usedInForms = array(
|
| 83 |
+
'adminhtml_customer',
|
| 84 |
+
);
|
| 85 |
+
|
| 86 |
+
$attribute = Mage::getSingleton('eav/config')->getAttribute('customer', 'hipay_cc_number_enc');
|
| 87 |
+
$attribute->setData('used_in_forms', $usedInForms);
|
| 88 |
+
$attribute->setData('sort_order', 700);
|
| 89 |
+
|
| 90 |
+
$attribute->save();
|
| 91 |
+
|
| 92 |
+
}
|
| 93 |
+
|
| 94 |
+
$attribute = $installerCustomer->getAttribute($entityId,'hipay_cc_exp_date');
|
| 95 |
+
if(!$attribute)
|
| 96 |
+
{
|
| 97 |
+
|
| 98 |
+
$installerCustomer->addAttribute('customer','hipay_cc_exp_date',array(
|
| 99 |
+
'type' => 'varchar',
|
| 100 |
+
'label' => 'Card expiration date hipay',
|
| 101 |
+
'visible' => true,
|
| 102 |
+
'required' => false,
|
| 103 |
+
'unique' => false,
|
| 104 |
+
'sort_order' => 750,
|
| 105 |
+
'default' => 0,
|
| 106 |
+
'input' => 'text',
|
| 107 |
+
|
| 108 |
+
));
|
| 109 |
+
|
| 110 |
+
$usedInForms = array(
|
| 111 |
+
'adminhtml_customer',
|
| 112 |
+
);
|
| 113 |
+
|
| 114 |
+
$attribute = Mage::getSingleton('eav/config')->getAttribute('customer', 'hipay_cc_exp_date');
|
| 115 |
+
$attribute->setData('used_in_forms', $usedInForms);
|
| 116 |
+
$attribute->setData('sort_order', 700);
|
| 117 |
+
|
| 118 |
+
$attribute->save();
|
| 119 |
+
|
| 120 |
+
}
|
| 121 |
+
|
| 122 |
+
$installerCustomer->endSetup();
|
| 123 |
+
|
app/code/community/Allopass/Hipay/sql/allopass_hipay_setup/mysql4-upgrade-0.1.1-0.1.2.php
ADDED
|
@@ -0,0 +1,38 @@
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
| 1 |
+
<?php
|
| 2 |
+
|
| 3 |
+
$installerCustomer = new Mage_Customer_Model_Entity_Setup('allopass_hipay_setup');
|
| 4 |
+
/* @var $installerCustomer Mage_Customer_Model_Entity_Setup */
|
| 5 |
+
|
| 6 |
+
$installerCustomer->startSetup();
|
| 7 |
+
|
| 8 |
+
$entityId = $installerCustomer->getEntityTypeId('customer');
|
| 9 |
+
$attribute = $installerCustomer->getAttribute($entityId,'hipay_cc_type');
|
| 10 |
+
if(!$attribute)
|
| 11 |
+
{
|
| 12 |
+
|
| 13 |
+
$installerCustomer->addAttribute('customer','hipay_cc_type',array(
|
| 14 |
+
'type' => 'varchar',
|
| 15 |
+
'label' => 'Card Type hipay',
|
| 16 |
+
'visible' => true,
|
| 17 |
+
'required' => false,
|
| 18 |
+
'unique' => false,
|
| 19 |
+
'sort_order' => 800,
|
| 20 |
+
'default' => 0,
|
| 21 |
+
'input' => 'text',
|
| 22 |
+
|
| 23 |
+
));
|
| 24 |
+
|
| 25 |
+
$usedInForms = array(
|
| 26 |
+
'adminhtml_customer',
|
| 27 |
+
);
|
| 28 |
+
|
| 29 |
+
$attribute = Mage::getSingleton('eav/config')->getAttribute('customer', 'hipay_cc_type');
|
| 30 |
+
$attribute->setData('used_in_forms', $usedInForms);
|
| 31 |
+
$attribute->setData('sort_order', 800);
|
| 32 |
+
|
| 33 |
+
$attribute->save();
|
| 34 |
+
|
| 35 |
+
}
|
| 36 |
+
|
| 37 |
+
$installerCustomer->endSetup();
|
| 38 |
+
|
app/code/community/Allopass/Hipay/sql/allopass_hipay_setup/mysql4-upgrade-0.1.2-0.1.3.php
ADDED
|
@@ -0,0 +1,72 @@
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
| 1 |
+
<?php
|
| 2 |
+
|
| 3 |
+
$installer = $this;
|
| 4 |
+
|
| 5 |
+
|
| 6 |
+
$installer->startSetup();
|
| 7 |
+
|
| 8 |
+
$currentVersion = Mage::getVersion();
|
| 9 |
+
if (version_compare($currentVersion, '1.4.2') == 1)
|
| 10 |
+
{
|
| 11 |
+
|
| 12 |
+
|
| 13 |
+
$statusTable = $installer->getTable('sales/order_status');
|
| 14 |
+
$statusStateTable = $installer->getTable('sales/order_status_state');
|
| 15 |
+
$statusLabelTable = $installer->getTable('sales/order_status_label');
|
| 16 |
+
|
| 17 |
+
$status = 'capture_requested';
|
| 18 |
+
$label = 'Capture Requested';
|
| 19 |
+
$code = "processing";
|
| 20 |
+
|
| 21 |
+
//Insert new Status in DB
|
| 22 |
+
$data[0] = array(
|
| 23 |
+
'status' => $status,
|
| 24 |
+
'label' => $label,
|
| 25 |
+
);
|
| 26 |
+
|
| 27 |
+
$installer->getConnection()->insertArray($statusTable, array('status', 'label'), $data);
|
| 28 |
+
//Insert relation between state and status
|
| 29 |
+
$data[0] = array(
|
| 30 |
+
'status' => $status,
|
| 31 |
+
'state' => $code,
|
| 32 |
+
'is_default'=> 0,
|
| 33 |
+
);
|
| 34 |
+
|
| 35 |
+
$installer->getConnection()->insertArray(
|
| 36 |
+
$statusStateTable,
|
| 37 |
+
array('status', 'state', 'is_default'),
|
| 38 |
+
$data
|
| 39 |
+
);
|
| 40 |
+
|
| 41 |
+
$status = 'refund_requested';
|
| 42 |
+
$label = 'Refund Requested';
|
| 43 |
+
$code = "processing";
|
| 44 |
+
|
| 45 |
+
//Insert new Status in DB
|
| 46 |
+
$data[0] = array(
|
| 47 |
+
'status' => $status,
|
| 48 |
+
'label' => $label,
|
| 49 |
+
);
|
| 50 |
+
|
| 51 |
+
$installer->getConnection()->insertArray($statusTable, array('status', 'label'), $data);
|
| 52 |
+
//Insert relation between state and status
|
| 53 |
+
$data[0] = array(
|
| 54 |
+
'status' => $status,
|
| 55 |
+
'state' => $code,
|
| 56 |
+
'is_default'=> 0,
|
| 57 |
+
);
|
| 58 |
+
|
| 59 |
+
$installer->getConnection()->insertArray(
|
| 60 |
+
$statusStateTable,
|
| 61 |
+
array('status', 'state', 'is_default'),
|
| 62 |
+
$data
|
| 63 |
+
);
|
| 64 |
+
|
| 65 |
+
|
| 66 |
+
|
| 67 |
+
}
|
| 68 |
+
|
| 69 |
+
|
| 70 |
+
|
| 71 |
+
$installer->endSetup();
|
| 72 |
+
|
app/code/community/Allopass/Hipay/sql/allopass_hipay_setup/mysql4-upgrade-0.1.4-0.1.5.php
ADDED
|
@@ -0,0 +1,24 @@
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
| 1 |
+
<?php
|
| 2 |
+
|
| 3 |
+
$installer = $this;
|
| 4 |
+
|
| 5 |
+
|
| 6 |
+
$installer->startSetup();
|
| 7 |
+
|
| 8 |
+
$installer->run("
|
| 9 |
+
|
| 10 |
+
-- DROP TABLE IF EXISTS {$this->getTable('hipay_rule')};
|
| 11 |
+
CREATE TABLE {$this->getTable('hipay_rule')} (
|
| 12 |
+
`rule_id` int(10) unsigned NOT NULL auto_increment,
|
| 13 |
+
`method_code` varchar(60) NOT NULL,
|
| 14 |
+
`conditions_serialized` text NOT NULL,
|
| 15 |
+
`actions_serialized` text NOT NULL default '',
|
| 16 |
+
`product_ids` text,
|
| 17 |
+
`sort_order` int(10) unsigned NOT NULL default '0',
|
| 18 |
+
`simple_action` varchar(32) NOT NULL default '',
|
| 19 |
+
PRIMARY KEY (`rule_id`),
|
| 20 |
+
KEY `sort_order` (`sort_order`)
|
| 21 |
+
) ENGINE=InnoDB DEFAULT CHARSET=utf8;"
|
| 22 |
+
);
|
| 23 |
+
$installer->endSetup();
|
| 24 |
+
|
app/design/adminhtml/default/default/layout/hipay.xml
ADDED
|
@@ -0,0 +1,12 @@
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
| 1 |
+
<?xml version="1.0"?>
|
| 2 |
+
<layout>
|
| 3 |
+
|
| 4 |
+
<adminhtml_system_config_edit>
|
| 5 |
+
<reference name="head">
|
| 6 |
+
<action method="setCanLoadExtJs"><flag>1</flag></action>
|
| 7 |
+
<!-- <action method="setCanLoadRulesJs"><flag>1</flag></action> -->
|
| 8 |
+
<action method="addItem"><type>skin_js</type><name>hipay/js/rules.js</name></action>
|
| 9 |
+
</reference>
|
| 10 |
+
</adminhtml_system_config_edit>
|
| 11 |
+
|
| 12 |
+
</layout>
|
app/design/adminhtml/default/default/template/hipay/system/config/form/field/rules.phtml
ADDED
|
@@ -0,0 +1,17 @@
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
| 1 |
+
<?php $_element = $this->getElement() ?>
|
| 2 |
+
<?php $_htmlId = $this->getHtmlId() ? $this->getHtmlId() : '_' . uniqid(); ?>
|
| 3 |
+
<input type="hidden" value="<?php echo $_element->getRule()->getId() ?>" name="<?php echo $_element->getName() ?>" />
|
| 4 |
+
<div class="rule-tree">
|
| 5 |
+
<div id="rule<?php echo $_htmlId ?>">
|
| 6 |
+
<?php if ($_element->getRule() && $_element->getRule()->getConditions()) : ?>
|
| 7 |
+
<?php echo $_element->getRule()->getConditions()->asHtmlRecursive(); ?>
|
| 8 |
+
<?php endif; ?>
|
| 9 |
+
</div>
|
| 10 |
+
</div>
|
| 11 |
+
<script type="text/javascript">
|
| 12 |
+
var <?php echo $_htmlId ?> = new VarienRulesForm('rule<?php echo $_htmlId ?>', '<?php echo $this->getNewChildUrl() ?>');
|
| 13 |
+
<?php if ($_element->getReadonly()): ?>
|
| 14 |
+
<?php echo $_htmlId ?>.setReadonly(true);
|
| 15 |
+
<?php endif; ?>
|
| 16 |
+
</script>
|
| 17 |
+
|
app/design/frontend/default/default/layout/hipay.xml
ADDED
|
@@ -0,0 +1,12 @@
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
| 1 |
+
<?xml version="1.0" encoding="UTF-8"?>
|
| 2 |
+
<layout version="0.1.0">
|
| 3 |
+
<hipay_checkout_pending translate="label">
|
| 4 |
+
<label>Hipay Checkout Pending</label>
|
| 5 |
+
<reference name="root">
|
| 6 |
+
<action method="setTemplate"><template>page/2columns-right.phtml</template></action>
|
| 7 |
+
</reference>
|
| 8 |
+
<reference name="content">
|
| 9 |
+
<block type="hipay/checkout_pending" name="checkout.pending" template="hipay/checkout/pending.phtml"/>
|
| 10 |
+
</reference>
|
| 11 |
+
</hipay_checkout_pending>
|
| 12 |
+
</layout>
|
app/design/frontend/default/default/template/hipay/checkout/pending.phtml
ADDED
|
@@ -0,0 +1,8 @@
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
| 1 |
+
<?php
|
| 2 |
+
?>
|
| 3 |
+
<div class="page-title">
|
| 4 |
+
<h1><?php echo $this->__('Your payment is in pending.') ?></h1>
|
| 5 |
+
</div>
|
| 6 |
+
<?php if ($this->getRealOrderId()) : ?><p><?php echo $this->__('Order #') . $this->getRealOrderId() ?></p><?php endif ?>
|
| 7 |
+
<?php if ($error = $this->getErrorMessage()) : ?><p><?php echo $error ?></p><?php endif ?>
|
| 8 |
+
<p><?php echo $this->__('Click <a href="%s">here</a> to continue shopping.', $this->getContinueShoppingUrl()) ?></p>
|
app/design/frontend/default/default/template/hipay/form/cc.phtml
ADDED
|
@@ -0,0 +1,144 @@
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
| 1 |
+
<?php $_code=$this->getMethodCode() ?>
|
| 2 |
+
<div id="payment_form_<?php echo $_code ?>" style="display:none;">
|
| 3 |
+
|
| 4 |
+
<ul class="form-list" id="card_payment_form_<?php echo $_code ?>" >
|
| 5 |
+
<?php /*
|
| 6 |
+
<li>
|
| 7 |
+
<div class="input-box">
|
| 8 |
+
<label for="<?php echo $_code ?>_cc_owner" class="required"><em>*</em><?php echo $this->__('Name on Card') ?></label>
|
| 9 |
+
<input type="text" title="<?php echo $this->__('Name on Card') ?>" class="input-text required-entry" id="<?php echo $_code ?>_cc_owner" name="payment[cc_owner]" value="<?php echo $this->htmlEscape($this->getInfoData('cc_owner')) ?>" />
|
| 10 |
+
</div>
|
| 11 |
+
</li>
|
| 12 |
+
*/ ?>
|
| 13 |
+
<li>
|
| 14 |
+
<label for="<?php echo $_code ?>_cc_type" class="required"><em>*</em><?php echo $this->__('Credit Card Type') ?></label>
|
| 15 |
+
<div class="input-box">
|
| 16 |
+
<select id="<?php echo $_code ?>_cc_type" name="payment[cc_type]" class="required-entry validate-cc-type-select">
|
| 17 |
+
<option value=""><?php echo $this->__('--Please Select--')?></option>
|
| 18 |
+
<?php $_ccType = $this->getInfoData('cc_type') ?>
|
| 19 |
+
<?php foreach ($this->getCcAvailableTypes() as $_typeCode => $_typeName): ?>
|
| 20 |
+
<option value="<?php echo $_typeCode ?>"<?php if($_typeCode==$_ccType): ?> selected="selected"<?php endif ?>><?php echo $_typeName ?></option>
|
| 21 |
+
<?php endforeach ?>
|
| 22 |
+
</select>
|
| 23 |
+
</div>
|
| 24 |
+
</li>
|
| 25 |
+
<li>
|
| 26 |
+
<label for="<?php echo $_code ?>_cc_number" class="required"><em>*</em><?php echo $this->__('Credit Card Number') ?></label>
|
| 27 |
+
<div class="input-box">
|
| 28 |
+
<input type="text" id="<?php echo $_code ?>_cc_number" name="payment[cc_number]" title="<?php echo $this->__('Credit Card Number') ?>" class="input-text validate-cc-number validate-cc-type" value="" />
|
| 29 |
+
</div>
|
| 30 |
+
</li>
|
| 31 |
+
<li id="<?php echo $_code ?>_cc_type_exp_div">
|
| 32 |
+
<label for="<?php echo $_code ?>_expiration" class="required"><em>*</em><?php echo $this->__('Expiration Date') ?></label>
|
| 33 |
+
<div class="input-box">
|
| 34 |
+
<div class="v-fix">
|
| 35 |
+
<select id="<?php echo $_code ?>_expiration" name="payment[cc_exp_month]" class="month validate-cc-exp required-entry">
|
| 36 |
+
<?php $_ccExpMonth = $this->getInfoData('cc_exp_month') ?>
|
| 37 |
+
<?php foreach ($this->getCcMonths() as $k=>$v): ?>
|
| 38 |
+
<option value="<?php echo $k?$k:'' ?>"<?php if($k==$_ccExpMonth): ?> selected="selected"<?php endif ?>><?php echo $v ?></option>
|
| 39 |
+
<?php endforeach ?>
|
| 40 |
+
</select>
|
| 41 |
+
</div>
|
| 42 |
+
<div class="v-fix">
|
| 43 |
+
<?php $_ccExpYear = $this->getInfoData('cc_exp_year') ?>
|
| 44 |
+
<select id="<?php echo $_code ?>_expiration_yr" name="payment[cc_exp_year]" class="year required-entry">
|
| 45 |
+
<?php foreach ($this->getCcYears() as $k=>$v): ?>
|
| 46 |
+
<option value="<?php echo $k?$k:'' ?>"<?php if($k==$_ccExpYear): ?> selected="selected"<?php endif ?>><?php echo $v ?></option>
|
| 47 |
+
<?php endforeach ?>
|
| 48 |
+
</select>
|
| 49 |
+
</div>
|
| 50 |
+
</div>
|
| 51 |
+
</li>
|
| 52 |
+
<?php echo $this->getChildHtml() ?>
|
| 53 |
+
<?php if($this->hasVerification()): ?>
|
| 54 |
+
<li id="<?php echo $_code ?>_cc_type_cvv_div">
|
| 55 |
+
<label for="<?php echo $_code ?>_cc_cid" class="required"><em>*</em><?php echo $this->__('Card Verification Number') ?></label>
|
| 56 |
+
<div class="input-box">
|
| 57 |
+
<div class="v-fix">
|
| 58 |
+
<input type="text" title="<?php echo $this->__('Card Verification Number') ?>" class="input-text cvv required-entry validate-cc-cvn" id="<?php echo $_code ?>_cc_cid" name="payment[cc_cid]" value="" />
|
| 59 |
+
</div>
|
| 60 |
+
<a href="#" class="cvv-what-is-this"><?php echo $this->__('What is this?') ?></a>
|
| 61 |
+
</div>
|
| 62 |
+
</li>
|
| 63 |
+
<?php endif; ?>
|
| 64 |
+
|
| 65 |
+
</ul>
|
| 66 |
+
<?php if ($this->oneClickIsAllowed()) : ?>
|
| 67 |
+
<ul class="form-list" id="oneclick_card_payment_form_<?php echo $_code ?>">
|
| 68 |
+
<li>
|
| 69 |
+
|
| 70 |
+
<?php if (!$this->getCustomerHasAlias() || ($this->getCustomerHasAlias() && !$this->ccExpDateIsValid())) :?>
|
| 71 |
+
<div class="input-box">
|
| 72 |
+
<input id="<?php echo $_code ?>_create_alias_oneclick" value="create_oneclick" type="checkbox" name="payment[oneclick]" />
|
| 73 |
+
<label style="float: none;" for="<?php echo $_code ?>_create_alias_oneclick"><?php echo $this->__('Record your card data for a next buy.') ?></label>
|
| 74 |
+
</div>
|
| 75 |
+
<?php elseif ($this->getCustomerHasAlias() && $this->ccExpDateIsValid()): ?>
|
| 76 |
+
<script type="text/javascript">$('card_payment_form_<?php echo $_code ?>').hide();</script>
|
| 77 |
+
<div class="input-box">
|
| 78 |
+
<input id="<?php echo $_code ?>_use_alias_oneclick" value="use_oneclick" checked="checked" type="radio" name="payment[oneclick]" onclick="$('card_payment_form_<?php echo $_code ?>').hide();" />
|
| 79 |
+
<label style="float: none;" for="<?php echo $_code ?>_use_alias_oneclick"><?php echo $this->__('Use my recorded card') ?></label>
|
| 80 |
+
</div>
|
| 81 |
+
<div class="input-box info-card">
|
| 82 |
+
<label><?php echo $this->__('Actual card') ?> :</label>
|
| 83 |
+
<span><?php echo $this->getCustomer()->getHipayCcNumberEnc() ?></span>
|
| 84 |
+
</div>
|
| 85 |
+
<div class="input-box info-card">
|
| 86 |
+
<label><?php echo $this->__('Expiration date') ?> : <?php echo $this->getCustomer()->getHipayCcExpDate() ?></label>
|
| 87 |
+
</div>
|
| 88 |
+
|
| 89 |
+
|
| 90 |
+
|
| 91 |
+
<div class="input-box">
|
| 92 |
+
<input id="<?php echo $_code ?>_create_alias_oneclick" type="radio" name="payment[oneclick]" value="create_oneclick" onclick="$('card_payment_form_<?php echo $_code ?>').show();"/>
|
| 93 |
+
<label style="float: none;" for="<?php echo $_code ?>_create_alias_oneclick"><?php echo $this->__('Record new card data') ?></label>
|
| 94 |
+
</div>
|
| 95 |
+
|
| 96 |
+
<div class="input-box">
|
| 97 |
+
<input id="<?php echo $_code ?>_not_oneclick" type="radio" name="payment[oneclick]" value="not_oneclick" onclick="$('card_payment_form_<?php echo $_code ?>').show();" />
|
| 98 |
+
<label style="float: none;" for="<?php echo $_code ?>_not_oneclick"><?php echo $this->__('Not use record card data') ?></label>
|
| 99 |
+
</div>
|
| 100 |
+
|
| 101 |
+
<?php endif;?>
|
| 102 |
+
</li>
|
| 103 |
+
|
| 104 |
+
</ul>
|
| 105 |
+
<script type="text/javascript">
|
| 106 |
+
//<![CDATA[
|
| 107 |
+
|
| 108 |
+
var ToogleOneclick<?php echo $_code ?> = function() {
|
| 109 |
+
var elm = $('<?php echo $_code ?>_cc_type');
|
| 110 |
+
if (['','VI','MC','AE'].indexOf(elm.value) != -1) {
|
| 111 |
+
$('oneclick_card_payment_form_<?php echo $_code ?>').show();
|
| 112 |
+
} else {
|
| 113 |
+
$('<?php echo $_code ?>_create_alias_oneclick').checked = false;
|
| 114 |
+
$('oneclick_card_payment_form_<?php echo $_code ?>').hide();
|
| 115 |
+
}
|
| 116 |
+
};
|
| 117 |
+
|
| 118 |
+
Event.observe($('<?php echo $_code ?>_cc_type'), 'change', ToogleOneclick<?php echo $_code ?>);
|
| 119 |
+
ToogleOneclick<?php echo $_code ?>();
|
| 120 |
+
//]]>
|
| 121 |
+
</script>
|
| 122 |
+
<?php endif; ?>
|
| 123 |
+
<?php echo $this->__('You will be debit of amount %s only after submit order.',Mage::app()->getStore()->getBaseCurrency()->format($this->getQuote()->getGrandTotal(), array(), true))?>
|
| 124 |
+
<script type="text/javascript">
|
| 125 |
+
//<![CDATA[
|
| 126 |
+
|
| 127 |
+
Validation.creditCartTypes.set('BCMC',[false, new RegExp('^([0-9]{3}|[0-9]{4})?$'), false]);
|
| 128 |
+
|
| 129 |
+
var ToogleCvn<?php echo $_code ?> = function() {
|
| 130 |
+
var elm = $('<?php echo $_code ?>_cc_type');
|
| 131 |
+
if (['BCMC'].indexOf(elm.value) != -1) {
|
| 132 |
+
$('<?php echo $_code ?>_cc_type_cvv_div').hide();
|
| 133 |
+
} else {
|
| 134 |
+
$('<?php echo $_code ?>_cc_type_cvv_div').show();
|
| 135 |
+
}
|
| 136 |
+
};
|
| 137 |
+
|
| 138 |
+
Event.observe($('<?php echo $_code ?>_cc_type'), 'change', ToogleCvn<?php echo $_code ?>);
|
| 139 |
+
ToogleCvn<?php echo $_code ?>();
|
| 140 |
+
//]]>
|
| 141 |
+
</script>
|
| 142 |
+
|
| 143 |
+
</div>
|
| 144 |
+
|
app/design/frontend/default/default/template/hipay/form/hosted.phtml
ADDED
|
@@ -0,0 +1,134 @@
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
| 1 |
+
<?php $_code=$this->getMethodCode() ?>
|
| 2 |
+
<div id="payment_form_<?php echo $_code ?>" style="display:none;">
|
| 3 |
+
<?php if ($this->oneClickIsAllowed()) : ?>
|
| 4 |
+
<ul class="form-list" id="oneclick_hosted_payment_form_<?php echo $_code ?>">
|
| 5 |
+
<li>
|
| 6 |
+
|
| 7 |
+
<?php if (!$this->getCustomerHasAlias() || ($this->getCustomerHasAlias() && !$this->ccExpDateIsValid())) :?>
|
| 8 |
+
<div class="input-box">
|
| 9 |
+
<input id="<?php echo $_code ?>_create_alias_oneclick" value="create_oneclick" type="checkbox" name="payment[oneclick]" />
|
| 10 |
+
<label style="float: none;" for="<?php echo $_code ?>_create_alias_oneclick"><?php echo $this->__('Record your card data for a next buy.') ?></label>
|
| 11 |
+
</div>
|
| 12 |
+
<?php elseif ($this->getCustomerHasAlias() && $this->ccExpDateIsValid()): ?>
|
| 13 |
+
<div class="input-box">
|
| 14 |
+
<input id="<?php echo $_code ?>_use_alias_oneclick" value="use_oneclick" checked="checked" type="radio" name="payment[oneclick]" />
|
| 15 |
+
<label style="float: none;" for="<?php echo $_code ?>_use_alias_oneclick"><?php echo $this->__('Use my recorded card') ?></label>
|
| 16 |
+
</div>
|
| 17 |
+
<div class="input-box info-card">
|
| 18 |
+
<label><?php echo $this->__('Actual card') ?> :</label>
|
| 19 |
+
<span><?php echo $this->getCustomer()->getHipayCcNumberEnc() ?></span>
|
| 20 |
+
</div>
|
| 21 |
+
<div class="input-box info-card">
|
| 22 |
+
<label><?php echo $this->__('Expiration date') ?> : <?php echo $this->getCustomer()->getHipayCcExpDate() ?></label>
|
| 23 |
+
</div>
|
| 24 |
+
<div class="input-box">
|
| 25 |
+
<input id="<?php echo $_code ?>_create_alias_oneclick" type="radio" name="payment[oneclick]" value="create_oneclick"/>
|
| 26 |
+
<label style="float: none;" for="<?php echo $_code ?>_create_alias_oneclick"><?php echo $this->__('Record new card data') ?></label>
|
| 27 |
+
</div>
|
| 28 |
+
|
| 29 |
+
<div class="input-box">
|
| 30 |
+
<input id="<?php echo $_code ?>_not_oneclick" type="radio" name="payment[oneclick]" value="not_oneclick" />
|
| 31 |
+
<label style="float: none;" for="<?php echo $_code ?>_not_oneclick"><?php echo $this->__('Not use record card data') ?></label>
|
| 32 |
+
</div>
|
| 33 |
+
|
| 34 |
+
<?php endif;?>
|
| 35 |
+
</li>
|
| 36 |
+
|
| 37 |
+
</ul>
|
| 38 |
+
<?php endif; ?>
|
| 39 |
+
<?php echo $this->__('You will be redirect to payment page after submit order.')?>
|
| 40 |
+
<?php $iframe = $this->getIframeConfig()?>
|
| 41 |
+
<script type="text/javascript">
|
| 42 |
+
//<![CDATA[
|
| 43 |
+
|
| 44 |
+
Review.prototype.displayIframe = function(url) {
|
| 45 |
+
|
| 46 |
+
|
| 47 |
+
|
| 48 |
+
// Create container Iframe
|
| 49 |
+
var hipayIframeWrapper = $('hipay_iframe_wrapper');
|
| 50 |
+
if (hipayIframeWrapper === null) {
|
| 51 |
+
hipayIframeWrapper = new Element('div', {id: 'hipay_iframe_wrapper', style: 'text-align: center; border-bottom: 1px solid #BEBCB7; border-left: 1px solid #BEBCB7; border-right: 1px solid #BEBCB7;'});
|
| 52 |
+
$('checkout-review-table-wrapper').insert({after: hipayIframeWrapper});
|
| 53 |
+
|
| 54 |
+
}
|
| 55 |
+
|
| 56 |
+
// generate Iframe
|
| 57 |
+
<?php if (strlen($iframe['iframe_width']) > 1) $iframe_width = $iframe['iframe_width']; else $iframe_width = 450;
|
| 58 |
+
if (strlen($iframe['iframe_height']) > 1) $iframe_height = $iframe['iframe_height']; else $iframe_height = 670;
|
| 59 |
+
if (strlen($iframe['iframe_style']) > 1) $iframe_style = $iframe['iframe_style']; else $iframe_style = 'border:1px solid #CCC;border-radius:15px;padding:10px;max-width:500px;'; ?>
|
| 60 |
+
hipayIframeWrapper.appendChild(new Element('iframe', {frameBorder: 0, width: '<?php echo $iframe_width; ?>', height: '<?php echo $iframe_height; ?>', src: url, style: '<?php echo $iframe_style; ?>'}));
|
| 61 |
+
//var button = new Element('button', {'class': 'button', type: 'button'}).update('<span><span>Cancel</span></span>');
|
| 62 |
+
//Event.observe(button, 'click', this.cancel.bind(this));
|
| 63 |
+
//hipayIframeWrapper.appendChild(button);
|
| 64 |
+
|
| 65 |
+
|
| 66 |
+
|
| 67 |
+
};
|
| 68 |
+
|
| 69 |
+
Review.prototype.resetLoadWaiting = function(transport){
|
| 70 |
+
checkout.setLoadWaiting(false, this.isSuccess);
|
| 71 |
+
if (transport && transport.responseText) {
|
| 72 |
+
try{
|
| 73 |
+
response = eval('(' + transport.responseText + ')');
|
| 74 |
+
}
|
| 75 |
+
catch (e) {
|
| 76 |
+
response = {};
|
| 77 |
+
}
|
| 78 |
+
|
| 79 |
+
if(response.iframeUrl)
|
| 80 |
+
{
|
| 81 |
+
$$('.btn-checkout')[0].hide();
|
| 82 |
+
}
|
| 83 |
+
}
|
| 84 |
+
};
|
| 85 |
+
|
| 86 |
+
Review.prototype.nextStep = function(transport){
|
| 87 |
+
if (transport && transport.responseText) {
|
| 88 |
+
try{
|
| 89 |
+
response = eval('(' + transport.responseText + ')');
|
| 90 |
+
}
|
| 91 |
+
catch (e) {
|
| 92 |
+
response = {};
|
| 93 |
+
}
|
| 94 |
+
|
| 95 |
+
if(response.iframeUrl)
|
| 96 |
+
{
|
| 97 |
+
|
| 98 |
+
this.displayIframe(response.iframeUrl);
|
| 99 |
+
return;
|
| 100 |
+
}
|
| 101 |
+
|
| 102 |
+
if (response.redirect) {
|
| 103 |
+
this.isSuccess = true;
|
| 104 |
+
location.href = response.redirect;
|
| 105 |
+
return;
|
| 106 |
+
}
|
| 107 |
+
if (response.success) {
|
| 108 |
+
this.isSuccess = true;
|
| 109 |
+
window.location=this.successUrl;
|
| 110 |
+
}
|
| 111 |
+
else{
|
| 112 |
+
var msg = response.error_messages;
|
| 113 |
+
if (typeof(msg)=='object') {
|
| 114 |
+
msg = msg.join("\n");
|
| 115 |
+
}
|
| 116 |
+
if (msg) {
|
| 117 |
+
alert(msg);
|
| 118 |
+
}
|
| 119 |
+
}
|
| 120 |
+
|
| 121 |
+
if (response.update_section) {
|
| 122 |
+
$('checkout-'+response.update_section.name+'-load').update(response.update_section.html);
|
| 123 |
+
}
|
| 124 |
+
|
| 125 |
+
if (response.goto_section) {
|
| 126 |
+
checkout.gotoSection(response.goto_section);
|
| 127 |
+
}
|
| 128 |
+
}
|
| 129 |
+
};
|
| 130 |
+
|
| 131 |
+
|
| 132 |
+
//]]>
|
| 133 |
+
</script>
|
| 134 |
+
</div>
|
app/etc/modules/Allopass_Hipay.xml
ADDED
|
@@ -0,0 +1,9 @@
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
| 1 |
+
<?xml version="1.0" encoding="UTF-8"?>
|
| 2 |
+
<config>
|
| 3 |
+
<modules>
|
| 4 |
+
<Allopass_Hipay>
|
| 5 |
+
<active>true</active>
|
| 6 |
+
<codePool>community</codePool>
|
| 7 |
+
</Allopass_Hipay>
|
| 8 |
+
</modules>
|
| 9 |
+
</config>
|
app/locale/en_US/Allopass_Hipay.csv
ADDED
|
@@ -0,0 +1,107 @@
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
| 1 |
+
"HiPay API configuration","HiPay API configuration"
|
| 2 |
+
"Api username","Api username"
|
| 3 |
+
"Api password","Api password"
|
| 4 |
+
"Api username test","Api username test"
|
| 5 |
+
"Api password test","Api password test"
|
| 6 |
+
"Hipay Credit Card","Hipay Credit Card"
|
| 7 |
+
"Enabled","Enabled"
|
| 8 |
+
"Title","Title"
|
| 9 |
+
"Payment Action","Payment Action"
|
| 10 |
+
"Notification from Hipay:","Notification from Hipay:"
|
| 11 |
+
"status","status"
|
| 12 |
+
"Order %s by %s","Order %s by %s"
|
| 13 |
+
"amount: %s","amount: %s"
|
| 14 |
+
"failed","failed"
|
| 15 |
+
"successful","successful"
|
| 16 |
+
"Credit Card: xxxx-%s","Credit Card: xxxx-%s"
|
| 17 |
+
"Hipay Transaction ID %s","Hipay Transaction ID %s"
|
| 18 |
+
"Payment authorization error."Payment authorization error."
|
| 19 |
+
"Payment capturing error.","Payment capturing error."
|
| 20 |
+
"Payment accepted by Hipay.","Payment accepted by Hipay."
|
| 21 |
+
"Waiting for capture transaction ID '%s' of amount %s","Waiting for capture transaction ID '%s' of amount %s"
|
| 22 |
+
"Reason","Reason"
|
| 23 |
+
"Code Credit Card Type Hipay not found!","Code Credit Card Type Hipay not found!"
|
| 24 |
+
"Authorization","Authorization"
|
| 25 |
+
"Sale","Sale"
|
| 26 |
+
"basic","basic"
|
| 27 |
+
"basic2","basic2"
|
| 28 |
+
"Order canceled automatically by cron because order is pending since %d minutes","Order canceled automatically by cron because order is pending since %d minutes"
|
| 29 |
+
"--Please Select--","--Please Select--"
|
| 30 |
+
"Credit Card Number","Credit Card Number"
|
| 31 |
+
"Credit Card Type","Credit Card Type"
|
| 32 |
+
"Credit Card Types","Credit Card Types"
|
| 33 |
+
"Expiration Date","Expiration Date"
|
| 34 |
+
"Card Verification Number","Card Verification Number"
|
| 35 |
+
"Record your card data for a next buy.","Record your card data for a next buy."
|
| 36 |
+
"Use my recorded card","Use my recorded card"
|
| 37 |
+
"Record new card data","Record new card data"
|
| 38 |
+
"Not use record card data","Not use record card data"
|
| 39 |
+
"You will be redirect to payment page after submit order.","You will be redirect to payment page after submit order."
|
| 40 |
+
"Hipay Credit Card","Hipay Credit Card"
|
| 41 |
+
"Enabled","Enabled"
|
| 42 |
+
"Title","Title"
|
| 43 |
+
"Order status when payment accepted","Order status when payment accepted"
|
| 44 |
+
"Order status when payment refused","Order status when payment refused"
|
| 45 |
+
"Order status when payment canceled by customer","Order status when payment canceled by customer"
|
| 46 |
+
"Payment Action","Payment Action"
|
| 47 |
+
"Credit Card Types","Credit Card Types"
|
| 48 |
+
"Credit Card Verification","Credit Card Verification"
|
| 49 |
+
"Use 3D Secure","Enable 3D Secure"
|
| 50 |
+
"Use Oneclick","Use Oneclick"
|
| 51 |
+
"Use recurring profile","Use recurring profile"
|
| 52 |
+
"Create invoice when payment accepted","Create invoice when payment accepted"
|
| 53 |
+
"Add product to cart","Add product to cart"
|
| 54 |
+
"Fill cart when payment canceled or refused","Fill cart when payment canceled or refused"
|
| 55 |
+
"Cancel pending order","Cancel pending order"
|
| 56 |
+
"Cancel orders stayed in pending because customer not validated payment","Cancel orders stayed in pending because customer not validated payment"
|
| 57 |
+
"Payment from applicable countries","Payment from applicable countries"
|
| 58 |
+
"Payment from Specific countries","Payment from Specific countries"
|
| 59 |
+
"Minimum Order Total","Minimum Order Total"
|
| 60 |
+
"Maximum Order Total","Maximum Order Total"
|
| 61 |
+
"Sort order","Sort order"
|
| 62 |
+
"Enable debug log","Enable debug log"
|
| 63 |
+
"Enable test mode","Enable test mode"
|
| 64 |
+
"Css Url","Css Url"
|
| 65 |
+
"Important, HTTPS protocol is required","Important, HTTPS protocol is required"
|
| 66 |
+
"Page payment template","Page payment template"
|
| 67 |
+
"Display card selector","Display card selector"
|
| 68 |
+
"What is this?","What is this?"
|
| 69 |
+
"Hipay Hosted","Hipay Hosted"
|
| 70 |
+
"You will be debit of amount %s only after submit order.","You will be debit of amount %s only after submit order."
|
| 71 |
+
"Pending Capture","Pending Capture"
|
| 72 |
+
"Capture Requested","Capture Requested"
|
| 73 |
+
"Refund Requested","Refund Requested"
|
| 74 |
+
"Capture Requested by Hipay.","Capture Requested by Hipay."
|
| 75 |
+
"Payment accepted by Hipay.","Payment accepted by Hipay."
|
| 76 |
+
"Refund Requested by Hipay.","Refund Requested by Hipay."
|
| 77 |
+
"Refund accepted by Hipay.","Refund accepted by Hipay."
|
| 78 |
+
"Your payment is in pending.","Your payment is in pending."
|
| 79 |
+
"Order #","Order #"
|
| 80 |
+
"Pending page","Pending page"
|
| 81 |
+
"Success page","Success page"
|
| 82 |
+
"Failure page","Failure page"
|
| 83 |
+
"Redirect page pending status","Redirect page pending status"
|
| 84 |
+
"Page to redirect when transaction is in pending status","Page to redirect when transaction is in pending status"
|
| 85 |
+
"Record your card data for recurring.","Record your card data for recurring."
|
| 86 |
+
"Hipay status to validate order","Hipay status to validate order"
|
| 87 |
+
"Display hosted page in Iframe","Display hosted page in Iframe"
|
| 88 |
+
"Configure Rules to activate 3D Secure","Configure Rules to activate 3D Secure"
|
| 89 |
+
"Rules 3D Secure","Rules 3D Secure"
|
| 90 |
+
"Enable for all transactions","Enable for all transactions"
|
| 91 |
+
"Enable for configured 3ds rules","Enable for configured 3ds rules",
|
| 92 |
+
"Disabled","Disabled"
|
| 93 |
+
"Order Attribute","Order Attribute"
|
| 94 |
+
"Customer Attribute","Customer Attribute"
|
| 95 |
+
"Order's time","Order's time"
|
| 96 |
+
"Billing Postcode","Billing Postcode"
|
| 97 |
+
"Billing Region","Billing Region"
|
| 98 |
+
"Billing State/Province","Billing State/Province"
|
| 99 |
+
"Billing Country","Billing Country"
|
| 100 |
+
"Midnight - 8:00 a.m.","Midnight - 8:00 a.m."
|
| 101 |
+
"8:00 a.m. - 3:00 p.m.","8:00 a.m. - 3:00 p.m."
|
| 102 |
+
"3:00 pm. - 8:00 p.m.","3:00 pm. - 8:00 p.m."
|
| 103 |
+
"8:00 p.m. - 11:59 p.m.","8:00 p.m. - 11:59 p.m."
|
| 104 |
+
"Orders count","Orders count"
|
| 105 |
+
"Customer is guest","Customer is guest"
|
| 106 |
+
"Billing and shipping addresses are differents","Billing and shipping addresses are differents"
|
| 107 |
+
|
app/locale/fr_FR/Allopass_Hipay.csv
ADDED
|
@@ -0,0 +1,107 @@
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
| 1 |
+
"HiPay API configuration","Configuration de l'API Hipay"
|
| 2 |
+
"Api username","Identifiant de l'API"
|
| 3 |
+
"Api password","Mot de passe de l'API"
|
| 4 |
+
"Api username test","Identifiant TEST de l'API"
|
| 5 |
+
"Api password test","Mot de passe TEST de l'API"
|
| 6 |
+
"Hipay Credit Card","Carte de crédit Hipay"
|
| 7 |
+
"Enabled","Activé"
|
| 8 |
+
"Title","Titre"
|
| 9 |
+
"Payment Action","Type de paiement"
|
| 10 |
+
"Notification from Hipay:","Notification depuis Hipay:"
|
| 11 |
+
"status","statut"
|
| 12 |
+
"Order %s by %s","Commande %s de %s"
|
| 13 |
+
"amount: %s","montant: %s"
|
| 14 |
+
"failed","échec"
|
| 15 |
+
"successful","succès"
|
| 16 |
+
"Credit Card: xxxx-%s","Carte de crédit: xxxx-%s"
|
| 17 |
+
"Hipay Transaction ID %s","ID de transaction HIPAY %s"
|
| 18 |
+
"Payment authorization error."Erreur d'autorisation de paiement."
|
| 19 |
+
"Payment capturing error.","Erreur de capture du paiement."
|
| 20 |
+
"Payment accepted by Hipay.","Paiement accepté par Hipay."
|
| 21 |
+
"Waiting for capture transaction ID '%s' of amount %s","En attente de la capture de la transaction '%s' du montant %s"
|
| 22 |
+
"Reason","Raison"
|
| 23 |
+
"Code Credit Card Type Hipay not found!","Code du type de la carte de crédit non trouvé!"
|
| 24 |
+
"Authorization","Autorisation"
|
| 25 |
+
"Sale","Vente"
|
| 26 |
+
"basic","basic"
|
| 27 |
+
"basic2","basic2"
|
| 28 |
+
"Order canceled automatically by cron because order is pending since %d minutes","Commande annulée automatiquement par le cron car elle est en attente depuis %d minutes."
|
| 29 |
+
"--Please Select--","--Votre choix--"
|
| 30 |
+
"Credit Card Number","Numéro de carte bancaire"
|
| 31 |
+
"Credit Card Number: xxxx-%s","<strong>Numéro de carte de paiement :</strong> <span class=""nowrap"">xxxx-%s</span>"
|
| 32 |
+
"Credit Card Type","Type de carte de crédit"
|
| 33 |
+
"Credit Card Type: %s","<strong>Type de carte de paiement :</strong> <span class=""nowrap"">%s</span>"
|
| 34 |
+
"Credit Card Types","Types de cartes de paiement"
|
| 35 |
+
"Month","Mois"
|
| 36 |
+
"Year","Année"
|
| 37 |
+
"Expiration date","Date d'expiration"
|
| 38 |
+
"Expiration Date","Date d'expiration"
|
| 39 |
+
"Card Verification Number","Numéro de vérification"
|
| 40 |
+
"Record your card data for a next buy.","Enregistrez une empreinte de carte bancaire pour un prochain achat."
|
| 41 |
+
"Use my recorded card","Utiliser ma carte pré-enregistrée."
|
| 42 |
+
"Actual card","Carte actuelle"
|
| 43 |
+
"Record new card data","Remplacer vos données de Carte Bancaire."
|
| 44 |
+
"Not use record card data","Payer directement avec une autre Carte Bancaire."
|
| 45 |
+
"You will be redirect to payment page after submit order.","Vous serez redirigé vers la page de paiment après la validation de la commande."
|
| 46 |
+
"Order status when payment accepted","Statut de la commande quand le paiement est accepté."
|
| 47 |
+
"Order status when payment refused","Statut de la commande quand le paiement est refusé."
|
| 48 |
+
"Order status when payment canceled by customer","Statut de la commande quand le paiement est annulé par le client."
|
| 49 |
+
"Credit Card Verification","Vérification de la carte de crédit"
|
| 50 |
+
"Use 3D Secure","Activer 3DS"
|
| 51 |
+
"Use Oneclick","Activer le paiement oneclick"
|
| 52 |
+
"Use recurring profile","Activer le profile récurrent"
|
| 53 |
+
"Create invoice when payment accepted","Créer une facture quand le paiement est accepté"
|
| 54 |
+
"Add product to cart","Mettre à jour le panier"
|
| 55 |
+
"Fill cart when payment canceled or refused","Remet à jour le panier quand le paiement est annulé ou refusé."
|
| 56 |
+
"Cancel pending order","Annuler les commandes en attentes"
|
| 57 |
+
"Cancel orders stayed in pending because customer not validated payment","Annule les commandes en attentes depuis 30 minutes."
|
| 58 |
+
"Payment from Applicable Countries","Mode de paiement autorisé pour"
|
| 59 |
+
"Payment from Specific Countries","Mode de paiement autorisé pour les pays spécifiques"
|
| 60 |
+
"Minimum Order Total","Montant mini de commande"
|
| 61 |
+
"Maximum Order Total","Montant maxi de commande"
|
| 62 |
+
"Sort Order","Ordre de tri"
|
| 63 |
+
"Enable debug log","Mode debug"
|
| 64 |
+
"Enable test mode","Mode TEST"
|
| 65 |
+
"Css Url","Css Url"
|
| 66 |
+
"Important, HTTPS protocol is required","Important, le protocole HTTPS est requis."
|
| 67 |
+
"Page payment template","Template de la page de paiement."
|
| 68 |
+
"Display card selector","Afficher le sélecteur de carte"
|
| 69 |
+
"What is this?","Aide ?"
|
| 70 |
+
"Hipay Hosted","Hipay page hébergée"
|
| 71 |
+
"You will be debit of amount %s only after submit order.","Vous serez débité d'un montant de %s uniquement après validation de la commande à la prochaine étape."
|
| 72 |
+
"Pending Capture","En attente de capture"
|
| 73 |
+
"Capture Requested","Capture demandée"
|
| 74 |
+
"Refund Requested","Remboursement demandé"
|
| 75 |
+
"Capture Requested by Hipay.","Capture demandée by Hipay."
|
| 76 |
+
"Payment accepted by Hipay.","Paiement accepté by Hipay."
|
| 77 |
+
"Refund Requested by Hipay.","Remboursement demandé by Hipay."
|
| 78 |
+
"Refund accepted by Hipay.","Remboursement accepté by Hipay."
|
| 79 |
+
"Your payment is in pending.","Votre paiement est en attente de validation."
|
| 80 |
+
"Order #","Commande #"
|
| 81 |
+
"Pending page","Page en attente"
|
| 82 |
+
"Success page","Page succès"
|
| 83 |
+
"Failure page","Page échec"
|
| 84 |
+
"Redirect page pending status","Page de redirection statut en attente"
|
| 85 |
+
"Page to redirect when transaction is in pending status","Page de redirection quand le statut de transaction est en attente"
|
| 86 |
+
"Record your card data for recurring.","Enregistrez une empreinte de carte bancaire pour la récurrence du paiement."
|
| 87 |
+
"Hipay status to validate order","Statut Hipay validant la commande"
|
| 88 |
+
"Display hosted page in Iframe","Affiche la page de paiement dans une Iframe"
|
| 89 |
+
"Configure Rules to activate 3D Secure","Configurer les règles d'activation du 3d secure"
|
| 90 |
+
"Rules 3D Secure","Règles 3d Secure"
|
| 91 |
+
"Enable for all transactions","Activé pour toutes les transactions"
|
| 92 |
+
"Enable for configured 3ds rules","Activé pour les transactions défini par les règles 3DS (ci-dessous)",
|
| 93 |
+
"Disabled","Désactivé"
|
| 94 |
+
"Order Attribute","Attribut de la commande"
|
| 95 |
+
"Customer Attribute","Attribut du client"
|
| 96 |
+
"Order's time","Heure de la commande"
|
| 97 |
+
"Billing Postcode","Code postal de facturation"
|
| 98 |
+
"Billing Region","Region de facturation"
|
| 99 |
+
"Billing State/Province","Etat/province de la facturation "
|
| 100 |
+
"Billing Country","Pays de la facturation"
|
| 101 |
+
"Midnight - 8:00 a.m.","Entre minuit(inclu) et 8H"
|
| 102 |
+
"8:00 a.m. - 3:00 p.m.","Entre 8H et 15H(inclu)"
|
| 103 |
+
"3:00 pm. - 8:00 p.m.","Entre 15H et 20H(inclu)"
|
| 104 |
+
"8:00 p.m. - 11:59 p.m.","Entre 20H et minuit"
|
| 105 |
+
"Orders count","Nombre de commande passées (inclu celle en cours)"
|
| 106 |
+
"Customer is guest","Commande en tant qu'invité"
|
| 107 |
+
"Billing and shipping addresses are differents","Adresses de facturation et de livraison différentes"
|
package.xml
ADDED
|
@@ -0,0 +1,18 @@
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
| 1 |
+
<?xml version="1.0"?>
|
| 2 |
+
<package>
|
| 3 |
+
<name>Allopass_Hipay</name>
|
| 4 |
+
<version>1.0.0</version>
|
| 5 |
+
<stability>stable</stability>
|
| 6 |
+
<license uri="http://www.opensource.org/licenses/gpl-license.php">GNU General Public License (GPL)</license>
|
| 7 |
+
<channel>community</channel>
|
| 8 |
+
<extends/>
|
| 9 |
+
<summary>HiPay Fullservice Payment Methods</summary>
|
| 10 |
+
<description>HiPay Fullservice payment methods with hosted page and API</description>
|
| 11 |
+
<notes>-New iframe templates</notes>
|
| 12 |
+
<authors><author><name>Kassim_Profileo</name><user>Kassim_Profileo</user><email>kassim@profileo.com</email></author></authors>
|
| 13 |
+
<date>2014-04-03</date>
|
| 14 |
+
<time>09:44:22</time>
|
| 15 |
+
<contents><target name="magecommunity"><dir name="Allopass"><dir name="Hipay"><dir><dir name="Block"><dir name="Adminhtml"><dir name="System"><dir name="Config"><dir name="Form"><dir name="Field"><file name="3dsRule.php" hash="b2e3f5307617948a1c74262ce55419eb"/></dir></dir></dir></dir></dir><dir name="Checkout"><file name="Pending.php" hash="48112f7e2fdcc79ee9431cf5350e223f"/></dir><dir name="Form"><file name="Abstract.php" hash="3a93bc3c0ee9162617437875a86bd36a"/><file name="Cc.php" hash="8be2f51b1ce2274e8afbc9666ed4c9ba"/><file name="Hosted.php" hash="1cbc3fe21de97bba192cd5e651dfaeae"/></dir><dir name="Info"><file name="Cc.php" hash="2f477423660d446c8956b5353b349172"/><file name="Hosted.php" hash="09bc0d102e35da8aad2c81f27cd8ba82"/></dir></dir><dir name="Controller"><file name="Payment.php" hash="06f798f91e1247f4958d1c22d8161d89"/></dir><dir name="Helper"><file name="Data.php" hash="e6d5f091392e105a21099815a2ac7f9d"/></dir><dir name="Model"><dir name="Api"><dir name="Http"><dir name="Client"><dir name="Adapter"><file name="Curl.php" hash="cebf9e03d310e65f23a2a4ddc980e26f"/><file name="Stream.php" hash="5a110dd1f33ee4c8319cec396fc4fa40"/></dir></dir></dir><file name="Request.php" hash="c73ab07965010a9d5da8a6f988f257e0"/><dir name="Response"><file name="Abstract.php" hash="a430ca978e61796696ae4ead61efdb60"/><file name="Error.php" hash="57386fde5e5993c1126418025093a58a"/><file name="Gateway.php" hash="49b0e43a55e223df601884cfd9a0d2c5"/><file name="Notification.php" hash="0f7373ec3435b477424352c058f42255"/><file name="Vault.php" hash="47b962a59c150ffd653ba4054bc053d0"/></dir></dir><file name="Config.php" hash="7b2b6b8d4568d5ce33decc529e45b60b"/><dir name="Log"><file name="Adapter.php" hash="9d5533d5d3622c72cbc84abfd4e3116c"/></dir><dir name="Method"><file name="Abstract.php" hash="1574c7f8335ef0513fde82ab95d066d5"/><file name="Cbc.php" hash="49d1b0e2ad320c1a78043bb7231de930"/><file name="Cc.php" hash="28bfd701d2aef69945df5af828993e77"/><file name="Dexia.php" hash="32d47390b7d48e19e4e5cf2b2abfa0cd"/><file name="Giropay.php" hash="ad5965ae76b9b2b9061f351e9f5fac74"/><file name="Hosted.php" hash="c4ac69e2b5bc07314d60c13cb1ccae26"/><file name="Ideal.php" hash="2a29b8ae0df1e3ae4e1f27fba31af70b"/><file name="Ing.php" hash="9a8f0a6e4a193c2c234987e4d68d6184"/><file name="Kbc.php" hash="7c3e32222e86261b55b0a64c382d8df9"/><file name="Przelewy24.php" hash="00b695e7b34b69f36d593587a9b5dcdd"/><file name="Przelewy24Api.php" hash="7d594585e929de59d5295bfeeff6b219"/><file name="Qiwi.php" hash="be4c74c534076b8cebd6ca1f74fe3b3b"/><file name="Sisal.php" hash="94565498ace1b5e29ae80e84951d655e"/><file name="SisalApi.php" hash="e0f93a847f833509255e36086faedaa6"/><file name="Sofort.php" hash="fa6cb68aff431c2dc91e7b3c62a29aaa"/><file name="SofortApi.php" hash="7f889f5f0986fc6dce71d847a854f1ab"/><file name="Webmoney.php" hash="33e86795573edcea55546c78ae9267f6"/><file name="WebmoneyApi.php" hash="ce8bc5c4c7ab75907b1ca63fd0ebedee"/><file name="Yandex.php" hash="ad5c8a351029b0f2f2df9806fb3cbb9b"/><file name="YandexApi.php" hash="ef4e7f17fa81f5ed63988054dee12c97"/></dir><file name="Observer.php" hash="a8a071ebc588374f71f8386f430011af"/><dir name="Resource"><dir name="Rule"><file name="Collection.php" hash="b4dd0d851cda670c6aafad0cf588b106"/></dir><file name="Rule.php" hash="115bccaa9e4d37ed03e179147ab3788d"/></dir><dir name="Rule"><dir name="Condition"><file name="Address.php" hash="a3cce578d61204adbc4a3e6c4791d055"/><file name="Combine.php" hash="e57da0bfd13c85721ef06d9f5c1d5a45"/><file name="Customer.php" hash="71117a9fe5f0cba3828da17c316a95a5"/><dir name="Product"><file name="Combine.php" hash="b99adc27124c3c6f56d04f0bcb5a42be"/><file name="Found.php" hash="bc266762458faaba326b7d7245b688a8"/><file name="Subselect.php" hash="5c0d482cddd69d82350bc5fec15c40b7"/></dir><file name="Product.php" hash="5186cb9be313c7a772a11613ff4d1406"/></dir><file name="Config.php" hash="7ae56d141ffa1da19faa2d26831f1c7d"/></dir><file name="Rule.php" hash="f4f865fc7e0e2204fd5b804b0a000ddb"/><dir name="Source"><file name="3ds.php" hash="26e27c20dd31babe710cb9470491fc40"/><file name="CcType.php" hash="1f53fb6d8b95c5457e0e59ab910681ca"/><file name="CcTypeHosted.php" hash="7ba8a5fe85f5a0fd93a8a99064ea5487"/><dir name="Order"><file name="HipayStatusValidate.php" hash="63414f71ce035909310f27842bc1b511"/><dir name="Status"><file name="Accepted.php" hash="77baf18f2ca518634a8b7091ad424e14"/><file name="Canceled.php" hash="49a6f0b6033e698fbefe01967b81b21d"/><file name="New.php" hash="226d2f1a5d441dbd6404ea342555e893"/><file name="Refused.php" hash="ea180aef11a6e8309623499d3abb3c5b"/></dir><file name="Status.php" hash="4d1f755c9a5b9747d7c5de83a9f26cee"/></dir><file name="PaymentAction.php" hash="10638f85360e7693819cbbfd156bed72"/><file name="Pendingredirect.php" hash="f0c3125415535637c159c97fc2627740"/><file name="Template.php" hash="47d84783ef5e3041bbbe9c5622e7e65f"/></dir></dir><dir name="controllers"><dir name="Adminhtml"><file name="RuleController.php" hash="5fcf2a0b9807d0f8089b3f0cdfe30a24"/></dir><file name="CbcController.php" hash="11a793cfef50322482b4d1e44f7fb427"/><file name="CcController.php" hash="2e45012894cac90a24c2017a427258b5"/><file name="CheckoutController.php" hash="8d565df4627074dd62c59e6d5b301ce0"/><file name="DexiaController.php" hash="abafa7205262125aef603f0d51445ebd"/><file name="GiropayController.php" hash="93ebe6d63e60627ee86815a7cc23006b"/><file name="HostedController.php" hash="f0bd2d41f36b0453e42063531b88d4a3"/><file name="IdealController.php" hash="49bc5c1a52c98cef934b45ce27da574a"/><file name="IngController.php" hash="43b8ae9e752d5268a51a164abc98df9f"/><file name="KbcController.php" hash="fad29361513cc354dcf200fde25265da"/><file name="NotifyController.php" hash="00a9240f4d73645ada386477c6643eb1"/><file name="Przelewy24Controller.php" hash="d6923f98e8a53d8b8becd1d5ef99e0d0"/><file name="Przelewy24apiController.php" hash="bc488ef00a5a063d05aa12c545d8e8fe"/><file name="QiwiController.php" hash="6b3e05b2910dae0b919c50cb06363c57"/><file name="SisalController.php" hash="32bdb5bf400fa1c6ee5bfb2c79b889f9"/><file name="SisalapiController.php" hash="23a04c3fe9470ef98ce84fcf5c1dd9fe"/><file name="SofortController.php" hash="5479f2e8c3043ad0dd51167bd9bcf623"/><file name="SofortapiController.php" hash="74aa59c7c7795f9f61c6b4bfeae193e3"/><file name="WebmoneyController.php" hash="b52fdbc662da23f839750c9919aad809"/><file name="WebmoneyapiController.php" hash="f34dc66aca5218930be548c88e7e9004"/><file name="YandexController.php" hash="629ec07271f8a11d7c88824154b637f0"/><file name="YandexapiController.php" hash="9741c2a9427866895907629af1e9ed98"/></dir><dir name="etc"><file name="config.xml" hash="6447c17a34c7f25ba37b5172f91826a8"/><file name="system.xml" hash="22626c43e9acdf8b67b6d9deb9793b53"/></dir><dir name="sql"><dir name="allopass_hipay_setup"><file name="mysql4-install-0.1.0.php" hash="820dc1e282c2c88deeb167d61918088b"/><file name="mysql4-upgrade-0.1.0-0.1.1.php" hash="af83b289e454c2d2ab91d2a6800d079a"/><file name="mysql4-upgrade-0.1.1-0.1.2.php" hash="1aa9291c5ac40a03ccbf3bcb6ce0c47e"/><file name="mysql4-upgrade-0.1.2-0.1.3.php" hash="17ddfaae63edc655fec04dcd5f96136a"/><file name="mysql4-upgrade-0.1.4-0.1.5.php" hash="5dfaafe02016ff47dfd80c89effaaabb"/></dir></dir></dir><file name=".DS_Store" hash="194577a7e20bdcc7afbb718f502c134c"/></dir></dir></target><target name="magedesign"><dir name="frontend"><dir name="default"><dir name="default"><dir name="layout"><file name="hipay.xml" hash="3b054d16830742a04ff9fc49038ddb61"/></dir><dir name="template"><dir name="hipay"><dir name="checkout"><file name="pending.phtml" hash="34e6bba88ea5fdd6b4ea71595de638d6"/></dir><dir name="form"><file name="cc.phtml" hash="402c6497783c1b1a0449e60777b61b9d"/><file name="hosted.phtml" hash="2b9ab4d8fa2223bb5ee7b7ae8e53ab85"/></dir></dir></dir></dir></dir></dir><dir name="adminhtml"><dir name="default"><dir name="default"><dir name="layout"><file name="hipay.xml" hash="d55ac9fc80fa05741c4f7a1457211a77"/></dir><dir name="template"><dir name="hipay"><dir name="system"><dir name="config"><dir name="form"><dir name="field"><file name="rules.phtml" hash="b25ca0397baffa2306ab70776b2febac"/></dir></dir></dir></dir></dir></dir></dir></dir></dir></target><target name="mageetc"><dir name="modules"><file name="Allopass_Hipay.xml" hash="fd0ac2e9080c0a432a3a7b6d969171c0"/></dir></target><target name="magelocale"><dir name="en_US"><file name="Allopass_Hipay.csv" hash="3879d574afc3e028875e4f4f846ac104"/></dir><dir name="fr_FR"><file name="Allopass_Hipay.csv" hash="fdc5bb9fe8061f5d0d381d28defa3056"/></dir></target><target name="mageskin"><dir name="adminhtml"><dir name="default"><dir name="default"><dir name="hipay"><dir name="js"><file name="rules.js" hash="c9f87ded0b3a8505e78ab2584c2f098f"/></dir></dir></dir></dir></dir></target></contents>
|
| 16 |
+
<compatible/>
|
| 17 |
+
<dependencies><required><php><min>5.2.0</min><max>6.0.0</max></php></required></dependencies>
|
| 18 |
+
</package>
|
skin/adminhtml/default/default/hipay/js/rules.js
ADDED
|
@@ -0,0 +1,386 @@
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
|
|
Â
|
| 1 |
+
/**
|
| 2 |
+
* Magento
|
| 3 |
+
*
|
| 4 |
+
* NOTICE OF LICENSE
|
| 5 |
+
*
|
| 6 |
+
* This source file is subject to the Academic Free License (AFL 3.0)
|
| 7 |
+
* that is bundled with this package in the file LICENSE_AFL.txt.
|
| 8 |
+
* It is also available through the world-wide-web at this URL:
|
| 9 |
+
* http://opensource.org/licenses/afl-3.0.php
|
| 10 |
+
* If you did not receive a copy of the license and are unable to
|
| 11 |
+
* obtain it through the world-wide-web, please send an email
|
| 12 |
+
* to license@magentocommerce.com so we can send you a copy immediately.
|
| 13 |
+
*
|
| 14 |
+
* DISCLAIMER
|
| 15 |
+
*
|
| 16 |
+
* Do not edit or add to this file if you wish to upgrade Magento to newer
|
| 17 |
+
* versions in the future. If you wish to customize Magento for your
|
| 18 |
+
* needs please refer to http://www.magentocommerce.com for more information.
|
| 19 |
+
*
|
| 20 |
+
* @category Mage
|
| 21 |
+
* @package Mage_Adminhtml
|
| 22 |
+
* @copyright Copyright (c) 2012 Magento Inc. (http://www.magentocommerce.com)
|
| 23 |
+
* @license http://opensource.org/licenses/afl-3.0.php Academic Free License (AFL 3.0)
|
| 24 |
+
*/
|
| 25 |
+
|
| 26 |
+
var VarienRulesForm = new Class.create();
|
| 27 |
+
VarienRulesForm.prototype = {
|
| 28 |
+
initialize : function(parent, newChildUrl){
|
| 29 |
+
this.parent = $(parent);
|
| 30 |
+
this.newChildUrl = newChildUrl;
|
| 31 |
+
this.shownElement = null;
|
| 32 |
+
this.updateElement = null;
|
| 33 |
+
this.chooserSelectedItems = $H({});
|
| 34 |
+
this.readOnly = false;
|
| 35 |
+
|
| 36 |
+
var elems = this.parent.getElementsByClassName('rule-param');
|
| 37 |
+
for (var i=0; i<elems.length; i++) {
|
| 38 |
+
this.initParam(elems[i]);
|
| 39 |
+
}
|
| 40 |
+
},
|
| 41 |
+
|
| 42 |
+
setReadonly: function (readonly){
|
| 43 |
+
this.readOnly = readonly;
|
| 44 |
+
var elems = this.parent.getElementsByClassName('rule-param-remove');
|
| 45 |
+
for (var i=0; i<elems.length; i++) {
|
| 46 |
+
var element = elems[i];
|
| 47 |
+
if (this.readOnly) {
|
| 48 |
+
element.hide();
|
| 49 |
+
} else {
|
| 50 |
+
element.show();
|
| 51 |
+
}
|
| 52 |
+
}
|
| 53 |
+
|
| 54 |
+
var elems = this.parent.getElementsByClassName('rule-param-new-child');
|
| 55 |
+
for (var i=0; i<elems.length; i++) {
|
| 56 |
+
var element = elems[i];
|
| 57 |
+
if (this.readOnly) {
|
| 58 |
+
element.hide();
|
| 59 |
+
} else {
|
| 60 |
+
element.show();
|
| 61 |
+
}
|
| 62 |
+
}
|
| 63 |
+
|
| 64 |
+
var elems = this.parent.getElementsByClassName('rule-param');
|
| 65 |
+
for (var i=0; i<elems.length; i++) {
|
| 66 |
+
var container = elems[i];
|
| 67 |
+
var label = Element.down(container, '.label');
|
| 68 |
+
if (label) {
|
| 69 |
+
if (this.readOnly) {
|
| 70 |
+
label.addClassName('label-disabled');
|
| 71 |
+
} else {
|
| 72 |
+
label.removeClassName('label-disabled');
|
| 73 |
+
}
|
| 74 |
+
}
|
| 75 |
+
}
|
| 76 |
+
},
|
| 77 |
+
|
| 78 |
+
initParam: function (container) {
|
| 79 |
+
container.rulesObject = this;
|
| 80 |
+
var label = Element.down(container, '.label');
|
| 81 |
+
if (label) {
|
| 82 |
+
Event.observe(label, 'click', this.showParamInputField.bind(this, container));
|
| 83 |
+
}
|
| 84 |
+
|
| 85 |
+
var elem = Element.down(container, '.element');
|
| 86 |
+
if (elem) {
|
| 87 |
+
var trig = elem.down('.rule-chooser-trigger');
|
| 88 |
+
if (trig) {
|
| 89 |
+
Event.observe(trig, 'click', this.toggleChooser.bind(this, container));
|
| 90 |
+
}
|
| 91 |
+
|
| 92 |
+
var apply = elem.down('.rule-param-apply');
|
| 93 |
+
if (apply) {
|
| 94 |
+
Event.observe(apply, 'click', this.hideParamInputField.bind(this, container));
|
| 95 |
+
} else {
|
| 96 |
+
elem = elem.down('.element-value-changer');
|
| 97 |
+
elem.container = container;
|
| 98 |
+
if (!elem.multiple) {
|
| 99 |
+
Event.observe(elem, 'change', this.hideParamInputField.bind(this, container));
|
| 100 |
+
}
|
| 101 |
+
Event.observe(elem, 'blur', this.hideParamInputField.bind(this, container));
|
| 102 |
+
}
|
| 103 |
+
}
|
| 104 |
+
|
| 105 |
+
var remove = Element.down(container, '.rule-param-remove');
|
| 106 |
+
if (remove) {
|
| 107 |
+
Event.observe(remove, 'click', this.removeRuleEntry.bind(this, container));
|
| 108 |
+
}
|
| 109 |
+
},
|
| 110 |
+
|
| 111 |
+
showChooserElement: function (chooser) {
|
| 112 |
+
this.chooserSelectedItems = $H({});
|
| 113 |
+
if (chooser.hasClassName('no-split')) {
|
| 114 |
+
this.chooserSelectedItems.set(this.updateElement.value, 1);
|
| 115 |
+
} else {
|
| 116 |
+
var values = this.updateElement.value.split(','), s = '';
|
| 117 |
+
for (i=0; i<values.length; i++) {
|
| 118 |
+
s = values[i].strip();
|
| 119 |
+
if (s!='') {
|
| 120 |
+
this.chooserSelectedItems.set(s,1);
|
| 121 |
+
}
|
| 122 |
+
}
|
| 123 |
+
}
|
| 124 |
+
new Ajax.Request(chooser.getAttribute('url'), {
|
| 125 |
+
evalScripts: true,
|
| 126 |
+
parameters: {'form_key': FORM_KEY, 'selected[]':this.chooserSelectedItems.keys() },
|
| 127 |
+
onSuccess: function(transport) {
|
| 128 |
+
if (this._processSuccess(transport)) {
|
| 129 |
+
$(chooser).update(transport.responseText);
|
| 130 |
+
this.showChooserLoaded(chooser, transport);
|
| 131 |
+
}
|
| 132 |
+
}.bind(this),
|
| 133 |
+
onFailure: this._processFailure.bind(this)
|
| 134 |
+
});
|
| 135 |
+
},
|
| 136 |
+
|
| 137 |
+
showChooserLoaded: function(chooser, transport) {
|
| 138 |
+
chooser.style.display = 'block';
|
| 139 |
+
},
|
| 140 |
+
|
| 141 |
+
showChooser: function (container, event) {
|
| 142 |
+
var chooser = container.up('li');
|
| 143 |
+
if (!chooser) {
|
| 144 |
+
return;
|
| 145 |
+
}
|
| 146 |
+
chooser = chooser.down('.rule-chooser');
|
| 147 |
+
if (!chooser) {
|
| 148 |
+
return;
|
| 149 |
+
}
|
| 150 |
+
this.showChooserElement(chooser);
|
| 151 |
+
},
|
| 152 |
+
|
| 153 |
+
hideChooser: function (container, event) {
|
| 154 |
+
var chooser = container.up('li');
|
| 155 |
+
if (!chooser) {
|
| 156 |
+
return;
|
| 157 |
+
}
|
| 158 |
+
chooser = chooser.down('.rule-chooser');
|
| 159 |
+
if (!chooser) {
|
| 160 |
+
return;
|
| 161 |
+
}
|
| 162 |
+
chooser.style.display = 'none';
|
| 163 |
+
},
|
| 164 |
+
|
| 165 |
+
toggleChooser: function (container, event) {
|
| 166 |
+
if (this.readOnly) {
|
| 167 |
+
return false;
|
| 168 |
+
}
|
| 169 |
+
|
| 170 |
+
var chooser = container.up('li').down('.rule-chooser');
|
| 171 |
+
if (!chooser) {
|
| 172 |
+
return;
|
| 173 |
+
}
|
| 174 |
+
if (chooser.style.display=='block') {
|
| 175 |
+
chooser.style.display = 'none';
|
| 176 |
+
this.cleanChooser(container, event);
|
| 177 |
+
} else {
|
| 178 |
+
this.showChooserElement(chooser);
|
| 179 |
+
}
|
| 180 |
+
},
|
| 181 |
+
|
| 182 |
+
cleanChooser: function (container, event) {
|
| 183 |
+
var chooser = container.up('li').down('.rule-chooser');
|
| 184 |
+
if (!chooser) {
|
| 185 |
+
return;
|
| 186 |
+
}
|
| 187 |
+
chooser.innerHTML = '';
|
| 188 |
+
},
|
| 189 |
+
|
| 190 |
+
showParamInputField: function (container, event) {
|
| 191 |
+
if (this.readOnly) {
|
| 192 |
+
return false;
|
| 193 |
+
}
|
| 194 |
+
|
| 195 |
+
if (this.shownElement) {
|
| 196 |
+
this.hideParamInputField(this.shownElement, event);
|
| 197 |
+
}
|
| 198 |
+
|
| 199 |
+
Element.addClassName(container, 'rule-param-edit');
|
| 200 |
+
var elemContainer = Element.down(container, '.element');
|
| 201 |
+
|
| 202 |
+
var elem = Element.down(elemContainer, 'input.input-text');
|
| 203 |
+
if (elem) {
|
| 204 |
+
elem.focus();
|
| 205 |
+
if (elem && elem.id && elem.id.match(/__value$/)) {
|
| 206 |
+
this.updateElement = elem;
|
| 207 |
+
//this.showChooser(container, event);
|
| 208 |
+
}
|
| 209 |
+
|
| 210 |
+
}
|
| 211 |
+
|
| 212 |
+
var elem = Element.down(elemContainer, '.element-value-changer');
|
| 213 |
+
if (elem) {
|
| 214 |
+
elem.focus();
|
| 215 |
+
// trying to emulate enter to open dropdown
|
| 216 |
+
// if (document.createEventObject) {
|
| 217 |
+
// var event = document.createEventObject();
|
| 218 |
+
// event.altKey = true;
|
| 219 |
+
// event.keyCode = 40;
|
| 220 |
+
// elem.fireEvent("onkeydown", evt);
|
| 221 |
+
// } else {
|
| 222 |
+
// var event = document.createEvent("Events");
|
| 223 |
+
// event.altKey = true;
|
| 224 |
+
// event.keyCode = 40;
|
| 225 |
+
// elem.dispatchEvent(event);
|
| 226 |
+
// }
|
| 227 |
+
}
|
| 228 |
+
|
| 229 |
+
this.shownElement = container;
|
| 230 |
+
},
|
| 231 |
+
|
| 232 |
+
hideParamInputField: function (container, event) {
|
| 233 |
+
Element.removeClassName(container, 'rule-param-edit');
|
| 234 |
+
var label = Element.down(container, '.label'), elem;
|
| 235 |
+
|
| 236 |
+
if (!container.hasClassName('rule-param-new-child')) {
|
| 237 |
+
elem = Element.down(container, '.element-value-changer');
|
| 238 |
+
if (elem && elem.options) {
|
| 239 |
+
var selectedOptions = [];
|
| 240 |
+
for (i=0; i<elem.options.length; i++) {
|
| 241 |
+
if (elem.options[i].selected) {
|
| 242 |
+
selectedOptions.push(elem.options[i].text);
|
| 243 |
+
}
|
| 244 |
+
}
|
| 245 |
+
|
| 246 |
+
var str = selectedOptions.join(', ');
|
| 247 |
+
label.innerHTML = str!='' ? str : '...';
|
| 248 |
+
// if (elem && elem.selectedIndex>=0) {
|
| 249 |
+
// var str = elem.options[elem.selectedIndex].text;
|
| 250 |
+
// label.innerHTML = str!='' ? str : '...';
|
| 251 |
+
// }
|
| 252 |
+
}
|
| 253 |
+
|
| 254 |
+
elem = Element.down(container, 'input.input-text');
|
| 255 |
+
if (elem) {
|
| 256 |
+
var str = elem.value.replace(/(^\s+|\s+$)/g, '');
|
| 257 |
+
elem.value = str;
|
| 258 |
+
if (str=='') {
|
| 259 |
+
str = '...';
|
| 260 |
+
} else if (str.length>30) {
|
| 261 |
+
str = str.substr(0, 30)+'...';
|
| 262 |
+
}
|
| 263 |
+
label.innerHTML = str.escapeHTML();
|
| 264 |
+
}
|
| 265 |
+
} else {
|
| 266 |
+
elem = Element.down(container, '.element-value-changer');
|
| 267 |
+
if (elem.value) {
|
| 268 |
+
this.addRuleNewChild(elem);
|
| 269 |
+
}
|
| 270 |
+
elem.value = '';
|
| 271 |
+
}
|
| 272 |
+
|
| 273 |
+
if (elem && elem.id && elem.id.match(/__value$/)) {
|
| 274 |
+
this.hideChooser(container, event);
|
| 275 |
+
this.updateElement = null;
|
| 276 |
+
}
|
| 277 |
+
|
| 278 |
+
this.shownElement = null;
|
| 279 |
+
},
|
| 280 |
+
|
| 281 |
+
addRuleNewChild: function (elem) {
|
| 282 |
+
var parent_id = elem.id.replace(/^.*__(.*)__.*$/, '$1');
|
| 283 |
+
var children_ul = $(elem.id.replace(/__/g, ':').replace(/[^:]*$/, 'children').replace(/:/g, '__'));
|
| 284 |
+
var max_id = 0, i;
|
| 285 |
+
var children_inputs = Selector.findChildElements(children_ul, $A(['input.hidden']));
|
| 286 |
+
var nb = children_inputs.length;
|
| 287 |
+
if (children_inputs.length) {
|
| 288 |
+
children_inputs.each(function(el){
|
| 289 |
+
if (el.id.match(/__type$/)) {
|
| 290 |
+
var idReplace = el.id.replace(/^.*__.*?([0-9]+)_.*__.*$/, '$1');// modified form clean payment method name
|
| 291 |
+
i = 1 * idReplace;
|
| 292 |
+
max_id = i > max_id ? i : max_id;
|
| 293 |
+
}
|
| 294 |
+
});
|
| 295 |
+
}
|
| 296 |
+
var new_id = parent_id + '--' + (max_id + 1);
|
| 297 |
+
//alert(elem.value + " :: " + elem.id);
|
| 298 |
+
var new_type = elem.value;
|
| 299 |
+
var new_elem = document.createElement('LI');
|
| 300 |
+
new_elem.className = 'rule-param-wait';
|
| 301 |
+
new_elem.innerHTML = Translator.translate('Please wait, loading...');
|
| 302 |
+
children_ul.insertBefore(new_elem, $(elem).up('li'));
|
| 303 |
+
|
| 304 |
+
new Ajax.Request(this.newChildUrl, {
|
| 305 |
+
evalScripts: true,
|
| 306 |
+
parameters: {form_key: FORM_KEY, type:new_type.replace('/','-'), id:new_id },
|
| 307 |
+
onComplete: this.onAddNewChildComplete.bind(this, new_elem),
|
| 308 |
+
onSuccess: function(transport) {
|
| 309 |
+
if(this._processSuccess(transport)) {
|
| 310 |
+
$(new_elem).update(transport.responseText);
|
| 311 |
+
}
|
| 312 |
+
}.bind(this),
|
| 313 |
+
onFailure: this._processFailure.bind(this)
|
| 314 |
+
});
|
| 315 |
+
},
|
| 316 |
+
|
| 317 |
+
_processSuccess : function(transport) {
|
| 318 |
+
if (transport.responseText.isJSON()) {
|
| 319 |
+
var response = transport.responseText.evalJSON()
|
| 320 |
+
if (response.error) {
|
| 321 |
+
alert(response.message);
|
| 322 |
+
}
|
| 323 |
+
if(response.ajaxExpired && response.ajaxRedirect) {
|
| 324 |
+
setLocation(response.ajaxRedirect);
|
| 325 |
+
}
|
| 326 |
+
return false;
|
| 327 |
+
}
|
| 328 |
+
return true;
|
| 329 |
+
},
|
| 330 |
+
|
| 331 |
+
_processFailure : function(transport) {
|
| 332 |
+
location.href = BASE_URL;
|
| 333 |
+
},
|
| 334 |
+
|
| 335 |
+
onAddNewChildComplete: function (new_elem) {
|
| 336 |
+
if (this.readOnly) {
|
| 337 |
+
return false;
|
| 338 |
+
}
|
| 339 |
+
|
| 340 |
+
$(new_elem).removeClassName('rule-param-wait');
|
| 341 |
+
var elems = new_elem.getElementsByClassName('rule-param');
|
| 342 |
+
for (var i=0; i<elems.length; i++) {
|
| 343 |
+
this.initParam(elems[i]);
|
| 344 |
+
}
|
| 345 |
+
},
|
| 346 |
+
|
| 347 |
+
removeRuleEntry: function (container, event) {
|
| 348 |
+
var li = Element.up(container, 'li');
|
| 349 |
+
li.parentNode.removeChild(li);
|
| 350 |
+
},
|
| 351 |
+
|
| 352 |
+
chooserGridInit: function (grid) {
|
| 353 |
+
//grid.reloadParams = {'selected[]':this.chooserSelectedItems.keys()};
|
| 354 |
+
},
|
| 355 |
+
|
| 356 |
+
chooserGridRowInit: function (grid, row) {
|
| 357 |
+
if (!grid.reloadParams) {
|
| 358 |
+
grid.reloadParams = {'selected[]':this.chooserSelectedItems.keys()};
|
| 359 |
+
}
|
| 360 |
+
},
|
| 361 |
+
|
| 362 |
+
chooserGridRowClick: function (grid, event) {
|
| 363 |
+
var trElement = Event.findElement(event, 'tr');
|
| 364 |
+
var isInput = Event.element(event).tagName == 'INPUT';
|
| 365 |
+
if (trElement) {
|
| 366 |
+
var checkbox = Element.select(trElement, 'input');
|
| 367 |
+
if (checkbox[0]) {
|
| 368 |
+
var checked = isInput ? checkbox[0].checked : !checkbox[0].checked;
|
| 369 |
+
grid.setCheckboxChecked(checkbox[0], checked);
|
| 370 |
+
|
| 371 |
+
}
|
| 372 |
+
}
|
| 373 |
+
},
|
| 374 |
+
|
| 375 |
+
chooserGridCheckboxCheck: function (grid, element, checked) {
|
| 376 |
+
if (checked) {
|
| 377 |
+
if (!element.up('th')) {
|
| 378 |
+
this.chooserSelectedItems.set(element.value,1);
|
| 379 |
+
}
|
| 380 |
+
} else {
|
| 381 |
+
this.chooserSelectedItems.unset(element.value);
|
| 382 |
+
}
|
| 383 |
+
grid.reloadParams = {'selected[]':this.chooserSelectedItems.keys()};
|
| 384 |
+
this.updateElement.value = this.chooserSelectedItems.keys().join(', ');
|
| 385 |
+
}
|
| 386 |
+
}
|
