Version Notes
Versão estável.
Os bugs devem ser reportados na área de Issues no github do projeto em https://github.com/r-martins/PagSeguro-Magento-Transparente
Download this release
Release Info
Developer | Ricardo Martins |
Extension | RicardoMartins_PagSeguro |
Version | 2.1.0 |
Comparing to | |
See all releases |
Code changes from version 2.0.4 to 2.1.0
app/code/community/RicardoMartins/PagSeguro/Block/Form/Cc.php
CHANGED
@@ -35,27 +35,18 @@ class RicardoMartins_PagSeguro_Block_Form_Cc extends Mage_Payment_Block_Form_Cc
|
|
35 |
$this->setTemplate('ricardomartins_pagseguro/form/cc.phtml');
|
36 |
}
|
37 |
|
38 |
-
|
39 |
-
|
|
|
|
|
|
|
|
|
40 |
//adicionaremos o JS do pagseguro na tela que usará o bloco de cartao logo após o <body>
|
41 |
-
$scriptblock = Mage::app()->getLayout()->createBlock('core/text', 'js_pagseguro');
|
42 |
-
$scriptblock->setText(sprintf(
|
43 |
-
'
|
44 |
-
<script type="text/javascript">var RMPagSeguroSiteBaseURL = "%s";</script>
|
45 |
-
<script type="text/javascript" src="%s"></script>
|
46 |
-
<script type="text/javascript" src="%s"></script>
|
47 |
-
',
|
48 |
-
Mage::getBaseUrl(Mage_Core_Model_Store::URL_TYPE_LINK,true),
|
49 |
-
Mage::helper('ricardomartins_pagseguro')->getJsUrl(),
|
50 |
-
Mage::getBaseUrl(Mage_Core_Model_Store::URL_TYPE_JS, true) . 'pagseguro/pagseguro.js'
|
51 |
-
));
|
52 |
$head = Mage::app()->getLayout()->getBlock('after_body_start');
|
53 |
|
54 |
-
|
55 |
-
|
56 |
-
|
57 |
-
{
|
58 |
-
$head->append($scriptblock);
|
59 |
}
|
60 |
|
61 |
return parent::_prepareLayout();
|
@@ -63,8 +54,8 @@ class RicardoMartins_PagSeguro_Block_Form_Cc extends Mage_Payment_Block_Form_Cc
|
|
63 |
|
64 |
public function isDobVisible()
|
65 |
{
|
66 |
-
$
|
67 |
-
return empty($
|
68 |
}
|
69 |
|
70 |
}
|
35 |
$this->setTemplate('ricardomartins_pagseguro/form/cc.phtml');
|
36 |
}
|
37 |
|
38 |
+
/**
|
39 |
+
* Insere o javascript do modulo somente na hora da renderização, caso ainda não tenha sido inserido.
|
40 |
+
* @return Mage_Core_Block_Abstract
|
41 |
+
*/
|
42 |
+
protected function _prepareLayout()
|
43 |
+
{
|
44 |
//adicionaremos o JS do pagseguro na tela que usará o bloco de cartao logo após o <body>
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
45 |
$head = Mage::app()->getLayout()->getBlock('after_body_start');
|
46 |
|
47 |
+
if ($head && false == $head->getChild('js_pagseguro')) {
|
48 |
+
$scriptBlock = Mage::helper('ricardomartins_pagseguro')->getPagSeguroScriptBlock();
|
49 |
+
$head->append($scriptBlock);
|
|
|
|
|
50 |
}
|
51 |
|
52 |
return parent::_prepareLayout();
|
54 |
|
55 |
public function isDobVisible()
|
56 |
{
|
57 |
+
$ownerDobAttribute = Mage::getStoreConfig('payment/pagseguro_cc/owner_dob_attribute');
|
58 |
+
return empty($ownerDobAttribute);
|
59 |
}
|
60 |
|
61 |
}
|
app/code/community/RicardoMartins/PagSeguro/Helper/Data.php
CHANGED
@@ -43,7 +43,6 @@ class RicardoMartins_PagSeguro_Helper_Data extends Mage_Core_Helper_Abstract
|
|
43 |
CURLOPT_TIMEOUT => 45,
|
44 |
CURLOPT_SSL_VERIFYPEER => false,
|
45 |
CURLOPT_SSL_VERIFYHOST => false,
|
46 |
-
|
47 |
));
|
48 |
|
49 |
$response = null;
|
@@ -58,8 +57,12 @@ class RicardoMartins_PagSeguro_Helper_Data extends Mage_Core_Helper_Abstract
|
|
58 |
|
59 |
libxml_use_internal_errors(true);
|
60 |
$xml = simplexml_load_string($response);
|
61 |
-
if(false === $xml){
|
62 |
-
$
|
|
|
|
|
|
|
|
|
63 |
return false;
|
64 |
}
|
65 |
return (string)$xml->id;
|
@@ -155,6 +158,7 @@ class RicardoMartins_PagSeguro_Helper_Data extends Mage_Core_Helper_Abstract
|
|
155 |
*/
|
156 |
public function getToken()
|
157 |
{
|
|
|
158 |
$token = Mage::getStoreConfig(self::XML_PATH_PAYMENT_PAGSEGURO_TOKEN);
|
159 |
if($this->isSandbox())
|
160 |
{
|
@@ -215,4 +219,44 @@ class RicardoMartins_PagSeguro_Helper_Data extends Mage_Core_Helper_Abstract
|
|
215 |
}
|
216 |
return Mage::app()->getTranslator()->translate($args);
|
217 |
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
218 |
}
|
43 |
CURLOPT_TIMEOUT => 45,
|
44 |
CURLOPT_SSL_VERIFYPEER => false,
|
45 |
CURLOPT_SSL_VERIFYHOST => false,
|
|
|
46 |
));
|
47 |
|
48 |
$response = null;
|
57 |
|
58 |
libxml_use_internal_errors(true);
|
59 |
$xml = simplexml_load_string($response);
|
60 |
+
if (false === $xml) {
|
61 |
+
if (curl_errno($ch) > 0) {
|
62 |
+
$this->writeLog('Falha de comunicação com API do PagSeguro: ' . curl_error($ch));
|
63 |
+
} else {
|
64 |
+
$this->writeLog('Falha na autenticação com API do PagSeguro. Verifique email e token cadastrados. Retorno pagseguro: ' . $response);
|
65 |
+
}
|
66 |
return false;
|
67 |
}
|
68 |
return (string)$xml->id;
|
158 |
*/
|
159 |
public function getToken()
|
160 |
{
|
161 |
+
$this->checkTokenIntegrity();
|
162 |
$token = Mage::getStoreConfig(self::XML_PATH_PAYMENT_PAGSEGURO_TOKEN);
|
163 |
if($this->isSandbox())
|
164 |
{
|
219 |
}
|
220 |
return Mage::app()->getTranslator()->translate($args);
|
221 |
}
|
222 |
+
|
223 |
+
/**
|
224 |
+
* Verifica se o campo de token é do tipo password e gera um warning no log caso não seja.
|
225 |
+
* @author Ricardo Martins
|
226 |
+
* @return void
|
227 |
+
*/
|
228 |
+
public function checkTokenIntegrity()
|
229 |
+
{
|
230 |
+
$section = Mage::getSingleton('adminhtml/config')->getSection('payment');
|
231 |
+
$frontendType = (string)$section->groups->pagseguro->fields->token->frontend_type;
|
232 |
+
|
233 |
+
if ('obscure' != $frontendType) {
|
234 |
+
$this->writeLog(
|
235 |
+
'O Token não está seguro. Outro módulo PagSeguro pode estar em conflito. Desabilite-os via XML.'
|
236 |
+
);
|
237 |
+
}
|
238 |
+
}
|
239 |
+
|
240 |
+
/**
|
241 |
+
* Gera o HTML dos JS do Modulo
|
242 |
+
* @author Ricardo Martins
|
243 |
+
* @return Mage_Core_Block_Text
|
244 |
+
*/
|
245 |
+
public function getPagSeguroScriptBlock()
|
246 |
+
{
|
247 |
+
$scriptblock = Mage::app()->getLayout()->createBlock('core/text', 'js_pagseguro');
|
248 |
+
$scriptblock->setText(
|
249 |
+
sprintf(
|
250 |
+
'
|
251 |
+
<script type="text/javascript">var RMPagSeguroSiteBaseURL = "%s";</script>
|
252 |
+
<script type="text/javascript" src="%s"></script>
|
253 |
+
<script type="text/javascript" src="%s"></script>
|
254 |
+
',
|
255 |
+
Mage::getBaseUrl(Mage_Core_Model_Store::URL_TYPE_LINK, true),
|
256 |
+
Mage::helper('ricardomartins_pagseguro')->getJsUrl(),
|
257 |
+
Mage::getBaseUrl(Mage_Core_Model_Store::URL_TYPE_JS, true) . 'pagseguro/pagseguro.js'
|
258 |
+
)
|
259 |
+
);
|
260 |
+
return $scriptblock;
|
261 |
+
}
|
262 |
}
|
app/code/community/RicardoMartins/PagSeguro/Model/Observer.php
CHANGED
@@ -9,13 +9,18 @@ class RicardoMartins_PagSeguro_Model_Observer
|
|
9 |
*/
|
10 |
public function addDirectPaymentBlock($observer)
|
11 |
{
|
12 |
-
$pagseguroBlocks = array(
|
|
|
|
|
|
|
|
|
13 |
$blockType = $observer->getBlock()->getType();
|
14 |
-
if(in_array($blockType
|
15 |
$output = $observer->getTransport()->getHtml();
|
16 |
-
$directpayment = Mage::app()->getLayout()
|
|
|
|
|
17 |
$observer->getTransport()->setHtml($output . $directpayment);
|
18 |
-
|
19 |
}
|
20 |
return $this;
|
21 |
}
|
9 |
*/
|
10 |
public function addDirectPaymentBlock($observer)
|
11 |
{
|
12 |
+
$pagseguroBlocks = array(
|
13 |
+
'ricardomartins_pagseguropro/form_tef',
|
14 |
+
'ricardomartins_pagseguropro/form_boleto',
|
15 |
+
'ricardomartins_pagseguro/form_cc',
|
16 |
+
);
|
17 |
$blockType = $observer->getBlock()->getType();
|
18 |
+
if (in_array($blockType, $pagseguroBlocks)) {
|
19 |
$output = $observer->getTransport()->getHtml();
|
20 |
+
$directpayment = Mage::app()->getLayout()
|
21 |
+
->createBlock('ricardomartins_pagseguro/form_directpayment')
|
22 |
+
->toHtml();
|
23 |
$observer->getTransport()->setHtml($output . $directpayment);
|
|
|
24 |
}
|
25 |
return $this;
|
26 |
}
|
app/code/community/RicardoMartins/PagSeguro/etc/config.xml
CHANGED
@@ -2,7 +2,7 @@
|
|
2 |
<config>
|
3 |
<modules>
|
4 |
<RicardoMartins_PagSeguro>
|
5 |
-
<version>2.0
|
6 |
</RicardoMartins_PagSeguro>
|
7 |
</modules>
|
8 |
<global>
|
@@ -44,11 +44,10 @@
|
|
44 |
<events>
|
45 |
<core_block_abstract_to_html_after>
|
46 |
<observers>
|
47 |
-
<
|
48 |
-
<
|
49 |
-
<class>RicardoMartins_PagSeguro_Model_Observer</class>
|
50 |
<method>addDirectPaymentBlock</method>
|
51 |
-
</
|
52 |
</observers>
|
53 |
</core_block_abstract_to_html_after>
|
54 |
</events>
|
2 |
<config>
|
3 |
<modules>
|
4 |
<RicardoMartins_PagSeguro>
|
5 |
+
<version>2.1.0</version>
|
6 |
</RicardoMartins_PagSeguro>
|
7 |
</modules>
|
8 |
<global>
|
44 |
<events>
|
45 |
<core_block_abstract_to_html_after>
|
46 |
<observers>
|
47 |
+
<pagseguro>
|
48 |
+
<class>ricardomartins_pagseguro/observer</class>
|
|
|
49 |
<method>addDirectPaymentBlock</method>
|
50 |
+
</pagseguro>
|
51 |
</observers>
|
52 |
</core_block_abstract_to_html_after>
|
53 |
</events>
|
package.xml
CHANGED
@@ -1,7 +1,7 @@
|
|
1 |
<?xml version="1.0"?>
|
2 |
<package>
|
3 |
<name>RicardoMartins_PagSeguro</name>
|
4 |
-
<version>2.0
|
5 |
<stability>stable</stability>
|
6 |
<license>MIT</license>
|
7 |
<channel>community</channel>
|
@@ -13,9 +13,9 @@ Os dados do cartão são enviados para o site do pagseguro de forma segu
|
|
13 |

|
14 |
Os bugs devem ser reportados na área de Issues no github do projeto em https://github.com/r-martins/PagSeguro-Magento-Transparente</notes>
|
15 |
<authors><author><name>Ricardo Martins</name><user>MAG001517858</user><email>ricardo@ricardomartins.info</email></author></authors>
|
16 |
-
<date>2015-
|
17 |
-
<time>
|
18 |
-
<contents><target name="magecommunity"><dir name="RicardoMartins"><dir name="PagSeguro"><dir name="Block"><dir name="Form"><dir name="Cc"><file name="Dob.php" hash="ed45c9f5576c289897eb5c86a46c6d85"/></dir><file name="Cc.php" hash="
|
19 |
<compatible/>
|
20 |
<dependencies><required><php><min>5.2.1</min><max>5.6.16</max></php></required></dependencies>
|
21 |
</package>
|
1 |
<?xml version="1.0"?>
|
2 |
<package>
|
3 |
<name>RicardoMartins_PagSeguro</name>
|
4 |
+
<version>2.1.0</version>
|
5 |
<stability>stable</stability>
|
6 |
<license>MIT</license>
|
7 |
<channel>community</channel>
|
13 |

|
14 |
Os bugs devem ser reportados na área de Issues no github do projeto em https://github.com/r-martins/PagSeguro-Magento-Transparente</notes>
|
15 |
<authors><author><name>Ricardo Martins</name><user>MAG001517858</user><email>ricardo@ricardomartins.info</email></author></authors>
|
16 |
+
<date>2015-05-29</date>
|
17 |
+
<time>00:13:03</time>
|
18 |
+
<contents><target name="magecommunity"><dir name="RicardoMartins"><dir name="PagSeguro"><dir name="Block"><dir name="Form"><dir name="Cc"><file name="Dob.php" hash="ed45c9f5576c289897eb5c86a46c6d85"/></dir><file name="Cc.php" hash="6a7509b076172f421adbbdb1c96fe116"/><file name="Directpayment.php" hash="937273e541d362f353b2bde87c041631"/><dir name="Info"><file name="Cc.php" hash="ef4952bfb9d12dae0b6ce13afeb0d1bb"/></dir></dir></dir><dir name="Helper"><file name="Data.php" hash="f8751d7db405c50a7eeb72c1f3fb84c5"/><file name="Internal.php" hash="fbf64a95060a3d2f47ef44bde57a5c70"/><file name="Params.php" hash="ac7a5a794806a1881b81548977ea96c9"/></dir><dir name="Model"><file name="Abstract.php" hash="8489ad3cb2c7371e82b482be3e01a259"/><file name="Observer.php" hash="29a784cdb6203baf6b5f0abeeeda99ed"/><dir name="Payment"><file name="Cc.php" hash="45cc744efc1d808f7661bcf611ba33e1"/></dir><dir name="Source"><dir name="Customer"><dir name="Address"><dir name="Attributes"><file name="Optional.php" hash="f25cdc6fe64c4e815cc9550e1d8f0977"/></dir><file name="Attributes.php" hash="01b0c102f051ec79fcf09feef3c79a63"/></dir><file name="Attributes.php" hash="4632cc4e9a67ef1d2633058def2c2e03"/><file name="Cpf.php" hash="fae15336acbf15a9bf43f7ae5e3fc9f2"/><file name="Dob.php" hash="ec1b44beafb11cd5dc30b8fe1aea2a74"/></dir><file name="Paymentmethods.php" hash="5ea1877c9f73a6dec6bc91900309a5a5"/></dir><dir name="System"><dir name="Config"><dir name="Source"><dir name="Customer"><file name="Groups.php" hash="9649812c9f20e055ed1cb9fd92fbe656"/></dir></dir></dir></dir></dir><dir name="controllers"><file name="AjaxController.php" hash="f4678d73ebdfa7419870d74ca7f651f7"/><file name="NotificationController.php" hash="ec75706a308d334fad9232d0a193833f"/><file name="TestController.php" hash="dc8831ab4de2bd10d62a3ff9b6397add"/></dir><dir name="etc"><file name="config.xml" hash="9d8c9618fb285f122fa857d08668ee9e"/><file name="system.xml" hash="c2325165f309d3cad495c9afb71e7c8d"/></dir></dir></dir></target><target name="mageetc"><dir name="modules"><file name="RicardoMartins_PagSeguro.xml" hash="82d8294eccac1fb4047f27566b0c9f2a"/></dir></target><target name="magelocale"><dir name="pt_BR"><file name="RicardoMartins_PagSeguro.csv" hash="84a6cc4fb73769ac822c9e8e22b8cec8"/></dir></target><target name="mageskin"><dir name="frontend"><dir name="base"><dir name="default"><dir name="pagseguro"><dir><dir name="selo"><file name="selo01_160x90.gif" hash="e6729bb969abb20588f134f7d29ea0ec"/><file name="selo01_200x60.gif" hash="e91ed131018bae7d9abc2cc1a72f539b"/><file name="selo01_300x60.gif" hash="13b07e35250b30a61c86c98815e3310c"/><file name="selo02_160x90.gif" hash="4e65530d2c42bae4e5fab617a4d0afdf"/><file name="selo02_200x60.gif" hash="ba629a85cef8982423c7679a4875283c"/><file name="selo02_300x60.gif" hash="5827aca40455f22caffee1392917f16c"/><file name="selo03_160x90.gif" hash="e3c69ace0991d7841728c6203fc305bf"/><file name="selo03_200x60.gif" hash="63135b65df64a70629748d66f5c0c453"/><file name="selo03_300x60.gif" hash="e88f1529f2d27d4732cd7c374752618e"/><file name="selo04_160x90.gif" hash="8e71cb1942c15427ba96ac21aacdb9d6"/><file name="selo04_200x60.gif" hash="f08b80b40541e35491a8d966cb420c78"/><file name="selo04_300x60.gif" hash="43f9fc4ad730111654777c26059e9fbf"/></dir></dir></dir></dir></dir></dir></target><target name="magedesign"><dir name="frontend"><dir name="base"><dir name="default"><dir name="template"><dir name="ricardomartins_pagseguro"><dir><dir name="form"><dir name="cc"><file name="dob.phtml" hash="0ea9d4ff767a43d1393ddf1e2882a5da"/></dir><file name="cc.phtml" hash="fef544ca8afd619526b9ea2a9d19e7e5"/><file name="directpayment.phtml" hash="05b00f5b33e53fd1091b5a84b31d7c85"/><dir name="info"><file name="cc.phtml" hash="0a3aa78e0775cd51bb7a168b813dd466"/></dir></dir></dir></dir></dir></dir></dir></dir><dir name="adminhtml"><dir name="base"><dir name="default"><dir name="template"><dir name="ricardomartins_pagseguro"><dir><dir name="form"><file name="directpayment.phtml" hash="d7f02da712e3bb310a6f785ebc36e3d3"/><dir name="info"><file name="cc.phtml" hash="0a3aa78e0775cd51bb7a168b813dd466"/></dir></dir></dir></dir></dir></dir></dir></dir></target><target name="mageweb"><dir name="js"><dir name="pagseguro"><file name="pagseguro.js" hash="db680c06c8b83319c33924739e6b0ad8"/></dir></dir></target></contents>
|
19 |
<compatible/>
|
20 |
<dependencies><required><php><min>5.2.1</min><max>5.6.16</max></php></required></dependencies>
|
21 |
</package>
|