shipay-pag / shipay-magento-1.9

0 stars 6 forks source link

Problemas no Frontend (não há como selecionar opções de pagamento) #9

Open LuizSantos22 opened 2 years ago

LuizSantos22 commented 2 years ago

Só a título de registro, pois reportei o bug para um atendente da Shipay, mas me parece que ainda não foi resolvido.

Ambiente para a reprodução do bug

PHP 7.3/7.4 Magento 1.9 (OpenMage 1.9.4.15) Módulo da Shipay instalado e configurado

Bug: Ao chegar na página de checkout, selecione a opção de pagamento Shipay, os campos link de pagamento ou QR estão desabilitados, e não há como prosseguir com o pagamento.

Eu sinceramente adoraria ver esse bug corrigido, porque queria muito usar a solução de vocês que ajuda a substituir vários módulos de uma série de carteiras digitais.

Att Luiz Santos

EvertonSA commented 2 years ago

oi @LuizSantos22, vou colher com o time como está o andamento dessa correção. assim que tiver um posicionamento coloco aqui meu caro. obrigado por formalizar pelo github!

dougvf91 commented 2 years ago

Bom dia @LuizSantos22, tudo bem?

Acabamos de disponibilizar a última versão do módulo Magento 1.9 com esse bug já corrigido.

Você poderia, por gentileza, efetuar alguns testes e verificar se o módulo está se comportando da maneira como deveria em seu ambiente?

Agradecemos mais uma vez por formalizar aqui pelo github!

Ficamos à disposição, Atenciosamente. Correção_Magento 1 9

LuizSantos22 commented 2 years ago

@dougvf91 Tudo bem, desculpa por demorar a responder Para mim continua o problema. Eu baixei o módulo e instalei manualmente.

Meu ambiente de testes está rodando

OpenMage 1.9.4.15 PHP 7.3 Cpanel com Lightspeed (Interserver) Última atualização do módulo da Shipay: https://github.com/shipay-pag/shipay-magento-1.9

Eu antes de voltar a instalar, deletei todos os arquivos, fui ao PHPMyAdmin e busquei e deletei todas as entradas da Shipay no banco de dados. E realmente foi tudo eliminado, porque na nova instalação, todas as credenciais que eu tinha saldo no banco de dados, haviam sido apagadas.

OBS: Tente fazer o teste com a OpenMage, já que um número significativo de usuários que optaram por seguir com Magento 1, migraram para OpenMage. Ao baixar no site do Github, baixe do link LTS: https://github.com/OpenMage/magento-lts ou a versão: v19.4.15 que está abaixo de v20.0.13 neste link: https://github.com/OpenMage/magento-lts/releases

Provavelmente será alguma atualização de segurança aplicada no OpenMage que não está presente na versão Magento 1.9

Caso queiram, posso enviar as credenciais do meu site de testes via Whatsapp.

PS: Também atualizei o sistema para PHP7.4 para me assegurar que não era esse o problema Limpei o cache, reindexei tudo e nada, o módulo segue com o mesmo problema

Segue o link do print no Google Photos: https://bit.ly/3OsKNoz

Att Luiz Santos

LuizSantos22 commented 1 year ago

Alguém conseguiu resolver esse bug no OpenMage? Gostaria muito de usar esse módulo

veronnick commented 1 year ago

Estou com esse mesmo problema! Alguma solução?

OliverTomas1212 commented 1 year ago

Alguém conseguiu resolver esse problema?

LuizSantos22 commented 8 months ago

@EvertonSA @dougvf91 Investiguei mais um pouco, ativei o modo debug global e fiz algum progresso, cosegui fazer com que as opções aparecessem no frontend, porém, ainda não consigo selecionar.

Estes eram os bugs em var/log/system.log:

2023-11-07T22:59:54+00:00 ERR (3): Notice: Undefined index: access_token in /app/code/community/Shipay/Magento19/Resource/GetAccessToken.php on line 28 2023-11-07T22:59:54+00:00 ERR (3): Notice: Undefined index: refresh_token in /app/code/community/Shipay/Magento19/Resource/GetAccessToken.php on line 29 2023-11-07T22:59:54+00:00 ERR (3): Notice: Undefined index: access_token in /app/code/community/Shipay/Magento19/Resource/GetAccessToken.php on line 31 2023-11-07T23:46:52+00:00 ERR (3): Notice: Undefined index: access_token in /app/code/community/Shipay/Magento19/Resource/GetAccessToken.php on line 28 2023-11-07T23:46:52+00:00 ERR (3): Notice: Undefined index: refresh_token in /app/code/community/Shipay/Magento19/Resource/GetAccessToken.php on line 29 2023-11-07T23:46:52+00:00 ERR (3): Notice: Undefined index: access_token in /app/code/community/Shipay/Magento19/Resource/GetAccessToken.php on line 31

Esta em var/log/exception.log

`2023-11-07T22:59:54+00:00 ERR (3): TypeError: Return value of Shipay_Magento19_Resource_GetAccessToken::generateAccessToken() must be of the type string, null returned in /app/code/community/Shipay/Magento19/Resource/GetAccessToken.php:31 Stack trace:

0 /app/code/community/Shipay/Magento19/Resource/GetAccessToken.php(12): Shipay_Magento19_Resource_GetAccessToken->generateAccessToken()

1 /app/code/community/Shipay/Magento19/Resource/GetWallets.php(54): Shipay_Magento19_Resource_GetAccessToken->getAccessToken()

2 /app/code/community/Shipay/Magento19/Resource/GetWallets.php(20): Shipay_Magento19_Resource_GetWallets->getAccessToken()

3 /app/code/community/Shipay/Magento19/Resource/GetWallets.php(12): Shipay_Magento19_Resource_GetWallets->doRequest()

4 /app/code/community/Shipay/Magento19/Block/Form/Payment.php(27): Shipay_Magento19_Resource_GetWallets->getWallets()

5 /app/design/frontend/base/default/template/shipay/magento19/form/payment.phtml(31): Shipay_Magento19_Block_Form_Payment->getWallets()

6 /app/code/core/Mage/Core/Block/Template.php(257): include('/home/ultraele/...')

7 /app/code/core/Mage/Core/Block/Template.php(294): Mage_Core_Block_Template->fetchView('frontend/base/d...')

8 /app/code/core/Mage/Core/Block/Template.php(307): Mage_Core_Block_Template->renderView()

9 /app/code/core/Mage/Core/Block/Abstract.php(933): Mage_Core_Block_Template->_toHtml()

10 /app/code/core/Mage/Core/Block/Abstract.php(650): Mage_Core_Block_Abstract->toHtml()

11 /app/code/core/Mage/Core/Block/Abstract.php(594): Mage_Core_Block_Abstract->_getChildHtml('payment.method....', true)

12 /app/code/core/Mage/Checkout/Block/Onepage/Payment/Methods.php(70): Mage_Core_Block_Abstract->getChildHtml('payment.method....')

13 /app/design/frontend/base/default/template/checkout/onepage/payment/methods.phtml(49): Mage_Checkout_Block_Onepage_Payment_Methods->getPaymentMethodFormHtml(Object(Shipay_Magento19_Model_Payment))

14 /app/code/core/Mage/Core/Block/Template.php(257): include('/home/ultraele/...')

15 /app/code/core/Mage/Core/Block/Template.php(294): Mage_Core_Block_Template->fetchView('frontend/base/d...')

16 /app/code/core/Mage/Core/Block/Template.php(307): Mage_Core_Block_Template->renderView()

17 /app/code/core/Mage/Core/Block/Abstract.php(933): Mage_Core_Block_Template->_toHtml()

18 /app/code/core/Mage/Core/Model/Layout.php(580): Mage_Core_Block_Abstract->toHtml()

19 /app/code/core/Mage/Checkout/controllers/OnepageController.php(140): Mage_Core_Model_Layout->getOutput()

20 /app/code/core/Mage/Checkout/controllers/OnepageController.php(461): Mage_Checkout_OnepageController->_getPaymentMethodsHtml()

21 /app/code/core/Mage/Core/Controller/Varien/Action.php(428): Mage_Checkout_OnepageController->saveShippingMethodAction()

22 /app/code/core/Mage/Core/Controller/Varien/Router/Standard.php(262): Mage_Core_Controller_Varien_Action->dispatch('saveShippingMet...')

23 /app/code/core/Mage/Core/Controller/Varien/Front.php(188): Mage_Core_Controller_Varien_Router_Standard->match(Object(Mage_Core_Controller_Request_Http))

24 /app/code/core/Mage/Core/Model/App.php(371): Mage_Core_Controller_Varien_Front->dispatch()

25 /app/Mage.php(748): Mage_Core_Model_App->run(Array)

26 /index.php(64): Mage::run('', 'store')

27 {main}`

Seguindo a sugestão da IA modifiquei o seguinte código em "GetAccessToken.php":

`<?php

class Shipay_Magento19_Resource_GetAccessToken {

const URI = '/pdvauth';

/**
 * Function to get access token
 * @return string
 */
public function getAccessToken(): string {
    return $this->generateAccessToken();
}

/**
 * Function to generate access token
 * @return string
 */
public function generateAccessToken(): string {
    $request = [
        'access_key' => Mage::helper('core')->decrypt(Mage::getStoreConfig('payment/shipay_keys/access_key')),
        'client_id' => Mage::helper('core')->decrypt(Mage::getStoreConfig('payment/shipay_keys/client_id')),
        'secret_key' => Mage::helper('core')->decrypt(Mage::getStoreConfig('payment/shipay_keys/secret_key'))
    ];

    $response = $this->doRequest(json_encode($request));

    if (isset($response['access_token']) && isset($response['refresh_token'])) {
        Mage::getModel('core/config')->saveConfig('payment/shipay_keys/access_token', $response['access_token']);
        Mage::getModel('core/config')->saveConfig('payment/shipay_keys/refresh_token', $response['refresh_token']);
        return $response['access_token'];
    } else {
        Mage::log('API response does not contain access_token and refresh_token', null, 'custom.log');
        // Handle the error as needed (e.g., return an error message or throw an exception)
        // Example: return 'Access token generation failed';
    }
}

/**
 * Function to make a request
 * @param string $request
 * @return array
 */
protected function doRequest($request): array {
    $environment = $this->getEnvironment();

    $curl = curl_init();

    curl_setopt_array($curl, array(
        CURLOPT_URL => ($environment . self::URI),
        CURLOPT_RETURNTRANSFER => true,
        CURLOPT_ENCODING => "",
        CURLOPT_MAXREDIRS => 10,
        CURLOPT_TIMEOUT => 60,
        CURLOPT_FOLLOWLOCATION => TRUE,
        CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
        CURLOPT_CUSTOMREQUEST => "POST",
        CURLOPT_POSTFIELDS => $request,
        CURLOPT_HTTPHEADER => [
            "Content-Type: application/json"
        ],
    ));

    $response = curl_exec($curl);

    curl_close($curl);

    return json_decode($response, true);
}

/**
 * Function to get the environment
 * @return string
 */
protected function getEnvironment(): string {
    $classGetEnvironment = new Shipay_Magento19_Resource_GetEnvironment();
    return $classGetEnvironment->getEnvironment();
}

/**
 * Function to validate if a new token should be generated
 * @return bool
 */
protected function validateIfGenerateNewToken(): bool {
    $model = new Mage_Core_Model_Config_Data();
    $collection = $model->getCollection()->addFieldToFilter('path', ['eq' => 'payment/shipay_keys/access_token'])->getItems();

    foreach ($collection as $item) {
        $dateToken = date($item->getUpdatedAt());
        $dateValidate = date('Y-m-d h:i:s'); // Corrected 'm' for minutes
        $dateValidate = date('Y-m-d h:i:s', strtotime($dateValidate . ' - 1 days'));

        if ($dateToken < $dateValidate) {
            return true;
        }
    }
    return false;
}

} `

Também fiz modificações no CSS em "shipay/magento19/form/payment.phtml"

` `

Agora aparece as opções de pagamento no frontend, no entanto, sigo sem poder selecioná-las.

Fiz um video: https://www.loom.com/share/b8d66a4b8c5a4374b1428c93490ca49c?sid=4cc312ab-1325-4dce-a752-c172ac7d9bd2

EvertonSA commented 8 months ago

@eikeda @biegelmeyer

LuizSantos22 commented 8 months ago

@EvertonSA e @dougvf91 Já resolvi o problema, depois que fizer os ajustes, repasso o que estava ocorrendo.

Agora necessito que a Shipay remova os dados do MercadoPago do meu painel, pois tinha uma configuração antiga lá, e ela está bloqueada, não consigo remover ou desativar a conta. E não adianta cadastrar outras, ela fica sempre ativa e interfere no módulo.

EvertonSA commented 8 months ago

@EvertonSA e @dougvf91 Já resolvi o problema, depois que fizer os ajustes, repasso o que estava ocorrendo.

Agora necessito que a Shipay remova os dados do MercadoPago do meu painel, pois tinha uma configuração antiga lá, e ela está bloqueada, não consigo remover ou desativar a conta. E não adianta cadastrar outras, ela fica sempre ativa e interfere no módulo.

Meu caro, recomendo entrar novamente em contato com time de integração, eles podem entender melhor o que vc está pedindo.

Eu não estou atuando na shipay nesse momento, tenho certeza que alguém irá te ajudar via time de integração.