Version Notes
Update transaction data at Order table
Download this release
Release Info
| Developer | Bcash |
| Extension | Bcash_Pagamento |
| Version | 1.1.3 |
| Comparing to | |
| See all releases | |
Code changes from version 1.0.0 to 1.1.3
- app/code/community/Bcash/Pagamento/Helper/Data.php +81 -0
- app/code/community/Bcash/Pagamento/Helper/Transaction.php +8 -5
- app/code/community/Bcash/Pagamento/Model/Observer.php +62 -24
- app/code/community/Bcash/Pagamento/Model/PaymentMethod.php +58 -17
- app/code/community/Bcash/Pagamento/controllers/NotificationController.php +32 -4
- app/code/community/Bcash/Pagamento/controllers/PaymentController.php +36 -0
- app/code/community/Bcash/Pagamento/etc/config.xml +8 -0
- app/design/frontend/base/default/template/pagamento/checkout/success.phtml +1 -1
- app/design/frontend/base/default/template/pagamento/form/payment.phtml +189 -13
- package.xml +5 -7
app/code/community/Bcash/Pagamento/Helper/Data.php
CHANGED
|
@@ -5,6 +5,7 @@ require_once(Mage::getBaseDir("lib") . "/BcashApi/autoloader.php");
|
|
| 5 |
use Bcash\Service\Consultation;
|
| 6 |
use Bcash\Exception\ValidationException;
|
| 7 |
use Bcash\Exception\ConnectionException;
|
|
|
|
| 8 |
|
| 9 |
class Bcash_Pagamento_Helper_Data extends Mage_Payment_Helper_Data
|
| 10 |
{
|
|
@@ -13,6 +14,8 @@ class Bcash_Pagamento_Helper_Data extends Mage_Payment_Helper_Data
|
|
| 13 |
private $token;
|
| 14 |
private $obj;
|
| 15 |
private $sandbox;
|
|
|
|
|
|
|
| 16 |
|
| 17 |
public function __construct()
|
| 18 |
{
|
|
@@ -20,6 +23,8 @@ class Bcash_Pagamento_Helper_Data extends Mage_Payment_Helper_Data
|
|
| 20 |
$this->email = $this->obj->getConfigData('email');
|
| 21 |
$this->token = $this->obj->getConfigData('token');
|
| 22 |
$this->sandbox = $this->obj->getConfigData('sandbox');
|
|
|
|
|
|
|
| 23 |
}
|
| 24 |
|
| 25 |
public function getTransaction($transactionId = null, $orderId = null)
|
|
@@ -49,6 +54,35 @@ class Bcash_Pagamento_Helper_Data extends Mage_Payment_Helper_Data
|
|
| 49 |
return $response;
|
| 50 |
}
|
| 51 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 52 |
public function setTransaction()
|
| 53 |
{
|
| 54 |
//Create Transaction with Bcash
|
|
@@ -56,4 +90,51 @@ class Bcash_Pagamento_Helper_Data extends Mage_Payment_Helper_Data
|
|
| 56 |
die('setTransaction');
|
| 57 |
|
| 58 |
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 59 |
}
|
| 5 |
use Bcash\Service\Consultation;
|
| 6 |
use Bcash\Exception\ValidationException;
|
| 7 |
use Bcash\Exception\ConnectionException;
|
| 8 |
+
use Bcash\Service\Installments;
|
| 9 |
|
| 10 |
class Bcash_Pagamento_Helper_Data extends Mage_Payment_Helper_Data
|
| 11 |
{
|
| 14 |
private $token;
|
| 15 |
private $obj;
|
| 16 |
private $sandbox;
|
| 17 |
+
private $quote;
|
| 18 |
+
private $max_installments;
|
| 19 |
|
| 20 |
public function __construct()
|
| 21 |
{
|
| 23 |
$this->email = $this->obj->getConfigData('email');
|
| 24 |
$this->token = $this->obj->getConfigData('token');
|
| 25 |
$this->sandbox = $this->obj->getConfigData('sandbox');
|
| 26 |
+
$this->max_installments = $this->obj->getConfigData('max_installments');
|
| 27 |
+
$this->desconto_credito_1x = $this->obj->getConfigData('desconto_credito_1x');
|
| 28 |
}
|
| 29 |
|
| 30 |
public function getTransaction($transactionId = null, $orderId = null)
|
| 54 |
return $response;
|
| 55 |
}
|
| 56 |
|
| 57 |
+
/**
|
| 58 |
+
* Retorna os parcelamentos possíveis via cartão de crédito.
|
| 59 |
+
* @return array
|
| 60 |
+
*/
|
| 61 |
+
public function getInstallments()
|
| 62 |
+
{
|
| 63 |
+
$installments = new Installments($this->email, $this->token);
|
| 64 |
+
try {
|
| 65 |
+
$sessionCheckout = Mage::getSingleton('checkout/session');
|
| 66 |
+
$quoteId = $sessionCheckout->getQuoteId();
|
| 67 |
+
$this->quote = Mage::getModel("sales/quote")->load($quoteId);
|
| 68 |
+
$grandTotal = floatval(number_format($this->quote->getData('grand_total'), 2, '.', ''));
|
| 69 |
+
$ignoreScheduledDiscount = false;
|
| 70 |
+
if($this->sandbox){
|
| 71 |
+
$installments->enableSandBox(true);
|
| 72 |
+
}
|
| 73 |
+
$response = $installments->calculate($grandTotal, $this->max_installments, $ignoreScheduledDiscount);
|
| 74 |
+
return array("ok" => true, "installments" => array(0 => $this->prepareInstallmentsCards($response)));
|
| 75 |
+
} catch (ValidationException $e) {
|
| 76 |
+
Mage::log("Erro Bcash ValidationException:" . $e->getMessage());
|
| 77 |
+
Mage::log($e->getErrors());
|
| 78 |
+
return array("ok" => false, "installments" => array("1" => $grandTotal));
|
| 79 |
+
} catch (ConnectionException $e) {
|
| 80 |
+
Mage::log("Erro Bcash ConnectionException:" . $e->getMessage());
|
| 81 |
+
Mage::log($e->getErrors());
|
| 82 |
+
return array("ok" => false, "installments" => array("1" => $grandTotal));
|
| 83 |
+
}
|
| 84 |
+
}
|
| 85 |
+
|
| 86 |
public function setTransaction()
|
| 87 |
{
|
| 88 |
//Create Transaction with Bcash
|
| 90 |
die('setTransaction');
|
| 91 |
|
| 92 |
}
|
| 93 |
+
|
| 94 |
+
/**
|
| 95 |
+
* Sincronização de informações da transação Bcash entre Quote e Order
|
| 96 |
+
*
|
| 97 |
+
* @param $orderId
|
| 98 |
+
* @param $quoteId
|
| 99 |
+
* @throws Exception
|
| 100 |
+
*/
|
| 101 |
+
public function updateOrderSyncBcashDataWithQuote($orderId, $quoteId)
|
| 102 |
+
{
|
| 103 |
+
$quote = Mage::getModel('sales/quote')->load($quoteId);
|
| 104 |
+
$order = Mage::getModel('sales/order')->load($orderId);
|
| 105 |
+
|
| 106 |
+
$order->setTransactionIdBcash($quote->getTransactionIdBcash())
|
| 107 |
+
->setStatusBcash($quote->getStatusBcash())
|
| 108 |
+
->setDescriptionStatusBcash($quote->getDescriptionStatusBcash())
|
| 109 |
+
->setPaymentLinkBcash($quote->getPaymentLinkBcash())
|
| 110 |
+
->setPaymentMethodBcash($quote->getPaymentMethodBcash())
|
| 111 |
+
->setInstallmentsBcash($quote->getInstallmentsBcash());
|
| 112 |
+
$order->save();
|
| 113 |
+
}
|
| 114 |
+
|
| 115 |
+
private function prepareInstallmentsCards($installments)
|
| 116 |
+
{
|
| 117 |
+
foreach ($installments->paymentTypes as $obj) {
|
| 118 |
+
if ('card' != $obj->name) {
|
| 119 |
+
unset($obj);
|
| 120 |
+
} else {
|
| 121 |
+
if ($this->desconto_credito_1x) {
|
| 122 |
+
$subTotal = floatval($this->quote->getSubtotal());
|
| 123 |
+
$desconto = ($this->desconto_credito_1x / 100) * $subTotal;
|
| 124 |
+
if ($desconto) {
|
| 125 |
+
foreach ($obj->paymentMethods as $type) {
|
| 126 |
+
foreach ($type->installments as &$installment) {
|
| 127 |
+
if ($installment->number == 1) {
|
| 128 |
+
$installment->installmentAmount -= $desconto;
|
| 129 |
+
$installment->installmentAmountDesc = " ({$this->desconto_credito_1x} % de desconto)";
|
| 130 |
+
break;
|
| 131 |
+
}
|
| 132 |
+
}
|
| 133 |
+
}
|
| 134 |
+
}
|
| 135 |
+
}
|
| 136 |
+
}
|
| 137 |
+
}
|
| 138 |
+
return $installments;
|
| 139 |
+
}
|
| 140 |
}
|
app/code/community/Bcash/Pagamento/Helper/Transaction.php
CHANGED
|
@@ -212,7 +212,7 @@ class Bcash_Pagamento_Helper_Transaction extends Mage_Payment_Helper_Data
|
|
| 212 |
public function createTransactionRequestBcash()
|
| 213 |
{
|
| 214 |
//Id:Plataforma => 565
|
| 215 |
-
$url = Mage::getUrl('pagamento/notification/request');
|
| 216 |
$transactionRequest = new TransactionRequest();
|
| 217 |
$transactionRequest->setSellerMail($this->email);
|
| 218 |
$transactionRequest->setOrderId($this->quoteBcash->getReservedOrderId());
|
|
@@ -223,7 +223,6 @@ class Bcash_Pagamento_Helper_Transaction extends Mage_Payment_Helper_Data
|
|
| 223 |
$transactionRequest->setViewedContract("S");
|
| 224 |
$transactionRequest->setDependentTransactions($this->createDependentTransactionsBcash());
|
| 225 |
$transactionRequest->setPlatformId(565);
|
| 226 |
-
//var_dump($transactionRequest);
|
| 227 |
return $transactionRequest;
|
| 228 |
}
|
| 229 |
|
|
@@ -238,10 +237,12 @@ class Bcash_Pagamento_Helper_Transaction extends Mage_Payment_Helper_Data
|
|
| 238 |
$this->transactionRequest->setInstallments($this->installments);
|
| 239 |
}
|
| 240 |
|
| 241 |
-
if ($this->installments == 1) {
|
| 242 |
$discount = $this->calculateDiscount($this->payment_method);
|
| 243 |
$this->setDiscountBcash($discount);
|
| 244 |
-
}
|
|
|
|
|
|
|
| 245 |
}
|
| 246 |
|
| 247 |
/**
|
|
@@ -259,7 +260,6 @@ class Bcash_Pagamento_Helper_Transaction extends Mage_Payment_Helper_Data
|
|
| 259 |
$percent = $this->obj->getConfigData('desconto_boleto');
|
| 260 |
}
|
| 261 |
if ($percent) {
|
| 262 |
-
//$discount = floatval(($this->subTotalBcash / 100) * $percent);
|
| 263 |
$discount = floatval(number_format(($this->subTotalBcash / 100) * $percent, 2, '.', ''));
|
| 264 |
$this->discountPercentBcash = $percent;
|
| 265 |
$this->discountBcash = $discount;
|
|
@@ -410,6 +410,9 @@ class Bcash_Pagamento_Helper_Transaction extends Mage_Payment_Helper_Data
|
|
| 410 |
*/
|
| 411 |
public function setDiscountBcash($discount)
|
| 412 |
{
|
|
|
|
|
|
|
|
|
|
| 413 |
$this->discountBcash = $discount;
|
| 414 |
$this->transactionRequest->setDiscount($discount);
|
| 415 |
}
|
| 212 |
public function createTransactionRequestBcash()
|
| 213 |
{
|
| 214 |
//Id:Plataforma => 565
|
| 215 |
+
$url = Mage::getUrl('pagamento/notification/request',array('_secure'=>true));
|
| 216 |
$transactionRequest = new TransactionRequest();
|
| 217 |
$transactionRequest->setSellerMail($this->email);
|
| 218 |
$transactionRequest->setOrderId($this->quoteBcash->getReservedOrderId());
|
| 223 |
$transactionRequest->setViewedContract("S");
|
| 224 |
$transactionRequest->setDependentTransactions($this->createDependentTransactionsBcash());
|
| 225 |
$transactionRequest->setPlatformId(565);
|
|
|
|
| 226 |
return $transactionRequest;
|
| 227 |
}
|
| 228 |
|
| 237 |
$this->transactionRequest->setInstallments($this->installments);
|
| 238 |
}
|
| 239 |
|
| 240 |
+
/*if ($this->installments == 1) {
|
| 241 |
$discount = $this->calculateDiscount($this->payment_method);
|
| 242 |
$this->setDiscountBcash($discount);
|
| 243 |
+
}*/
|
| 244 |
+
|
| 245 |
+
$this->setDiscountBcash();
|
| 246 |
}
|
| 247 |
|
| 248 |
/**
|
| 260 |
$percent = $this->obj->getConfigData('desconto_boleto');
|
| 261 |
}
|
| 262 |
if ($percent) {
|
|
|
|
| 263 |
$discount = floatval(number_format(($this->subTotalBcash / 100) * $percent, 2, '.', ''));
|
| 264 |
$this->discountPercentBcash = $percent;
|
| 265 |
$this->discountBcash = $discount;
|
| 410 |
*/
|
| 411 |
public function setDiscountBcash($discount)
|
| 412 |
{
|
| 413 |
+
$discount = $this->quoteBcash->getShippingAddress()->getDiscountAmount();
|
| 414 |
+
if($discount < 0) { $discount = ((-1) * $discount); }
|
| 415 |
+
$discount = floatval(number_format($discount, 2, '.', ''));
|
| 416 |
$this->discountBcash = $discount;
|
| 417 |
$this->transactionRequest->setDiscount($discount);
|
| 418 |
}
|
app/code/community/Bcash/Pagamento/Model/Observer.php
CHANGED
|
@@ -34,16 +34,23 @@ class Bcash_Pagamento_Model_Observer
|
|
| 34 |
*/
|
| 35 |
public function saveOrderQuoteToSession($observer)
|
| 36 |
{
|
| 37 |
-
|
| 38 |
$event = $observer->getEvent();
|
| 39 |
-
|
| 40 |
$order = $event->getOrder();
|
| 41 |
-
|
| 42 |
$quote = $event->getQuote();
|
| 43 |
-
|
|
|
|
| 44 |
$quoteId = $quote->getId();
|
| 45 |
$orderId = $order->getId();
|
| 46 |
$incrId = $order->getIncrementId();
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 47 |
Mage::log("Saving quote [$quoteId] and order [$incrId] to checkout/session");
|
| 48 |
$session->setData('OrderIdBcash', $orderId);
|
| 49 |
$session->setData('OrderIncrementIdBcash', $incrId);
|
|
@@ -55,26 +62,6 @@ class Bcash_Pagamento_Model_Observer
|
|
| 55 |
return $this;
|
| 56 |
}
|
| 57 |
|
| 58 |
-
/*
|
| 59 |
-
<global>
|
| 60 |
-
- If you want your observer to listen no matter where the event is dispatched from, put it here. You can also put it in "frontend" or "adminhtml".
|
| 61 |
-
<events>
|
| 62 |
-
- This is the element that stores all of the events that are registered.
|
| 63 |
-
<checkout_submit_all_after>
|
| 64 |
-
- This is the "event" that you are listening to.
|
| 65 |
-
<observers>
|
| 66 |
-
- This is the type of event. I don't think there are others.
|
| 67 |
-
<awesome_example>
|
| 68 |
-
- This is a unique string that defines this configuration. It can be anything, and just needs to be unique.
|
| 69 |
-
<type>
|
| 70 |
-
- I have always used singleton, but other options can be "model" or "object". The "singleton" will create the object as Mage::getSingleton()
|
| 71 |
-
while both "object" and "model" will use Mage::getModel() when creating the observer object.
|
| 72 |
-
<class>
|
| 73 |
-
- This is the observer class.
|
| 74 |
-
<method>
|
| 75 |
-
- This is the function to be called in the observer class.
|
| 76 |
-
*/
|
| 77 |
-
|
| 78 |
/**
|
| 79 |
* Adiciona o Link do meio de pagamento a página de sucesso.
|
| 80 |
* @param $observer
|
|
@@ -109,4 +96,55 @@ class Bcash_Pagamento_Model_Observer
|
|
| 109 |
}
|
| 110 |
}
|
| 111 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 112 |
}
|
| 34 |
*/
|
| 35 |
public function saveOrderQuoteToSession($observer)
|
| 36 |
{
|
| 37 |
+
// @var $event Varien_Event
|
| 38 |
$event = $observer->getEvent();
|
| 39 |
+
// @var $order Mage_Sales_Model_Order
|
| 40 |
$order = $event->getOrder();
|
| 41 |
+
// @var $quote Mage_Sales_Model_Quote
|
| 42 |
$quote = $event->getQuote();
|
| 43 |
+
|
| 44 |
+
|
| 45 |
$quoteId = $quote->getId();
|
| 46 |
$orderId = $order->getId();
|
| 47 |
$incrId = $order->getIncrementId();
|
| 48 |
+
|
| 49 |
+
// Sync datas
|
| 50 |
+
Mage::helper('pagamento')->updateOrderSyncBcashDataWithQuote($orderId, $quoteId);
|
| 51 |
+
|
| 52 |
+
// Session values
|
| 53 |
+
$session = Mage::getSingleton('checkout/session');
|
| 54 |
Mage::log("Saving quote [$quoteId] and order [$incrId] to checkout/session");
|
| 55 |
$session->setData('OrderIdBcash', $orderId);
|
| 56 |
$session->setData('OrderIncrementIdBcash', $incrId);
|
| 62 |
return $this;
|
| 63 |
}
|
| 64 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 65 |
/**
|
| 66 |
* Adiciona o Link do meio de pagamento a página de sucesso.
|
| 67 |
* @param $observer
|
| 96 |
}
|
| 97 |
}
|
| 98 |
|
| 99 |
+
public function updateSalesQuotePayment(Varien_Event_Observer $observer)
|
| 100 |
+
{
|
| 101 |
+
try {
|
| 102 |
+
if (!is_null($observer->getQuote())) {
|
| 103 |
+
$params = Mage::app()->getFrontController()->getRequest()->getParams();
|
| 104 |
+
$params['installments_bcash'] = isset($params['installments_bcash']) ? $params['installments_bcash'] : 1;
|
| 105 |
+
|
| 106 |
+
//Adiciona Desconto ao Pedido caso 1x Credito, Boleto ou TEF (configurados no Backend)
|
| 107 |
+
$discountAmount = 0;
|
| 108 |
+
if ($params['installments_bcash'] == 1) {
|
| 109 |
+
$transaction = new Bcash_Pagamento_Helper_Transaction();
|
| 110 |
+
$discountAmount = $transaction->calculateDiscount($params['payment-method']);
|
| 111 |
+
}
|
| 112 |
+
|
| 113 |
+
$quote = $observer->getQuote();
|
| 114 |
+
$quote->collectTotals();
|
| 115 |
+
|
| 116 |
+
if($discountAmount > 0) {
|
| 117 |
+
$grandTotal = $quote->getGrandTotal();
|
| 118 |
+
$subTotalWithDiscount = $quote->getSubtotalWithDiscount();
|
| 119 |
+
$baseGrandTotal = $quote->getBaseGrandTotal();
|
| 120 |
+
$baseSubTotalWithDiscount = $quote->getBaseSubtotalWithDiscount();
|
| 121 |
+
|
| 122 |
+
// Outros descontos aplicados
|
| 123 |
+
$objDiscountAmount = $quote->getDiscountAmount();
|
| 124 |
+
if ($objDiscountAmount <> 0) {
|
| 125 |
+
$discountAmount = (-1 * ((-$discountAmount) + $objDiscountAmount));
|
| 126 |
+
$grandTotal = $grandTotal + (-1 * $objDiscountAmount);
|
| 127 |
+
$subTotalWithDiscount = $subTotalWithDiscount + (-1 * $objDiscountAmount);
|
| 128 |
+
$baseGrandTotal = $baseGrandTotal + (-1 * $objDiscountAmount);
|
| 129 |
+
$baseSubTotalWithDiscount = $baseSubTotalWithDiscount + (-1 * $objDiscountAmount);
|
| 130 |
+
}
|
| 131 |
+
|
| 132 |
+
$totalDiscountAmount = $discountAmount;
|
| 133 |
+
$subtotalWithDiscount = $subTotalWithDiscount - $discountAmount;
|
| 134 |
+
$baseTotalDiscountAmount = $discountAmount;
|
| 135 |
+
$baseSubtotalWithDiscount = $baseSubTotalWithDiscount - $discountAmount;
|
| 136 |
+
|
| 137 |
+
$quote->setDiscountAmount(-$totalDiscountAmount);
|
| 138 |
+
$quote->setSubtotalWithDiscount($subtotalWithDiscount);
|
| 139 |
+
$quote->setBaseDiscountAmount($baseTotalDiscountAmount);
|
| 140 |
+
$quote->setBaseSubtotalWithDiscount($baseSubtotalWithDiscount);
|
| 141 |
+
$quote->setGrandTotal($grandTotal - $totalDiscountAmount);
|
| 142 |
+
$quote->setBaseGrandTotal($baseGrandTotal - $baseTotalDiscountAmount);
|
| 143 |
+
$quote->setTotalsCollectedFlag(false)->collectTotals();
|
| 144 |
+
$quote->save();
|
| 145 |
+
}
|
| 146 |
+
}
|
| 147 |
+
} catch (Exception $e) { Mage::log($e->getMessage()); }
|
| 148 |
+
}
|
| 149 |
+
|
| 150 |
}
|
app/code/community/Bcash/Pagamento/Model/PaymentMethod.php
CHANGED
|
@@ -56,7 +56,7 @@ class Bcash_Pagamento_Model_PaymentMethod extends Mage_Payment_Model_Method_Abst
|
|
| 56 |
|
| 57 |
try {
|
| 58 |
$result = $this->_customBeginPayment();
|
| 59 |
-
Mage::log(print_r($result, true));
|
| 60 |
$response = $result['response'];
|
| 61 |
$payment_method = $result['payment_method'];
|
| 62 |
$installments = $result['installments'];
|
|
@@ -151,11 +151,16 @@ class Bcash_Pagamento_Model_PaymentMethod extends Mage_Payment_Model_Method_Abst
|
|
| 151 |
$params['installments_bcash'] = isset($params['installments_bcash']) ?$params['installments_bcash']:1;
|
| 152 |
|
| 153 |
//Adiciona Desconto ao Pedido caso 1x Credito, Boleto ou TEF (configurados no Backend)
|
| 154 |
-
$
|
| 155 |
-
|
| 156 |
-
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 157 |
}
|
| 158 |
-
|
| 159 |
return $result;
|
| 160 |
}
|
| 161 |
|
|
@@ -169,21 +174,57 @@ class Bcash_Pagamento_Model_PaymentMethod extends Mage_Payment_Model_Method_Abst
|
|
| 169 |
{
|
| 170 |
$cart = Mage::getSingleton('checkout/cart');
|
| 171 |
$objShippingAddress = $cart->getQuote()->getShippingAddress();
|
| 172 |
-
|
| 173 |
-
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 174 |
'code' => 'discount',
|
| 175 |
'title' => "Desconto",
|
| 176 |
'value' => -$discountAmount,
|
| 177 |
));
|
| 178 |
-
|
| 179 |
-
|
| 180 |
-
|
| 181 |
-
|
| 182 |
-
|
| 183 |
-
|
| 184 |
-
|
| 185 |
-
|
| 186 |
-
|
| 187 |
-
|
|
|
|
|
|
|
|
|
|
|
|
|
| 188 |
}
|
| 189 |
}
|
| 56 |
|
| 57 |
try {
|
| 58 |
$result = $this->_customBeginPayment();
|
| 59 |
+
//Mage::log(print_r($result, true));
|
| 60 |
$response = $result['response'];
|
| 61 |
$payment_method = $result['payment_method'];
|
| 62 |
$installments = $result['installments'];
|
| 151 |
$params['installments_bcash'] = isset($params['installments_bcash']) ?$params['installments_bcash']:1;
|
| 152 |
|
| 153 |
//Adiciona Desconto ao Pedido caso 1x Credito, Boleto ou TEF (configurados no Backend)
|
| 154 |
+
if(isset($params['payment-method'])) {
|
| 155 |
+
$discount = 0;
|
| 156 |
+
if ($params['installments_bcash'] == 1) {
|
| 157 |
+
$discount = $this->calculateDiscount($params['payment-method']);
|
| 158 |
+
}
|
| 159 |
+
if(!empty($params['payment-method'])) {
|
| 160 |
+
$this->addDiscountToQuote($discount);
|
| 161 |
+
}
|
| 162 |
}
|
| 163 |
+
|
| 164 |
return $result;
|
| 165 |
}
|
| 166 |
|
| 174 |
{
|
| 175 |
$cart = Mage::getSingleton('checkout/cart');
|
| 176 |
$objShippingAddress = $cart->getQuote()->getShippingAddress();
|
| 177 |
+
|
| 178 |
+
|
| 179 |
+
//Mage::log($objShippingAddress);
|
| 180 |
+
|
| 181 |
+
if($discountAmount > 0) {
|
| 182 |
+
// Update quote
|
| 183 |
+
Mage::dispatchEvent(
|
| 184 |
+
'sales_quote_payment_import_data_before',
|
| 185 |
+
array(
|
| 186 |
+
'quote' => $cart->getQuote()
|
| 187 |
+
)
|
| 188 |
+
);
|
| 189 |
+
$discountDescription = $objShippingAddress->getDiscountDescription();
|
| 190 |
+
if(!empty($discountDescription)) { $discountDescription .= " + "; }
|
| 191 |
+
|
| 192 |
+
$objShippingAddress->setDiscountDescription($discountDescription . 'Meio de pagamento');
|
| 193 |
+
|
| 194 |
+
|
| 195 |
+
$grandTotal = $objShippingAddress->getGrandTotal();
|
| 196 |
+
$subTotalWithDiscount = $objShippingAddress->getSubtotalWithDiscount();
|
| 197 |
+
$baseGrandTotal = $objShippingAddress->getBaseGrandTotal();
|
| 198 |
+
$baseSubTotalWithDiscount = $objShippingAddress->getBaseSubtotalWithDiscount();
|
| 199 |
+
|
| 200 |
+
// Outros descontos aplicados
|
| 201 |
+
$objDiscountAmount = $objShippingAddress->getDiscountAmount();
|
| 202 |
+
if ($objDiscountAmount <> 0) {
|
| 203 |
+
$discountAmount = (-1 * ((-$discountAmount) + $objDiscountAmount));
|
| 204 |
+
$grandTotal = $grandTotal + (-1 * $objDiscountAmount);
|
| 205 |
+
$subTotalWithDiscount = $subTotalWithDiscount + (-1 * $objDiscountAmount);
|
| 206 |
+
$baseGrandTotal = $baseGrandTotal + (-1 * $objDiscountAmount);
|
| 207 |
+
$baseSubTotalWithDiscount = $baseSubTotalWithDiscount + (-1 * $objDiscountAmount);
|
| 208 |
+
}
|
| 209 |
+
|
| 210 |
+
$objShippingAddress->addTotal(array(
|
| 211 |
'code' => 'discount',
|
| 212 |
'title' => "Desconto",
|
| 213 |
'value' => -$discountAmount,
|
| 214 |
));
|
| 215 |
+
|
| 216 |
+
$totalDiscountAmount = $discountAmount;
|
| 217 |
+
$subtotalWithDiscount = $subTotalWithDiscount - $discountAmount;
|
| 218 |
+
$baseTotalDiscountAmount = $discountAmount;
|
| 219 |
+
$baseSubtotalWithDiscount = $baseSubTotalWithDiscount - $discountAmount;
|
| 220 |
+
|
| 221 |
+
$objShippingAddress->setDiscountAmount(-$totalDiscountAmount);
|
| 222 |
+
$objShippingAddress->setSubtotalWithDiscount($subtotalWithDiscount);
|
| 223 |
+
$objShippingAddress->setBaseDiscountAmount($baseTotalDiscountAmount);
|
| 224 |
+
$objShippingAddress->setBaseSubtotalWithDiscount($baseSubtotalWithDiscount);
|
| 225 |
+
$objShippingAddress->setGrandTotal($grandTotal - $totalDiscountAmount);
|
| 226 |
+
$objShippingAddress->setBaseGrandTotal($baseGrandTotal - $baseTotalDiscountAmount);
|
| 227 |
+
$objShippingAddress->save();
|
| 228 |
+
}
|
| 229 |
}
|
| 230 |
}
|
app/code/community/Bcash/Pagamento/controllers/NotificationController.php
CHANGED
|
@@ -44,7 +44,7 @@ class Bcash_Pagamento_NotificationController extends Mage_Core_Controller_Front_
|
|
| 44 |
$statusId = (int)Mage::app()->getRequest()->getParam('statusId');
|
| 45 |
|
| 46 |
// Notification Simulator
|
| 47 |
-
$urlSubmit = Mage::getUrl('pagamento/notification/index');
|
| 48 |
echo "<h1>Bcash Notification Simulator</h1>
|
| 49 |
<form method='GET' action='" . $urlSubmit . "'>
|
| 50 |
<label>Nro. Pedido:</label>
|
|
@@ -65,7 +65,7 @@ class Bcash_Pagamento_NotificationController extends Mage_Core_Controller_Front_
|
|
| 65 |
</form>";
|
| 66 |
|
| 67 |
if(!empty($transactionId) && !empty($statusId) && !empty($orderId)) {
|
| 68 |
-
$urlSimulator = Mage::getUrl('pagamento/notification/request');
|
| 69 |
$returnSimulator = $this->notificationSimulator($urlSimulator, $transactionId, $orderId, $statusId);
|
| 70 |
echo "<h2>Retorno:</h2> <div style='clear:both;'></div><pre style='background-color: #EAEAEA; padding:20px;'>";
|
| 71 |
var_dump($returnSimulator);
|
|
@@ -137,6 +137,9 @@ class Bcash_Pagamento_NotificationController extends Mage_Core_Controller_Front_
|
|
| 137 |
{
|
| 138 |
// Carrega pedido a partir de código incremental
|
| 139 |
$order = Mage::getModel('sales/order')->loadByIncrementId($orderId);
|
|
|
|
|
|
|
|
|
|
| 140 |
switch ($statusId) {
|
| 141 |
case NotificationStatusEnum::APPROVED:
|
| 142 |
case NotificationStatusEnum::COMPLETED:
|
|
@@ -150,7 +153,6 @@ class Bcash_Pagamento_NotificationController extends Mage_Core_Controller_Front_
|
|
| 150 |
$order->save();
|
| 151 |
|
| 152 |
// Atualiza status na transação
|
| 153 |
-
$quoteId = $order->getQuoteId();
|
| 154 |
$quote = Mage::getModel('sales/quote')->loadByIdWithoutStore($quoteId);
|
| 155 |
$quote->setStatusBcash($statusId)
|
| 156 |
->setDescriptionStatusBcash("Aprovada");
|
|
@@ -162,6 +164,12 @@ class Bcash_Pagamento_NotificationController extends Mage_Core_Controller_Front_
|
|
| 162 |
$payment->setIsTransactionClosed(0);
|
| 163 |
$payment->setTransactionAdditionalInfo(Mage_Sales_Model_Order_Payment_Transaction::RAW_DETAILS, array('Status'=>'Em andamento'));
|
| 164 |
$order->setState(Mage_Sales_Model_Order::STATE_PENDING_PAYMENT, true)->save();
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 165 |
break;
|
| 166 |
case NotificationStatusEnum::CANCELLED:
|
| 167 |
$order->registerCancellation('Pagamento cancelado.', TRUE)->save();
|
|
@@ -169,7 +177,6 @@ class Bcash_Pagamento_NotificationController extends Mage_Core_Controller_Front_
|
|
| 169 |
$order->save();
|
| 170 |
|
| 171 |
// Atualiza status na transação
|
| 172 |
-
$quoteId = $order->getQuoteId();
|
| 173 |
$quote = Mage::getModel('sales/quote')->loadByIdWithoutStore($quoteId);
|
| 174 |
$quote->setStatusBcash($statusId)
|
| 175 |
->setDescriptionStatusBcash("Cancelada");
|
|
@@ -183,6 +190,12 @@ class Bcash_Pagamento_NotificationController extends Mage_Core_Controller_Front_
|
|
| 183 |
$order->setState(Mage_Sales_Model_Order::STATE_HOLDED, true);
|
| 184 |
}
|
| 185 |
$order->save();
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 186 |
break;
|
| 187 |
case NotificationStatusEnum::CHARGEBACK:
|
| 188 |
$order->addStatusHistoryComment('A transação ' . $transactionId . ' está com status CHARGEBACK EM ANÁLISE. Entre em contato com o Bcash.');
|
|
@@ -192,15 +205,30 @@ class Bcash_Pagamento_NotificationController extends Mage_Core_Controller_Front_
|
|
| 192 |
$order->setState(Mage_Sales_Model_Order::STATE_HOLDED, true);
|
| 193 |
}
|
| 194 |
$order->save();
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 195 |
break;
|
| 196 |
case NotificationStatusEnum::REFUNDED:
|
| 197 |
$order->setState(Mage_Sales_Model_Order::STATE_CANCELED, true)->save();
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 198 |
break;
|
| 199 |
default:
|
| 200 |
$order->addStatusHistoryComment('Notificação da transação ' . $transactionId . ' sem ação identificada para o status ' . $statusId);
|
| 201 |
$order->save();
|
| 202 |
break;
|
| 203 |
}
|
|
|
|
|
|
|
|
|
|
| 204 |
}
|
| 205 |
|
| 206 |
/**
|
| 44 |
$statusId = (int)Mage::app()->getRequest()->getParam('statusId');
|
| 45 |
|
| 46 |
// Notification Simulator
|
| 47 |
+
$urlSubmit = Mage::getUrl('pagamento/notification/index',array('_secure'=>true));
|
| 48 |
echo "<h1>Bcash Notification Simulator</h1>
|
| 49 |
<form method='GET' action='" . $urlSubmit . "'>
|
| 50 |
<label>Nro. Pedido:</label>
|
| 65 |
</form>";
|
| 66 |
|
| 67 |
if(!empty($transactionId) && !empty($statusId) && !empty($orderId)) {
|
| 68 |
+
$urlSimulator = Mage::getUrl('pagamento/notification/request',array('_secure'=>true));
|
| 69 |
$returnSimulator = $this->notificationSimulator($urlSimulator, $transactionId, $orderId, $statusId);
|
| 70 |
echo "<h2>Retorno:</h2> <div style='clear:both;'></div><pre style='background-color: #EAEAEA; padding:20px;'>";
|
| 71 |
var_dump($returnSimulator);
|
| 137 |
{
|
| 138 |
// Carrega pedido a partir de código incremental
|
| 139 |
$order = Mage::getModel('sales/order')->loadByIncrementId($orderId);
|
| 140 |
+
$orderId = $order->getId();
|
| 141 |
+
$quoteId = $order->getQuoteId();
|
| 142 |
+
|
| 143 |
switch ($statusId) {
|
| 144 |
case NotificationStatusEnum::APPROVED:
|
| 145 |
case NotificationStatusEnum::COMPLETED:
|
| 153 |
$order->save();
|
| 154 |
|
| 155 |
// Atualiza status na transação
|
|
|
|
| 156 |
$quote = Mage::getModel('sales/quote')->loadByIdWithoutStore($quoteId);
|
| 157 |
$quote->setStatusBcash($statusId)
|
| 158 |
->setDescriptionStatusBcash("Aprovada");
|
| 164 |
$payment->setIsTransactionClosed(0);
|
| 165 |
$payment->setTransactionAdditionalInfo(Mage_Sales_Model_Order_Payment_Transaction::RAW_DETAILS, array('Status'=>'Em andamento'));
|
| 166 |
$order->setState(Mage_Sales_Model_Order::STATE_PENDING_PAYMENT, true)->save();
|
| 167 |
+
|
| 168 |
+
// Atualiza status na transação
|
| 169 |
+
$quote = Mage::getModel('sales/quote')->loadByIdWithoutStore($quoteId);
|
| 170 |
+
$quote->setStatusBcash($statusId)
|
| 171 |
+
->setDescriptionStatusBcash("Em andamento");
|
| 172 |
+
$quote->save();
|
| 173 |
break;
|
| 174 |
case NotificationStatusEnum::CANCELLED:
|
| 175 |
$order->registerCancellation('Pagamento cancelado.', TRUE)->save();
|
| 177 |
$order->save();
|
| 178 |
|
| 179 |
// Atualiza status na transação
|
|
|
|
| 180 |
$quote = Mage::getModel('sales/quote')->loadByIdWithoutStore($quoteId);
|
| 181 |
$quote->setStatusBcash($statusId)
|
| 182 |
->setDescriptionStatusBcash("Cancelada");
|
| 190 |
$order->setState(Mage_Sales_Model_Order::STATE_HOLDED, true);
|
| 191 |
}
|
| 192 |
$order->save();
|
| 193 |
+
|
| 194 |
+
// Atualiza status na transação
|
| 195 |
+
$quote = Mage::getModel('sales/quote')->loadByIdWithoutStore($quoteId);
|
| 196 |
+
$quote->setStatusBcash($statusId)
|
| 197 |
+
->setDescriptionStatusBcash("Em disputa");
|
| 198 |
+
$quote->save();
|
| 199 |
break;
|
| 200 |
case NotificationStatusEnum::CHARGEBACK:
|
| 201 |
$order->addStatusHistoryComment('A transação ' . $transactionId . ' está com status CHARGEBACK EM ANÁLISE. Entre em contato com o Bcash.');
|
| 205 |
$order->setState(Mage_Sales_Model_Order::STATE_HOLDED, true);
|
| 206 |
}
|
| 207 |
$order->save();
|
| 208 |
+
|
| 209 |
+
// Atualiza status na transação
|
| 210 |
+
$quote = Mage::getModel('sales/quote')->loadByIdWithoutStore($quoteId);
|
| 211 |
+
$quote->setStatusBcash($statusId)
|
| 212 |
+
->setDescriptionStatusBcash("Chargeback");
|
| 213 |
+
$quote->save();
|
| 214 |
break;
|
| 215 |
case NotificationStatusEnum::REFUNDED:
|
| 216 |
$order->setState(Mage_Sales_Model_Order::STATE_CANCELED, true)->save();
|
| 217 |
+
|
| 218 |
+
// Atualiza status na transação
|
| 219 |
+
$quote = Mage::getModel('sales/quote')->loadByIdWithoutStore($quoteId);
|
| 220 |
+
$quote->setStatusBcash($statusId)
|
| 221 |
+
->setDescriptionStatusBcash("Devolvida");
|
| 222 |
+
$quote->save();
|
| 223 |
break;
|
| 224 |
default:
|
| 225 |
$order->addStatusHistoryComment('Notificação da transação ' . $transactionId . ' sem ação identificada para o status ' . $statusId);
|
| 226 |
$order->save();
|
| 227 |
break;
|
| 228 |
}
|
| 229 |
+
|
| 230 |
+
// Sinc datas
|
| 231 |
+
Mage::helper('pagamento')->updateOrderSyncBcashDataWithQuote($orderId, $quoteId);
|
| 232 |
}
|
| 233 |
|
| 234 |
/**
|
app/code/community/Bcash/Pagamento/controllers/PaymentController.php
CHANGED
|
@@ -124,4 +124,40 @@ class Bcash_Pagamento_PaymentController extends Mage_Core_Controller_Front_Actio
|
|
| 124 |
|
| 125 |
$this->renderLayout();
|
| 126 |
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 127 |
}
|
| 124 |
|
| 125 |
$this->renderLayout();
|
| 126 |
}
|
| 127 |
+
|
| 128 |
+
/**
|
| 129 |
+
* Retorna parcelamentos por Json
|
| 130 |
+
*/
|
| 131 |
+
public function installmentsAction()
|
| 132 |
+
{
|
| 133 |
+
$method = Mage::app()->getRequest()->getPost('method');
|
| 134 |
+
|
| 135 |
+
$paymentInstallments = Mage::helper('pagamento')->getInstallments();
|
| 136 |
+
$response = "[{ccId : 0, ccName : '', ccNumber : '', ccDescript : '(Selecione o número de parcelas)'}";
|
| 137 |
+
$okInstallments = $paymentInstallments['ok'];
|
| 138 |
+
if($okInstallments):
|
| 139 |
+
$installments = $paymentInstallments["installments"][0]->paymentTypes;
|
| 140 |
+
foreach ($installments as $type) :
|
| 141 |
+
if ($type->name == 'card') :
|
| 142 |
+
foreach ($type->paymentMethods as $typePayment) :
|
| 143 |
+
foreach ($typePayment->installments as $paymentInstallment) :
|
| 144 |
+
$response .= ",{ccId : " . $typePayment->id . ", ccName : '" . $typePayment->name . "', ccNumber : " . $paymentInstallment->number . ",
|
| 145 |
+
ccDescript : '" . $paymentInstallment->number . "x - R$ " . number_format($paymentInstallment->installmentAmount,2,',','.') .
|
| 146 |
+
($paymentInstallment->rate ? ' ('. number_format($paymentInstallment->rate,2,',','.') . '%)' : '') . (isset($paymentInstallment->installmentAmountDesc) ? $paymentInstallment->installmentAmountDesc : '') . "'}";
|
| 147 |
+
endforeach;
|
| 148 |
+
endforeach;
|
| 149 |
+
endif;
|
| 150 |
+
endforeach;
|
| 151 |
+
endif;
|
| 152 |
+
$response .= "]";
|
| 153 |
+
|
| 154 |
+
$returnResponse = array(
|
| 155 |
+
"installments" => $response,
|
| 156 |
+
"method" => $method
|
| 157 |
+
);
|
| 158 |
+
|
| 159 |
+
header('Content-Type: application/json');
|
| 160 |
+
echo json_encode($returnResponse);
|
| 161 |
+
exit;
|
| 162 |
+
}
|
| 163 |
}
|
app/code/community/Bcash/Pagamento/etc/config.xml
CHANGED
|
@@ -169,6 +169,14 @@
|
|
| 169 |
</bcash_pagamento_observer>
|
| 170 |
</observers>
|
| 171 |
</checkout_type_onepage_save_order_after>
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 172 |
</events>
|
| 173 |
</frontend>
|
| 174 |
<default>
|
| 169 |
</bcash_pagamento_observer>
|
| 170 |
</observers>
|
| 171 |
</checkout_type_onepage_save_order_after>
|
| 172 |
+
<sales_quote_payment_import_data_before>
|
| 173 |
+
<observers>
|
| 174 |
+
<bcash_pagamento_observer>
|
| 175 |
+
<class>Bcash_Pagamento_Model_Observer</class>
|
| 176 |
+
<method>updateSalesQuotePayment</method>
|
| 177 |
+
</bcash_pagamento_observer>
|
| 178 |
+
</observers>
|
| 179 |
+
</sales_quote_payment_import_data_before>
|
| 180 |
</events>
|
| 181 |
</frontend>
|
| 182 |
<default>
|
app/design/frontend/base/default/template/pagamento/checkout/success.phtml
CHANGED
|
@@ -3,7 +3,7 @@
|
|
| 3 |
<div id="bcash_pagamento" style="float:left; width: 100%; padding: 10px;">
|
| 4 |
<?php
|
| 5 |
//$this->escapeHtml($this->getOrder()->getViewOrderUrl())
|
| 6 |
-
$url = Mage::getUrl() . 'sales/order/view/order_id/' . $this->getOrder()->getId();
|
| 7 |
$idPedido = $this->getQuote()->getReservedOrderId();
|
| 8 |
$type = $this->getType();
|
| 9 |
if ($type && $type->type == Bcash_Pagamento_Helper_PaymentMethod::CARD_TYPE): ?>
|
| 3 |
<div id="bcash_pagamento" style="float:left; width: 100%; padding: 10px;">
|
| 4 |
<?php
|
| 5 |
//$this->escapeHtml($this->getOrder()->getViewOrderUrl())
|
| 6 |
+
$url = Mage::getUrl('', array('_secure'=>true)) . 'sales/order/view/order_id/' . $this->getOrder()->getId();
|
| 7 |
$idPedido = $this->getQuote()->getReservedOrderId();
|
| 8 |
$type = $this->getType();
|
| 9 |
if ($type && $type->type == Bcash_Pagamento_Helper_PaymentMethod::CARD_TYPE): ?>
|
app/design/frontend/base/default/template/pagamento/form/payment.phtml
CHANGED
|
@@ -49,6 +49,7 @@ $paymentGroupName = array(
|
|
| 49 |
</div>
|
| 50 |
</div>
|
| 51 |
|
|
|
|
| 52 |
<?php foreach ($paymentMethods as $paymentType => $payments): ?>
|
| 53 |
<?php
|
| 54 |
$totalPayments = count($payments);
|
|
@@ -173,11 +174,12 @@ $paymentGroupName = array(
|
|
| 173 |
<?php
|
| 174 |
$size--;
|
| 175 |
endforeach; ?>
|
|
|
|
| 176 |
</div>
|
| 177 |
<!-- div b-col-xs-4 -->
|
| 178 |
<script type="text/javascript">
|
| 179 |
//<![CDATA[
|
| 180 |
-
var requestUrl = '<?php echo Mage::getUrl('pagamento/payment/dados') ?>';
|
| 181 |
|
| 182 |
function in_array(needle, haystack, argStrict) {
|
| 183 |
var key = '',
|
|
@@ -240,32 +242,46 @@ $paymentGroupName = array(
|
|
| 240 |
|
| 241 |
var initBcashPagamento = function () {
|
| 242 |
checkPaymentOnLoad();
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 243 |
|
| 244 |
function showInstallmentsOnlyForMethod(method)
|
| 245 |
{
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 246 |
if (in_array(method, cards)) {
|
| 247 |
var select_id = 'installments_bcash';
|
| 248 |
var select = document.getElementById(select_id);
|
| 249 |
|
| 250 |
-
if(
|
| 251 |
// Remove options
|
| 252 |
var i; for(i=select.options.length-1; i>=0; i--) { select.remove(i); }
|
| 253 |
|
| 254 |
// Add options
|
| 255 |
var option = '';
|
| 256 |
-
for (i=0; i <
|
| 257 |
-
if(
|
| 258 |
option = document.createElement("option");
|
| 259 |
-
option.text =
|
| 260 |
option.value = '';
|
| 261 |
option.disabled = 'disabled';
|
| 262 |
select.add(option);
|
| 263 |
option = '';
|
| 264 |
}
|
| 265 |
-
if(
|
| 266 |
option = document.createElement("option");
|
| 267 |
-
option.text =
|
| 268 |
-
option.value =
|
| 269 |
select.add(option);
|
| 270 |
option = '';
|
| 271 |
}
|
|
@@ -275,6 +291,19 @@ $paymentGroupName = array(
|
|
| 275 |
}
|
| 276 |
}
|
| 277 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 278 |
function ableCvv(card) {
|
| 279 |
cvvInput = document.getElementById("cvv_bcash");
|
| 280 |
cvvInput.value = '';
|
|
@@ -305,16 +334,38 @@ $paymentGroupName = array(
|
|
| 305 |
if (typeof(OSCPayment) !== 'undefined') {
|
| 306 |
OSCPayment.forcesavePayment();
|
| 307 |
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 308 |
}
|
| 309 |
|
| 310 |
function checkPaymentOnLoad() {
|
|
|
|
|
|
|
| 311 |
document.body.select('input[type=radio][name="payment[method]"]').each(function (e) {
|
| 312 |
-
if(e.
|
| 313 |
-
|
| 314 |
-
|
| 315 |
-
|
|
|
|
|
|
|
| 316 |
}
|
| 317 |
});
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 318 |
}
|
| 319 |
|
| 320 |
function checkIsCardSelected() {
|
|
@@ -440,7 +491,14 @@ $paymentGroupName = array(
|
|
| 440 |
disableUnunsed(paymentRadio);
|
| 441 |
showInstallmentsOnlyForMethod(paymentRadio.value);
|
| 442 |
ableCvv(paymentRadio.value);
|
| 443 |
-
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 444 |
}
|
| 445 |
|
| 446 |
function enableCardForm() {
|
|
@@ -809,6 +867,124 @@ $paymentGroupName = array(
|
|
| 809 |
return true;
|
| 810 |
}
|
| 811 |
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 812 |
};
|
| 813 |
initBcashPagamento();
|
| 814 |
//]]>
|
| 49 |
</div>
|
| 50 |
</div>
|
| 51 |
|
| 52 |
+
<div id="payment-bcash-group">
|
| 53 |
<?php foreach ($paymentMethods as $paymentType => $payments): ?>
|
| 54 |
<?php
|
| 55 |
$totalPayments = count($payments);
|
| 174 |
<?php
|
| 175 |
$size--;
|
| 176 |
endforeach; ?>
|
| 177 |
+
</div>
|
| 178 |
</div>
|
| 179 |
<!-- div b-col-xs-4 -->
|
| 180 |
<script type="text/javascript">
|
| 181 |
//<![CDATA[
|
| 182 |
+
var requestUrl = '<?php echo Mage::getUrl('pagamento/payment/dados',array('_secure'=>true)) ?>';
|
| 183 |
|
| 184 |
function in_array(needle, haystack, argStrict) {
|
| 185 |
var key = '',
|
| 242 |
|
| 243 |
var initBcashPagamento = function () {
|
| 244 |
checkPaymentOnLoad();
|
| 245 |
+
uncheckBcashPaymentMethods();
|
| 246 |
+
|
| 247 |
+
function parseJSON(data) {
|
| 248 |
+
return (window.JSON && window.JSON.parse ? window.JSON.parse( data ) : (new Function("return " + data))());
|
| 249 |
+
}
|
| 250 |
|
| 251 |
function showInstallmentsOnlyForMethod(method)
|
| 252 |
{
|
| 253 |
+
changeInstallmentsSelect("Carregando...");
|
| 254 |
+
// Update installments before show
|
| 255 |
+
updateInstallments(method);
|
| 256 |
+
}
|
| 257 |
+
|
| 258 |
+
function showInstallmentsSelectBox(method, installmentsStr)
|
| 259 |
+
{
|
| 260 |
+
var newInstallments = eval('(' + installmentsStr + ')');
|
| 261 |
+
|
| 262 |
if (in_array(method, cards)) {
|
| 263 |
var select_id = 'installments_bcash';
|
| 264 |
var select = document.getElementById(select_id);
|
| 265 |
|
| 266 |
+
if(newInstallments.length > 1) {
|
| 267 |
// Remove options
|
| 268 |
var i; for(i=select.options.length-1; i>=0; i--) { select.remove(i); }
|
| 269 |
|
| 270 |
// Add options
|
| 271 |
var option = '';
|
| 272 |
+
for (i=0; i < newInstallments.length; i++) {
|
| 273 |
+
if(newInstallments[i].ccId == 0) {
|
| 274 |
option = document.createElement("option");
|
| 275 |
+
option.text = newInstallments[i].ccDescript;
|
| 276 |
option.value = '';
|
| 277 |
option.disabled = 'disabled';
|
| 278 |
select.add(option);
|
| 279 |
option = '';
|
| 280 |
}
|
| 281 |
+
if(newInstallments[i].ccId == method) {
|
| 282 |
option = document.createElement("option");
|
| 283 |
+
option.text = newInstallments[i].ccDescript;
|
| 284 |
+
option.value = newInstallments[i].ccNumber;
|
| 285 |
select.add(option);
|
| 286 |
option = '';
|
| 287 |
}
|
| 291 |
}
|
| 292 |
}
|
| 293 |
|
| 294 |
+
function changeInstallmentsSelect(text) {
|
| 295 |
+
var changeSelect_id = 'installments_bcash';
|
| 296 |
+
var changeSelect = document.getElementById(changeSelect_id);
|
| 297 |
+
// Remove installments options
|
| 298 |
+
var i; for(i=changeSelect.options.length-1; i>=0; i--) { changeSelect.remove(i); }
|
| 299 |
+
var changeOption = document.createElement("option");
|
| 300 |
+
changeOption.text = text;
|
| 301 |
+
changeOption.value = '';
|
| 302 |
+
//changeOption.disabled = 'disabled';
|
| 303 |
+
changeSelect.add(changeOption);
|
| 304 |
+
document.getElementById(changeSelect_id).value = "";
|
| 305 |
+
}
|
| 306 |
+
|
| 307 |
function ableCvv(card) {
|
| 308 |
cvvInput = document.getElementById("cvv_bcash");
|
| 309 |
cvvInput.value = '';
|
| 334 |
if (typeof(OSCPayment) !== 'undefined') {
|
| 335 |
OSCPayment.forcesavePayment();
|
| 336 |
}
|
| 337 |
+
if(typeof(checkout) !== 'undefined') {
|
| 338 |
+
if ((typeof(checkout.update) !== 'undefined') && (typeof(checkout.urls) !== 'undefined')) {
|
| 339 |
+
checkout.update(checkout.urls.payment_method);
|
| 340 |
+
}
|
| 341 |
+
}
|
| 342 |
}
|
| 343 |
|
| 344 |
function checkPaymentOnLoad() {
|
| 345 |
+
var hasChecked = 0;
|
| 346 |
+
var isBcash = 0;
|
| 347 |
document.body.select('input[type=radio][name="payment[method]"]').each(function (e) {
|
| 348 |
+
if(e.checked == true) {
|
| 349 |
+
hasChecked = 1;
|
| 350 |
+
if(e.value == 'pagamento') {
|
| 351 |
+
isBcash = 1;
|
| 352 |
+
showBcashPaymentMethod();
|
| 353 |
+
}
|
| 354 |
}
|
| 355 |
});
|
| 356 |
+
|
| 357 |
+
if(hasChecked == 0 && isBcash == 0) {
|
| 358 |
+
document.body.select('input[type=radio][name="payment[method]"]').each(function (e) {
|
| 359 |
+
if(e.value == 'pagamento') {
|
| 360 |
+
e.checked = true;
|
| 361 |
+
showBcashPaymentMethod();
|
| 362 |
+
}
|
| 363 |
+
});
|
| 364 |
+
}
|
| 365 |
+
|
| 366 |
+
if(hasChecked == 1 && isBcash == 0) {
|
| 367 |
+
hideBcashPaymentMethod();
|
| 368 |
+
}
|
| 369 |
}
|
| 370 |
|
| 371 |
function checkIsCardSelected() {
|
| 491 |
disableUnunsed(paymentRadio);
|
| 492 |
showInstallmentsOnlyForMethod(paymentRadio.value);
|
| 493 |
ableCvv(paymentRadio.value);
|
| 494 |
+
document.body.select('input[type=radio][name="payment[method]"]').each(function (e) {
|
| 495 |
+
if(e.value == 'pagamento') {
|
| 496 |
+
e.checked = true;
|
| 497 |
+
}
|
| 498 |
+
});
|
| 499 |
+
//force order review reload
|
| 500 |
+
forceReloadOrderReviewOsc();
|
| 501 |
+
|
| 502 |
}
|
| 503 |
|
| 504 |
function enableCardForm() {
|
| 867 |
return true;
|
| 868 |
}
|
| 869 |
}
|
| 870 |
+
|
| 871 |
+
function updateInstallments(method) {
|
| 872 |
+
new Ajax.Request('<?php echo Mage::getUrl('pagamento/payment/installments',array('_secure'=>true)) ?>', {
|
| 873 |
+
method: 'post',
|
| 874 |
+
parameters: 'method=' + method,
|
| 875 |
+
onSuccess: successGetInstallments,
|
| 876 |
+
onFailure: failureGetInstallments
|
| 877 |
+
});
|
| 878 |
+
}
|
| 879 |
+
|
| 880 |
+
function successGetInstallments(response) {
|
| 881 |
+
var strInstallmentsResponse = response.responseJSON.installments;
|
| 882 |
+
var strMethodResponse = response.responseJSON.method;
|
| 883 |
+
|
| 884 |
+
// Update json
|
| 885 |
+
installments_cc = eval('(' + strInstallmentsResponse + ')');
|
| 886 |
+
|
| 887 |
+
showInstallmentsSelectBox(strMethodResponse, strInstallmentsResponse);
|
| 888 |
+
}
|
| 889 |
+
|
| 890 |
+
function failureGetInstallments(response){
|
| 891 |
+
alert("Falha inesperada ao atualizar parcelamentos. Por favor, selecione o meio de pagamento novamente." );
|
| 892 |
+
}
|
| 893 |
+
|
| 894 |
+
function hideBcashPaymentMethod() {
|
| 895 |
+
var paymentConteiner = document.getElementById('payment-<?php echo $code; ?>');
|
| 896 |
+
var paymentBcashConteiner = document.getElementById('payment-bcash-group');
|
| 897 |
+
|
| 898 |
+
// cards
|
| 899 |
+
var cardConteiner = document.getElementById('card-conteiner');
|
| 900 |
+
if(!hasClass(cardConteiner, 'b-hide')){
|
| 901 |
+
cardConteiner.className = cardConteiner.className + " b-hide";
|
| 902 |
+
}
|
| 903 |
+
disableCardForm();
|
| 904 |
+
|
| 905 |
+
// radios
|
| 906 |
+
document.body.select('input[type=radio][name="payment-method"]:checked').each(function (element) {
|
| 907 |
+
if (element.checked) {
|
| 908 |
+
element.checked = false;
|
| 909 |
+
}
|
| 910 |
+
});
|
| 911 |
+
var paymentRadios = document.getElementsByClassName("payment-method-bcash");
|
| 912 |
+
for (var i = paymentRadios.length - 1; i >= 0; i--) {
|
| 913 |
+
if(hasClass(paymentRadios[i], 'validate-one-required-by-name')) {
|
| 914 |
+
paymentRadios[i].className = paymentRadios[i].className.replace(/\bvalidate-one-required-by-name\b/, '');
|
| 915 |
+
}
|
| 916 |
+
paymentRadios[i].disabled = true;
|
| 917 |
+
}
|
| 918 |
+
|
| 919 |
+
// all
|
| 920 |
+
if(!hasClass(paymentBcashConteiner, 'b-hide')){
|
| 921 |
+
paymentBcashConteiner.className = paymentBcashConteiner.className + " b-hide";
|
| 922 |
+
}
|
| 923 |
+
if (!hasClass(paymentConteiner, 'b-hide')) {
|
| 924 |
+
paymentConteiner.className = paymentConteiner.className + " b-hide";
|
| 925 |
+
}
|
| 926 |
+
}
|
| 927 |
+
|
| 928 |
+
function uncheckBcashPaymentMethods() {
|
| 929 |
+
document.body.select('input[type=radio][name="payment-method"]:checked').each(function (element) {
|
| 930 |
+
if (element.checked) {
|
| 931 |
+
element.checked = false;
|
| 932 |
+
}
|
| 933 |
+
});
|
| 934 |
+
}
|
| 935 |
+
|
| 936 |
+
function showBcashPaymentMethod() {
|
| 937 |
+
var paymentConteiner = document.getElementById('payment-<?php echo $code; ?>');
|
| 938 |
+
var paymentBcashConteiner = document.getElementById('payment-bcash-group');
|
| 939 |
+
|
| 940 |
+
var paymentRadios = document.getElementsByClassName("payment-method-bcash");
|
| 941 |
+
for (var i = paymentRadios.length - 1; i >= 0; i--) {
|
| 942 |
+
if(!hasClass(paymentRadios[i], 'validate-one-required-by-name')) {
|
| 943 |
+
paymentRadios[i].className = paymentRadios[i].className + " validate-one-required-by-name";
|
| 944 |
+
}
|
| 945 |
+
paymentRadios[i].disabled = false;
|
| 946 |
+
}
|
| 947 |
+
if(hasClass(paymentBcashConteiner, 'b-hide')) {
|
| 948 |
+
paymentBcashConteiner.className = paymentBcashConteiner.className.replace(/\bb-hide\b/, '');
|
| 949 |
+
}
|
| 950 |
+
if (hasClass(paymentConteiner, 'b-hide')) {
|
| 951 |
+
paymentConteiner.className = paymentConteiner.className.replace(/\bb-hide\b/, '');
|
| 952 |
+
}
|
| 953 |
+
}
|
| 954 |
+
|
| 955 |
+
$(document).on('change', 'input[type=radio][name=payment[method]]', function (event) {
|
| 956 |
+
var target = event.target;
|
| 957 |
+
var paymentConteiner = document.getElementById('payment-<?php echo $code; ?>');
|
| 958 |
+
var paymentBcashConteiner = document.getElementById('payment-bcash-group');
|
| 959 |
+
if(target.id == 'p_method_pagamento') {
|
| 960 |
+
showBcashPaymentMethod();
|
| 961 |
+
} else {
|
| 962 |
+
|
| 963 |
+
hideBcashPaymentMethod();
|
| 964 |
+
}
|
| 965 |
+
event.preventDefault();
|
| 966 |
+
});
|
| 967 |
+
|
| 968 |
+
$(document).on('change', 'input[type=radio][name=shipping_method]', function (event) {
|
| 969 |
+
var target = event.target;
|
| 970 |
+
changeInstallmentsSelect("Selecione novamente o meio de pagamento.");
|
| 971 |
+
uncheckBcashPaymentMethods();
|
| 972 |
+
event.preventDefault();
|
| 973 |
+
});
|
| 974 |
+
|
| 975 |
+
$(document).on('click', '#coupon-cancel', function (event) {
|
| 976 |
+
var target = event.target;
|
| 977 |
+
changeInstallmentsSelect("Selecione novamente o meio de pagamento.");
|
| 978 |
+
uncheckBcashPaymentMethods();
|
| 979 |
+
event.preventDefault();
|
| 980 |
+
});
|
| 981 |
+
|
| 982 |
+
$(document).on('click', '#coupon-apply', function (event) {
|
| 983 |
+
var target = event.target;
|
| 984 |
+
changeInstallmentsSelect("Selecione novamente o meio de pagamento.");
|
| 985 |
+
uncheckBcashPaymentMethods();
|
| 986 |
+
event.preventDefault();
|
| 987 |
+
});
|
| 988 |
};
|
| 989 |
initBcashPagamento();
|
| 990 |
//]]>
|
package.xml
CHANGED
|
@@ -1,20 +1,18 @@
|
|
| 1 |
<?xml version="1.0"?>
|
| 2 |
<package>
|
| 3 |
<name>Bcash_Pagamento</name>
|
| 4 |
-
<version>1.
|
| 5 |
<stability>stable</stability>
|
| 6 |
<license>GNU General Public License (GPL)</license>
|
| 7 |
<channel>community</channel>
|
| 8 |
<extends/>
|
| 9 |
<summary>Módulo para Magento Bcash Transparente (API)</summary>
|
| 10 |
<description>Módulo para Magento Bcash Transparente (API)</description>
|
| 11 |
-
<notes
|
| 12 |
-
- Estorno/Cancelamento de pagamento diretamente no Bcash;
|
| 13 |
-
- Atualização automática de status do pagamento.</notes>
|
| 14 |
<authors><author><name>Bcash</name><user>Bcash</user><email>danilo.benedetti@bcash.com.br</email></author></authors>
|
| 15 |
-
<date>2015-
|
| 16 |
-
<time>
|
| 17 |
-
<contents><target name="magecommunity"><dir name="Bcash"><dir name="Pagamento"><dir name="Block"><dir name="Adminhtml"><file name="Dependentes.php" hash="817d7116d5ab890b5525a7185100ab37"/><dir name="Sales"><dir name="Order"><file name="Grid.php" hash="ce5a4c048d7579d00640a06635c68790"/><file name="View.php" hash="ec2e6d2af5eb75cd727cb8923ee7d06a"/></dir></dir></dir><dir name="Form"><file name="Payment.php" hash="6e4147ecf10be00f598601160a27ce2c"/></dir><dir name="Info"><file name="Payment.php" hash="7df027e4d1c5819454778ebe535828cf"/></dir></dir><dir name="Helper"><file name="Data.php" hash="
|
| 18 |
<compatible/>
|
| 19 |
<dependencies><required><php><min>5.3.0</min><max>5.6.14</max></php></required></dependencies>
|
| 20 |
</package>
|
| 1 |
<?xml version="1.0"?>
|
| 2 |
<package>
|
| 3 |
<name>Bcash_Pagamento</name>
|
| 4 |
+
<version>1.1.3</version>
|
| 5 |
<stability>stable</stability>
|
| 6 |
<license>GNU General Public License (GPL)</license>
|
| 7 |
<channel>community</channel>
|
| 8 |
<extends/>
|
| 9 |
<summary>Módulo para Magento Bcash Transparente (API)</summary>
|
| 10 |
<description>Módulo para Magento Bcash Transparente (API)</description>
|
| 11 |
+
<notes>Update transaction data at Order table</notes>
|
|
|
|
|
|
|
| 12 |
<authors><author><name>Bcash</name><user>Bcash</user><email>danilo.benedetti@bcash.com.br</email></author></authors>
|
| 13 |
+
<date>2015-11-19</date>
|
| 14 |
+
<time>16:37:09</time>
|
| 15 |
+
<contents><target name="magecommunity"><dir name="Bcash"><dir name="Pagamento"><dir name="Block"><dir name="Adminhtml"><file name="Dependentes.php" hash="817d7116d5ab890b5525a7185100ab37"/><dir name="Sales"><dir name="Order"><file name="Grid.php" hash="ce5a4c048d7579d00640a06635c68790"/><file name="View.php" hash="ec2e6d2af5eb75cd727cb8923ee7d06a"/></dir></dir></dir><dir name="Form"><file name="Payment.php" hash="6e4147ecf10be00f598601160a27ce2c"/></dir><dir name="Info"><file name="Payment.php" hash="7df027e4d1c5819454778ebe535828cf"/></dir></dir><dir name="Helper"><file name="Data.php" hash="40d1bbfca9603c987c02ead374829bda"/><file name="PaymentMethod.php" hash="1fe0aa7851a9ba7f4f195869841defc3"/><file name="Transaction.php" hash="877f97026561b3242a67dc3044ded083"/></dir><dir name="Model"><file name="Observer.php" hash="0c14d85855be15a2b6c79b4a9e084f69"/><file name="Order.php" hash="e82596b3ad50673719e88d65597995d9"/><file name="PaymentMethod.php" hash="8ba2cd750107ab1a2afb39c377688e37"/><dir name="System"><dir name="Config"><dir name="Source"><file name="Installments.php" hash="5fae970a6cb83b5be079c5762b8e214d"/></dir></dir></dir></dir><dir name="controllers"><dir name="Admin"><dir name="Sales"><file name="OrderController.php" hash="f5e28688b10de3a386632ffe9db53dec"/></dir></dir><file name="NotificationController.php" hash="67dd78990534ff0b054d48392a6491b5"/><file name="PaymentController.php" hash="22429bd95d83c4d2bbc0c2c3d32f94d5"/></dir><dir name="etc"><file name="config.xml" hash="6cab1a4596bdce8261e61dc8ef5c4533"/><file name="system.xml" hash="445170483c052ee95127df17723ca561"/></dir><dir name="sql"><dir name="pagamento_setup"><file name="mysql4-install-0.1.0.php" hash="51ff3e257bb67b19c92f05793617b225"/></dir></dir></dir></dir></target><target name="magedesign"><dir name="frontend"><dir name="base"><dir name="default"><dir name="layout"><dir name="bcash"><dir name="pagamento"><file name="layout.xml" hash="5e15451eac5922ec1fc48f0b703bf09c"/></dir></dir></dir><dir name="template"><dir name="pagamento"><dir name="checkout"><file name="success.phtml" hash="bdee0194f3174b6eb2bc26965c8c4bb9"/></dir><dir name="form"><file name="payment.phtml" hash="7a43e30885bdb3dbc70612cee661a0ee"/></dir><dir name="sales"><dir name="order"><dir name="info"><dir name="buttons"><file name="payment.phtml" hash="218fcb385c5c7c643967a69b23b62896"/></dir></dir></dir></dir></dir></dir></dir></dir></dir></target><target name="mageetc"><dir name="modules"><file name="Bcash_Pagamento.xml" hash="3dd07f527dbcd104762897d392acb31b"/></dir></target><target name="mageskin"><dir name="frontend"><dir name="base"><dir name="default"><dir name="bcash"><dir name="pagamento"><dir name="css"><file name="application.css" hash="34b84ab770c9d29b95ab2244256a63e7"/></dir><dir name="images"><file name="application-sprite.png" hash="2c6c670b3ca8f7eb783f874bd387527e"/></dir><dir name="js"><file name="payment.js" hash="c0124aabf6a91849c0aa7db6cea6a471"/></dir></dir></dir></dir></dir></dir></target><target name="magelib"><dir name="BcashApi"><dir name="src"><file name="AutoLoader.php" hash="d661e36286a54d06a36cc13ed62379d1"/><dir name="Config"><file name="Config.php" hash="027627d0781a1a6842ab2b6f7cb13512"/></dir><dir name="Domain"><file name="Address.php" hash="ebc176d33ba79ac46cf59561f479919f"/><file name="CreditCard.php" hash="bcf12a466ab99f25da348a93c2e7f995"/><file name="CurrencyEnum.php" hash="c2097c3796e8ab354a9b61ce1bb9c70e"/><file name="Customer.php" hash="68f056140a92bfb9a7534ced54939d44"/><file name="DependentTransaction.php" hash="2553d6ed93f39cb96ef185cbc886311c"/><file name="GenderEnum.php" hash="11377e531d5914b232b99f8cee61e61c"/><file name="Model.php" hash="f1b7fe3fb7384852f16f4b6931fc8545"/><file name="NotificationContent.php" hash="52b6ad7894c455dd4f4c199fdaf1fad3"/><file name="NotificationStatusEnum.php" hash="1635e03b18f7de30fd6bd80a7ff4f4d4"/><file name="PaymentMethod.php" hash="86fbfc29bc8671a4617f51a36031eba4"/><file name="PaymentMethodEnum.php" hash="d0deaeac659f54826bb38aa94d7f5c34"/><file name="Product.php" hash="674e7475e0555e9f2f592c7931098144"/><file name="ShippingTypeEnum.php" hash="4849b2ff3bf4294285e1d2e51d5226ea"/><file name="StateEnum.php" hash="75080122c0eb3807dcca92e064ff5d1d"/><file name="TransactionRequest.php" hash="f1e29973341750cca57dfac7f1496355"/></dir><dir name="Exception"><file name="BaseException.php" hash="e4d5637be15c9939cedb80b6aa54418e"/><file name="ConnectionException.php" hash="421fb7fbab02fe882a00765cc9cff569"/><file name="ValidationException.php" hash="03379f9626fcb19694a3662395da755f"/></dir><dir name="Helper"><file name="HttpHelper.php" hash="3ee5690f7eb45974cf888128643b2700"/></dir><dir name="Http"><dir name="Authentication"><file name="Basic.php" hash="b9ca27226db5535b70edea699d6d2e55"/><file name="OAuth.php" hash="92e6d135821380337561ace5572b8f9a"/></dir><file name="Connection.php" hash="381b6f242da04ef4c68691e70a3118b5"/><file name="GetRequest.php" hash="bbb366a1fb1396cd53e7976740880351"/><file name="PostRequest.php" hash="9e425ddf0278e72ffbb3b7369e18359d"/><file name="PutRequest.php" hash="7da14392d43109682f7373e8d4b12660"/><file name="Response.php" hash="f941571206e14c8251373168b08e297f"/></dir><dir name="Service"><file name="Account.php" hash="1e62bbf14e84348bb4b08a37ca843dfb"/><file name="Cancellation.php" hash="e1931a4e0bc1e66006670645336d93f4"/><file name="Consultation.php" hash="8c4fb3a25d9ffa418aad36cce99cab12"/><file name="IEnvironmentManager.php" hash="05668b184b91a5895f8308e5dc02d422"/><file name="Installments.php" hash="101e7aa5aace7e618156c3152aa894c8"/><file name="Notification.php" hash="550b7ee0fea57d7ac30c4648c9896c39"/><file name="Payment.php" hash="87a8184a928e04f56b6b9d796a6e9806"/></dir><dir name="Test"><file name="NotificationSimulator.php" hash="de77ea4d3c4c656a1dafd77f944aafbe"/></dir></dir><file name="autoloader.php" hash="9d6567ac5239179a52d4fa8c1d3542f0"/></dir></target></contents>
|
| 16 |
<compatible/>
|
| 17 |
<dependencies><required><php><min>5.3.0</min><max>5.6.14</max></php></required></dependencies>
|
| 18 |
</package>
|
