Closed gcampedelli closed 3 years ago
@gcampedelli Bom dia ! Obrigado por contribuir, poderia informar mais informações do erro que não funciona ? Alguma imagem do erro ? Qual versão do PHP ? Pra efetuar uma validação/ simulação do erro ocorrido.
Então, não aparece erro nenhum no 2.2.3. Vácuo total. Eu testei a mesma configuração do servidor NGINX com o Magento 2.2.2, e aparecem erros no console, mas funciona. Está funcionando agora, mas estou usando algumas modificações que estão funcionando e resolveram os erros do Firefox. Para você entender seguem os dois esquemas que usei PagSeguro - setup_module 2.0.2 - Magento Versão 2.2.3 - Não Funciona - Nenhuma alteração - Não passa pagamento - Não aparece erro PagSeguro - setup_module 2.0.1 - Magento Versão 2.2.2 - Funciona sem alteração. Funciona com alteração no arquivo modificado é o Direct Payment Validator.js Tanto 2.2.2 e 2.2.3 tem a mesma configuração do NGINX. Direct Payment Validator Modificado abaixo (funciona!) De modo que eu acho que não é esse o problema. No 2.2.3, eu não sei qual o problema. Suspeito que seja o erro do DI que aparece no 2.1.9. Mas, eu não testei a versão do PagSeguro alterando o arquivo PHP nas versões 2.2.2 e 2.2.3.
/**
* 2007-2017 [PagSeguro Internet Ltda.]
*
* NOTICE OF LICENSE
*
*Licensed under the Apache License, Version 2.0 (the "License");
*you may not use this file except in compliance with the License.
*You may obtain a copy of the License at
*
*http://www.apache.org/licenses/LICENSE-2.0
*
*Unless required by applicable law or agreed to in writing, software
*distributed under the License is distributed on an "AS IS" BASIS,
*WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
*See the License for the specific language governing permissions and
*limitations under the License.
*
* @author PagSeguro Internet Ltda.
* @copyright 2016 PagSeguro Internet Ltda.
* @license http://www.apache.org/licenses/LICENSE-2.0
*/
/*
* This file have all the pagseguro direct payment common functions, like
* form input masks and validations and calls to the pagseguro js api
*/
function mascaraMutuario(o,f){
v_obj=o
v_fun=f
setTimeout('execmascara()',1)
}
function execmascara(){
v_obj.value=v_fun(v_obj.value)
}
function cpfCnpj(v){
//Remove tudo o que não é dígito
v=v.replace(/\D/g,"")
if (v.length <= 14) { //CPF
//Coloca um ponto entre o terceiro e o quarto dígitos
v=v.replace(/(\d{3})(\d)/,"$1.$2")
//Coloca um ponto entre o terceiro e o quarto dígitos
//de novo (para o segundo bloco de números)
v=v.replace(/(\d{3})(\d)/,"$1.$2")
//Coloca um hífen entre o terceiro e o quarto dígitos
v=v.replace(/(\d{3})(\d{1,2})$/,"$1-$2")
} else { //CNPJ
//Coloca ponto entre o segundo e o terceiro dígitos
v=v.replace(/^(\d{2})(\d)/,"$1.$2")
//Coloca ponto entre o quinto e o sexto dígitos
v=v.replace(/^(\d{2})\.(\d{3})(\d)/,"$1.$2.$3")
//Coloca uma barra entre o oitavo e o nono dígitos
v=v.replace(/\.(\d{3})(\d)/,".$1/$2")
//Coloca um hífen depois do bloco de quatro dígitos
v=v.replace(/(\d{4})(\d)/,"$1-$2")
}
return v
}
function validateDocumentFinal(self) {
var value = unmask(self.value)
if (value.length === 11) {
return validateCpf(self)
} else if (value.length === 14) {
return validateCnpj(self)
} else {
displayError(self)
return false
}
}
/**
* Validate document (cpf or cnpj) according with it's length
* @param {type} self
* @returns {Boolean}
*/
function validateDocument(self) {
var value = unmask(self.value)
if (value.length === 11) {
status = validateCpf(self);
} else if (value.length === 14) {
status = validateCnpj(self)
} else if (value.length === 0) {
return false;
} else if (value.length !== 11 && value.length !== 14){
displayError(self)
return false
}
if (status == "true") {
//displayError(self, false)
return false;
} else {
displayError(self)
return false
}
}
/**
* Remove special characters, spaces
* @param {type} el
* @returns {unresolved}
*/
function unmask(el) {
return el.replace(/[/ -. ]+/g, '').trim()
}
/**
* Validate CPF
* @param {object} self
* @returns {Boolean}
*/
function validateCpf(self) {
var cpf = unmask(self.value)
var numeros, digitos, soma, i, resultado, digitos_iguais
digitos_iguais = 1
if (cpf.length < 11) {
displayError(self)
return false
}
for (i = 0; i < cpf.length - 1; i++)
if (cpf.charAt(i) != cpf.charAt(i + 1)) {
digitos_iguais = 0
break
}
if (!digitos_iguais) {
numeros = cpf.substring(0, 9)
digitos = cpf.substring(9)
soma = 0
for (i = 10; i > 1; i--) {
soma += numeros.charAt(10 - i) * i
}
resultado = soma % 11 < 2 ? 0 : 11 - soma % 11
if (resultado != digitos.charAt(0)) {
displayError(self)
return false
}
numeros = cpf.substring(0, 10)
soma = 0
for (i = 11; i > 1; i--) {
soma += numeros.charAt(11 - i) * i
}
resultado = soma % 11 < 2 ? 0 : 11 - soma % 11
if (resultado != digitos.charAt(1)) {
displayError(self)
return false
}
displayError(self, false)
return true
} else {
displayError(self)
return false
}
}
/**
* Validates CNPJ
* @param {object} self
* @returns {Boolean}
*/
function validateCnpj(self) {
var cnpj = unmask(self.value)
var numbersVal
var digits
var sum
var i
var result
var pos
var size
var equal_digits
equal_digits = 1
if (cnpj.length < 14 && cnpj.length < 15) {
displayError(self)
return false
}
for (i = 0; i < cnpj.length - 1; i++) {
if (cnpj.charAt(i) != cnpj.charAt(i + 1)) {
equal_digits = 0
break
}
}
if (!equal_digits) {
size = cnpj.length - 2
numbersVal = cnpj.substring(0, size)
digits = cnpj.substring(size)
sum = 0
pos = size - 7
for (i = size; i >= 1; i--) {
sum += numbersVal.charAt(size - i) * pos--
if (pos < 2) {
pos = 9
}
}
result = sum % 11 < 2 ? 0 : 11 - sum % 11
if (result != digits.charAt(0)) {
displayError(self)
return false
}
size = size + 1
numbersVal = cnpj.substring(0, size)
sum = 0
pos = size - 7
for (i = size; i >= 1; i--) {
sum += numbersVal.charAt(size - i) * pos--
if (pos < 2) {
pos = 9
}
}
result = sum % 11 < 2 ? 0 : 11 - sum % 11
if (result != digits.charAt(1)) {
displayError(self)
return false
}
displayError(self, false)
return true
} else {
displayError(self)
return false
}
}
/**
* Show input error
* @param {type} target
* @param {type} error
* @returns {undefined}
*/
function displayError(target, error = true) {
target = document.getElementsByClassName(target.id + '-error-message')[0]
if (error && target.classList.contains('display-none')) {
target.classList.remove('display-none')
target.style.display = "";
} else if (!error) {
target.classList.add('display-none')
target.style.display = "none";
}
}
/**
* Add mask for document (cpf or cnpj)
* Important: Called on keyup
* @param {this} document
* @returns {bool}
*/
function documentMask(document) {
if (document.value.length < 14
|| (document.value.length == 14 && (event.keyCode == 8 || event.keyCode == 9 || event.keyCode == 46))
) {
MascaraCPF(document);
} else {
MascaraCNPJ(document);
}
}
/*
* Mask functions below adapted from
* http://www.fabiobmed.com.br/excelente-codigo-para-mascara-e-validacao-de-cnpj-cpf-cep-data-e-telefone/
*/
/**
* Add CNPJ mask to input
* @param {type} cnpj
* @returns {Boolean}
*/
function MascaraCNPJ(cnpj) {
if (mascaraInteiro(cnpj) == false) {
event.return = false;
}
return formataCampo(cnpj, '00.000.000/0000-00', event);
}
/**
* Add date mask to input
* @param {type} cnpj
* @returns {Boolean}
*/
if (navigator.userAgent.search("Firefox") >= 0) {
function MascaraData(data, event) {
if (mascaraInteiro(data) == false) {
event.return = false;
}
return formataCampo(data, '00/00/0000', event);
}
}else{
function MascaraData(data) {
if (mascaraInteiro(data) == false) {
event.return = false;
}
return formataCampo(data, '00/00/0000', event);
}
}
/**
* Add CPF mask to input
* @param {type} cnpj
* @returns {Boolean}
*/
function MascaraCPF(cpf) {
if (mascaraInteiro(cpf) == false) {
event.return = false;
}
return formataCampo(cpf, '000.000.000-00', event);
}
/**
* Add credit card mask to input
* @param {type} cnpj
* @returns {Boolean}
*/
if (navigator.userAgent.search("Firefox") >= 0) {
function creditCardMask(cc, event) {
if (mascaraInteiro(cc) == false) {
event.return = false;
}
return formataCampo(cc, '0000 0000 0000 0000', event);
}
} else {
function creditCardMask(cc) {
if (mascaraInteiro(cc) == false) {
event.return = false;
}
return formataCampo(cc, '0000 0000 0000 0000', event);
}
}
/**
* Add not number mask to input
* @param {type} cnpj
* @returns {Boolean}
*/
function notNumberMask(someString, event) {
if (maskNotNumber(someString) == false) {
event.return = false;
}
return true;
}
/**
* Validate and prevent key typed event if it is a numbers
* @returns {Boolean}
*/
function maskNotNumber(event) {
if (event.keyCode == 8
|| event.keyCode == 9
|| event.keyCode == 46
|| event.keyCode < 48
|| (event.keyCode > 57 && event.keyCode < 96)
|| (event.keyCode > 105)) {
return true;
}
event.return = false;
return false;
}
/**
* Validate and prevent key typed event if it is not an integer([48,57] || [96, 105]),
* backspace(8), tab(9), or del(46)
* @returns {Boolean}
*/
function mascaraInteiro() {
function tecla(event){
var e = event.keyCode || e.which;
if ( e == 8
|| e == 9
|| e == 46
|| (e > 47 && e < 58)
|| (e > 95 && e < 106)) {
return true;
}
event.return = false;
return false;
}
}
/**
* Format fields, according with the mask pattern
* @param {type} campo
* @param {type} Mascara
* @param {type} evento
* @returns {Boolean}
*/
function formataCampo(campo, Mascara, evento) {
var boleanoMascara;
var Digitato = evento.keyCode;
var exp = /\-|\.|\/|\(|\)| /g
var campoSoNumeros = campo.value.toString().replace(exp, "");
var posicaoCampo = 0;
var NovoValorCampo = "";
var TamanhoMascara = campoSoNumeros.length;
;
if (Digitato != 8) { // backspace
for (i = 0; i <= TamanhoMascara; i++) {
boleanoMascara = ((Mascara.charAt(i) == "-") || (Mascara.charAt(i) == ".")
|| (Mascara.charAt(i) == "/"))
boleanoMascara = boleanoMascara || ((Mascara.charAt(i) == "(")
|| (Mascara.charAt(i) == ")") || (Mascara.charAt(i) == " "))
if (boleanoMascara) {
NovoValorCampo += Mascara.charAt(i);
TamanhoMascara++;
} else {
NovoValorCampo += campoSoNumeros.charAt(posicaoCampo);
posicaoCampo++;
}
}
campo.value = NovoValorCampo;
return true;
} else {
return true;
}
}
/**
* Add credit card code mask to input
* @param {type} cnpj
* @returns {Boolean}
*/
function creditCardCodeMask(code) {
if (mascaraInteiro(code) == false) {
event.return = false;
}
return true;
}
Que configurações você usou para o NGINX? Estou tentando fazer funcionar no Magento 2.2.4 mas tb não tem jeito. Usando PHP 7.0.27.
Então, não é o NGINX. No caso do 2.2.4, quando você dá o update no composer, o PagSeguro faz o download da biblioteca inteira e atualiza para outra versão que é incompatível com o 2.2.4. Fiz o upload dos arquivos que funcionam com o 2.2.4 https://drive.google.com/file/d/1b8JwxyjZYnN5Y6-aclCrr3jA-9abznux/view?usp=sharing
Baixe essa pasta e coloque no lugar da pasta vendor/pagseguro no Magento 2. No MYSQL faça essa alteração da imagem no setup_module
Depois deleta /var/viewpreprocessed /generated/code/ /generated/metadata/ /pub/static/etc
E php bin/magento setup:upgrade php bin/magento setup:di:compile php bin/magento setup:static:content:deploy
Ajeita as permissões e testa
Oi gcampedelli... então, qual a versão do PagSeguro você instalou antes de fazer esse "mexe"? Instalei a versão 1.12 e segui seu passo a passo (aliás, muitíssimo obrigada pela dica!) e mesmo assim não funcionou... instala direitinho, aparece no frontend, mas ao clicar no botão finalizar compra fica "pensando" e não finaliza o pagamento. Recebo a mensagem "An error ocurred on the server. Please try to place the order again". (Só acontece com PagSeguro, se finalizo com moneyE não há nenhum erro no log, totalmente vazio... A chave setup_module está igual a que vc mostrou na minha db. Não alterei nada, já estava assim quando conferi.
Katiakweb, qual checkout você está usando??? O do Magento 2 mesmo ou tem alguma mod no checkout? OpCheckout não funciona, aliás, a maioria One Step Checkout vai dar erro. Só achei 1 OPC que funciona direitinho sem dar o erro, mas não tou com ele instalado. Então, todas as MODs que eu fiz no checkout são direto no tema. Já tive módulos de checkout e recebia esse erro, pode ser algum conflito de JS. Qual erro que tá dando no log?? E qual shipping method você instalou? O do Bleez conflita, tem que comentar umas linhas no Model/Consulta.php. Eu uso o Bleez + o do Igor para Correios e tem umas confs que tem que mudar. Enfim, nada fácil. No meu 2.2.4 está funcionando o PagSeguro normalmente, desse jeito que eu te mostrei, mas sem módulos de checkout instalados. Só não testei ainda o Clean Checkout. No meu caso, o composer fazia o update para a versão pagseguro 1.12 e não funcionava e eu dei o downgrade para a versão 1.04.
De todo modo, segue a conf do NGINX pode ser algo assim. A propósito, eu tou usando o Varnish e o default.vcl do varnish é modificado também. O que foi gerado pelo magento 2 dá erro.
upstream fastcgi_backend {
server unix:/var/run/php/php7.0-fpm.sock;
}
server {
server_name meulindodominio.com.br;
listen 8080;
set $MAGE_ROOT /var/www/html/magento2;
set $MAGE_MODE production; # or developer
access_log /var/log/nginx/dmeulindodominio.com.br.com-access.log;
error_log /var/log/nginx/meulindodominio.com.br-error.log;
include /var/www/html/magento2/nginx.conf.sample;
}
server {
listen 443 ssl http2;
server_name meulindodominio.com.br;
proxy_headers_hash_bucket_size 128;
proxy_headers_hash_max_size 1024;
ssl_certificate /etc/letsencrypt/live/meulindodominio.com.br/fullchain.pem; # managed by Certbot
ssl_certificate_key /etc/letsencrypt/live/meulindodominio.com.br/privkey.pem; # managed by Certbot
ssl_protocols TLSv1 TLSv1.1 TLSv1.2;
ssl_ciphers 'AES128+EECDH:AES128+EDH:!aNULL';
#ssl_session_cache shared:SSL:10m;
#ssl_session_timeout 24h;
#keepalive_timeout 300s;
location / {
proxy_pass http://127.0.0.1:80;
proxy_set_header Host $http_host;
proxy_set_header X-Forwarded-Host $http_host;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
#proxy_set_header Ssl-Offloaded "1";
proxy_set_header X-Forwarded-Proto https;
proxy_set_header X-Forwarded-Port 443;
#proxy_hide_header X-Varnish;
#proxy_hide_header Via;
proxy_set_header X-Forwarded-Proto $scheme;
include fastcgi.conf;
}
location /phpmyadmin {
root /usr/share/;
index index.php index.html index.htm;
location ~ ^/phpmyadmin/(.+\.php)$ {
try_files $uri =404;
root /usr/share/;
fastcgi_pass unix:/var/run/php/php7.0-fpm.sock;
fastcgi_index index.php;
fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
include /etc/nginx/fastcgi_params;
}
location ~* ^/phpmyadmin/(.+\.(jpg|jpeg|gif|css|png|js|ico|html|xml|txt))$ {
root /usr/share/;
}
}
location /phpMyAdmin {
rewrite ^/* /phpmyadmin last;
}
}
gcampedelli, eu estava usando o checkout normal do magento... mas agora pouco instalei o Clean Checkout (https://github.com/danslo/CleanCheckout), e já vi que dá conflito... já estou quase desistindo do PagSeguro, mas vou tentar fazer downgrade para esta versão que você falou, talvez funcione. E aquela versão do PagSeguro do Bleez (https://github.com/Bleez/Pagseguro), você já usou? Eu testei no Magento 2.2.3, mas tb dava o mesmo erro... tava aqui pensando, será que é porque criei um novo website e loja? Será que tenho que mudar alguma coisa na url do PagSeguro? Mas estou usando o mesmo domínio para as duas lojas, mesmo website. No Nginx mapeei direitinho...
Bah, acabei de ler ali... nem me desanima, nem instalei módulo de Correio ainda! : / Eu queria usar o do Bleez, gosto mais desse. Que alterações vc fez? Pode me passar? O do Igor nunca consegui fazer funcionar direito. Menina, haja paciência pra fazer este PagSeguro funcionar, olha...
Então, eu sofri com o lance do PagSeguro. Mas, no 2.2.4 eu fiz isso que te falei e funcionou. O que está aparecendo no console do browser? Fica rodando e qual o erro que aparece? Você tá com minify js ou algo do gênero instalado? Pra mim dava o mesmíssimo erro e sei lá o que eu fiz. Se precisar de ajuda pode me chamar. Você veio de um upgrade ou reinstalou?? Se você deu um upgrade, eu sugiro que você faça um backup, deleta o env.php, deleta o config.php, limpa a var, a pub e a generated e reinstala sem necessariamente limpar a DB, mas usa os arquivos que eu te enviei, inclusive a biblioteca PHP do PagSeguro. No entanto, você vai ter que fazer isso usando a command line. Ah, não esquece de configurar o Varnish. O Bleez PagSeguro não funciona. O q funciona é a versão mod do 1.04 do PagSeguro que eu te enviei. Na hora que voce colocar as confs do redis de volta no env.php, toma cuidado pra não deletar a chave nova e a data de instalação. Pode ser esse o conflito. O problema todo vem do composer, não sei te indicar exatamente o que. Pro Bleez funcionar out of box, vai no arquivo Model/Consulta.php e edita a função public function consultaCep($cep) da seguinte maneira. Ah, outra coisa, você configurou o Redis? Às vezes, um flushall do redis resolve tudo. Se você estiver usando o memcached, pelamor de Deus, se livra disso.
public function consultaCep($cep){
/* A partir daqui você comenta todas as linhas ou deleta mesmo, tanto faz, até onde está marcado
$data = Correios::getEndereco($cep);
if($data){
$this->setData('logradouro', $data['logradouro']);
$this->setData('bairro', $data['bairro']);
$this->setData('cep', $data['cep']);
$this->setData('cidade', $data['cidade']);
$this->setData('uf', $this->getRegionId($data['uf']));
return $this;
}
$this->_helperSigep->_initSigep();
$phpSigep = new Real();
$data = $phpSigep->consultaCep($cep);
if($data->getResult() == null){
$this->setData('error', $data->getErrorMsg());
return $this;
}
if($data->getErrorCode() == null){
$this->setData('logradouro', $data->getResult()->get('endereco'));
$this->setData('bairro', $data->getResult()->get('bairro'));
$this->setData('cep', $data->getResult()->get('cep'));
$this->setData('cidade', $data->getResult()->get('cidade'));
$this->setData('uf', $data->getResult()->get('uf'));
return $this;
}
/* AQUI TERMINA A EDIÇÃO E O RESTO DA FUNÇÃO CONTINUA IGUAL
$data = Viacep::getEndereco($cep);
if($data){
$this->setData('logradouro', $data['logradouro']);
$this->setData('bairro', $data['bairro']);
$this->setData('cep', $data['cep']);
$this->setData('cidade', $data['cidade']);
$this->setData('uf', $this->getRegionId($data['uf']));
return $this;
}
$data = Republicavirtual::getEndereco($cep);
if($data){
$this->setData('logradouro', $data['logradouro']);
$this->setData('bairro', $data['bairro']);
$this->setData('cep', $data['cep']);
$this->setData('cidade', $data['cidade']);
$this->setData('uf', $this->getRegionId($data['uf']));
return $this;
}
return false;
}
gcampedelli, obrigada pela dicas... consegui fazer o módulo Correios do Bleez funcionar... mas o PagSeguro não tem jeito mesmo! Me passa o teu contato direto, quero falar contigo!
Oi, me envia um email gcampedelli@gmail.com
Alguém conseguiu colocar para rodar no 2.3.1 ??? No meu caso estou migrando da versão 2.2.6 já sem funcionar. O principal problema é que após a realização da compra o campo transaction_code da tabela pagseguro_orders não é preenchido, consecutivamente quando há notificação não é possível fazer a alteração do estado para PagSeguro Confirmado.
Oi Tiago, esse módulo não vai funcionar no 2.3.1. Eu tenho outro módulo que eu mesma fiz php 7.2 para a versão 2.3.1. Mas o required dev é php 7.2. Ele não trabalha com a tabela pagseguro_orders e não faz nenhuma alteração na db do Magento2, sendo totalmente compatível com a plataforma. E volta as notificações, sendo que vce pode instalar outros módulo para envio de emails abandonados sem nenhuma incompatibilidade. Eu abandonei o PagSeguro Oficial na versão 2.2.4 e a partir de então passei a trabalhar apenas com o meu módulo. Ainda não tem boleto instalado, mas já funciona sem problemas no cartão.
Boa, é este no seu Git? Sobrescrevo o que já tenho ou desinstalo antes? O que recomendas? Vou testar e deixo aqui meu Review. Obrigado pela iniciativa. Abraço!
Olá Tiago, não está no Github.
On Tue, May 21, 2019 at 8:56 PM Thiago notifications@github.com wrote:
Boa, é este no seu Git? Sobrescrevo o que já tenho ou desinstalo antes? O que recomendas? Vou testar e deixou aqui meu Review. Obrigado pela iniciativa. Abraço!
— You are receiving this because you were mentioned. Reply to this email directly, view it on GitHub https://github.com/pagseguro/magento2/issues/113?email_source=notifications&email_token=ABWBS22YQJYELNSDNVLEFSLPWSD2ZA5CNFSM4E3SZ7Y2YY3PNVWWK3TUL52HS4DFVREXG43VMVBW63LNMVXHJKTDN5WW2ZLOORPWSZGODV5QKLY#issuecomment-494601519, or mute the thread https://github.com/notifications/unsubscribe-auth/ABWBS24BOHOLBPERDZKXBCDPWSD2ZANCNFSM4E3SZ7YQ .
--
[image: photo] Gabriela Campedelli (11)976379099 | gcampedelli@gmail.com | http://www.espressivo.com.br | Skype: gcampedelli https://mail.google.com/mail/u/0/#
Olá @gcampedelli como faço para ter acesso? Podes compartilhar?
Não sei se era exatamente o mesmo erro, mas comigo não conseguia prosseguir com o pedido (Place Order) pois estava dando "Ocorreu um erro no servidor. Por favor, tente fazer o pedido novamente.". No log aparecia o erro de "Lock wait timeout exceeded" na query:
UPDATE sales_order_grid SET environment='Produção' WHERE entity_id=<NÚMERO>
Então fiz a seguinte modificação no arquivo vendor/pagseguro/magento2/Observer/CreatePagSeguroOrder.php
, substituindo a linha 159 por:
$this->_grid->getConnection()->query($mapsDeleteQuery);
Ambiente: Magento 2.3.1 migrado da 1.9.3 Módulo Pagseguro 1.12 PHP 7.2 MySQL 5.7
Não sei se era exatamente o mesmo erro, mas comigo não conseguia prosseguir com o pedido (Place Order) pois estava dando "Ocorreu um erro no servidor. Por favor, tente fazer o pedido novamente.". No log aparecia o erro de "Lock wait timeout exceeded" na query:
UPDATE sales_order_grid SET environment='Produção' WHERE entity_id=<NÚMERO>
Então fiz a seguinte modificação no arquivo
vendor/pagseguro/magento2/Observer/CreatePagSeguroOrder.php
, substituindo a linha 159 por:$this->_grid->getConnection()->query($mapsDeleteQuery);
Ambiente: Magento 2.3.1 migrado da 1.9.3 Módulo Pagseguro 1.12 PHP 7.2 MySQL 5.7
Me salvou.... Bom demais.
Não consigo fazer funcionar no Magento 2.2.3. Não aparece erro no console. Nada. Vácuo Mas não passa a compra