Version Notes
Validation Order Id
Download this release
Release Info
| Developer | Oswaldo Lopez Garcia |
| Extension | Compropago_Payment_Extension |
| Version | 1.0.3 |
| Comparing to | |
| See all releases | |
Code changes from version 1.0.2 to 1.0.3
- app/code/community/Compropago/Block/Form.php +1 -0
- app/code/community/Compropago/Block/OnepageSuccess.php +2 -2
- app/code/community/Compropago/Model/Api.php +3 -14
- app/code/community/Compropago/Model/Providers.php +66 -0
- app/code/community/Compropago/Model/Standard.php +79 -76
- app/code/community/Compropago/controllers/WebhookController.php +34 -20
- app/code/community/Compropago/etc/system.xml +21 -11
- app/design/frontend/base/default/layout/compropago.xml +3 -4
- app/design/frontend/base/default/template/compropago/cash.phtml +32 -32
- app/design/frontend/base/default/template/compropago/onepage_success.phtml +6 -4
- package.xml +5 -5
- skin/frontend/base/default/css/compropago/compropago.css +1 -232
- skin/frontend/base/default/images/compropago/providers.png +0 -0
- skin/frontend/base/default/images/compropago/providers1.png +0 -0
app/code/community/Compropago/Block/Form.php
CHANGED
|
@@ -1,3 +1,4 @@
|
|
|
|
|
| 1 |
<?php
|
| 2 |
/**
|
| 3 |
* Description of Form
|
| 1 |
+
|
| 2 |
<?php
|
| 3 |
/**
|
| 4 |
* Description of Form
|
app/code/community/Compropago/Block/OnepageSuccess.php
CHANGED
|
@@ -1,5 +1,5 @@
|
|
| 1 |
-
<?php
|
| 2 |
|
|
|
|
| 3 |
class Compropago_Block_OnepageSuccess extends Mage_Checkout_Block_Onepage_Success
|
| 4 |
{
|
| 5 |
// Write your custom methods
|
|
@@ -10,4 +10,4 @@
|
|
| 10 |
$this->setTemplate('compropago/onepage_success.phtml');
|
| 11 |
return $outHtml;
|
| 12 |
}
|
| 13 |
-
}
|
|
|
|
| 1 |
|
| 2 |
+
<?php
|
| 3 |
class Compropago_Block_OnepageSuccess extends Mage_Checkout_Block_Onepage_Success
|
| 4 |
{
|
| 5 |
// Write your custom methods
|
| 10 |
$this->setTemplate('compropago/onepage_success.phtml');
|
| 11 |
return $outHtml;
|
| 12 |
}
|
| 13 |
+
}
|
app/code/community/Compropago/Model/Api.php
CHANGED
|
@@ -1,3 +1,4 @@
|
|
|
|
|
| 1 |
<?php
|
| 2 |
/**
|
| 3 |
* API para el consumo de los servicios
|
|
@@ -12,7 +13,6 @@ class Compropago_Model_Api
|
|
| 12 |
* @var string
|
| 13 |
*/
|
| 14 |
protected $_url = 'https://api.compropago.com/v1/charges';
|
| 15 |
-
|
| 16 |
/**
|
| 17 |
* respuesta sin parsear del servicio
|
| 18 |
* @var string
|
|
@@ -43,9 +43,7 @@ class Compropago_Model_Api
|
|
| 43 |
{
|
| 44 |
throw new Exception('parameter is not an array');
|
| 45 |
}
|
| 46 |
-
|
| 47 |
$info['url'] = $this->_url;
|
| 48 |
-
|
| 49 |
// datos para la peticion del servicio
|
| 50 |
$data = array(
|
| 51 |
'order_id' => $info['order_id'],
|
|
@@ -56,42 +54,34 @@ class Compropago_Model_Api
|
|
| 56 |
'customer_email' => $info['customer_email'],
|
| 57 |
'payment_type' => $info['payment_type']
|
| 58 |
);
|
| 59 |
-
|
| 60 |
$username = $info['client_secret'];
|
| 61 |
$password = $info['client_id'];
|
| 62 |
-
|
| 63 |
// consumo del servicio
|
| 64 |
$ch = curl_init();
|
| 65 |
curl_setopt($ch, CURLOPT_URL, $this->_url);
|
| 66 |
curl_setopt($ch, CURLOPT_HTTPHEADER, array('Content-Type:application/json'));
|
| 67 |
curl_setopt($ch, CURLOPT_HTTPAUTH, CURLAUTH_BASIC);
|
| 68 |
-
curl_setopt($ch, CURLOPT_FOLLOWLOCATION, false);
|
| 69 |
-
curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, true);
|
| 70 |
curl_setopt($ch, CURLOPT_USERPWD, $username . ":");
|
| 71 |
curl_setopt($ch, CURLOPT_CUSTOMREQUEST, "POST");
|
| 72 |
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
|
| 73 |
curl_setopt($ch, CURLOPT_POST, true);
|
| 74 |
curl_setopt($ch, CURLOPT_POSTFIELDS, json_encode($data));
|
| 75 |
-
|
| 76 |
// Blindly accept the certificate
|
| 77 |
$this->_response = curl_exec($ch);
|
| 78 |
curl_close($ch);
|
| 79 |
-
|
| 80 |
// tratamiento de la respuesta del servicio
|
| 81 |
$response = json_decode($this->_response,true);
|
| 82 |
-
|
| 83 |
// respuesta del servicio
|
| 84 |
-
if (
|
| 85 |
{
|
| 86 |
Mage::throwException("El servicio de Compropago no se encuentra disponible.");
|
| 87 |
}
|
| 88 |
|
| 89 |
-
if (
|
| 90 |
{
|
| 91 |
$errorMessage = $response['message'] . "\n";
|
| 92 |
Mage::throwException($errorMessage);
|
| 93 |
}
|
| 94 |
-
|
| 95 |
|
| 96 |
return $response;
|
| 97 |
}
|
|
@@ -104,5 +94,4 @@ class Compropago_Model_Api
|
|
| 104 |
{
|
| 105 |
return $this->_response;
|
| 106 |
}
|
| 107 |
-
|
| 108 |
}
|
| 1 |
+
|
| 2 |
<?php
|
| 3 |
/**
|
| 4 |
* API para el consumo de los servicios
|
| 13 |
* @var string
|
| 14 |
*/
|
| 15 |
protected $_url = 'https://api.compropago.com/v1/charges';
|
|
|
|
| 16 |
/**
|
| 17 |
* respuesta sin parsear del servicio
|
| 18 |
* @var string
|
| 43 |
{
|
| 44 |
throw new Exception('parameter is not an array');
|
| 45 |
}
|
|
|
|
| 46 |
$info['url'] = $this->_url;
|
|
|
|
| 47 |
// datos para la peticion del servicio
|
| 48 |
$data = array(
|
| 49 |
'order_id' => $info['order_id'],
|
| 54 |
'customer_email' => $info['customer_email'],
|
| 55 |
'payment_type' => $info['payment_type']
|
| 56 |
);
|
|
|
|
| 57 |
$username = $info['client_secret'];
|
| 58 |
$password = $info['client_id'];
|
|
|
|
| 59 |
// consumo del servicio
|
| 60 |
$ch = curl_init();
|
| 61 |
curl_setopt($ch, CURLOPT_URL, $this->_url);
|
| 62 |
curl_setopt($ch, CURLOPT_HTTPHEADER, array('Content-Type:application/json'));
|
| 63 |
curl_setopt($ch, CURLOPT_HTTPAUTH, CURLAUTH_BASIC);
|
|
|
|
|
|
|
| 64 |
curl_setopt($ch, CURLOPT_USERPWD, $username . ":");
|
| 65 |
curl_setopt($ch, CURLOPT_CUSTOMREQUEST, "POST");
|
| 66 |
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
|
| 67 |
curl_setopt($ch, CURLOPT_POST, true);
|
| 68 |
curl_setopt($ch, CURLOPT_POSTFIELDS, json_encode($data));
|
|
|
|
| 69 |
// Blindly accept the certificate
|
| 70 |
$this->_response = curl_exec($ch);
|
| 71 |
curl_close($ch);
|
|
|
|
| 72 |
// tratamiento de la respuesta del servicio
|
| 73 |
$response = json_decode($this->_response,true);
|
|
|
|
| 74 |
// respuesta del servicio
|
| 75 |
+
if ($response == null)
|
| 76 |
{
|
| 77 |
Mage::throwException("El servicio de Compropago no se encuentra disponible.");
|
| 78 |
}
|
| 79 |
|
| 80 |
+
if ($response['type'] == "error")
|
| 81 |
{
|
| 82 |
$errorMessage = $response['message'] . "\n";
|
| 83 |
Mage::throwException($errorMessage);
|
| 84 |
}
|
|
|
|
| 85 |
|
| 86 |
return $response;
|
| 87 |
}
|
| 94 |
{
|
| 95 |
return $this->_response;
|
| 96 |
}
|
|
|
|
| 97 |
}
|
app/code/community/Compropago/Model/Providers.php
ADDED
|
@@ -0,0 +1,66 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 1 |
+
<?php
|
| 2 |
+
/**
|
| 3 |
+
* @author Eduardo Aguilar <eduardo.aguilar@compropago.com>
|
| 4 |
+
*/
|
| 5 |
+
|
| 6 |
+
class Compropago_Model_Providers
|
| 7 |
+
{
|
| 8 |
+
public function toOptionArray()
|
| 9 |
+
{
|
| 10 |
+
$options = array();
|
| 11 |
+
|
| 12 |
+
foreach($this->getProviders() as $provider){
|
| 13 |
+
$options[] = array(
|
| 14 |
+
'value' => $provider['internal_name'],
|
| 15 |
+
'label' => $provider['name']
|
| 16 |
+
);
|
| 17 |
+
}
|
| 18 |
+
|
| 19 |
+
return $options;
|
| 20 |
+
}
|
| 21 |
+
|
| 22 |
+
private function getProviders()
|
| 23 |
+
{
|
| 24 |
+
$url = 'https://api.compropago.com/v1/providers/';
|
| 25 |
+
$url.= 'true';
|
| 26 |
+
|
| 27 |
+
$ch = curl_init();
|
| 28 |
+
curl_setopt($ch, CURLOPT_URL, $url);
|
| 29 |
+
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
|
| 30 |
+
curl_setopt($ch, CURLOPT_HTTPAUTH, CURLAUTH_BASIC);
|
| 31 |
+
curl_setopt($ch, CURLOPT_USERPWD, "" . ":" . "");
|
| 32 |
+
|
| 33 |
+
// Blindly accept the certificate
|
| 34 |
+
curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, false);
|
| 35 |
+
$response = curl_exec($ch);
|
| 36 |
+
curl_close($ch);
|
| 37 |
+
|
| 38 |
+
// tratamiento de la respuesta del servicio
|
| 39 |
+
$response = json_decode($response,true);
|
| 40 |
+
|
| 41 |
+
// respuesta del servicio
|
| 42 |
+
if ($response['type'] == "error")
|
| 43 |
+
{
|
| 44 |
+
$errorMessage = $response['message'] . "\n";
|
| 45 |
+
Mage::throwException($errorMessage);
|
| 46 |
+
}
|
| 47 |
+
|
| 48 |
+
$hash = array();
|
| 49 |
+
|
| 50 |
+
foreach($response as $record)
|
| 51 |
+
{
|
| 52 |
+
$hash[$record['rank']] = $record;
|
| 53 |
+
}
|
| 54 |
+
|
| 55 |
+
ksort($hash);
|
| 56 |
+
|
| 57 |
+
$records = array();
|
| 58 |
+
|
| 59 |
+
foreach($hash as $record)
|
| 60 |
+
{
|
| 61 |
+
$records []= $record;
|
| 62 |
+
}
|
| 63 |
+
|
| 64 |
+
return $records;
|
| 65 |
+
}
|
| 66 |
+
}
|
app/code/community/Compropago/Model/Standard.php
CHANGED
|
@@ -8,27 +8,24 @@ class Compropago_Model_Standard extends Mage_Payment_Model_Method_Abstract
|
|
| 8 |
{
|
| 9 |
protected $_code = 'compropago';
|
| 10 |
protected $_formBlockType = 'compropago/form';
|
| 11 |
-
|
| 12 |
-
protected $_canUseForMultiShipping = false;
|
| 13 |
protected $_canUseInternal = false;
|
| 14 |
protected $_isInitializeNeeded = true;
|
| 15 |
-
|
| 16 |
-
|
| 17 |
public function assignData($data)
|
| 18 |
{
|
| 19 |
$customer = Mage::getSingleton('customer/session')->getCustomer();
|
| 20 |
|
| 21 |
-
if (!($data instanceof Varien_Object))
|
| 22 |
-
{
|
| 23 |
$data = new Varien_Object($data);
|
| 24 |
}
|
| 25 |
-
$store_code = $data->getStoreCode();
|
| 26 |
-
|
| 27 |
-
//Verificamos si seleccionaron un establecimiento si no les dejamos por default OXXO
|
| 28 |
-
if (empty($store_code)){
|
| 29 |
-
$store_code = 'OXXO';
|
| 30 |
-
}
|
| 31 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 32 |
//Verificamos si existe el customer
|
| 33 |
if($customer->getFirstname()){
|
| 34 |
$info = array(
|
|
@@ -46,137 +43,143 @@ class Compropago_Model_Standard extends Mage_Payment_Model_Method_Abstract
|
|
| 46 |
"customer_name" => htmlentities($billing['firstname']),
|
| 47 |
"customer_email" => htmlentities($billing['email'])
|
| 48 |
);
|
| 49 |
-
}
|
| 50 |
|
| 51 |
$infoInstance = $this->getInfoInstance();
|
| 52 |
-
$infoInstance->setAdditionalData(serialize($info));
|
| 53 |
|
| 54 |
return $this;
|
| 55 |
-
}
|
| 56 |
-
|
| 57 |
public function initialize($paymentAction, $stateObject)
|
| 58 |
{
|
| 59 |
parent::initialize($paymentAction, $stateObject);
|
| 60 |
-
|
| 61 |
-
if($paymentAction != 'sale')
|
| 62 |
-
{
|
| 63 |
return $this;
|
| 64 |
}
|
| 65 |
-
|
| 66 |
// Set the default state of the new order.
|
| 67 |
$state = Mage_Sales_Model_Order::STATE_PENDING_PAYMENT; // state now = 'pending_payment'
|
|
|
|
|
|
|
|
|
|
| 68 |
$stateObject->setState($state);
|
| 69 |
-
$stateObject->setStatus($
|
| 70 |
$stateObject->setIsNotified(false);
|
| 71 |
-
|
| 72 |
-
//Retrieve cart/quote information.
|
| 73 |
$sessionCheckout = Mage::getSingleton('checkout/session');
|
| 74 |
$quoteId = $sessionCheckout->getQuoteId();
|
| 75 |
-
|
| 76 |
-
// obtiene el quote para informacion de la orden
|
| 77 |
$quote = Mage::getModel("sales/quote")->load($quoteId);
|
| 78 |
$grandTotal = $quote->getData('grand_total');
|
| 79 |
$subTotal = $quote->getSubtotal();
|
| 80 |
-
$shippingHandling = ($grandTotal-$subTotal);
|
| 81 |
-
|
| 82 |
$convertQuote = Mage::getSingleton('sales/convert_quote');
|
| 83 |
$order = $convertQuote->toOrder($quote);
|
| 84 |
-
$orderNumber = $order->getIncrementId();
|
| 85 |
-
$order1 = Mage::getModel('sales/order')->loadByIncrementId($orderNumber);
|
|
|
|
|
|
|
|
|
|
|
|
|
| 86 |
|
| 87 |
-
foreach ($order1->getAllItems() as $item) {
|
| 88 |
-
$name += $item->getName();
|
| 89 |
-
}
|
| 90 |
-
|
| 91 |
// obtener datos del pago en info y asignar monto total
|
| 92 |
$infoIntance = $this->getInfoInstance();
|
| 93 |
$info = unserialize($infoIntance->getAdditionalData());
|
| 94 |
$info['order_id'] = $orderNumber;
|
| 95 |
$info['order_price'] = $grandTotal;
|
| 96 |
-
$info['order_name'] = $name;
|
| 97 |
-
$info['
|
| 98 |
-
$info['
|
| 99 |
-
|
| 100 |
-
|
| 101 |
-
$logo = $this->getConfigData('logo_success_src') ? Mage::getDesign()->getSkinUrl('images/compropago/'.$this->getConfigData('logo_success_src')) : Mage::getDesign()->getSkinUrl(Mage::getStoreConfig('design/header/logo_src'));
|
| 102 |
-
|
| 103 |
-
// enviar pago
|
| 104 |
try
|
| 105 |
{
|
| 106 |
$Api = new Compropago_Model_Api();
|
| 107 |
-
$response = $Api->payment($info);
|
| 108 |
}
|
| 109 |
catch (Exception $error)
|
| 110 |
-
{
|
| 111 |
Mage::throwException($error->getMessage());
|
| 112 |
}
|
| 113 |
|
| 114 |
-
|
| 115 |
-
|
| 116 |
-
|
| 117 |
-
|
| 118 |
-
}
|
| 119 |
-
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 120 |
Mage::getSingleton('core/session')->setCompropagoId($id);
|
| 121 |
-
|
| 122 |
return $this;
|
| 123 |
}
|
| 124 |
-
|
| 125 |
public function getProviders()
|
| 126 |
-
{
|
| 127 |
-
if (trim($this->getConfigData('
|
| 128 |
-
|| trim($this->getConfigData('
|
| 129 |
) {
|
| 130 |
Mage::throwException("Datos incompletos del servicio, contacte al administrador del sitio");
|
| 131 |
}
|
| 132 |
-
|
| 133 |
$url = 'https://api.compropago.com/v1/providers/';
|
| 134 |
$url.= 'true';
|
| 135 |
-
$username = trim($this->getConfigData('
|
| 136 |
-
$password = trim($this->getConfigData('
|
| 137 |
|
| 138 |
$ch = curl_init();
|
| 139 |
curl_setopt($ch, CURLOPT_URL, $url);
|
| 140 |
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
|
| 141 |
curl_setopt($ch, CURLOPT_HTTPAUTH, CURLAUTH_BASIC);
|
| 142 |
curl_setopt($ch, CURLOPT_USERPWD, $username . ":" . $password);
|
| 143 |
-
|
| 144 |
// Blindly accept the certificate
|
| 145 |
curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, false);
|
| 146 |
$this->_response = curl_exec($ch);
|
| 147 |
curl_close($ch);
|
| 148 |
-
|
| 149 |
// tratamiento de la respuesta del servicio
|
| 150 |
$response = json_decode($this->_response,true);
|
| 151 |
|
| 152 |
-
// respuesta del servicio
|
| 153 |
-
if (
|
| 154 |
-
|
| 155 |
-
$errorMessage = $response['message'] . "\n";
|
| 156 |
Mage::throwException($errorMessage);
|
| 157 |
}
|
| 158 |
|
| 159 |
|
|
|
|
|
|
|
| 160 |
$hash = array();
|
| 161 |
-
|
| 162 |
-
foreach($response as $record)
|
| 163 |
-
|
| 164 |
-
|
|
|
|
|
|
|
|
|
|
| 165 |
}
|
| 166 |
-
|
| 167 |
ksort($hash);
|
| 168 |
-
|
| 169 |
-
|
| 170 |
-
{
|
| 171 |
$records []= $record;
|
| 172 |
-
}
|
| 173 |
|
| 174 |
return $records;
|
| 175 |
}
|
| 176 |
-
|
| 177 |
public function showLogoProviders()
|
| 178 |
{
|
| 179 |
return ( (int)trim($this->getConfigData("provider")) == 1 ? true : false );
|
| 180 |
-
}
|
| 181 |
-
|
| 182 |
-
}
|
| 8 |
{
|
| 9 |
protected $_code = 'compropago';
|
| 10 |
protected $_formBlockType = 'compropago/form';
|
| 11 |
+
|
| 12 |
+
protected $_canUseForMultiShipping = false;
|
| 13 |
protected $_canUseInternal = false;
|
| 14 |
protected $_isInitializeNeeded = true;
|
| 15 |
+
|
|
|
|
| 16 |
public function assignData($data)
|
| 17 |
{
|
| 18 |
$customer = Mage::getSingleton('customer/session')->getCustomer();
|
| 19 |
|
| 20 |
+
if (!($data instanceof Varien_Object)){
|
|
|
|
| 21 |
$data = new Varien_Object($data);
|
| 22 |
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 23 |
|
| 24 |
+
if ($data->getStoreCode() != ''){
|
| 25 |
+
$store_code = $data->getStoreCode();
|
| 26 |
+
} else {
|
| 27 |
+
$store_code = 'OXXO';
|
| 28 |
+
}
|
| 29 |
//Verificamos si existe el customer
|
| 30 |
if($customer->getFirstname()){
|
| 31 |
$info = array(
|
| 43 |
"customer_name" => htmlentities($billing['firstname']),
|
| 44 |
"customer_email" => htmlentities($billing['email'])
|
| 45 |
);
|
| 46 |
+
}
|
| 47 |
|
| 48 |
$infoInstance = $this->getInfoInstance();
|
| 49 |
+
$infoInstance->setAdditionalData(serialize($info));
|
| 50 |
|
| 51 |
return $this;
|
| 52 |
+
}
|
| 53 |
+
|
| 54 |
public function initialize($paymentAction, $stateObject)
|
| 55 |
{
|
| 56 |
parent::initialize($paymentAction, $stateObject);
|
| 57 |
+
|
| 58 |
+
if($paymentAction != 'sale'){
|
|
|
|
| 59 |
return $this;
|
| 60 |
}
|
| 61 |
+
|
| 62 |
// Set the default state of the new order.
|
| 63 |
$state = Mage_Sales_Model_Order::STATE_PENDING_PAYMENT; // state now = 'pending_payment'
|
| 64 |
+
//Mage::log('state->'.$state,null,'compropago.log');
|
| 65 |
+
$default_status = 'pending';
|
| 66 |
+
|
| 67 |
$stateObject->setState($state);
|
| 68 |
+
$stateObject->setStatus($default_status);
|
| 69 |
$stateObject->setIsNotified(false);
|
| 70 |
+
|
| 71 |
+
//Retrieve cart/quote information.
|
| 72 |
$sessionCheckout = Mage::getSingleton('checkout/session');
|
| 73 |
$quoteId = $sessionCheckout->getQuoteId();
|
| 74 |
+
// obtiene el quote para informacion de la orden
|
|
|
|
| 75 |
$quote = Mage::getModel("sales/quote")->load($quoteId);
|
| 76 |
$grandTotal = $quote->getData('grand_total');
|
| 77 |
$subTotal = $quote->getSubtotal();
|
| 78 |
+
$shippingHandling = ($grandTotal-$subTotal);
|
| 79 |
+
|
| 80 |
$convertQuote = Mage::getSingleton('sales/convert_quote');
|
| 81 |
$order = $convertQuote->toOrder($quote);
|
| 82 |
+
$orderNumber = $order->getIncrementId();
|
| 83 |
+
$order1 = Mage::getModel('sales/order')->loadByIncrementId($orderNumber);
|
| 84 |
+
|
| 85 |
+
foreach ($order1->getAllItems() as $item) {
|
| 86 |
+
$name .= $item->getName();
|
| 87 |
+
}
|
| 88 |
|
|
|
|
|
|
|
|
|
|
|
|
|
| 89 |
// obtener datos del pago en info y asignar monto total
|
| 90 |
$infoIntance = $this->getInfoInstance();
|
| 91 |
$info = unserialize($infoIntance->getAdditionalData());
|
| 92 |
$info['order_id'] = $orderNumber;
|
| 93 |
$info['order_price'] = $grandTotal;
|
| 94 |
+
$info['order_name'] = $name;
|
| 95 |
+
$info['client_secret'] = trim($this->getConfigData('private_key'));
|
| 96 |
+
$info['client_id'] = trim($this->getConfigData('public_key'));
|
| 97 |
+
// enviar pago
|
|
|
|
|
|
|
|
|
|
|
|
|
| 98 |
try
|
| 99 |
{
|
| 100 |
$Api = new Compropago_Model_Api();
|
| 101 |
+
$response = $Api->payment($info);
|
| 102 |
}
|
| 103 |
catch (Exception $error)
|
| 104 |
+
{
|
| 105 |
Mage::throwException($error->getMessage());
|
| 106 |
}
|
| 107 |
|
| 108 |
+
// respuesta del servicio
|
| 109 |
+
if ($response == null)
|
| 110 |
+
{
|
| 111 |
+
Mage::throwException("El servicio de Compropago no se encuentra disponible.");
|
| 112 |
+
}
|
| 113 |
+
|
| 114 |
+
if ($response['type'] == "error")
|
| 115 |
+
{
|
| 116 |
+
$errorMessage = $response['message'] . "\n";
|
| 117 |
+
Mage::throwException($errorMessage);
|
| 118 |
+
}
|
| 119 |
+
|
| 120 |
+
if($response['api_version'] == '1.0'){
|
| 121 |
+
$id = $response['payment_id'];
|
| 122 |
+
} elseif ($response['api_version'] == '1.1' || $response['api_version'] == '1.2') {
|
| 123 |
+
$id = $response['id'];
|
| 124 |
+
}
|
| 125 |
+
|
| 126 |
Mage::getSingleton('core/session')->setCompropagoId($id);
|
|
|
|
| 127 |
return $this;
|
| 128 |
}
|
|
|
|
| 129 |
public function getProviders()
|
| 130 |
+
{
|
| 131 |
+
if (trim($this->getConfigData('private_key')) == ''
|
| 132 |
+
|| trim($this->getConfigData('public_key')) == ''
|
| 133 |
) {
|
| 134 |
Mage::throwException("Datos incompletos del servicio, contacte al administrador del sitio");
|
| 135 |
}
|
|
|
|
| 136 |
$url = 'https://api.compropago.com/v1/providers/';
|
| 137 |
$url.= 'true';
|
| 138 |
+
$username = trim($this->getConfigData('private_key'));
|
| 139 |
+
$password = trim($this->getConfigData('public_key'));
|
| 140 |
|
| 141 |
$ch = curl_init();
|
| 142 |
curl_setopt($ch, CURLOPT_URL, $url);
|
| 143 |
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
|
| 144 |
curl_setopt($ch, CURLOPT_HTTPAUTH, CURLAUTH_BASIC);
|
| 145 |
curl_setopt($ch, CURLOPT_USERPWD, $username . ":" . $password);
|
|
|
|
| 146 |
// Blindly accept the certificate
|
| 147 |
curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, false);
|
| 148 |
$this->_response = curl_exec($ch);
|
| 149 |
curl_close($ch);
|
|
|
|
| 150 |
// tratamiento de la respuesta del servicio
|
| 151 |
$response = json_decode($this->_response,true);
|
| 152 |
|
| 153 |
+
// respuesta del servicio
|
| 154 |
+
if ($response['type'] == "error"){
|
| 155 |
+
$errorMessage = $response['message'] . "\n";
|
|
|
|
| 156 |
Mage::throwException($errorMessage);
|
| 157 |
}
|
| 158 |
|
| 159 |
|
| 160 |
+
$filter = explode(",",$this->getConfigData('provider_available'));
|
| 161 |
+
|
| 162 |
$hash = array();
|
| 163 |
+
|
| 164 |
+
foreach($response as $record){
|
| 165 |
+
foreach($filter as $value){
|
| 166 |
+
if($record['internal_name'] == $value){
|
| 167 |
+
$hash[$record['rank']] = $record;
|
| 168 |
+
}
|
| 169 |
+
}
|
| 170 |
}
|
| 171 |
+
|
| 172 |
ksort($hash);
|
| 173 |
+
$records = array();
|
| 174 |
+
|
| 175 |
+
foreach($hash as $record){
|
| 176 |
$records []= $record;
|
| 177 |
+
}
|
| 178 |
|
| 179 |
return $records;
|
| 180 |
}
|
|
|
|
| 181 |
public function showLogoProviders()
|
| 182 |
{
|
| 183 |
return ( (int)trim($this->getConfigData("provider")) == 1 ? true : false );
|
| 184 |
+
}
|
| 185 |
+
}
|
|
|
app/code/community/Compropago/controllers/WebhookController.php
CHANGED
|
@@ -10,7 +10,6 @@ class Compropago_WebhookController extends Mage_Core_Controller_Front_Action{
|
|
| 10 |
public function _construct() {
|
| 11 |
$this->_model = Mage::getModel('compropago/Standard');
|
| 12 |
}
|
| 13 |
-
|
| 14 |
public function indexAction(){
|
| 15 |
$params = $this->getRequest()->getParams();
|
| 16 |
$body = @file_get_contents('php://input');
|
|
@@ -20,10 +19,10 @@ class Compropago_WebhookController extends Mage_Core_Controller_Front_Action{
|
|
| 20 |
if ($event_json->{'api_version'} === '1.1') {
|
| 21 |
if ($event_json->{'id'}){
|
| 22 |
$order = $this->verifyOrder($event_json->{'id'});
|
| 23 |
-
$type = $order['type'];
|
| 24 |
|
| 25 |
-
if (isset($order['id'])){
|
| 26 |
-
if ($order['id'] === $event_json->{'id'}) {
|
| 27 |
$order_id = $order['order_info']['order_id'];
|
| 28 |
$this->changeStatus($order_id, $type);
|
| 29 |
} else {
|
|
@@ -37,7 +36,6 @@ class Compropago_WebhookController extends Mage_Core_Controller_Front_Action{
|
|
| 37 |
if ($event_json->data->object->{'id'}){
|
| 38 |
$order = $this->verifyOrder($event_json->data->object->{'id'});
|
| 39 |
$type = $order['type'];
|
| 40 |
-
|
| 41 |
if (isset($order['data']['object']['id'])){
|
| 42 |
if ($order['data']['object']['id'] === $event_json->data->object->{'id'}) {
|
| 43 |
$order_id = $order['data']['object']['payment_details']['product_id'];
|
|
@@ -55,49 +53,65 @@ class Compropago_WebhookController extends Mage_Core_Controller_Front_Action{
|
|
| 55 |
echo 'Order not valid';
|
| 56 |
}
|
| 57 |
}
|
| 58 |
-
|
| 59 |
public function changeStatus($order_id, $type){
|
| 60 |
$_order = Mage::getModel('sales/order')->loadByIncrementId($order_id);
|
| 61 |
-
|
| 62 |
switch ($type) {
|
| 63 |
case 'charge.pending':
|
| 64 |
-
$status = $this->_model->getConfigData('
|
| 65 |
$message = 'The user has not completed the payment process yet.';
|
| 66 |
-
$_order->
|
|
|
|
|
|
|
|
|
|
|
|
|
| 67 |
break;
|
| 68 |
case 'charge.success':
|
| 69 |
-
$message = 'ComproPago automatically confirmed payment for this order.';
|
| 70 |
$status = $this->_model->getConfigData('order_status_approved');
|
| 71 |
-
$
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 72 |
break;
|
| 73 |
-
case 'charge.declined':
|
| 74 |
$status = $this->_model->getConfigData('order_status_in_process');
|
| 75 |
$message = 'The user has not completed the payment process yet.';
|
| 76 |
-
$_order->
|
|
|
|
|
|
|
|
|
|
|
|
|
| 77 |
break;
|
| 78 |
case 'charge.deleted':
|
| 79 |
$status = $this->_model->getConfigData('order_status_cancelled');
|
| 80 |
-
$message = 'The user has not completed the payment and the order was cancelled.';
|
| 81 |
-
$_order->
|
|
|
|
|
|
|
|
|
|
|
|
|
| 82 |
break;
|
| 83 |
case 'charge.expired':
|
| 84 |
$status = $this->_model->getConfigData('order_status_cancelled');
|
| 85 |
-
$message = 'The user has not completed the payment and the order was cancelled.';
|
| 86 |
-
$_order->
|
|
|
|
|
|
|
|
|
|
|
|
|
| 87 |
break;
|
| 88 |
default:
|
| 89 |
$status = $this->_model->getConfigData('order_status_in_process');
|
| 90 |
$message = "";
|
| 91 |
$_order->addStatusToHistory($status, $message,true);
|
| 92 |
}
|
| 93 |
-
|
| 94 |
$_order->save();
|
| 95 |
}
|
| 96 |
-
|
| 97 |
public function verifyOrder($id){
|
| 98 |
$url = 'https://api.compropago.com/v1/charges/';
|
| 99 |
$url .= $id;
|
| 100 |
-
$username = trim($this->_model->getConfigData('
|
| 101 |
$ch = curl_init();
|
| 102 |
curl_setopt($ch, CURLOPT_URL, $url);
|
| 103 |
curl_setopt($ch, CURLOPT_HTTPHEADER, array('Content-Type:application/json'));
|
| 10 |
public function _construct() {
|
| 11 |
$this->_model = Mage::getModel('compropago/Standard');
|
| 12 |
}
|
|
|
|
| 13 |
public function indexAction(){
|
| 14 |
$params = $this->getRequest()->getParams();
|
| 15 |
$body = @file_get_contents('php://input');
|
| 19 |
if ($event_json->{'api_version'} === '1.1') {
|
| 20 |
if ($event_json->{'id'}){
|
| 21 |
$order = $this->verifyOrder($event_json->{'id'});
|
| 22 |
+
$type = $order['type'];
|
| 23 |
|
| 24 |
+
if (isset($order['id'])){
|
| 25 |
+
if ($order['id'] === $event_json->{'id'}) {
|
| 26 |
$order_id = $order['order_info']['order_id'];
|
| 27 |
$this->changeStatus($order_id, $type);
|
| 28 |
} else {
|
| 36 |
if ($event_json->data->object->{'id'}){
|
| 37 |
$order = $this->verifyOrder($event_json->data->object->{'id'});
|
| 38 |
$type = $order['type'];
|
|
|
|
| 39 |
if (isset($order['data']['object']['id'])){
|
| 40 |
if ($order['data']['object']['id'] === $event_json->data->object->{'id'}) {
|
| 41 |
$order_id = $order['data']['object']['payment_details']['product_id'];
|
| 53 |
echo 'Order not valid';
|
| 54 |
}
|
| 55 |
}
|
|
|
|
| 56 |
public function changeStatus($order_id, $type){
|
| 57 |
$_order = Mage::getModel('sales/order')->loadByIncrementId($order_id);
|
|
|
|
| 58 |
switch ($type) {
|
| 59 |
case 'charge.pending':
|
| 60 |
+
$status = $this->_model->getConfigData('order_status_new');
|
| 61 |
$message = 'The user has not completed the payment process yet.';
|
| 62 |
+
$_order->setData('state',$status);
|
| 63 |
+
$_order->setStatus($status);
|
| 64 |
+
$history = $_order->addStatusHistoryComment($message);
|
| 65 |
+
$history->setIsCustomerNotified(false);
|
| 66 |
+
$_order->save();
|
| 67 |
break;
|
| 68 |
case 'charge.success':
|
|
|
|
| 69 |
$status = $this->_model->getConfigData('order_status_approved');
|
| 70 |
+
$message = 'ComproPago automatically confirmed payment for this order.';
|
| 71 |
+
$_order->setData('state',$status);
|
| 72 |
+
$_order->setStatus($status);
|
| 73 |
+
$history = $_order->addStatusHistoryComment($message);
|
| 74 |
+
$history->setIsCustomerNotified(true);
|
| 75 |
+
$_order->save();
|
| 76 |
break;
|
| 77 |
+
case 'charge.declined':
|
| 78 |
$status = $this->_model->getConfigData('order_status_in_process');
|
| 79 |
$message = 'The user has not completed the payment process yet.';
|
| 80 |
+
$_order->setData('state',$status);
|
| 81 |
+
$_order->setStatus($status);
|
| 82 |
+
$history = $_order->addStatusHistoryComment($message);
|
| 83 |
+
$history->setIsCustomerNotified(false);
|
| 84 |
+
$_order->save();
|
| 85 |
break;
|
| 86 |
case 'charge.deleted':
|
| 87 |
$status = $this->_model->getConfigData('order_status_cancelled');
|
| 88 |
+
$message = 'The user has not completed the payment and the order was cancelled.';
|
| 89 |
+
$_order->setData('state',$status);
|
| 90 |
+
$_order->setStatus($status);
|
| 91 |
+
$history = $_order->addStatusHistoryComment($message);
|
| 92 |
+
$history->setIsCustomerNotified(false);
|
| 93 |
+
$_order->save();
|
| 94 |
break;
|
| 95 |
case 'charge.expired':
|
| 96 |
$status = $this->_model->getConfigData('order_status_cancelled');
|
| 97 |
+
$message = 'The user has not completed the payment and the order was cancelled.';
|
| 98 |
+
$_order->setData('state',$status);
|
| 99 |
+
$_order->setStatus($status);
|
| 100 |
+
$history = $_order->addStatusHistoryComment($message);
|
| 101 |
+
$history->setIsCustomerNotified(false);
|
| 102 |
+
$_order->save();
|
| 103 |
break;
|
| 104 |
default:
|
| 105 |
$status = $this->_model->getConfigData('order_status_in_process');
|
| 106 |
$message = "";
|
| 107 |
$_order->addStatusToHistory($status, $message,true);
|
| 108 |
}
|
|
|
|
| 109 |
$_order->save();
|
| 110 |
}
|
|
|
|
| 111 |
public function verifyOrder($id){
|
| 112 |
$url = 'https://api.compropago.com/v1/charges/';
|
| 113 |
$url .= $id;
|
| 114 |
+
$username = trim($this->_model->getConfigData('private_key'));
|
| 115 |
$ch = curl_init();
|
| 116 |
curl_setopt($ch, CURLOPT_URL, $url);
|
| 117 |
curl_setopt($ch, CURLOPT_HTTPHEADER, array('Content-Type:application/json'));
|
app/code/community/Compropago/etc/system.xml
CHANGED
|
@@ -10,6 +10,7 @@
|
|
| 10 |
<show_in_website>1</show_in_website>
|
| 11 |
<show_in_store>0</show_in_store>
|
| 12 |
<fields>
|
|
|
|
| 13 |
<active translate="label">
|
| 14 |
<label>Habilitar</label>
|
| 15 |
<frontend_type>select</frontend_type>
|
|
@@ -19,6 +20,7 @@
|
|
| 19 |
<show_in_website>1</show_in_website>
|
| 20 |
<show_in_store>0</show_in_store>
|
| 21 |
</active>
|
|
|
|
| 22 |
<title translate="label,comment">
|
| 23 |
<label>Título</label>
|
| 24 |
<comment>
|
|
@@ -32,22 +34,24 @@
|
|
| 32 |
<show_in_website>1</show_in_website>
|
| 33 |
<show_in_store>0</show_in_store>
|
| 34 |
</title>
|
| 35 |
-
|
| 36 |
<label>Llave Publica</label>
|
| 37 |
<frontend_type>text</frontend_type>
|
| 38 |
<sort_order>6</sort_order>
|
| 39 |
<show_in_default>1</show_in_default>
|
| 40 |
<show_in_website>1</show_in_website>
|
| 41 |
<show_in_store>0</show_in_store>
|
| 42 |
-
</
|
| 43 |
-
|
|
|
|
| 44 |
<label>Llave Privada</label>
|
| 45 |
<frontend_type>text</frontend_type>
|
| 46 |
<sort_order>7</sort_order>
|
| 47 |
<show_in_default>1</show_in_default>
|
| 48 |
<show_in_website>1</show_in_website>
|
| 49 |
<show_in_store>0</show_in_store>
|
| 50 |
-
</
|
|
|
|
| 51 |
<provider translate="label">
|
| 52 |
<label>Habilitar Logos para Establecimientos</label>
|
| 53 |
<frontend_type>select</frontend_type>
|
|
@@ -57,20 +61,22 @@
|
|
| 57 |
<show_in_website>1</show_in_website>
|
| 58 |
<show_in_store>1</show_in_store>
|
| 59 |
</provider>
|
| 60 |
-
|
| 61 |
-
|
| 62 |
-
|
| 63 |
-
<frontend_type>
|
|
|
|
| 64 |
<sort_order>10</sort_order>
|
| 65 |
<show_in_default>1</show_in_default>
|
| 66 |
<show_in_website>1</show_in_website>
|
| 67 |
<show_in_store>1</show_in_store>
|
| 68 |
-
</
|
|
|
|
| 69 |
<order_status_new translate="label">
|
| 70 |
<label>Elegir estado de nuevas ordenes</label>
|
| 71 |
<comment>
|
| 72 |
<![CDATA[
|
| 73 |
-
Ir a "system -> OrderStatuses" y asignar una nueva orden de estado personalizada en la opción de 'new'.
|
| 74 |
]]>
|
| 75 |
</comment>
|
| 76 |
<frontend_type>select</frontend_type>
|
|
@@ -80,6 +86,7 @@
|
|
| 80 |
<show_in_website>1</show_in_website>
|
| 81 |
<show_in_store>1</show_in_store>
|
| 82 |
</order_status_new>
|
|
|
|
| 83 |
<order_status_approved translate="label">
|
| 84 |
<label>Elegir estado de ordenes aprobadas</label>
|
| 85 |
<comment>
|
|
@@ -94,6 +101,7 @@
|
|
| 94 |
<show_in_website>1</show_in_website>
|
| 95 |
<show_in_store>1</show_in_store>
|
| 96 |
</order_status_approved>
|
|
|
|
| 97 |
<order_status_in_process translate="label">
|
| 98 |
<label>Elegir estado de ordenes pendientes</label>
|
| 99 |
<comment>
|
|
@@ -108,11 +116,12 @@
|
|
| 108 |
<show_in_website>1</show_in_website>
|
| 109 |
<show_in_store>1</show_in_store>
|
| 110 |
</order_status_in_process>
|
|
|
|
| 111 |
<order_status_cancelled translate="label">
|
| 112 |
<label>Elegir el estado de las ordenes canceladas</label>
|
| 113 |
<comment>
|
| 114 |
<![CDATA[
|
| 115 |
-
Ir a "system -> OrderStatuses" y asignar una nueva orden de estado personalizada en la opción de 'new'.
|
| 116 |
]]>
|
| 117 |
</comment>
|
| 118 |
<frontend_type>select</frontend_type>
|
|
@@ -122,6 +131,7 @@
|
|
| 122 |
<show_in_website>1</show_in_website>
|
| 123 |
<show_in_store>1</show_in_store>
|
| 124 |
</order_status_cancelled>
|
|
|
|
| 125 |
</fields>
|
| 126 |
</compropago>
|
| 127 |
</groups>
|
| 10 |
<show_in_website>1</show_in_website>
|
| 11 |
<show_in_store>0</show_in_store>
|
| 12 |
<fields>
|
| 13 |
+
|
| 14 |
<active translate="label">
|
| 15 |
<label>Habilitar</label>
|
| 16 |
<frontend_type>select</frontend_type>
|
| 20 |
<show_in_website>1</show_in_website>
|
| 21 |
<show_in_store>0</show_in_store>
|
| 22 |
</active>
|
| 23 |
+
|
| 24 |
<title translate="label,comment">
|
| 25 |
<label>Título</label>
|
| 26 |
<comment>
|
| 34 |
<show_in_website>1</show_in_website>
|
| 35 |
<show_in_store>0</show_in_store>
|
| 36 |
</title>
|
| 37 |
+
<public_key translate="label">
|
| 38 |
<label>Llave Publica</label>
|
| 39 |
<frontend_type>text</frontend_type>
|
| 40 |
<sort_order>6</sort_order>
|
| 41 |
<show_in_default>1</show_in_default>
|
| 42 |
<show_in_website>1</show_in_website>
|
| 43 |
<show_in_store>0</show_in_store>
|
| 44 |
+
</public_key>
|
| 45 |
+
|
| 46 |
+
<private_key translate="label">
|
| 47 |
<label>Llave Privada</label>
|
| 48 |
<frontend_type>text</frontend_type>
|
| 49 |
<sort_order>7</sort_order>
|
| 50 |
<show_in_default>1</show_in_default>
|
| 51 |
<show_in_website>1</show_in_website>
|
| 52 |
<show_in_store>0</show_in_store>
|
| 53 |
+
</private_key>
|
| 54 |
+
|
| 55 |
<provider translate="label">
|
| 56 |
<label>Habilitar Logos para Establecimientos</label>
|
| 57 |
<frontend_type>select</frontend_type>
|
| 61 |
<show_in_website>1</show_in_website>
|
| 62 |
<show_in_store>1</show_in_store>
|
| 63 |
</provider>
|
| 64 |
+
|
| 65 |
+
<provider_available translate="label">
|
| 66 |
+
<label>Seleccionar Proveedores de pago</label>
|
| 67 |
+
<frontend_type>multiselect</frontend_type>
|
| 68 |
+
<source_model>compropago/providers</source_model>
|
| 69 |
<sort_order>10</sort_order>
|
| 70 |
<show_in_default>1</show_in_default>
|
| 71 |
<show_in_website>1</show_in_website>
|
| 72 |
<show_in_store>1</show_in_store>
|
| 73 |
+
</provider_available>
|
| 74 |
+
|
| 75 |
<order_status_new translate="label">
|
| 76 |
<label>Elegir estado de nuevas ordenes</label>
|
| 77 |
<comment>
|
| 78 |
<![CDATA[
|
| 79 |
+
Ir a "system -> OrderStatuses" y asignar una nueva orden de estado personalizada en la opción de 'new'.
|
| 80 |
]]>
|
| 81 |
</comment>
|
| 82 |
<frontend_type>select</frontend_type>
|
| 86 |
<show_in_website>1</show_in_website>
|
| 87 |
<show_in_store>1</show_in_store>
|
| 88 |
</order_status_new>
|
| 89 |
+
|
| 90 |
<order_status_approved translate="label">
|
| 91 |
<label>Elegir estado de ordenes aprobadas</label>
|
| 92 |
<comment>
|
| 101 |
<show_in_website>1</show_in_website>
|
| 102 |
<show_in_store>1</show_in_store>
|
| 103 |
</order_status_approved>
|
| 104 |
+
|
| 105 |
<order_status_in_process translate="label">
|
| 106 |
<label>Elegir estado de ordenes pendientes</label>
|
| 107 |
<comment>
|
| 116 |
<show_in_website>1</show_in_website>
|
| 117 |
<show_in_store>1</show_in_store>
|
| 118 |
</order_status_in_process>
|
| 119 |
+
|
| 120 |
<order_status_cancelled translate="label">
|
| 121 |
<label>Elegir el estado de las ordenes canceladas</label>
|
| 122 |
<comment>
|
| 123 |
<![CDATA[
|
| 124 |
+
Ir a "system -> OrderStatuses" y asignar una nueva orden de estado personalizada en la opción de 'new'.
|
| 125 |
]]>
|
| 126 |
</comment>
|
| 127 |
<frontend_type>select</frontend_type>
|
| 131 |
<show_in_website>1</show_in_website>
|
| 132 |
<show_in_store>1</show_in_store>
|
| 133 |
</order_status_cancelled>
|
| 134 |
+
|
| 135 |
</fields>
|
| 136 |
</compropago>
|
| 137 |
</groups>
|
app/design/frontend/base/default/layout/compropago.xml
CHANGED
|
@@ -24,16 +24,15 @@
|
|
| 24 |
* @copyright Copyright (c) 2013 Magento Inc. (http://www.magentocommerce.com)
|
| 25 |
* @license http://opensource.org/licenses/afl-3.0.php Academic Free License (AFL 3.0)
|
| 26 |
*/
|
| 27 |
-
|
| 28 |
-->
|
| 29 |
<layout version="0.1.0">
|
| 30 |
<checkout_onepage_index>
|
| 31 |
-
|
| 32 |
<action method="addCss">
|
| 33 |
<path>css/compropago/compropago.css</path>
|
| 34 |
</action>
|
| 35 |
-
<action method="addJs">
|
| 36 |
-
|
| 37 |
</action>
|
| 38 |
</reference>
|
| 39 |
</checkout_onepage_index>
|
| 24 |
* @copyright Copyright (c) 2013 Magento Inc. (http://www.magentocommerce.com)
|
| 25 |
* @license http://opensource.org/licenses/afl-3.0.php Academic Free License (AFL 3.0)
|
| 26 |
*/
|
|
|
|
| 27 |
-->
|
| 28 |
<layout version="0.1.0">
|
| 29 |
<checkout_onepage_index>
|
| 30 |
+
<reference name="head">
|
| 31 |
<action method="addCss">
|
| 32 |
<path>css/compropago/compropago.css</path>
|
| 33 |
</action>
|
| 34 |
+
<action method="addJs">
|
| 35 |
+
<script>compropago/compropago.js</script>
|
| 36 |
</action>
|
| 37 |
</reference>
|
| 38 |
</checkout_onepage_index>
|
app/design/frontend/base/default/template/compropago/cash.phtml
CHANGED
|
@@ -1,46 +1,46 @@
|
|
| 1 |
<?php
|
| 2 |
/**
|
| 3 |
*
|
| 4 |
-
* Form payment cash
|
| 5 |
*
|
| 6 |
* @author Oswaldo Lopez (waldix86@gmail.com)
|
| 7 |
*/
|
| 8 |
?>
|
| 9 |
|
| 10 |
<?php $_code= $this->getMethodCode();
|
| 11 |
-
|
| 12 |
-
|
| 13 |
?>
|
| 14 |
<img id="image_providers" onload="loadImage(this);" src="<?php echo $this->getSkinUrl('images/compropago/providers.png') ?>" class="image_providers_compropago">
|
| 15 |
-
<ul id="payment_form_<?php echo $_code ?>" style="display:none" >
|
| 16 |
-
|
| 17 |
-
|
| 18 |
-
|
| 19 |
-
|
| 20 |
-
|
| 21 |
-
|
| 22 |
-
|
| 23 |
-
|
| 24 |
-
|
| 25 |
-
|
| 26 |
-
|
| 27 |
-
|
| 28 |
-
|
| 29 |
-
|
| 30 |
-
|
| 31 |
-
|
| 32 |
-
|
| 33 |
-
|
| 34 |
-
|
| 35 |
-
|
| 36 |
-
|
| 37 |
-
|
| 38 |
-
|
| 39 |
-
|
| 40 |
-
|
| 41 |
-
|
| 42 |
-
|
| 43 |
</ul>
|
| 44 |
<div>
|
| 45 |
<?php echo $this->getMethod()->getConfigData('message');?>
|
| 46 |
-
</div>
|
| 1 |
<?php
|
| 2 |
/**
|
| 3 |
*
|
| 4 |
+
* Form payment cash
|
| 5 |
*
|
| 6 |
* @author Oswaldo Lopez (waldix86@gmail.com)
|
| 7 |
*/
|
| 8 |
?>
|
| 9 |
|
| 10 |
<?php $_code= $this->getMethodCode();
|
| 11 |
+
$_model = $this->getMethod();
|
| 12 |
+
$_getProviders = $_model->getProviders();
|
| 13 |
?>
|
| 14 |
<img id="image_providers" onload="loadImage(this);" src="<?php echo $this->getSkinUrl('images/compropago/providers.png') ?>" class="image_providers_compropago">
|
| 15 |
+
<ul id="payment_form_<?php echo $_code ?>" style="display:none" >
|
| 16 |
+
<label class="label-instructions">Selecciona un establecimiento para realizar el pago en efectivo:</label>
|
| 17 |
+
<?php if (!$_model->showLogoProviders())
|
| 18 |
+
{ ?>
|
| 19 |
+
<li>
|
| 20 |
+
<select id="<?php echo $_code ?>_store"
|
| 21 |
+
name="payment[store_code]">
|
| 22 |
+
<?php foreach ($_getProviders as $_provider): ?>
|
| 23 |
+
<option value="<?php echo $_provider['internal_name'] ?>"><?php echo $_provider['name'] ?></option>
|
| 24 |
+
<?php endforeach; ?>
|
| 25 |
+
</select>
|
| 26 |
+
</li>
|
| 27 |
+
<?php } else { ?>
|
| 28 |
+
<li>
|
| 29 |
+
<div class="row stores-compact" style="padding: 5px 15px; opacity: 1; width:100%; margin-bottom:70px;" id="<?php echo $_code ?>_store">
|
| 30 |
+
<?php foreach ($_getProviders as $_provider): ?>
|
| 31 |
+
<!--<php if($_provider['internal_name'] == 'OXXO' || $_provider['internal_name'] == 'SEVEN_ELEVEN' || $_provider['internal_name'] == 'EXTRA' || $_provider['internal_name'] == 'CHEDRAUI'): ?>-->
|
| 32 |
+
<div class="element-box">
|
| 33 |
+
<label for="<?php echo $_code ?>_<?php echo $_provider['internal_name'] ?>" class="provider-description <?php echo $_provider['internal_name'] == 'OXXO' ? 'seleccion_store' : '' ?>" onclick="seleccionar(this,'<?php echo $_provider['internal_name'] ?>');">
|
| 34 |
+
<img src="<?php echo $_provider['image_medium'] ?>" class="image_provider">
|
| 35 |
+
</label>
|
| 36 |
+
</div>
|
| 37 |
+
<!--<php endif; ?>-->
|
| 38 |
+
<?php endforeach; ?>
|
| 39 |
+
<input id="store_code_selected" type="hidden" name="payment[store_code]" value="">
|
| 40 |
+
</div>
|
| 41 |
+
</li>
|
| 42 |
+
<?php } ?>
|
| 43 |
</ul>
|
| 44 |
<div>
|
| 45 |
<?php echo $this->getMethod()->getConfigData('message');?>
|
| 46 |
+
</div>
|
app/design/frontend/base/default/template/compropago/onepage_success.phtml
CHANGED
|
@@ -5,19 +5,21 @@
|
|
| 5 |
?>
|
| 6 |
|
| 7 |
<?php echo $this->getMessagesBlock()->getGroupedHtml(); ?>
|
| 8 |
-
<?php $compropagoId = Mage::getSingleton('core/session')->getCompropagoId();
|
|
|
|
| 9 |
|
| 10 |
<div id="receipt" class="receipt">
|
| 11 |
<div class="page-title">
|
| 12 |
-
<h3>¡Felicitaciones! Su pedido ha sido generado correctamente.</h3>
|
| 13 |
</div>
|
| 14 |
<?php if ($this->getOrderId()):?>
|
| 15 |
-
<?php if ($
|
| 16 |
<p><?php echo $this->__('Your order # is: %s.', sprintf('<a href="%s">%s</a>', $this->escapeHtml($this->getViewOrderUrl()), $this->escapeHtml($this->getOrderId()))) ?></p>
|
| 17 |
<?php else :?>
|
| 18 |
<div id="compropagodContainer" style="width: 100%;">
|
| 19 |
<iframe style="width: 100%; height: 865px;>" id="compropagodFrame" src="https://www.compropago.com/comprobante/?confirmation_id=<?php echo $compropagoId; ?>" frameborder="0" scrolling="yes"> </iframe>
|
| 20 |
</div>
|
|
|
|
| 21 |
<?php endif;?>
|
| 22 |
<?php if ($this->getCanViewOrder() && $this->getCanPrintOrder()) :?>
|
| 23 |
<p>
|
|
@@ -64,4 +66,4 @@
|
|
| 64 |
window.onresize = function(event) {
|
| 65 |
resizeIframe();
|
| 66 |
};
|
| 67 |
-
</script>
|
| 5 |
?>
|
| 6 |
|
| 7 |
<?php echo $this->getMessagesBlock()->getGroupedHtml(); ?>
|
| 8 |
+
<?php $compropagoId = Mage::getSingleton('core/session')->getCompropagoId() != '';
|
| 9 |
+
?>
|
| 10 |
|
| 11 |
<div id="receipt" class="receipt">
|
| 12 |
<div class="page-title">
|
| 13 |
+
<h3 style="font-size: 1.0em;">¡Felicitaciones! Su pedido ha sido generado correctamente.</h3>
|
| 14 |
</div>
|
| 15 |
<?php if ($this->getOrderId()):?>
|
| 16 |
+
<?php if ($compropagoId == '') :?>
|
| 17 |
<p><?php echo $this->__('Your order # is: %s.', sprintf('<a href="%s">%s</a>', $this->escapeHtml($this->getViewOrderUrl()), $this->escapeHtml($this->getOrderId()))) ?></p>
|
| 18 |
<?php else :?>
|
| 19 |
<div id="compropagodContainer" style="width: 100%;">
|
| 20 |
<iframe style="width: 100%; height: 865px;>" id="compropagodFrame" src="https://www.compropago.com/comprobante/?confirmation_id=<?php echo $compropagoId; ?>" frameborder="0" scrolling="yes"> </iframe>
|
| 21 |
</div>
|
| 22 |
+
<?php Mage::getSingleton('core/session')->setCompropagoId(''); ?>
|
| 23 |
<?php endif;?>
|
| 24 |
<?php if ($this->getCanViewOrder() && $this->getCanPrintOrder()) :?>
|
| 25 |
<p>
|
| 66 |
window.onresize = function(event) {
|
| 67 |
resizeIframe();
|
| 68 |
};
|
| 69 |
+
</script>
|
package.xml
CHANGED
|
@@ -1,18 +1,18 @@
|
|
| 1 |
<?xml version="1.0"?>
|
| 2 |
<package>
|
| 3 |
<name>ComproPago</name>
|
| 4 |
-
<version>1.0.
|
| 5 |
<stability>stable</stability>
|
| 6 |
<license uri="http://opensource.org/licenses/osl-3.0.php">OSL v3.0</license>
|
| 7 |
<channel>community</channel>
|
| 8 |
<extends/>
|
| 9 |
<summary>Extension for cash payments in Compropago.</summary>
|
| 10 |
<description>It is a tool that allows us to process cash payments in shop.</description>
|
| 11 |
-
<notes>
|
| 12 |
<authors><author><name>Oswaldo Lopez Garcia</name><user>waldix</user><email>waldix@compropago.com</email></author></authors>
|
| 13 |
-
<date>2016-02
|
| 14 |
-
<time>
|
| 15 |
-
<contents><target name="mageetc"><dir name="modules"><file name="Compropago.xml" hash="884374bb8a46b5ac9a62cd8b9f351401"/></dir></target><target name="magecommunity"><dir name="Compropago"><dir name="Block"><file name="Form.php" hash="
|
| 16 |
<compatible/>
|
| 17 |
<dependencies><required><php><min>5.2.0</min><max>6.0.0</max></php></required></dependencies>
|
| 18 |
</package>
|
| 1 |
<?xml version="1.0"?>
|
| 2 |
<package>
|
| 3 |
<name>ComproPago</name>
|
| 4 |
+
<version>1.0.3</version>
|
| 5 |
<stability>stable</stability>
|
| 6 |
<license uri="http://opensource.org/licenses/osl-3.0.php">OSL v3.0</license>
|
| 7 |
<channel>community</channel>
|
| 8 |
<extends/>
|
| 9 |
<summary>Extension for cash payments in Compropago.</summary>
|
| 10 |
<description>It is a tool that allows us to process cash payments in shop.</description>
|
| 11 |
+
<notes>Validation Order Id</notes>
|
| 12 |
<authors><author><name>Oswaldo Lopez Garcia</name><user>waldix</user><email>waldix@compropago.com</email></author></authors>
|
| 13 |
+
<date>2016-05-02</date>
|
| 14 |
+
<time>18:23:45</time>
|
| 15 |
+
<contents><target name="mageetc"><dir name="modules"><file name="Compropago.xml" hash="884374bb8a46b5ac9a62cd8b9f351401"/></dir></target><target name="magecommunity"><dir name="Compropago"><dir name="Block"><file name="Form.php" hash="102aede546471a086a767c8b62fb83a4"/><file name="OnepageSuccess.php" hash="b941b628c1570af5f37cf0214008b1bd"/></dir><dir name="Helper"><file name="Data.php" hash="5d3d5f4f86f2cec56315a1b02cc3d308"/></dir><dir name="Model"><file name="Api.php" hash="938a6d86c0c5217f3ba06c6459fb3599"/><file name="Providers.php" hash="53c2d805af2a5af102537420b4776b32"/><file name="Standard.php" hash="5a171def8a9ee9d2d52f9dd1784b4f2d"/></dir><dir name="controllers"><file name="WebhookController.php" hash="a76da821b51784ce4b4a01dc1893f414"/></dir><dir name="etc"><file name="config.xml" hash="26776d50679f9c07924f5ab0a7beeb76"/><file name="system.xml" hash="63d480092fa87465736d905668e3110a"/></dir></dir></target><target name="magedesign"><dir name="frontend"><dir name="base"><dir name="default"><dir name="template"><dir name="compropago"><file name="cash.phtml" hash="bf57cd924b25bfaf95d067e5bb0b4909"/><file name="onepage_success.phtml" hash="0c849be1c78ea6254ae4d9647998bb20"/></dir></dir><dir name="layout"><file name="compropago.xml" hash="b4c43eb397d0a9ce59b35377ef70e0ed"/></dir></dir></dir></dir></target><target name="mageskin"><dir name="frontend"><dir name="base"><dir name="default"><dir name="css"><dir name="compropago"><file name="compropago.css" hash="08479b7c091dfc3cbec76ca272d62355"/></dir></dir><dir name="images"><dir name="compropago"><file name="providers.png" hash="44d36ab2a211de651e0ba98dd5961bea"/><file name="warning.png" hash="e30bf5b88671a415ca7771b3e5dd9c19"/></dir></dir></dir></dir></dir></target><target name="mage"><dir><dir name="js"><dir name="compropago"><file name="compropago.js" hash="0eff4d21b97e7878269ef84186e1b299"/></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/frontend/base/default/css/compropago/compropago.css
CHANGED
|
@@ -1,234 +1,3 @@
|
|
| 1 |
-
|
| 2 |
-
.cp-select-form {
|
| 3 |
-
margin: 20px 20px 20px 20px !important;
|
| 4 |
-
border: 1px solid #dae3e9;
|
| 5 |
-
border-radius: 3px;
|
| 6 |
-
padding: 10px;
|
| 7 |
-
background: #fafbfd;
|
| 8 |
-
}
|
| 9 |
-
|
| 10 |
-
.cp-instruction-section {
|
| 11 |
-
background: #FFF;
|
| 12 |
-
width: 100%;
|
| 13 |
-
border: 1px solid #DAE2E7;
|
| 14 |
-
margin: 0px 0px 15px 0px;
|
| 15 |
-
border-radius: 8px;
|
| 16 |
-
float: left;
|
| 17 |
-
background-position: 0px 40px;
|
| 18 |
-
font-size: 11pt;
|
| 19 |
-
box-shadow: 0px 1px 4px 1px #E2E2E2;
|
| 20 |
-
}
|
| 21 |
-
.cp-instruction-section .cp-title {
|
| 22 |
-
height: 31px;
|
| 23 |
-
border-bottom: 1px solid #dee3ea;
|
| 24 |
-
color: #000;
|
| 25 |
-
font-size: 11pt;
|
| 26 |
-
font-style: italic;
|
| 27 |
-
line-height: 34px;
|
| 28 |
-
float: left;
|
| 29 |
-
width: 68%;
|
| 30 |
-
margin: 25px 0px 15px 20px;
|
| 31 |
-
}
|
| 32 |
-
.cp-step-box {
|
| 33 |
-
width: 600px;
|
| 34 |
-
color: #000;
|
| 35 |
-
clear: none;
|
| 36 |
-
float: left;
|
| 37 |
-
}
|
| 38 |
-
.cp-step {
|
| 39 |
-
line-height: 25pt;
|
| 40 |
-
margin: 0px 0px 0px 30px;
|
| 41 |
-
font-size: 13px;
|
| 42 |
-
float: left;
|
| 43 |
-
clear: both;
|
| 44 |
-
}
|
| 45 |
-
.cp-step .cp-num {
|
| 46 |
-
float: left;
|
| 47 |
-
margin: 0px 8px 0px 0px;
|
| 48 |
-
}
|
| 49 |
-
hr.cp-grey {
|
| 50 |
-
margin: 10px 0;
|
| 51 |
-
width: 100%;
|
| 52 |
-
border-top: 1px solid #dae3e9 !important;
|
| 53 |
-
border-bottom: 1px solid white;
|
| 54 |
-
box-sizing: content-box;
|
| 55 |
-
height: 0;
|
| 56 |
-
text-rendering: optimizelegibility;
|
| 57 |
-
font-family: inherit;
|
| 58 |
-
border-style: none;
|
| 59 |
-
}
|
| 60 |
-
.cp-note {
|
| 61 |
-
clear: both;
|
| 62 |
-
float: left;
|
| 63 |
-
margin: 0px 0px 10px 20px;
|
| 64 |
-
}
|
| 65 |
-
|
| 66 |
-
.cp-warning-box {
|
| 67 |
-
float: left;
|
| 68 |
-
background: #FFFEEC;
|
| 69 |
-
border: 1px solid #DFDB83;
|
| 70 |
-
border-radius: 3px;
|
| 71 |
-
box-shadow: 0px 1px 3px 1px #E2E2E2;
|
| 72 |
-
clear: both;
|
| 73 |
-
color: #000;
|
| 74 |
-
padding: 10px 10px;
|
| 75 |
-
margin: 0px 0px 14px 0px !important;
|
| 76 |
-
width: 97%;
|
| 77 |
-
}
|
| 78 |
-
|
| 79 |
-
ul.cp-warning {
|
| 80 |
-
font-size: 12px;
|
| 81 |
-
margin-left: 30px;
|
| 82 |
-
}
|
| 83 |
-
ul.cp-warning li {
|
| 84 |
-
line-height: 20px;
|
| 85 |
-
list-style-type: disc;
|
| 86 |
-
}
|
| 87 |
-
.cp-wrap-price{
|
| 88 |
-
float:right;
|
| 89 |
-
font-size: 12px;
|
| 90 |
-
|
| 91 |
-
}
|
| 92 |
-
.cp-price{
|
| 93 |
-
font-weight: bold;
|
| 94 |
-
font-size: 13px;
|
| 95 |
-
}
|
| 96 |
-
|
| 97 |
-
.cp-warning-box-price {
|
| 98 |
-
background: #FFFEEC;
|
| 99 |
-
border: 1px solid #DFDB83;
|
| 100 |
-
border-radius: 3px;
|
| 101 |
-
box-shadow: 0px 1px 3px 1px #E2E2E2;
|
| 102 |
-
clear: both;
|
| 103 |
-
color: #000;
|
| 104 |
-
padding: 10px 10px;
|
| 105 |
-
margin: 9px 0px 20px 0px !important;
|
| 106 |
-
}
|
| 107 |
-
.cp-label-instructions{
|
| 108 |
-
line-height: 42px;
|
| 109 |
-
font-size: 12px;
|
| 110 |
-
}
|
| 111 |
-
.cp-select-instructions{
|
| 112 |
-
height: 30px;
|
| 113 |
-
}
|
| 114 |
-
.expiration-date{
|
| 115 |
-
float: right;
|
| 116 |
-
background: #EFF6FD;
|
| 117 |
-
margin: 10px 10px 0 0;
|
| 118 |
-
border: 1px solid #dae3e9;
|
| 119 |
-
border-radius: 3px;
|
| 120 |
-
box-shadow: 0px 1px 4px 1px #f1f1f3 inset;
|
| 121 |
-
color: #000;
|
| 122 |
-
width: 140px;
|
| 123 |
-
font-size: 12px;
|
| 124 |
-
text-align: center;
|
| 125 |
-
padding: 10px 0px;
|
| 126 |
-
}
|
| 127 |
-
.expiration-date span {
|
| 128 |
-
font-size: 18px;
|
| 129 |
-
font-weight: 500;
|
| 130 |
-
color: #32a0ee;
|
| 131 |
-
margin: 7px 2px 0px;
|
| 132 |
-
text-align: center;
|
| 133 |
-
width: 100%;
|
| 134 |
-
float: left;
|
| 135 |
-
}
|
| 136 |
-
|
| 137 |
-
.account-number-box{
|
| 138 |
-
margin: 4px 90px 6px 140px;
|
| 139 |
-
|
| 140 |
-
}
|
| 141 |
-
|
| 142 |
-
.account-number {
|
| 143 |
-
float: left;
|
| 144 |
-
background: #3DE664;
|
| 145 |
-
border: 1px solid #11AF17;
|
| 146 |
-
border-radius: 3px;
|
| 147 |
-
box-shadow: 0px 1px 4px 1px #1ABB2D inset;
|
| 148 |
-
clear: both;
|
| 149 |
-
color: #000;
|
| 150 |
-
font-size: 16px;
|
| 151 |
-
padding: 5px 10px;
|
| 152 |
-
font-size: 14px;
|
| 153 |
-
min-width: 250px;
|
| 154 |
-
clear: both;
|
| 155 |
-
margin-left: 17px;
|
| 156 |
-
}
|
| 157 |
-
|
| 158 |
-
.account-number-note{
|
| 159 |
-
float: left;
|
| 160 |
-
color: #000;
|
| 161 |
-
font-size: 12px;
|
| 162 |
-
clear: both;
|
| 163 |
-
line-height: 26px;
|
| 164 |
-
margin-left: 28px;
|
| 165 |
-
&.walmart{
|
| 166 |
-
margin-left: 31px!important;
|
| 167 |
-
}
|
| 168 |
-
}
|
| 169 |
-
|
| 170 |
-
|
| 171 |
-
.stores-compact{
|
| 172 |
-
display: inline-block;
|
| 173 |
-
}
|
| 174 |
-
|
| 175 |
-
.element-box{
|
| 176 |
-
float: left;
|
| 177 |
-
position: relative;
|
| 178 |
-
min-height: 1px;
|
| 179 |
-
padding-left: 1px;
|
| 180 |
-
padding-right: 1px;
|
| 181 |
-
}
|
| 182 |
-
|
| 183 |
-
.row{margin-left:-15px;margin-right:-15px;}
|
| 184 |
-
.row:before,.row:after{content:" ";display:table;}
|
| 185 |
-
.row:after{clear:both;}
|
| 186 |
-
.col-xs-1, .col-sm-1, .col-md-1, .col-lg-1, .col-xs-2, .col-sm-2, .col-md-2, .col-lg-2, .col-xs-3, .col-sm-3, .col-md-3, .col-lg-3, .col-xs-4, .col-sm-4, .col-md-4, .col-lg-4, .col-xs-5, .col-sm-5, .col-md-5, .col-lg-5, .col-xs-6, .col-sm-6, .col-md-6, .col-lg-6, .col-xs-7, .col-sm-7, .col-md-7, .col-lg-7, .col-xs-8, .col-sm-8, .col-md-8, .col-lg-8, .col-xs-9, .col-sm-9, .col-md-9, .col-lg-9, .col-xs-10, .col-sm-10, .col-md-10, .col-lg-10, .col-xs-11, .col-sm-11, .col-md-11, .col-lg-11, .col-xs-12, .col-sm-12, .col-md-12, .col-lg-12{
|
| 187 |
-
position:relative;min-height:1px;padding-left:8px;padding-right:8px;
|
| 188 |
-
}
|
| 189 |
-
.col-xs-1, .col-xs-2, .col-xs-3, .col-xs-4, .col-xs-5, .col-xs-6, .col-xs-7, .col-xs-8, .col-xs-9, .col-xs-10, .col-xs-11, .col-xs-12{
|
| 190 |
-
float:left;
|
| 191 |
-
}
|
| 192 |
-
.col-xs-12{
|
| 193 |
-
width:100%;
|
| 194 |
-
}
|
| 195 |
-
.col-xs-11{width:91.66666666666666%;}
|
| 196 |
-
.col-xs-10{width:83.33333333333334%;}
|
| 197 |
-
.col-xs-9{width:75%;}
|
| 198 |
-
.col-xs-8{width:66.66666666666666%;}
|
| 199 |
-
.col-xs-7{width:58.333333333333336%;}
|
| 200 |
-
.col-xs-6{width:50%;}
|
| 201 |
-
.col-xs-5{width:41.66666666666667%;}
|
| 202 |
-
.col-xs-4{width:33.33333333333333%;}
|
| 203 |
-
.col-xs-3{width:25%;}
|
| 204 |
-
.col-xs-2{width:16.666666666666664%;}
|
| 205 |
-
.col-xs-1{width:8.333333333333332%;}
|
| 206 |
-
.col-xs-pull-12{right:100%;}
|
| 207 |
-
.col-xs-pull-11{right:91.66666666666666%;}
|
| 208 |
-
.col-xs-pull-10{right:83.33333333333334%;}
|
| 209 |
-
.col-xs-pull-9{right:75%;}
|
| 210 |
-
.col-xs-pull-8{right:66.66666666666666%;}
|
| 211 |
-
.col-xs-pull-7{right:58.333333333333336%;}
|
| 212 |
-
.col-xs-pull-6{right:50%;}.col-xs-pull-5{right:41.66666666666667%;}.col-xs-pull-4{right:33.33333333333333%;}.col-xs-pull-3{right:25%;}.col-xs-pull-2{right:16.666666666666664%;}.col-xs-pull-1{right:8.333333333333332%;}
|
| 213 |
-
.col-xs-pull-0{right:0%;}.col-xs-push-12{left:100%;}.col-xs-push-11{left:91.66666666666666%;}.col-xs-push-10{left:83.33333333333334%;}.col-xs-push-9{left:75%;}.col-xs-push-8{left:66.66666666666666%;}
|
| 214 |
-
.col-xs-push-7{left:58.333333333333336%;}.col-xs-push-6{left:50%;}.col-xs-push-5{left:41.66666666666667%;}.col-xs-push-4{left:33.33333333333333%;}.col-xs-push-3{left:25%;}.col-xs-push-2{left:16.666666666666664%;}
|
| 215 |
-
.col-xs-push-1{left:8.333333333333332%;}.col-xs-push-0{left:0%;}.col-xs-offset-12{margin-left:100%;}.col-xs-offset-11{margin-left:91.66666666666666%;}.col-xs-offset-10{margin-left:83.33333333333334%;}
|
| 216 |
-
.col-xs-offset-9{margin-left:75%;}.col-xs-offset-8{margin-left:66.66666666666666%;}.col-xs-offset-7{margin-left:58.333333333333336%;}.col-xs-offset-6{margin-left:50%;}.col-xs-offset-5{margin-left:41.66666666666667%;}
|
| 217 |
-
.col-xs-offset-4{margin-left:33.33333333333333%;}.col-xs-offset-3{margin-left:25%;}.col-xs-offset-2{margin-left:16.666666666666664%;}.col-xs-offset-1{margin-left:8.333333333333332%;}.col-xs-offset-0{margin-left:0%;}
|
| 218 |
-
@media (min-width:768px){
|
| 219 |
-
.col-sm-1, .col-sm-2, .col-sm-3, .col-sm-4, .col-sm-5, .col-sm-6, .col-sm-7, .col-sm-8, .col-sm-9, .col-sm-10, .col-sm-11, .col-sm-12{
|
| 220 |
-
float:left;
|
| 221 |
-
}
|
| 222 |
-
.col-sm-12{width:100%;}
|
| 223 |
-
.col-sm-11{width:91.66666666666666%;}
|
| 224 |
-
.col-sm-10{width:83.33333333333334%;}
|
| 225 |
-
.col-sm-9{width:75%;} .col-sm-8{width:66.66666666666666%;} .col-sm-7{width:58.333333333333336%;} .col-sm-6{width:50%;} .col-sm-5{width:41.66666666666667%;} .col-sm-4{width:33.33333333333333%;} .col-sm-3{width:25%;} .col-sm-2{width:16.666666666666664%;} .col-sm-1{width:8.333333333333332%;} .col-sm-pull-12{right:100%;} .col-sm-pull-11{right:91.66666666666666%;} .col-sm-pull-10{right:83.33333333333334%;} .col-sm-pull-9{right:75%;} .col-sm-pull-8{right:66.66666666666666%;} .col-sm-pull-7{right:58.333333333333336%;} .col-sm-pull-6{right:50%;} .col-sm-pull-5{right:41.66666666666667%;} .col-sm-pull-4{right:33.33333333333333%;} .col-sm-pull-3{right:25%;} .col-sm-pull-2{right:16.666666666666664%;} .col-sm-pull-1{right:8.333333333333332%;} .col-sm-pull-0{right:0%;} .col-sm-push-12{left:100%;} .col-sm-push-11{left:91.66666666666666%;} .col-sm-push-10{left:83.33333333333334%;} .col-sm-push-9{left:75%;} .col-sm-push-8{left:66.66666666666666%;} .col-sm-push-7{left:58.333333333333336%;} .col-sm-push-6{left:50%;} .col-sm-push-5{left:41.66666666666667%;} .col-sm-push-4{left:33.33333333333333%;} .col-sm-push-3{left:25%;} .col-sm-push-2{left:16.666666666666664%;} .col-sm-push-1{left:8.333333333333332%;} .col-sm-push-0{left:0%;} .col-sm-offset-12{margin-left:100%;} .col-sm-offset-11{margin-left:91.66666666666666%;} .col-sm-offset-10{margin-left:83.33333333333334%;} .col-sm-offset-9{margin-left:75%;} .col-sm-offset-8{margin-left:66.66666666666666%;} .col-sm-offset-7{margin-left:58.333333333333336%;} .col-sm-offset-6{margin-left:50%;} .col-sm-offset-5{margin-left:41.66666666666667%;} .col-sm-offset-4{margin-left:33.33333333333333%;} .col-sm-offset-3{margin-left:25%;} .col-sm-offset-2{margin-left:16.666666666666664%;} .col-sm-offset-1{margin-left:8.333333333333332%;} .col-sm-offset-0{margin-left:0%;}}
|
| 226 |
-
@media (min-width:992px){
|
| 227 |
-
.col-md-1, .col-md-2, .col-md-3, .col-md-4, .col-md-5, .col-md-6, .col-md-7, .col-md-8, .col-md-9, .col-md-10, .col-md-11, .col-md-12{
|
| 228 |
-
float:left;
|
| 229 |
-
}
|
| 230 |
-
.col-md-12{width:100%;} .col-md-11{width:91.66666666666666%;} .col-md-10{width:83.33333333333334%;} .col-md-9{width:75%;} .col-md-8{width:66.66666666666666%;} .col-md-7{width:58.333333333333336%;} .col-md-6{width:50%;} .col-md-5{width:41.66666666666667%;} .col-md-4{width:33.33333333333333%;} .col-md-3{width:25%;} .col-md-2{width:16.666666666666664%;} .col-md-1{width:8.333333333333332%;} .col-md-pull-12{right:100%;} .col-md-pull-11{right:91.66666666666666%;} .col-md-pull-10{right:83.33333333333334%;} .col-md-pull-9{right:75%;} .col-md-pull-8{right:66.66666666666666%;} .col-md-pull-7{right:58.333333333333336%;} .col-md-pull-6{right:50%;} .col-md-pull-5{right:41.66666666666667%;} .col-md-pull-4{right:33.33333333333333%;} .col-md-pull-3{right:25%;} .col-md-pull-2{right:16.666666666666664%;} .col-md-pull-1{right:8.333333333333332%;} .col-md-pull-0{right:0%;} .col-md-push-12{left:100%;} .col-md-push-11{left:91.66666666666666%;} .col-md-push-10{left:83.33333333333334%;} .col-md-push-9{left:75%;} .col-md-push-8{left:66.66666666666666%;} .col-md-push-7{left:58.333333333333336%;} .col-md-push-6{left:50%;} .col-md-push-5{left:41.66666666666667%;} .col-md-push-4{left:33.33333333333333%;} .col-md-push-3{left:25%;} .col-md-push-2{left:16.666666666666664%;} .col-md-push-1{left:8.333333333333332%;} .col-md-push-0{left:0%;} .col-md-offset-12{margin-left:100%;} .col-md-offset-11{margin-left:91.66666666666666%;} .col-md-offset-10{margin-left:83.33333333333334%;} .col-md-offset-9{margin-left:75%;} .col-md-offset-8{margin-left:66.66666666666666%;} .col-md-offset-7{margin-left:58.333333333333336%;} .col-md-offset-6{margin-left:50%;} .col-md-offset-5{margin-left:41.66666666666667%;} .col-md-offset-4{margin-left:33.33333333333333%;} .col-md-offset-3{margin-left:25%;} .col-md-offset-2{margin-left:16.666666666666664%;} .col-md-offset-1{margin-left:8.333333333333332%;} .col-md-offset-0{margin-left:0%;}}
|
| 231 |
-
|
| 232 |
#p_method_compropago input[type="radio"]:checked img{
|
| 233 |
display: none;
|
| 234 |
}
|
|
@@ -308,4 +77,4 @@ ul.cp-warning li {
|
|
| 308 |
}
|
| 309 |
.checked_compropago{
|
| 310 |
display: block !important;
|
| 311 |
-
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 1 |
#p_method_compropago input[type="radio"]:checked img{
|
| 2 |
display: none;
|
| 3 |
}
|
| 77 |
}
|
| 78 |
.checked_compropago{
|
| 79 |
display: block !important;
|
| 80 |
+
}
|
skin/frontend/base/default/images/compropago/providers.png
CHANGED
|
Binary file
|
skin/frontend/base/default/images/compropago/providers1.png
DELETED
|
Binary file
|
