r-martins/PagSeguro-Magento-Transparente-M2

Chamado de método inexistente em compras com 2 cartões de crédito

Closed this issue · 1 comments

Foi encontrado um bug na classe \RicardoMartins\PagSeguro\Model\Method\Twocc em que vários disparos para log dentro dos catches (do try/catch) acabavam chamando um médoto que não existia na classe.

Tal método é chamado ao realizar o Place Order com TwoCC e gerava o erro abaixo nos logs:

[2022-11-14 17:11:35] main.CRITICAL: Placing an order with quote_id xxxxx is failed: Método inválido RicardoMartins\PagSeguro\Model\Method\Twocc::writeLog [] []

Assim, verificando o código é poissível visualizar que dentro de vários catch na classe há a chamada do método writeLog como abaixo:

...
                try {
                    // call API - cancels
                    $returnXml  = $this->callApi($params, $payment, 'transactions/cancels/');

                    if ($returnXml === null) {
                        $errorMsg[] = 'Impossível cancelar compra do 1º cartão. Aldo deu errado.';
                    }
                } catch (\Exception $e) {
                    $this->writeLog(__('Payment cancels error.'));
                    $errorMsg[] = __('Payment cancels error.');
                }
...

Entretanto, o método writeLog não existe na classe (ou na parent class). O mesmo é chamado do $pagSeguroHelper.

Pra ajustar basta chamá-lo como:

$this->pagSeguroHelper->writeLog();

Corrigido na 2.19.1.
Obrigado por apontar e dar a solução, @vpjoao98 .