Version Notes
Versão estável.
Os bugs devem ser reportador 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.0.0 |
Comparing to | |
See all releases |
Code changes from version 1.0.13 to 2.0.0
- app/code/community/RicardoMartins/PagSeguro/Helper/Data.php +61 -5
- app/code/community/RicardoMartins/PagSeguro/Helper/Params.php +24 -6
- app/code/community/RicardoMartins/PagSeguro/Model/Abstract.php +42 -15
- app/code/community/RicardoMartins/PagSeguro/Model/Payment/Cc.php +2 -3
- app/code/community/RicardoMartins/PagSeguro/Model/Source/Customer/Cpf.php +8 -1
- app/code/community/RicardoMartins/PagSeguro/controllers/AjaxController.php +3 -3
- app/code/community/RicardoMartins/PagSeguro/controllers/NotificationController.php +2 -2
- app/code/community/RicardoMartins/PagSeguro/controllers/TestController.php +18 -115
- app/code/community/RicardoMartins/PagSeguro/etc/config.xml +5 -1
- app/code/community/RicardoMartins/PagSeguro/etc/system.xml +2 -3
- app/design/frontend/base/default/template/ricardomartins_pagseguro/form/cc/dob.phtml +3 -3
- app/design/frontend/base/default/template/ricardomartins_pagseguro/form/directpayment.phtml +0 -1
- app/locale/pt_BR/RicardoMartins_PagSeguro.csv +107 -1
- js/pagseguro/pagseguro.js +8 -5
- package.xml +4 -4
app/code/community/RicardoMartins/PagSeguro/Helper/Data.php
CHANGED
@@ -9,9 +9,13 @@ class RicardoMartins_PagSeguro_Helper_Data extends Mage_Core_Helper_Abstract
|
|
9 |
const XML_PATH_PAYMENT_PAGSEGURO_SANDBOX_EMAIL = 'payment/pagseguro/sandbox_merchant_email';
|
10 |
const XML_PATH_PAYMENT_PAGSEGURO_SANDBOX_TOKEN = 'payment/pagseguro/sandbox_token';
|
11 |
const XML_PATH_PAYMENT_PAGSEGURO_WS_URL = 'payment/pagseguro/ws_url';
|
|
|
12 |
const XML_PATH_PAYMENT_PAGSEGURO_JS_URL = 'payment/pagseguro/js_url';
|
13 |
const XML_PATH_PAYMENT_PAGSEGURO_SANDBOX_WS_URL = 'payment/pagseguro/sandbox_ws_url';
|
|
|
14 |
const XML_PATH_PAYMENT_PAGSEGURO_SANDBOX_JS_URL = 'payment/pagseguro/sandbox_js_url';
|
|
|
|
|
15 |
|
16 |
|
17 |
/**
|
@@ -21,10 +25,14 @@ class RicardoMartins_PagSeguro_Helper_Data extends Mage_Core_Helper_Abstract
|
|
21 |
*/
|
22 |
public function getSessionId()
|
23 |
{
|
24 |
-
$
|
|
|
25 |
$client->setMethod(Zend_Http_Client::POST);
|
26 |
-
$client->
|
27 |
-
$client->
|
|
|
|
|
|
|
28 |
$client->setConfig(array('timeout'=>30));
|
29 |
try{
|
30 |
$response = $client->request();
|
@@ -60,15 +68,25 @@ class RicardoMartins_PagSeguro_Helper_Data extends Mage_Core_Helper_Abstract
|
|
60 |
/**
|
61 |
* Retorna URL do Webservice do Pagseguro de acordo com o ambiente selecionado
|
62 |
* @param string $amend acrescenta algo no final
|
|
|
63 |
*
|
64 |
* @return string
|
65 |
*/
|
66 |
-
public function getWsUrl($amend='')
|
67 |
{
|
68 |
if($this->isSandbox())
|
69 |
{
|
70 |
-
|
|
|
|
|
|
|
|
|
71 |
}
|
|
|
|
|
|
|
|
|
|
|
72 |
return Mage::getStoreConfig(self::XML_PATH_PAYMENT_PAGSEGURO_WS_URL) . $amend;
|
73 |
}
|
74 |
|
@@ -146,4 +164,42 @@ class RicardoMartins_PagSeguro_Helper_Data extends Mage_Core_Helper_Abstract
|
|
146 |
$customer_cpf_attribute = Mage::getStoreConfig('payment/pagseguro/customer_cpf_attribute');
|
147 |
return empty($customer_cpf_attribute);
|
148 |
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
149 |
}
|
9 |
const XML_PATH_PAYMENT_PAGSEGURO_SANDBOX_EMAIL = 'payment/pagseguro/sandbox_merchant_email';
|
10 |
const XML_PATH_PAYMENT_PAGSEGURO_SANDBOX_TOKEN = 'payment/pagseguro/sandbox_token';
|
11 |
const XML_PATH_PAYMENT_PAGSEGURO_WS_URL = 'payment/pagseguro/ws_url';
|
12 |
+
const XML_PATH_PAYMENT_PAGSEGURO_WS_URL_APP = 'payment/pagseguro/ws_url_app';
|
13 |
const XML_PATH_PAYMENT_PAGSEGURO_JS_URL = 'payment/pagseguro/js_url';
|
14 |
const XML_PATH_PAYMENT_PAGSEGURO_SANDBOX_WS_URL = 'payment/pagseguro/sandbox_ws_url';
|
15 |
+
const XML_PATH_PAYMENT_PAGSEGURO_SANDBOX_WS_URL_APP = 'payment/pagseguro/sandbox_ws_url_app';
|
16 |
const XML_PATH_PAYMENT_PAGSEGURO_SANDBOX_JS_URL = 'payment/pagseguro/sandbox_js_url';
|
17 |
+
const XML_PATH_PAYMENT_PAGSEGURO_KEY_TYPE = 'payment/pagseguropro/key_type';
|
18 |
+
const XML_PATH_PAYMENT_PAGSEGURO_KEY = 'payment/pagseguropro/key';
|
19 |
|
20 |
|
21 |
/**
|
25 |
*/
|
26 |
public function getSessionId()
|
27 |
{
|
28 |
+
$useapp = $this->getLicenseType() == 'app';
|
29 |
+
$client = new Zend_Http_Client($this->getWsUrl('sessions',$useapp));
|
30 |
$client->setMethod(Zend_Http_Client::POST);
|
31 |
+
$client->setParameterPost('email', $this->getMerchantEmail());
|
32 |
+
$client->setParameterPost('token', $this->getToken());
|
33 |
+
if($useapp){
|
34 |
+
$client->setParameterPost('public_key',$this->getPagSeguroProKey());
|
35 |
+
}
|
36 |
$client->setConfig(array('timeout'=>30));
|
37 |
try{
|
38 |
$response = $client->request();
|
68 |
/**
|
69 |
* Retorna URL do Webservice do Pagseguro de acordo com o ambiente selecionado
|
70 |
* @param string $amend acrescenta algo no final
|
71 |
+
* @param bool $useapp usa modelo de aplicacao
|
72 |
*
|
73 |
* @return string
|
74 |
*/
|
75 |
+
public function getWsUrl($amend='', $useapp = false)
|
76 |
{
|
77 |
if($this->isSandbox())
|
78 |
{
|
79 |
+
if($this->getLicenseType()=='app' && $useapp){
|
80 |
+
return Mage::getStoreConfig(self::XML_PATH_PAYMENT_PAGSEGURO_SANDBOX_WS_URL_APP) . $amend;;
|
81 |
+
}else{
|
82 |
+
return Mage::getStoreConfig(self::XML_PATH_PAYMENT_PAGSEGURO_SANDBOX_WS_URL) . $amend;
|
83 |
+
}
|
84 |
}
|
85 |
+
|
86 |
+
if($this->getLicenseType()=='app' && $useapp){
|
87 |
+
return Mage::getStoreConfig(self::XML_PATH_PAYMENT_PAGSEGURO_WS_URL_APP) . $amend;
|
88 |
+
}
|
89 |
+
|
90 |
return Mage::getStoreConfig(self::XML_PATH_PAYMENT_PAGSEGURO_WS_URL) . $amend;
|
91 |
}
|
92 |
|
164 |
$customer_cpf_attribute = Mage::getStoreConfig('payment/pagseguro/customer_cpf_attribute');
|
165 |
return empty($customer_cpf_attribute);
|
166 |
}
|
167 |
+
|
168 |
+
/**
|
169 |
+
* Retorna o tipo de licença (se houver)
|
170 |
+
* @return string
|
171 |
+
*/
|
172 |
+
public function getLicenseType()
|
173 |
+
{
|
174 |
+
return Mage::getStoreConfig(self::XML_PATH_PAYMENT_PAGSEGURO_KEY_TYPE);
|
175 |
+
}
|
176 |
+
|
177 |
+
/**
|
178 |
+
* Retorna chave do PagSeguro PRO (se houver)
|
179 |
+
* @return string
|
180 |
+
*/
|
181 |
+
public function getPagSeguroProKey()
|
182 |
+
{
|
183 |
+
return Mage::getStoreConfig(self::XML_PATH_PAYMENT_PAGSEGURO_KEY);
|
184 |
+
}
|
185 |
+
|
186 |
+
/**
|
187 |
+
* Faz a tradução dos termos dinamicos do PagSeguro
|
188 |
+
* @author Ricardo Martins
|
189 |
+
* @return string
|
190 |
+
*/
|
191 |
+
public function __(){
|
192 |
+
$args = func_get_args();
|
193 |
+
$expr = new Mage_Core_Model_Translate_Expr(array_shift($args), $this->_getModuleName());
|
194 |
+
array_unshift($args, $expr);
|
195 |
+
|
196 |
+
$text = $args[0]->getText();
|
197 |
+
preg_match('/(.*)\:(.*)/',$text, $matches);
|
198 |
+
if($matches!==false && isset($matches[1])){
|
199 |
+
array_shift($matches);
|
200 |
+
$matches[0] .= ': %s';
|
201 |
+
$args = $matches;
|
202 |
+
}
|
203 |
+
return Mage::app()->getTranslator()->translate($args);
|
204 |
+
}
|
205 |
}
|
app/code/community/RicardoMartins/PagSeguro/Helper/Params.php
CHANGED
@@ -38,8 +38,7 @@ class RicardoMartins_PagSeguro_Helper_Params extends Mage_Core_Helper_Abstract
|
|
38 |
public function getSenderParams(Mage_Sales_Model_Order $order, $payment)
|
39 |
{
|
40 |
$digits = new Zend_Filter_Digits();
|
41 |
-
|
42 |
-
$cpf = $this->_getCustomerCpfValue($order->getCustomer(),$payment);
|
43 |
|
44 |
//telefone
|
45 |
$phone = $this->_extractPhone($order->getBillingAddress()->getTelephone());
|
@@ -53,6 +52,10 @@ class RicardoMartins_PagSeguro_Helper_Params extends Mage_Core_Helper_Abstract
|
|
53 |
'senderAreaCode'=> $phone['area'],
|
54 |
'senderPhone' => $phone['number'],
|
55 |
);
|
|
|
|
|
|
|
|
|
56 |
|
57 |
return $retorno;
|
58 |
}
|
@@ -67,7 +70,7 @@ class RicardoMartins_PagSeguro_Helper_Params extends Mage_Core_Helper_Abstract
|
|
67 |
{
|
68 |
$digits = new Zend_Filter_Digits();
|
69 |
|
70 |
-
$cpf = $this->_getCustomerCpfValue($order
|
71 |
|
72 |
|
73 |
//dados
|
@@ -244,6 +247,11 @@ class RicardoMartins_PagSeguro_Helper_Params extends Mage_Core_Helper_Abstract
|
|
244 |
{
|
245 |
$digits = new Zend_Filter_Digits();
|
246 |
$phone = $digits->filter($phone);
|
|
|
|
|
|
|
|
|
|
|
247 |
$original_phone = $phone;
|
248 |
|
249 |
$phone = preg_replace('/^(\d{2})(\d{7,9})$/','$1-$2',$phone);
|
@@ -327,12 +335,12 @@ class RicardoMartins_PagSeguro_Helper_Params extends Mage_Core_Helper_Abstract
|
|
327 |
|
328 |
/**
|
329 |
* Retorna o CPF do cliente baseado na selecao realizada na configuração do modulo
|
330 |
-
* @param
|
331 |
* @param Mage_Payment_Model_Method_Abstract $payment
|
332 |
*
|
333 |
* @return mixed
|
334 |
*/
|
335 |
-
private function _getCustomerCpfValue(
|
336 |
{
|
337 |
$customer_cpf_attribute = Mage::getStoreConfig('payment/pagseguro/customer_cpf_attribute');
|
338 |
|
@@ -342,8 +350,18 @@ class RicardoMartins_PagSeguro_Helper_Params extends Mage_Core_Helper_Abstract
|
|
342 |
return $payment['additional_information'][$payment->getMethod().'_cpf'];
|
343 |
}
|
344 |
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
345 |
|
346 |
-
|
|
|
|
|
|
|
347 |
|
348 |
return $cpf;
|
349 |
}
|
38 |
public function getSenderParams(Mage_Sales_Model_Order $order, $payment)
|
39 |
{
|
40 |
$digits = new Zend_Filter_Digits();
|
41 |
+
$cpf = $this->_getCustomerCpfValue($order,$payment);
|
|
|
42 |
|
43 |
//telefone
|
44 |
$phone = $this->_extractPhone($order->getBillingAddress()->getTelephone());
|
52 |
'senderAreaCode'=> $phone['area'],
|
53 |
'senderPhone' => $phone['number'],
|
54 |
);
|
55 |
+
if(strlen($retorno['senderCPF']) > 11){
|
56 |
+
$retorno['senderCNPJ'] = $retorno['senderCPF'];
|
57 |
+
unset($retorno['senderCPF']);
|
58 |
+
}
|
59 |
|
60 |
return $retorno;
|
61 |
}
|
70 |
{
|
71 |
$digits = new Zend_Filter_Digits();
|
72 |
|
73 |
+
$cpf = $this->_getCustomerCpfValue($order,$payment);
|
74 |
|
75 |
|
76 |
//dados
|
247 |
{
|
248 |
$digits = new Zend_Filter_Digits();
|
249 |
$phone = $digits->filter($phone);
|
250 |
+
//se começar com zero, pula o primeiro digito
|
251 |
+
if(substr($phone,0,1) == '0')
|
252 |
+
{
|
253 |
+
$phone = substr($phone,1,strlen($phone));
|
254 |
+
}
|
255 |
$original_phone = $phone;
|
256 |
|
257 |
$phone = preg_replace('/^(\d{2})(\d{7,9})$/','$1-$2',$phone);
|
335 |
|
336 |
/**
|
337 |
* Retorna o CPF do cliente baseado na selecao realizada na configuração do modulo
|
338 |
+
* @param Mage_Sales_Model_Order $order
|
339 |
* @param Mage_Payment_Model_Method_Abstract $payment
|
340 |
*
|
341 |
* @return mixed
|
342 |
*/
|
343 |
+
private function _getCustomerCpfValue(Mage_Sales_Model_Order $order, $payment)
|
344 |
{
|
345 |
$customer_cpf_attribute = Mage::getStoreConfig('payment/pagseguro/customer_cpf_attribute');
|
346 |
|
350 |
return $payment['additional_information'][$payment->getMethod().'_cpf'];
|
351 |
}
|
352 |
}
|
353 |
+
$entity = explode('|',$customer_cpf_attribute);
|
354 |
+
$cpf = '';
|
355 |
+
if(count($entity) == 1 || $entity[0] == 'customer'){
|
356 |
+
if(count($entity) == 2){
|
357 |
+
$customer_cpf_attribute = $entity[1];
|
358 |
+
}
|
359 |
+
$customer = $order->getCustomer();
|
360 |
|
361 |
+
$cpf = $customer->getData($customer_cpf_attribute);
|
362 |
+
}else if(count($entity) == 2 && $entity[0] == 'billing' ){ //billing
|
363 |
+
$cpf = $order->getShippingAddress()->getData($entity[1]);
|
364 |
+
}
|
365 |
|
366 |
return $cpf;
|
367 |
}
|
app/code/community/RicardoMartins/PagSeguro/Model/Abstract.php
CHANGED
@@ -99,9 +99,13 @@ class RicardoMartins_PagSeguro_Model_Abstract extends Mage_Payment_Model_Method_
|
|
99 |
'token'=>$helper->getToken(),
|
100 |
'email'=> $helper->getMerchantEmail(),
|
101 |
));
|
|
|
102 |
$client->request();
|
103 |
-
$
|
104 |
-
|
|
|
|
|
|
|
105 |
}
|
106 |
|
107 |
/**
|
@@ -173,25 +177,32 @@ class RicardoMartins_PagSeguro_Model_Abstract extends Mage_Payment_Model_Method_
|
|
173 |
public function callApi($params, $payment)
|
174 |
{
|
175 |
$helper = Mage::helper('ricardomartins_pagseguro');
|
|
|
|
|
|
|
|
|
176 |
$params = $this->_convertEnconding($params);
|
177 |
-
$
|
178 |
-
|
179 |
-
$client->setConfig(array('timeout'=>45));
|
180 |
-
|
181 |
-
$client->setParameterPost($params); //parametros enviados via POST
|
182 |
-
|
183 |
$helper->writeLog('Parametros sendo enviados para API (/transactions): '. var_export($params,true));
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
184 |
try{
|
185 |
-
$response = $
|
|
|
186 |
}catch(Exception $e){
|
187 |
Mage::throwException('Falha na comunicação com Pagseguro (' . $e->getMessage() . ')');
|
188 |
}
|
189 |
|
190 |
-
$response = $client->getLastResponse()->getBody();
|
191 |
$helper->writeLog('Retorno PagSeguro (/transactions): ' . var_export($response,true));
|
192 |
|
193 |
libxml_use_internal_errors(true);
|
194 |
-
$xml = simplexml_load_string($response);
|
195 |
if(false === $xml){
|
196 |
switch($response){
|
197 |
case 'Unauthorized':
|
@@ -201,12 +212,11 @@ class RicardoMartins_PagSeguro_Model_Abstract extends Mage_Payment_Model_Method_
|
|
201 |
$helper->writeLog('Acesso não autorizado à Api Pagseguro. Verifique se você tem permissão para usar este serviço. Retorno: ' . var_export($response,true));
|
202 |
break;
|
203 |
default:
|
204 |
-
$helper->writeLog('Retorno inesperado do PagSeguro. Retorno: ' .
|
205 |
}
|
206 |
Mage::throwException('Houve uma falha ao processar seu pedido/pagamento. Por favor entre em contato conosco.');
|
207 |
}
|
208 |
-
|
209 |
-
|
210 |
return $xml;
|
211 |
}
|
212 |
|
@@ -224,4 +234,21 @@ class RicardoMartins_PagSeguro_Model_Abstract extends Mage_Payment_Model_Method_
|
|
224 |
}
|
225 |
return $params;
|
226 |
}
|
227 |
-
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
99 |
'token'=>$helper->getToken(),
|
100 |
'email'=> $helper->getMerchantEmail(),
|
101 |
));
|
102 |
+
|
103 |
$client->request();
|
104 |
+
$resposta = $client->getLastResponse()->getBody();
|
105 |
+
|
106 |
+
$helper->writeLog(sprintf('Retorno do Pagseguro para notificationCode %s: %s', $notificationCode, $resposta));
|
107 |
+
|
108 |
+
return simplexml_load_string(trim($resposta));
|
109 |
}
|
110 |
|
111 |
/**
|
177 |
public function callApi($params, $payment)
|
178 |
{
|
179 |
$helper = Mage::helper('ricardomartins_pagseguro');
|
180 |
+
$useapp = $helper->getLicenseType() == 'app';
|
181 |
+
if($useapp){
|
182 |
+
$params['public_key'] = Mage::getStoreConfig('payment/pagseguropro/key');
|
183 |
+
}
|
184 |
$params = $this->_convertEnconding($params);
|
185 |
+
$params_string = $this->_convertToCURLString($params);
|
186 |
+
|
|
|
|
|
|
|
|
|
187 |
$helper->writeLog('Parametros sendo enviados para API (/transactions): '. var_export($params,true));
|
188 |
+
|
189 |
+
$ch = curl_init();
|
190 |
+
curl_setopt($ch,CURLOPT_URL, $helper->getWsUrl('transactions'));
|
191 |
+
curl_setopt($ch,CURLOPT_POST, count($params));
|
192 |
+
curl_setopt($ch,CURLOPT_RETURNTRANSFER, true);
|
193 |
+
curl_setopt($ch,CURLOPT_POSTFIELDS, $params_string);
|
194 |
+
|
195 |
try{
|
196 |
+
$response = curl_exec($ch);
|
197 |
+
curl_close($ch);
|
198 |
}catch(Exception $e){
|
199 |
Mage::throwException('Falha na comunicação com Pagseguro (' . $e->getMessage() . ')');
|
200 |
}
|
201 |
|
|
|
202 |
$helper->writeLog('Retorno PagSeguro (/transactions): ' . var_export($response,true));
|
203 |
|
204 |
libxml_use_internal_errors(true);
|
205 |
+
$xml = simplexml_load_string(trim($response));
|
206 |
if(false === $xml){
|
207 |
switch($response){
|
208 |
case 'Unauthorized':
|
212 |
$helper->writeLog('Acesso não autorizado à Api Pagseguro. Verifique se você tem permissão para usar este serviço. Retorno: ' . var_export($response,true));
|
213 |
break;
|
214 |
default:
|
215 |
+
$helper->writeLog('Retorno inesperado do PagSeguro. Retorno: ' . $response);
|
216 |
}
|
217 |
Mage::throwException('Houve uma falha ao processar seu pedido/pagamento. Por favor entre em contato conosco.');
|
218 |
}
|
219 |
+
|
|
|
220 |
return $xml;
|
221 |
}
|
222 |
|
234 |
}
|
235 |
return $params;
|
236 |
}
|
237 |
+
|
238 |
+
/**
|
239 |
+
* Converte para um única string os valores a serem enviados à api (já convertidos para ISO-8859-1)
|
240 |
+
* @param array $params
|
241 |
+
*
|
242 |
+
* @return string
|
243 |
+
*/
|
244 |
+
protected function _convertToCURLString(array $params)
|
245 |
+
{
|
246 |
+
$fields_string = '';
|
247 |
+
foreach($params as $k => $v)
|
248 |
+
{
|
249 |
+
$fields_string .= $k.'='.urlencode($v).'&';
|
250 |
+
}
|
251 |
+
|
252 |
+
return rtrim($fields_string, '&');
|
253 |
+
}
|
254 |
+
}
|
app/code/community/RicardoMartins/PagSeguro/Model/Payment/Cc.php
CHANGED
@@ -20,9 +20,8 @@ class RicardoMartins_PagSeguro_Model_Payment_Cc extends RicardoMartins_PagSeguro
|
|
20 |
if (empty($quote)){
|
21 |
return $is_available;
|
22 |
}
|
23 |
-
if (Mage::getStoreConfigFlag("payment/pagseguro_cc/group_restriction")
|
24 |
-
|
25 |
-
return true;
|
26 |
}
|
27 |
|
28 |
$current_group_id = $quote->getCustomerGroupId ();
|
20 |
if (empty($quote)){
|
21 |
return $is_available;
|
22 |
}
|
23 |
+
if (Mage::getStoreConfigFlag("payment/pagseguro_cc/group_restriction") == false) {
|
24 |
+
return $is_available;
|
|
|
25 |
}
|
26 |
|
27 |
$current_group_id = $quote->getCustomerGroupId ();
|
app/code/community/RicardoMartins/PagSeguro/Model/Source/Customer/Cpf.php
CHANGED
@@ -14,7 +14,14 @@ class RicardoMartins_PagSeguro_Model_Source_Customer_Cpf
|
|
14 |
|
15 |
foreach($fields as $key => $value) {
|
16 |
if(!is_null($value['frontend_label'])) {
|
17 |
-
$options[
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
18 |
}
|
19 |
}
|
20 |
|
14 |
|
15 |
foreach($fields as $key => $value) {
|
16 |
if(!is_null($value['frontend_label'])) {
|
17 |
+
$options['customer|'.$value['frontend_label']] = array('value' => 'customer|'.$value['attribute_code'], 'label' => 'Customer: '.$value['frontend_label'] . ' (' . $value['attribute_code'] . ')');
|
18 |
+
}
|
19 |
+
}
|
20 |
+
|
21 |
+
$address_fields = Mage::helper('ricardomartins_pagseguro/internal')->getFields('customer_address');
|
22 |
+
foreach($address_fields as $key => $value) {
|
23 |
+
if(!is_null($value['frontend_label'])) {
|
24 |
+
$options['address|'.$value['frontend_label']] = array('value' => 'billing|'.$value['attribute_code'], 'label' => 'Billing: '.$value['frontend_label'] . ' (' . $value['attribute_code'] . ')');
|
25 |
}
|
26 |
}
|
27 |
|
app/code/community/RicardoMartins/PagSeguro/controllers/AjaxController.php
CHANGED
@@ -8,7 +8,7 @@ class RicardoMartins_PagSeguro_AjaxController extends Mage_Core_Controller_Front
|
|
8 |
{
|
9 |
$total = Mage::helper('checkout/cart')->getQuote()->getGrandTotal();
|
10 |
|
11 |
-
$this->getResponse()->setHeader('Content-type','application/json');
|
12 |
$this->getResponse()->setBody(json_encode(array('total'=>$total)));
|
13 |
}
|
14 |
|
@@ -17,7 +17,7 @@ class RicardoMartins_PagSeguro_AjaxController extends Mage_Core_Controller_Front
|
|
17 |
$_helper = Mage::helper('ricardomartins_pagseguro');
|
18 |
$session_id = $_helper->getSessionId();
|
19 |
|
20 |
-
$this->getResponse()->setHeader('Content-type','application/json');
|
21 |
$this->getResponse()->setBody(json_encode(array('session_id'=>$session_id)));
|
22 |
}
|
23 |
-
}
|
8 |
{
|
9 |
$total = Mage::helper('checkout/cart')->getQuote()->getGrandTotal();
|
10 |
|
11 |
+
$this->getResponse()->setHeader('Content-type','application/json', true);
|
12 |
$this->getResponse()->setBody(json_encode(array('total'=>$total)));
|
13 |
}
|
14 |
|
17 |
$_helper = Mage::helper('ricardomartins_pagseguro');
|
18 |
$session_id = $_helper->getSessionId();
|
19 |
|
20 |
+
$this->getResponse()->setHeader('Content-type','application/json', true);
|
21 |
$this->getResponse()->setBody(json_encode(array('session_id'=>$session_id)));
|
22 |
}
|
23 |
+
}
|
app/code/community/RicardoMartins/PagSeguro/controllers/NotificationController.php
CHANGED
@@ -2,13 +2,13 @@
|
|
2 |
class RicardoMartins_PagSeguro_NotificationController extends Mage_Core_Controller_Front_Action
|
3 |
{
|
4 |
/**
|
5 |
-
* Recebe e processa as notificações do pagseguro quando há alguma
|
6 |
* Não esqueça de configurar a url de retorno como http://sualoja.com.br/pagseguro/notification
|
7 |
*/
|
8 |
public function indexAction()
|
9 |
{
|
10 |
/** @var RicardoMartins_PagSeguro_Model_Abstract $model */
|
11 |
-
Mage::helper('ricardomartins_pagseguro')->writeLog('
|
12 |
$model = Mage::getModel('ricardomartins_pagseguro/abstract');
|
13 |
$response = $model->getNotificationStatus($this->getRequest()->getPost('notificationCode'));
|
14 |
$model->proccessNotificatonResult($response);
|
2 |
class RicardoMartins_PagSeguro_NotificationController extends Mage_Core_Controller_Front_Action
|
3 |
{
|
4 |
/**
|
5 |
+
* Recebe e processa as notificações do pagseguro quando há alguma notificação.
|
6 |
* Não esqueça de configurar a url de retorno como http://sualoja.com.br/pagseguro/notification
|
7 |
*/
|
8 |
public function indexAction()
|
9 |
{
|
10 |
/** @var RicardoMartins_PagSeguro_Model_Abstract $model */
|
11 |
+
Mage::helper('ricardomartins_pagseguro')->writeLog('Notificação recebida do pagseguro com os parametros:'. var_export($this->getRequest()->getParams(),true));
|
12 |
$model = Mage::getModel('ricardomartins_pagseguro/abstract');
|
13 |
$response = $model->getNotificationStatus($this->getRequest()->getPost('notificationCode'));
|
14 |
$model->proccessNotificatonResult($response);
|
app/code/community/RicardoMartins/PagSeguro/controllers/TestController.php
CHANGED
@@ -2,122 +2,25 @@
|
|
2 |
class RicardoMartins_PagSeguro_TestController extends Mage_Core_Controller_Front_Action
|
3 |
{
|
4 |
public function indexAction(){
|
5 |
-
|
6 |
-
$client = new Zend_Http_Client('https://ws.pagseguro.uol.com.br/v2/sessions/');
|
7 |
-
$client->setMethod(Zend_Http_Client::POST);
|
8 |
-
$client->setParameterGet('email','ricardo@ricardomartins.info');
|
9 |
-
$client->setParameterGet('token','9F79900A9B454CE6B18613D7224C0621');
|
10 |
-
$client->request();
|
11 |
-
|
12 |
-
var_dump($client->getLastResponse()->getBody());
|
13 |
-
}
|
14 |
-
|
15 |
-
public function xmlAction()
|
16 |
-
{
|
17 |
-
echo Mage::helper('ricardomartins_pagseguro')->_getToken();
|
18 |
}
|
19 |
|
20 |
-
|
21 |
-
|
22 |
-
|
23 |
-
|
24 |
-
|
25 |
-
|
26 |
-
$
|
27 |
-
|
28 |
-
|
29 |
-
|
30 |
-
|
31 |
-
|
32 |
-
|
33 |
-
|
34 |
-
|
35 |
-
$
|
36 |
-
|
37 |
-
|
38 |
-
$html =<<<EOF
|
39 |
-
|
40 |
-
<form id="meu_form" action="#">
|
41 |
-
<li>
|
42 |
-
<label for="pagseguro_cc_cc_number" class="required"><em>*</em>Credit Card Number</label>
|
43 |
-
<div class="input-box">
|
44 |
-
<input autocomplete="off" id="pagseguro_cc_cc_number" name="payment[ps_cc_number]" title="Credit Card Number" class="input-text validate-cc-number validate-cc-type" value="" type="text">
|
45 |
-
<span id="card-brand"></span>
|
46 |
-
</div>
|
47 |
-
</li>
|
48 |
-
<li id="pagseguro_cc_cc_type_exp_div">
|
49 |
-
<label for="pagseguro_cc_expiration" class="required"><em>*</em>Expiration Date</label>
|
50 |
-
<div class="input-box">
|
51 |
-
<div class="v-fix">
|
52 |
-
<select autocomplete="off" id="pagseguro_cc_expiration" name="payment[ps_cc_exp_month]" class="month validate-cc-exp required-entry">
|
53 |
-
<option value="" selected="selected">Month</option>
|
54 |
-
<option value="1">01 - janeiro</option>
|
55 |
-
<option value="2">02 - fevereiro</option>
|
56 |
-
<option value="3">03 - março</option>
|
57 |
-
<option value="4">04 - abril</option>
|
58 |
-
<option value="5">05 - maio</option>
|
59 |
-
<option value="6">06 - junho</option>
|
60 |
-
<option value="7">07 - julho</option>
|
61 |
-
<option value="8">08 - agosto</option>
|
62 |
-
<option value="9">09 - setembro</option>
|
63 |
-
<option value="10">10 - outubro</option>
|
64 |
-
<option value="11">11 - novembro</option>
|
65 |
-
<option value="12">12 - dezembro</option>
|
66 |
-
</select>
|
67 |
-
</div>
|
68 |
-
<div class="v-fix">
|
69 |
-
<select autocomplete="off" id="pagseguro_cc_expiration_yr" name="payment[ps_cc_exp_year]" class="year required-entry">
|
70 |
-
<option value="" selected="selected">Year</option>
|
71 |
-
<option value="2014">2014</option>
|
72 |
-
<option value="2015">2015</option>
|
73 |
-
<option value="2016">2016</option>
|
74 |
-
<option value="2017">2017</option>
|
75 |
-
<option value="2018">2018</option>
|
76 |
-
<option value="2019">2019</option>
|
77 |
-
<option value="2020">2020</option>
|
78 |
-
<option value="2021">2021</option>
|
79 |
-
<option value="2022">2022</option>
|
80 |
-
<option value="2023">2023</option>
|
81 |
-
<option value="2024">2024</option>
|
82 |
-
</select>
|
83 |
-
</div>
|
84 |
-
</div>
|
85 |
-
</li>
|
86 |
-
<li id="pagseguro_cc_cc_type_cvv_div">
|
87 |
-
<label for="pagseguro_cc_cc_cid" class="required"><em>*</em>Card Verification Number</label>
|
88 |
-
<div class="input-box">
|
89 |
-
<div class="v-fix">
|
90 |
-
<input autocomplete="off" title="Card Verification Number" class="input-text cvv required-entry validate-cc-cvn" id="ps_cc_cid" name="payment[ps_cc_cid]" value="" type="text">
|
91 |
-
</div>
|
92 |
-
<a href="#" class="cvv-what-is-this">What is this?</a>
|
93 |
-
</div>
|
94 |
-
|
95 |
-
<?php #nao remover/alterar ?>
|
96 |
-
<input type="hidden" name="payment[sender_hash]"/>
|
97 |
-
<input type="hidden" name="payment[credit_card_token]"/>
|
98 |
-
|
99 |
-
|
100 |
-
<input type="submit"/>
|
101 |
-
|
102 |
-
|
103 |
-
|
104 |
-
</li>
|
105 |
-
</form>
|
106 |
-
<script type="text/javascript">
|
107 |
-
//<![CDATA[
|
108 |
-
|
109 |
-
|
110 |
-
PagSeguroDirectPayment.setSessionId('{$_helper->getSessionId()}');
|
111 |
-
|
112 |
-
|
113 |
-
//]]>
|
114 |
-
</script>
|
115 |
-
|
116 |
-
EOF;
|
117 |
-
|
118 |
-
$block = Mage::app()->getLayout()->createBlock('core/text')->setText($html);
|
119 |
-
|
120 |
-
Mage::app()->getLayout()->getBlock('content')->append($block, 'teste');
|
121 |
-
$this->renderLayout();
|
122 |
}
|
123 |
}
|
2 |
class RicardoMartins_PagSeguro_TestController extends Mage_Core_Controller_Front_Action
|
3 |
{
|
4 |
public function indexAction(){
|
5 |
+
$this->getResponse()->setBody('works');
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
6 |
}
|
7 |
|
8 |
+
/**
|
9 |
+
* Devolve algumas informações básicas sobre os modulos e suas configurações.
|
10 |
+
* Apenas para fim de suporte e auxílio ao lojista.
|
11 |
+
* Pode ser removido se assim preferir.
|
12 |
+
*/
|
13 |
+
public function getConfigAction(){
|
14 |
+
$info = array();
|
15 |
+
$info['RicardoMartins_PagSeguro']['version'] = (string)Mage::getConfig()->getModuleConfig('RicardoMartins_PagSeguro')->version;
|
16 |
+
$info['RicardoMartins_PagSeguro']['debug'] = Mage::getStoreConfigFlag('payment/pagseguro/debug');
|
17 |
+
$info['RicardoMartins_PagSeguro']['sandbox'] = Mage::getStoreConfigFlag('payment/pagseguro/sandbox');
|
18 |
+
|
19 |
+
if(Mage::getConfig()->getModuleConfig('RicardoMartins_PagSeguroPro')){
|
20 |
+
$info['RicardoMartins_PagSeguroPro']['version'] = (string)Mage::getConfig()->getModuleConfig('RicardoMartins_PagSeguroPro')->version;
|
21 |
+
$info['RicardoMartins_PagSeguroPro']['key_type'] = (string)Mage::getStoreConfig('payment/pagseguropro/key_type');
|
22 |
+
}
|
23 |
+
$this->getResponse()->setHeader('Content-type','application/json');
|
24 |
+
$this->getResponse()->setBody(json_encode($info));
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
25 |
}
|
26 |
}
|
app/code/community/RicardoMartins/PagSeguro/etc/config.xml
CHANGED
@@ -2,7 +2,7 @@
|
|
2 |
<config>
|
3 |
<modules>
|
4 |
<RicardoMartins_PagSeguro>
|
5 |
-
<version>
|
6 |
</RicardoMartins_PagSeguro>
|
7 |
</modules>
|
8 |
<global>
|
@@ -72,8 +72,12 @@
|
|
72 |
<address_number_attribute>street_2</address_number_attribute>
|
73 |
<address_neighborhood_attribute>street_2</address_neighborhood_attribute>
|
74 |
<ws_url>https://ws.pagseguro.uol.com.br/v2/</ws_url>
|
|
|
|
|
75 |
<js_url>https://stc.pagseguro.uol.com.br/pagseguro/api/v2/checkout/pagseguro.directpayment.js</js_url>
|
76 |
<sandbox_ws_url>https://ws.sandbox.pagseguro.uol.com.br/v2/</sandbox_ws_url>
|
|
|
|
|
77 |
<sandbox_js_url>https://stc.sandbox.pagseguro.uol.com.br/pagseguro/api/v2/checkout/pagseguro.directpayment.js</sandbox_js_url>
|
78 |
</pagseguro>
|
79 |
</payment>
|
2 |
<config>
|
3 |
<modules>
|
4 |
<RicardoMartins_PagSeguro>
|
5 |
+
<version>2.0.0</version>
|
6 |
</RicardoMartins_PagSeguro>
|
7 |
</modules>
|
8 |
<global>
|
72 |
<address_number_attribute>street_2</address_number_attribute>
|
73 |
<address_neighborhood_attribute>street_2</address_neighborhood_attribute>
|
74 |
<ws_url>https://ws.pagseguro.uol.com.br/v2/</ws_url>
|
75 |
+
<ws_url_app>https://ws.ricardomartins.net.br/pspro/v6/wspagseguro/v2/</ws_url_app>
|
76 |
+
<!--<ws_url_app>http://ws.local.com.br/pspro/v6/wspagseguro/v2/</ws_url_app>-->
|
77 |
<js_url>https://stc.pagseguro.uol.com.br/pagseguro/api/v2/checkout/pagseguro.directpayment.js</js_url>
|
78 |
<sandbox_ws_url>https://ws.sandbox.pagseguro.uol.com.br/v2/</sandbox_ws_url>
|
79 |
+
<sandbox_ws_url_app>https://ws.ricardomartins.net.br/pspro/v6/wspagseguro/sandbox/v2/</sandbox_ws_url_app>
|
80 |
+
<!--<sandbox_ws_url_app>http://ws.local.com.br/pspro/v6/wspagseguro/sandbox/v2/</sandbox_ws_url_app>-->
|
81 |
<sandbox_js_url>https://stc.sandbox.pagseguro.uol.com.br/pagseguro/api/v2/checkout/pagseguro.directpayment.js</sandbox_js_url>
|
82 |
</pagseguro>
|
83 |
</payment>
|
app/code/community/RicardoMartins/PagSeguro/etc/system.xml
CHANGED
@@ -30,14 +30,13 @@
|
|
30 |
<payment>
|
31 |
<groups>
|
32 |
<pagseguro module="ricardomartins_pagseguro">
|
33 |
-
<comment><![CDATA[<a href="http://r-martins.github.io/PagSeguro-Magento-Transparente" target="_blank">Precisa de ajuda?</a><br/> Lembre-se de <a href="https://pagseguro.uol.com.br/receba-pagamentos.jhtml#checkout-transparent" target="_blank">solicitar acesso</a> à API transparente.<br/>Para suporte a TEF e Boleto, solicite a <a href="http://r-martins.github.io/PagSeguro-Magento-Transparente/pro" target="_blank">
|
34 |
<label>PagSeguro - Ricardo Martins</label>
|
35 |
<frontend_type>text</frontend_type>
|
36 |
<sort_order>110</sort_order>
|
37 |
<show_in_default>1</show_in_default>
|
38 |
<show_in_website>1</show_in_website>
|
39 |
<show_in_store>1</show_in_store>
|
40 |
-
<!--<comment><![CDATA[<a href="http://celinks.magento.com/authorize_netRegistration" target="_blank">Click here to sign up for an Authorize.net account</a>]]></comment>-->
|
41 |
<fields>
|
42 |
<merchant_email translate="label">
|
43 |
<label>E-mail</label>
|
@@ -66,7 +65,7 @@
|
|
66 |
<show_in_default>1</show_in_default>
|
67 |
<show_in_website>1</show_in_website>
|
68 |
<show_in_store>0</show_in_store>
|
69 |
-
<comment><![CDATA[No modo de testes, os dados são enviados para sandbox do PagSeguro. Habilite o acesso à Sandbox <a href="http://sandbox.pagseguro.uol.com.br" target="_blank">aqui</a>]]></comment>
|
70 |
</sandbox>
|
71 |
<sandbox_merchant_email translate="label">
|
72 |
<label>E-mail Sandbox</label>
|
30 |
<payment>
|
31 |
<groups>
|
32 |
<pagseguro module="ricardomartins_pagseguro">
|
33 |
+
<comment><![CDATA[<a href="http://r-martins.github.io/PagSeguro-Magento-Transparente" target="_blank">Precisa de ajuda?</a><br/> Lembre-se de <a href="https://pagseguro.uol.com.br/receba-pagamentos.jhtml#checkout-transparent" target="_blank">solicitar acesso</a> à API transparente ou <a href="http://r-martins.github.io/PagSeguro-Magento-Transparente/pro/app.html"><strong>autorize sua conta</strong></a> com o modelo de aplicação.<br/>Para suporte a TEF e Boleto, solicite a versão PRO <a href="http://r-martins.github.io/PagSeguro-Magento-Transparente/pro" target="_blank">aqui</a> ou autorize sua conta para o modelo de aplicação.<a href="http://r-martins.github.io/PagSeguro-Magento-Transparente"></a>]]></comment>
|
34 |
<label>PagSeguro - Ricardo Martins</label>
|
35 |
<frontend_type>text</frontend_type>
|
36 |
<sort_order>110</sort_order>
|
37 |
<show_in_default>1</show_in_default>
|
38 |
<show_in_website>1</show_in_website>
|
39 |
<show_in_store>1</show_in_store>
|
|
|
40 |
<fields>
|
41 |
<merchant_email translate="label">
|
42 |
<label>E-mail</label>
|
65 |
<show_in_default>1</show_in_default>
|
66 |
<show_in_website>1</show_in_website>
|
67 |
<show_in_store>0</show_in_store>
|
68 |
+
<comment><![CDATA[No modo de testes, os dados são enviados para sandbox do PagSeguro. Habilite o acesso à Sandbox <a href="http://sandbox.pagseguro.uol.com.br/" target="_blank">aqui</a>]]></comment>
|
69 |
</sandbox>
|
70 |
<sandbox_merchant_email translate="label">
|
71 |
<label>E-mail Sandbox</label>
|
app/design/frontend/base/default/template/ricardomartins_pagseguro/form/cc/dob.phtml
CHANGED
@@ -54,21 +54,21 @@ NOTE: Regarding styles - if we leave it this way, we'll move it to boxes.css
|
|
54 |
<?php
|
55 |
$this->setDateInput('d',
|
56 |
'<div class="dob-day">
|
57 |
-
<input type="text"
|
58 |
<label for="' . $this->getFieldId('day') . '">' . $this->__('DD') . '</label>
|
59 |
</div>'
|
60 |
);
|
61 |
|
62 |
$this->setDateInput('m',
|
63 |
'<div class="dob-month">
|
64 |
-
<input type="text"
|
65 |
<label for="' . $this->getFieldId('month') . '">' . $this->__('MM') . '</label>
|
66 |
</div>'
|
67 |
);
|
68 |
|
69 |
$this->setDateInput('y',
|
70 |
'<div class="dob-year">
|
71 |
-
<input type="text"
|
72 |
<label for="' . $this->getFieldId('year') . '">' . $this->__('YYYY') . '</label>
|
73 |
</div>'
|
74 |
);
|
54 |
<?php
|
55 |
$this->setDateInput('d',
|
56 |
'<div class="dob-day">
|
57 |
+
<input type="text" id="' . $this->getFieldId('day') . '" name="' . $this->getFieldName('day') . '" value="' . $this->getDay() . '" title="' . $this->__('Day') . '" class="input-text validate-custom" ' . $this->getFieldParams() . ' />
|
58 |
<label for="' . $this->getFieldId('day') . '">' . $this->__('DD') . '</label>
|
59 |
</div>'
|
60 |
);
|
61 |
|
62 |
$this->setDateInput('m',
|
63 |
'<div class="dob-month">
|
64 |
+
<input type="text" id="' . $this->getFieldId('month') . '" name="' . $this->getFieldName('month') . '" value="' . $this->getMonth() . '" title="' . $this->__('Month') . '" class="input-text validate-custom" ' . $this->getFieldParams() . ' />
|
65 |
<label for="' . $this->getFieldId('month') . '">' . $this->__('MM') . '</label>
|
66 |
</div>'
|
67 |
);
|
68 |
|
69 |
$this->setDateInput('y',
|
70 |
'<div class="dob-year">
|
71 |
+
<input type="text" id="' . $this->getFieldId('year') . '" name="' . $this->getFieldName('year') . '" value="' . $this->getYear() . '" title="' . $this->__('Year') . '" class="input-text validate-custom" ' . $this->getFieldParams() . ' />
|
72 |
<label for="' . $this->getFieldId('year') . '">' . $this->__('YYYY') . '</label>
|
73 |
</div>'
|
74 |
);
|
app/design/frontend/base/default/template/ricardomartins_pagseguro/form/directpayment.phtml
CHANGED
@@ -4,7 +4,6 @@ $_helper = Mage::helper('ricardomartins_pagseguro');
|
|
4 |
<input type="hidden" name="payment[sender_hash]"/>
|
5 |
<script type="text/javascript">
|
6 |
//<![CDATA[
|
7 |
-
PagSeguroDirectPayment.setSessionId('<?php echo $_helper->getSessionId();?>');
|
8 |
var iid = setInterval(function()
|
9 |
{
|
10 |
if(typeof PagSeguroDirectPayment != "undefined" && PagSeguroDirectPayment.ready){
|
4 |
<input type="hidden" name="payment[sender_hash]"/>
|
5 |
<script type="text/javascript">
|
6 |
//<![CDATA[
|
|
|
7 |
var iid = setInterval(function()
|
8 |
{
|
9 |
if(typeof PagSeguroDirectPayment != "undefined" && PagSeguroDirectPayment.ready){
|
app/locale/pt_BR/RicardoMartins_PagSeguro.csv
CHANGED
@@ -51,4 +51,110 @@
|
|
51 |
"Credit Card Owner's CPF","CPF do Dono do Cartão"
|
52 |
"Credit Card Number","Número do Cartão"
|
53 |
"Your CPF","Seu CPF"
|
54 |
-
"Send new order email","Enviar e-mail de novo pedido"
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
51 |
"Credit Card Owner's CPF","CPF do Dono do Cartão"
|
52 |
"Credit Card Number","Número do Cartão"
|
53 |
"Your CPF","Seu CPF"
|
54 |
+
"Send new order email","Enviar e-mail de novo pedido"
|
55 |
+
"invalid creditcard brand.","Bandeira do cartão inválida"
|
56 |
+
"creditcard number with invalid length.","Cartão de crédito com tamanho inválido"
|
57 |
+
"invalid date format.","Data com formato inválido"
|
58 |
+
"invalid security field.","Campo de segurança inválido"
|
59 |
+
"cvv is mandatory.","CVV é obrigatório"
|
60 |
+
"security field with invalid length.","Código de segurança com tamanho incorreto"
|
61 |
+
"items invalid quantity.","Quantidade inválida de itens"
|
62 |
+
"currency is required.","Moeda é obrigatório"
|
63 |
+
"currency invalid value: %s","Moeda inválida: %s"
|
64 |
+
"reference invalid length: %s","Referência com tamanho inválido: %s"
|
65 |
+
"notificationURL invalid length: %s","Tamanho inválido do notificationURL: %s"
|
66 |
+
"notificationURL invalid value: %s","Valor inválido do notificationURL: %s"
|
67 |
+
"sender email is required.","Email do comprador é obrigatório"
|
68 |
+
"sender email invalid length: %s","Tamanho inválido do email do comprador: %s"
|
69 |
+
"sender email invalid value: %s","Email do comprador incorreto: %s"
|
70 |
+
"sender name is required.","Nome do comprador é obrigatório"
|
71 |
+
"sender name invalid length: %s","Nome do comprador com tamanho inválido: %s"
|
72 |
+
"sender name invalid value: %s","Nome do comprador com valor inválido: %s"
|
73 |
+
"sender cpf invalid value: %s","CPF do comprador inválido"
|
74 |
+
"sender area code is required.","Código de área do comprador é obrigatório"
|
75 |
+
"sender area code invalid value: %s","Código de área do comprador inválido: %s"
|
76 |
+
"sender phone is required.","Telefone do comprador é obrigatório."
|
77 |
+
"sender phone invalid value: %s","Telefone do comprador inválido: %s"
|
78 |
+
"shipping address postal code is required.","CEP de entrega é obrigatório"
|
79 |
+
"shipping address postal code invalid value: %s","CEP de entrega inválido: %s"
|
80 |
+
"shipping address street is required.","Endereço de entrega é obrigatório."
|
81 |
+
"shipping address street invalid length: %s","Endereço de entrega com tamanho inválido: %s"
|
82 |
+
"shipping address number is required.","Número do endereço de entrega é obrigatório."
|
83 |
+
"shipping address number invalid length: %s","Número do endereço de entrega com tamanho inválido: %s"
|
84 |
+
"shipping address complement invalid length: %s","Complemento do endereço de entrega com tamanho inválido: %s"
|
85 |
+
"shipping address district is required.","Bairro de entrega é obrigatório"
|
86 |
+
"shipping address district invalid length: %s","Bairro de entrega com tamanho inválido: %s"
|
87 |
+
"shipping address city is required.","Cidade de entrega é obrigatório."
|
88 |
+
"shipping address city invalid length: %s","Cidade de entrega com tamanho inválido: %s"
|
89 |
+
"shipping address state is required.","Estado de entrega é obrigatório."
|
90 |
+
"shipping address state invalid value: %s","Estado de entrega com valor inválido: %s"
|
91 |
+
"shipping address country is required.","País de entrega é obrigatório."
|
92 |
+
"shipping address country invalid length: %s","País de entrega com tamanho inválido: %s"
|
93 |
+
"credit card token is required.","Token do cartão é obrigatório."
|
94 |
+
"installment quantity is required.","Quantidade de parcelas é obrigatório."
|
95 |
+
"installment quantity invalid value: %s","Quantidade de parcelas incorreto: %s"
|
96 |
+
"installment value is required.","Valor da parcela é obrigatório."
|
97 |
+
"installment value invalid value: %s","Valor da parcela inválido: %s"
|
98 |
+
"credit card holder name is required.","Nome do titular do cartão é obrigatório."
|
99 |
+
"credit card holder name invalid length: %s","Nome do titular do cartão com tamanho inválido: %s"
|
100 |
+
"credit card holder name invalid value: %s","Nome do titular do cartão incorreto: %s"
|
101 |
+
"credit card holder cpf is required.","CPF do titular do cartão é obrigatório."
|
102 |
+
"credit card holder cpf invalid value: %s","CPF do titular do cartão inválido: %s"
|
103 |
+
"credit card holder birthdate is required.","Data de nascimento do titular do cartão é obrigatório."
|
104 |
+
"credit card holder birthdate invalid value: %s","Data de nascimento do titular do cartão incorreto: %s"
|
105 |
+
"credit card holder area code is required.","Código de área do titular do cartão é obrigatório."
|
106 |
+
"credit card holder area code invalid value: %s","Código de área do titular do cartão inválido: %s"
|
107 |
+
"credit card holder phone is required.","Telefone do titular do cartão é obrigatório."
|
108 |
+
"credit card holder phone invalid value: %s","Telefone do titular do cartão inválido: %s"
|
109 |
+
"billing address postal code is required.","CEP de cobrança é obrigatório."
|
110 |
+
"billing address postal code invalid value: %s","CEP de cobrança inválido: %s"
|
111 |
+
"billing address street is required.","Endereço de cobrança é obrigatório."
|
112 |
+
"billing address street invalid length: %s","Endereço de cobrança com tamanho inválido: %s"
|
113 |
+
"billing address number is required.","Número do endereço de cobrança é obrigatório."
|
114 |
+
"billing address number invalid length: %s","Número do endereço de cobrança com tamanho inválido: %s"
|
115 |
+
"billing address complement invalid length: %s","Complemento do endereço de cobrança com tamanho inválido: %s"
|
116 |
+
"billing address district is required.","Bairro do endereço de cobrança é obrigatório."
|
117 |
+
"billing address district invalid length: %s","Bairro do endereço de cobrança com tamanho inválido: %s"
|
118 |
+
"billing address city is required.","Cidade do endereço de cobrança é obrigatório."
|
119 |
+
"billing address city invalid length: %s","Cidade do endereço de cobrança com tamanho inválido: %s"
|
120 |
+
"billing address state is required.","Estado do endereço de cobrança é obrigatório."
|
121 |
+
"billing address state invalid value: %s","Estado do endereço de cobrança inválido: %s"
|
122 |
+
"billing address country is required.","País do endereço de cobrança é obrigatório."
|
123 |
+
"billing address country invalid length: %s","País do endereço de cobrança com tamanho inválido: %s"
|
124 |
+
"receiver email invalid length: %s","E-mail do vendedor com tamanho inválido: %s"
|
125 |
+
"receiver email invalid value: %s","E-mail do vendedor inválido: %s"
|
126 |
+
"item id is required.","Id do item é obrigatório."
|
127 |
+
"item id invalid length: %s","Id do item possuí tamanho inválido: %s"
|
128 |
+
"item description is required.","Descrição do item é obrigatório."
|
129 |
+
"item description invalid length: %s","Descrição do item com tamanho inválido: %s"
|
130 |
+
"item quantity is required.","Quantidade do item é obrigatório."
|
131 |
+
"item quantity out of range: %s","Quantidade do item fora do permitido: %s"
|
132 |
+
"item quantity invalid value: %s","Quantidade do item inválida: %s"
|
133 |
+
"item amount is required.","Valor do item é obrigatório."
|
134 |
+
"item amount invalid pattern: %s. Must fit the patern: \\d+.\\d\{2\}","Valor do item deve seguir o padrão: \\d+.\\d\{2\}"
|
135 |
+
"item amount out of range: %s","Valor do item fora do permitido: %s"
|
136 |
+
"sender is related to receiver.","O comprador está relacionado ao vendedor."
|
137 |
+
"invalid receiver: %s, verify receiver's account status and if it is a seller's account.","Vendedor inválido: %s, verifique se a conta do lojista é uma conta de vendedor."
|
138 |
+
"payment method unavailable.","Método de pagamento não disponível."
|
139 |
+
"cart total amount out of range: %s","Valor total do carrinho fora do permitido: %s"
|
140 |
+
"invalid credit card data.","Dados de cartão inválidos."
|
141 |
+
"sender hash invalid.","Hash de comprador inválido."
|
142 |
+
"credit card brand is not accepted.","Bandeira de cartão não aceita."
|
143 |
+
"shipping type invalid pattern: %s","Tipo de frete for do padrão: %s"
|
144 |
+
"shipping cost invalid pattern: %s","Custo de frete fora dos padrões: %s"
|
145 |
+
"shipping cost out of range: %s","Custo de frete fora dos limites: %s"
|
146 |
+
"cart total value is negative: %s","Valor total do carrinho é negativo: %s"
|
147 |
+
"extra amount invalid pattern: %s. Must fit the patern: -?\\d+.\\d\{2\}","Valor extra incompatível: %s. Deve seguir o padrão: -?\\d+.\\d{2\}"
|
148 |
+
"payment mode invalid value, valid values are default and gateway.","Modo de pagamento inválido. Valores válidos são: default e gateway."
|
149 |
+
"payment method invalid value, valid values are creditCard, boleto e eft.","Método de pagamento inválido. Valores aceitos são: creditCard, boleto e eft"
|
150 |
+
"shipping cost was provided, shipping address must be complete.","Valor de frete foi especificado, endereço de entrega deve estar completo."
|
151 |
+
"sender information was provided, email must be provided too.","Dados do comprador foram especificados, email deve ser especificado também."
|
152 |
+
"credit card holder is incomplete.","Nome do titular do cartão está incompleto."
|
153 |
+
"shipping address information was provided, sender email must be provided too.","Endereço de entrega foi fornecido, e-mail do comprador também deve ser fornecido."
|
154 |
+
"eft bank is required.","Banco para tef é obrigatório."
|
155 |
+
"eft bank is not accepted.","Banco não aceito para tef."
|
156 |
+
"sender born date invalid value: %s","Data de nascimento do comprador inválida: %s"
|
157 |
+
"sender email invalid domain: %s. You must use an email @sandbox.pagseguro.com.br","Domínio do e-mail do comprador inválido: %s. Você deve usar um e-mail @sandbox.pagseguro.com.br"
|
158 |
+
"installment quantity out of range: %s. The value must be greater than zero.","Quantidade de parcelas fora do limite: %s. O valor deve ser maior que zero."
|
159 |
+
"sender is blocked.","Comprador está bloqueado."
|
160 |
+
"credit card token invalid.","Token de cartão de crédito inválido."
|
js/pagseguro/pagseguro.js
CHANGED
@@ -2,8 +2,9 @@
|
|
2 |
* PagSeguro Transparente para Magento
|
3 |
* @author Ricardo Martins <ricardo@ricardomartins.net.br>
|
4 |
* @link https://github.com/r-martins/PagSeguro-Magento-Transparente
|
5 |
-
* @version 0.
|
6 |
*/
|
|
|
7 |
document.observe("dom:loaded", function() {
|
8 |
RMPagSeguro = function RMPagSeguro(){};
|
9 |
RMPagSeguro.updateSenderHash = function(){
|
@@ -95,8 +96,8 @@ document.observe("dom:loaded", function() {
|
|
95 |
var ccCvvElm = $$('input[name="payment[ps_cc_cid]"]').first();
|
96 |
|
97 |
Element.observe(ccNumElm,'keyup',function(e){RMPagSeguro.updateCreditCardToken();});
|
98 |
-
Element.observe(ccExpMoElm,'
|
99 |
-
Element.observe(ccExpYrElm,'
|
100 |
Element.observe(ccCvvElm,'keyup',function(e){RMPagSeguro.updateCreditCardToken();});
|
101 |
}
|
102 |
|
@@ -117,7 +118,7 @@ document.observe("dom:loaded", function() {
|
|
117 |
parcelsDrop.length = 0;
|
118 |
for(var x=0; x < b.length; x++){
|
119 |
var option = document.createElement('option');
|
120 |
-
option.text = b[x].quantity + "x de R$" + b[x].installmentAmount.toString().replace('.',',');
|
121 |
option.text += (b[x].interestFree)?" sem juros":" com juros";
|
122 |
option.value = b[x].quantity + "|" + b[x].installmentAmount;
|
123 |
parcelsDrop.add(option);
|
@@ -159,5 +160,7 @@ document.observe("dom:loaded", function() {
|
|
159 |
}
|
160 |
});
|
161 |
}
|
162 |
-
|
|
|
163 |
});
|
|
2 |
* PagSeguro Transparente para Magento
|
3 |
* @author Ricardo Martins <ricardo@ricardomartins.net.br>
|
4 |
* @link https://github.com/r-martins/PagSeguro-Magento-Transparente
|
5 |
+
* @version 2.0.0
|
6 |
*/
|
7 |
+
(function() {
|
8 |
document.observe("dom:loaded", function() {
|
9 |
RMPagSeguro = function RMPagSeguro(){};
|
10 |
RMPagSeguro.updateSenderHash = function(){
|
96 |
var ccCvvElm = $$('input[name="payment[ps_cc_cid]"]').first();
|
97 |
|
98 |
Element.observe(ccNumElm,'keyup',function(e){RMPagSeguro.updateCreditCardToken();});
|
99 |
+
Element.observe(ccExpMoElm,'change',function(e){RMPagSeguro.updateCreditCardToken();});
|
100 |
+
Element.observe(ccExpYrElm,'change',function(e){RMPagSeguro.updateCreditCardToken();});
|
101 |
Element.observe(ccCvvElm,'keyup',function(e){RMPagSeguro.updateCreditCardToken();});
|
102 |
}
|
103 |
|
118 |
parcelsDrop.length = 0;
|
119 |
for(var x=0; x < b.length; x++){
|
120 |
var option = document.createElement('option');
|
121 |
+
option.text = b[x].quantity + "x de R$" + b[x].installmentAmount.toFixed(2).toString().replace('.',',');
|
122 |
option.text += (b[x].interestFree)?" sem juros":" com juros";
|
123 |
option.value = b[x].quantity + "|" + b[x].installmentAmount;
|
124 |
parcelsDrop.add(option);
|
160 |
}
|
161 |
});
|
162 |
}
|
163 |
+
window.RMPagSeguro = RMPagSeguro;
|
164 |
+
RMPagSeguro.updateSessionId();
|
165 |
});
|
166 |
+
}());
|
package.xml
CHANGED
@@ -1,7 +1,7 @@
|
|
1 |
<?xml version="1.0"?>
|
2 |
<package>
|
3 |
<name>RicardoMartins_PagSeguro</name>
|
4 |
-
<version>
|
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 reportador 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>
|
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="3ec300291bfb59a545bfb99a23f2d670"/><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="
|
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.0.0</version>
|
5 |
<stability>stable</stability>
|
6 |
<license>MIT</license>
|
7 |
<channel>community</channel>
|
13 |

|
14 |
Os bugs devem ser reportador 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-02-20</date>
|
17 |
+
<time>11:10:13</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="3ec300291bfb59a545bfb99a23f2d670"/><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="86aaa614abfce783a8316bc5bc12dd65"/><file name="Internal.php" hash="fbf64a95060a3d2f47ef44bde57a5c70"/><file name="Params.php" hash="08810ebf498d274f0eadf07fc9ca6a24"/></dir><dir name="Model"><file name="Abstract.php" hash="5d187902514bcf834c0784f93973f37d"/><file name="Observer.php" hash="e709c92bc86416ffdcfe2fda5b8a4d37"/><dir name="Payment"><file name="Cc.php" hash="e90824569c405dd113afbc45ee9b6f17"/></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="aff107804410c1573bfbdb9a24194aee"/><file name="TestController.php" hash="dc8831ab4de2bd10d62a3ff9b6397add"/></dir><dir name="etc"><file name="config.xml" hash="457d44b85f793b6ae800e2504d7971f9"/><file name="system.xml" hash="1241d9220e774cb9a76beb3d7052bab6"/></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="f270246e0c95fedbb86b3337e2f033eb"/><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="7307814157df2a927163ead731232e6c"/></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>
|