VibeFox Cashfree for OpenCart — Ajuda
Requisitos
OpenCart: 3.0.x (testado na versão 3.0.5.0) ou 4.0.2 ou superior (testado na versão 4.1.0.3).
PHP: 8.0 ou superior.
HTTPS: a Cashfree envia webhooks somente para URLs https://. Sem HTTPS os pagamentos ainda são confirmados quando o cliente volta à loja, mas ative o HTTPS antes de entrar em produção.
Conta Cashfree: você precisa do App ID e da Secret Key da sua conta Cashfree, separadamente para o ambiente de teste (sandbox) e para o de produção, e de um webhook no Merchant Dashboard da Cashfree (veja Configuração). A Secret Key também é usada para verificar os webhooks, portanto não há uma chave secreta separada para webhooks. A moeda do pedido precisa estar habilitada na sua conta Cashfree.
Chave de licença VibeFox: comprada em vibefox.net. Uma chave funciona em um domínio.
Instalação
O download é um único arquivo zip com os pacotes para as duas versões do OpenCart. Descompacte-o no seu computador. Ele contém o README.txt, o pacote para OpenCart 3 wcp_cashfree_payment-oc3-(version).ocmod.zip e o pacote para OpenCart 4 wcp_cashfree_payment.ocmod.zip. Instale somente o pacote da sua versão do OpenCart. A chave de licença é a mesma para as duas versões.
OpenCart 3
1. No painel administrativo, acesse Extensions > Installer, clique em Upload e escolha o arquivo wcp_cashfree_payment-oc3-(version).ocmod.zip. A extensão não tem modificações OCMOD, então Extensions > Modifications não precisa ser atualizado. Em vez do instalador, você também pode copiar o conteúdo da pasta upload deste pacote para a pasta raiz da sua loja.
2. Acesse Extensions > Extensions e escolha o tipo Payments. Encontre VibeFox Cashfree Payments e clique em Install (o botão verde +). Seu usuário administrador precisa ter permissão para modificar a lista de extensões de pagamento.
3. Clique em Edit (o botão de lápis) para abrir a página de configurações. Cole sua chave de licença VibeFox em License key, no bloco de licença no topo da página, e clique em Activate (veja Chave de licença).
4. Informe o Sandbox App ID e a Sandbox Secret Key, adicione o webhook no Merchant Dashboard da Cashfree (veja Configuração), ative Enable/Disable, clique em Save e teste um pagamento.
5. Quando estiver pronto, informe o App ID e a Secret Key de produção, desative Sandbox Mode e clique em Save.
OpenCart 4
1. No painel administrativo, acesse Extensions > Installer, clique em Upload e escolha o arquivo wcp_cashfree_payment.ocmod.zip. Não renomeie o arquivo: o OpenCart 4 obtém o código da extensão a partir do nome do arquivo, e um pacote renomeado não funciona.
2. O pacote aparece na lista de extensões instaladas, na mesma página. Clique em Install (o botão verde +) ao lado dele.
3. Acesse Extensions > Extensions e escolha o tipo Payments. Encontre VibeFox Cashfree Payments, clique em Install (o botão verde +) e depois em Edit (o botão de lápis).
4. Informe a chave de licença, as chaves da Cashfree e o webhook como nos passos 3 a 5 do OpenCart 3. A página de configurações e os seus campos são iguais nas duas versões. Somente a URL do webhook é diferente (veja Webhook).
Uma nova instalação começa com o método de pagamento desativado e o modo sandbox ativado.
Configuração
Todas as configurações estão na página da extensão: Extensions > Extensions > Payments > VibeFox Cashfree Payments > Edit. As seções são listadas à esquerda; o botão Save abaixo da lista salva a página inteira. Acima das configurações, a página explica que o pedido só recebe um status depois que a Cashfree confirma o pagamento. Quando o método de pagamento está ativado, a página avisa se as chaves de API do modo selecionado estiverem faltando (nesse caso o método de pagamento fica oculto na finalização de compra) e mostra Sandbox mode is on: customers see a test checkout and no real money is charged. enquanto o modo sandbox estiver ativado. Sem a permissão para modificar a extensão, a página mostra as configurações, mas não consegue salvá-las.
Ao salvar, Title não pode ficar vazio (no máximo 128 caracteres), API Version deve ser uma das versões listadas, Sort Order deve ser um número inteiro, Total deve ser um número igual ou maior que 0, e a zona geográfica e os status de pedido precisam existir; caso contrário, nada é salvo. Quando você salva um método de pagamento ativado sem as chaves do modo selecionado, as configurações são salvas com um aviso de que ele continua oculto na finalização de compra até que sejam informadas.
Cashfree Payments
Enable/Disable: Enable Cashfree Payments ativa ou desativa o método de pagamento. Padrão: desativado.
Title: o nome do método de pagamento que os clientes veem na finalização de compra. Também é o nome do método de pagamento salvo no pedido. Padrão: Cashfree Payments. Obrigatório.
Description: o texto exibido ao cliente na etapa Confirm Order, acima do botão de confirmação. Padrão: Pay securely via Card, UPI, Net Banking, Wallet via Cashfree.
Sort Order: a posição da Cashfree entre os métodos de pagamento na finalização de compra. Deixe em branco ou informe um número inteiro.
Geo Zone: oferecer a Cashfree somente para endereços de pagamento na zona geográfica selecionada. Padrão: All zones. As zonas geográficas são configuradas em System > Localisation > Geo Zones.
Total: o total da compra, na moeda padrão da loja, que um pedido precisa atingir para que a Cashfree seja oferecida. Deixe em branco para oferecer a Cashfree em qualquer valor. Valores abaixo do mínimo da Cashfree para a moeda (1 unidade; 0,01 ou 0,1 para moedas com três casas decimais) nunca são oferecidos.
Modo e chaves de API
Obtenha o App ID e a Secret Key no Merchant Dashboard da Cashfree, em Developers > API Keys (a página inclui links para lá). As chaves de teste e as de produção são diferentes.
Sandbox Mode: usa o sandbox da Cashfree para testes. Nenhum dinheiro real é cobrado, e a etapa Confirm Order e a página de pagamento mostram SANDBOX MODE - no real payments will be processed. Padrão: ativado. Desative para pagamentos reais.
Sandbox App ID: o App ID do seu ambiente de teste da Cashfree.
Sandbox Secret Key: a Secret Key do seu ambiente de teste da Cashfree.
App ID: o App ID do seu ambiente de produção da Cashfree.
Secret Key: a Secret Key do seu ambiente de produção da Cashfree.
As Secret Keys salvas nunca são mostradas novamente. O campo fica vazio e exibe Salva — deixe em branco para mantê-la. Digite um novo valor somente se quiser alterá-la. Para remover uma chave salva, marque Clear the saved value on save abaixo do campo e clique em Save.
Os pagamentos mantêm o ambiente em que foram criados. Seus webhooks são verificados, o status deles é consultado e seus reembolsos são enviados com as chaves desse ambiente; por isso, mantenha as chaves de sandbox preenchidas até que os pagamentos de sandbox sejam liquidados após a mudança para o modo real.
Webhook
O webhook informa à sua loja que um pagamento foi feito, falhou ou foi reembolsado. No Merchant Dashboard da Cashfree, acesse Developers > Webhooks e adicione a URL exibida em Webhook URL nesta seção, com os eventos Payment e Refund. No OpenCart 3 ela tem o formato https://your-store/index.php?route=extension/payment/wcp_cashfree_payment/webhook, e no OpenCart 4, https://your-store/index.php?route=extension/wcp_cashfree_payment/payment/wcp_cashfree_payment.webhook. Ela é montada a partir do endereço da vitrine da sua instalação do OpenCart. Copie a URL exatamente como as configurações a mostram. Em uma loja com HTTPS, a extensão também passa essa URL à Cashfree em cada pagamento. Se a sua loja não usa HTTPS, esta seção exibe um aviso.
A extensão processa estes eventos (eles também estão listados nesta seção):
A Cashfree assina cada webhook com a sua Secret Key. Webhooks sem uma assinatura válida são rejeitados. Um webhook deve ser assinado com a Secret Key do ambiente em que o pagamento foi feito, assim uma chave de sandbox nunca confirma um pagamento real. Webhooks assinados de pagamentos que não foram iniciados por esta loja (por exemplo, outra loja na mesma conta Cashfree) são confirmados e ignorados. Sem o webhook, um pedido só é confirmado quando o cliente volta à loja depois de pagar. Se o cliente fechar o navegador após pagar, apenas o webhook (ou a próxima tentativa de pagamento do mesmo carrinho) pode confirmar o pedido.
Pedidos
O OpenCart cria o pedido na etapa Confirm Order sem status (um pedido ausente). O pedido recebe um status somente depois que a Cashfree confirma o pagamento. Um pagamento com falha ou abandonado deixa o pedido sem status, e o carrinho é mantido. Cada campo abaixo lista os status de pedido do seu OpenCart.
Order Status After Payment: o status definido após a confirmação do pagamento e quando o valor e a moeda conferem. Padrão: Processando.
On Hold (Review) Status: a Cashfree informou um valor ou uma moeda pagos diferentes do total do pedido. Uma nota mostra o valor esperado e o recebido. Padrão: Pendente, porque o OpenCart não tem o status Em espera. Você pode criar seu próprio status em System > Localisation > Order Statuses e selecioná-lo aqui.
Refunded Status: definido após o reembolso total do pagamento na página do pedido. Padrão: Reembolsado.
Avançado
API Version: a versão da API da Cashfree a ser usada.
Order ID prefix: os IDs de pedido da Cashfree são formados por prefixo + ID do pedido do OpenCart; uma nova tentativa do mesmo pedido recebe um número no final (por exemplo, 123-2). Deixe em branco para usar o prefixo automático desta loja, exibido na descrição do campo (OC, quatro letras derivadas do endereço da loja, seguidas de um hífen). Use um prefixo diferente para cada loja conectada à mesma conta Cashfree. Somente letras, dígitos, «_» e «-», até 20 caracteres. Outros caracteres são removidos ao salvar, com um aviso.
Debug log: os erros são sempre registrados. Quando ativado, as chamadas à API da Cashfree e os webhooks também são gravados em cashfree_p_debug.log.php, na pasta de logs do OpenCart (storage/logs). O arquivo não pode ser aberto pela web e, ao atingir 5 MB, é rotacionado. Chaves e dados dos clientes nunca são registrados. Padrão: desativado.
Log: mostra o tamanho e as últimas entradas do log. Clique em Clear log para esvaziá-lo.
Delete Data on Uninstall: quando ativado, desinstalar a extensão remove as configurações da Cashfree e o log da extensão. Os pedidos e as transações e reembolsos da Cashfree associados são sempre mantidos. Padrão: desativado.
Importar / Exportar
Export: Download JSON salva as configurações em um arquivo JSON. As Secret Keys não são exportadas.
Import: cole um JSON exportado anteriormente e clique em Import para restaurar as configurações. As Secret Keys salvas são mantidas.
Finalização de compra
Na etapa Payment Method, o cliente escolhe o método de pagamento (por padrão Cashfree Payments). Na etapa Confirm Order, o cliente vê sua descrição e a observação Você será redirecionado para a finalização de compra segura da Cashfree (cartões, UPI, internet banking, carteiras digitais). O OpenCart cria o pedido nessa etapa, ainda sem status. Quando o cliente clica em Confirm Order, a extensão cria um pedido na Cashfree pelo total do pedido na moeda do pedido e abre uma página de Cashfree payment que mostra Redirecionando para a Cashfree para o pagamento... e carrega a finalização de compra da Cashfree. Se ela não abrir sozinha, o cliente pode clicar em Pay Now. Na finalização de compra da Cashfree, o cliente paga com qualquer método habilitado na sua conta Cashfree, por exemplo cartão, UPI, internet banking ou carteira digital. O e-mail e o telefone do cliente são enviados à Cashfree. No OpenCart 4 o cliente escolhe o método de pagamento com o botão Choose do bloco do método de pagamento, na janela Payment method options, e clica em Confirm Order na parte inferior da página de finalização de compra. Por padrão, o OpenCart 4 não pede um número de telefone: se o pedido não tiver um, o bloco de confirmação mostra um campo opcional Phone (Opcional: o número de telefone do pagador para a Cashfree (UPI, OTP).). Um formato incorreto exibe Informe um número de telefone válido (10 dígitos, ou + e o código do país) ou deixe o campo vazio. O número é lembrado para a próxima tentativa.
Depois de pagar, o cliente volta à sua loja. O pedido só é marcado como pago depois que a Cashfree confirma: pelo webhook assinado ou por uma requisição do servidor à Cashfree quando o cliente volta. Em seguida, o pedido recebe o status da forma padrão do OpenCart, com os e-mails habituais do pedido e a atualização do estoque, e o cliente vê a página de sucesso do pedido do OpenCart. O retorno também funciona em outro navegador, por exemplo quando o cliente volta de um aplicativo UPI. Se o banco ainda não tiver confirmado o pagamento, uma página de Payment confirmation mostra Your payment is being processed by the bank. We will update the order as soon as Cashfree confirms it — please do not pay again. e um botão Check again; o webhook define o status do pedido assim que o banco confirma o pagamento. No OpenCart 4 o navegador não envia a sessão da loja quando a Cashfree devolve o cliente, então a extensão primeiro mostra uma página curta que abre novamente o mesmo endereço de retorno a partir da sua loja: o cliente mantém o carrinho e o login.
Se o pagamento falhar ou o cliente sair da página da Cashfree sem pagar, ele volta à finalização de compra com O pagamento pela Cashfree não foi concluído. Tente novamente ou escolha outro método de pagamento. No OpenCart 4 as mensagens da finalização de compra são exibidas acima da página de finalização. O pedido permanece sem status e o carrinho é mantido. O OpenCart 3 cria um novo pedido sempre que a etapa Confirm Order é exibida; o OpenCart 4 mantém um pedido para a finalização de compra e o atualiza, então o cliente paga o mesmo pedido novamente. Um pagamento aberto na Cashfree do mesmo pedido é reutilizado quando o valor não mudou e restam mais de cinco minutos; caso contrário, o pedido antigo na Cashfree é fechado e um novo é criado. Os pagamentos abertos na Cashfree de pedidos anteriores do mesmo carrinho também são fechados, para que o carrinho não possa ser pago duas vezes. Se o carrinho já tiver sido pago na Cashfree, mas não registrado, a próxima tentativa confirma esse pagamento em vez de cobrar novamente. Um carrinho já pago por outro pedido não é cobrado novamente: o cliente vai para a página de sucesso. Se o mesmo carrinho for pago duas vezes mesmo assim (por exemplo, em duas abas do navegador ao mesmo tempo), o segundo pedido fica sem status e o pedido pago recebe uma nota de que o cliente pode ter sido cobrado duas vezes, para que você possa reembolsá-lo no painel da Cashfree.
No OpenCart 4, o pedido permanece na finalização de compra até que a página de sucesso seja exibida. Se esse pedido tiver sido fechado sem pagamento nesse meio-tempo (por exemplo, se foi cancelado) e a Cashfree não tiver dinheiro retido para ele, o cliente volta à finalização de compra com O pagamento pela Cashfree não foi concluído. Tente novamente ou escolha outro método de pagamento., e o próximo Confirm Order paga um novo pedido do carrinho. Se o pedido já tiver um status e o carrinho tiver mudado desde então (outros produtos ou quantidades), o cliente volta à finalização de compra com Seu pedido anterior já foi realizado. Confirme o pedido novamente: o carrinho atual será pago com um novo pedido.
Se a Cashfree não conseguir iniciar o pagamento, o cliente permanece na etapa Confirm Order com Não foi possível iniciar o pagamento pela Cashfree. Tente novamente ou escolha outro método de pagamento. acima do botão. O motivo técnico é gravado no log. Um total de pedido abaixo do mínimo da Cashfree (1 unidade da moeda; 0,01 para moedas com três casas decimais, como KWD, e 0,1 para TND) não pode ser pago com a Cashfree, e o método de pagamento não é exibido para esse pedido.
O webhook também funciona enquanto a loja está em modo de manutenção: o OpenCart 3 deixa passar as requisições das extensões de pagamento, e no OpenCart 4 a extensão adiciona uma ação de inicialização (startup action) que deixa passar o webhook e o retorno do cliente.
A extensão aceita apenas pagamentos únicos na finalização de compra da Cashfree. Não há cartões salvos, assinaturas ou pagamentos recorrentes, autorização e captura separadas, widget de ofertas da Cashfree, pagamento na entrega pela Cashfree ou links de pagamento, e não há conversão de moeda: o pedido é cobrado na moeda do pedido.
Pedidos e reembolsos
Status de pedido
Sem status (pedido ausente): o cliente foi enviado à Cashfree e não pagou, o pagamento falhou ou o pagamento ainda está pendente no banco. Em Sales > Orders, esses pedidos só aparecem com o filtro Order Status definido como Missing Orders.
Order Status After Payment (padrão Processando): o pagamento foi confirmado. Uma nota mostra o ID da transação na Cashfree e o grupo do método de pagamento (por exemplo, upi ou credit_card).
On Hold (Review) Status (padrão Pendente): a Cashfree informou um valor ou uma moeda pagos diferentes do total do pedido. A nota mostra o valor esperado e o recebido, além do ID da transação. Verifique o pagamento no painel da Cashfree e, depois, atenda o pedido ou reembolse o pagamento.
Refunded Status (padrão Reembolsado): o pagamento foi totalmente reembolsado pela extensão.
Um pagamento que chega depois que você definiu manualmente um status para o pedido em espera (por exemplo, Cancelado) ainda é registrado, e o pedido passa a ser pago, porque o dinheiro foi recebido; o OpenCart notifica o cliente sobre essa mudança. Um pedido pago nunca volta atrás por causa de um pagamento com falha posterior, e um segundo pagamento para um pedido já pago não o altera.
As notas são entradas do History do pedido que o cliente não vê.
Aba VibeFox Cashfree Payments
Em Sales > Orders, abra um pedido pago com a Cashfree. Na parte inferior da página do pedido, ao lado de History e Additional, a aba VibeFox Cashfree Payments mostra o Transaction ID com o rótulo Sandbox em pagamentos de sandbox, o Cashfree order, o Status do pagamento, os valores Paid / refunded, o formulário de reembolso, o histórico de reembolsos com o status de cada um e as Cashfree notes do pedido. A aba é exibida para usuários que têm acesso à extensão.
Reembolsos
Na aba, informe o Amount (o valor ainda não reembolsado é preenchido), opcionalmente um Reason (optional), e clique em Refund via Cashfree. Confirme a pergunta Refund this amount through Cashfree? This cannot be undone. Reembolsos totais e parciais são suportados. Você precisa ter permissão para modificar a extensão (definida em System > Users > User Groups). Os reembolsos são feitos no valor e na moeda cobrados pela Cashfree, então, após uma diferença de valor, você pode reembolsar até o que o cliente realmente pagou, e não o total do pedido. O reembolso é enviado ao pedido pago na Cashfree, no ambiente (sandbox ou produção) em que foi pago; por isso, as chaves desse ambiente precisam estar configuradas. Se a Cashfree não aceitar o reembolso, ou o informar como cancelado ou recusado, a aba mostra o erro e nenhum reembolso é registrado. Um reembolso iniciado é adicionado ao histórico de reembolsos e às notas, com o seu ID, valor e status. Um reembolso total define o pedido como Refunded Status sem notificar o cliente e sem devolver os produtos ao estoque, como uma alteração manual de status. Um reembolso parcial não altera o status. Os reembolsos ficam disponíveis depois que a Cashfree confirma o pagamento.
O status final do reembolso chega pelo webhook de reembolso e é adicionado às notas. Devoluções de produtos em Sales > Returns não devolvem dinheiro pela Cashfree.
Chave de licença
A extensão funciona com uma chave de licença VibeFox obtida em vibefox.net. O bloco de licença License — VibeFox Cashfree Payments é o primeiro bloco de Extensions > Extensions > Payments > VibeFox Cashfree Payments > Edit, acima das configurações. Cole a chave em License key e clique em Activate. Depois disso, o bloco exibe a chave mascarada, o status (por exemplo, a data até a qual a licença está ativa e o seu domínio) e os botões Check now para verificar o status novamente, Change key para informar outra chave e Remove key para remover a chave desta loja. Abaixo deles estão a linha Product: opencart-payment-cashfree e o link Manage licenses and domains in your account, que abre sua conta em vibefox.net. Somente usuários administradores com a permissão Modify para a extensão podem alterar a chave. Os textos do bloco seguem o idioma do painel administrativo (inglês e russo estão incluídos).
Se a chave não for aceita, o bloco informa o motivo, por exemplo Key not found, This key belongs to another product, Domain limit reached ou License expired on seguido de uma data. Depois que o endereço da loja mudar, ou depois que você liberar um domínio na sua conta, clique em Check now. Se o servidor de licenças não puder ser acessado, a extensão continua funcionando com o último status conhecido.
Uma chave funciona em um domínio: o endereço da loja nas configurações do OpenCart. Remover a chave da loja não libera o domínio. Libere a vaga na sua conta em vibefox.net.
Sem uma chave ativa, a Cashfree não é exibida aos clientes na finalização de compra. Se um pagamento for iniciado mesmo assim, o cliente vê Este método de pagamento não está disponível. Escolha outro. Um usuário administrador conectado ao painel administrativo no mesmo navegador ainda vê o método de pagamento na loja, marcado como (sem licença — visível apenas para administradores), para que você possa configurar e testar a extensão antes de comprar uma chave. No OpenCart 4 essa prévia não está disponível: a loja não enxerga o login do administrador, então, sem uma chave ativa, o método de pagamento fica oculto para todos. Depois de abrir a página Edit uma vez, um lembrete aparece no Dashboard administrativo. Feche-o com × para ocultá-lo por 7 dias. Pedidos existentes não são afetados: pagamentos já iniciados continuam sendo confirmados, e os reembolsos funcionam.
Quando uma licença expira, a extensão continua funcionando, mas atualizações e suporte exigem renovação. O status é verificado novamente de forma automática quando você abre o Dashboard administrativo ou a página Edit: uma vez por dia nos primeiros 14 dias após a chave ser informada, depois uma vez por semana. Nenhum cron job é necessário. Desinstalar a extensão sempre remove a chave de licença e o status da licença.
Solução de problemas
A Cashfree não aparece na finalização de compra: verifique se a licença está ativa, se Enable/Disable está ativado e se o modo atual tem suas chaves: Sandbox App ID e Sandbox Secret Key no modo sandbox, App ID e Secret Key no modo real. A página de configurações mostra um aviso quando as chaves estão faltando. O método de pagamento também fica oculto quando o total do pedido está abaixo do mínimo da Cashfree. Verifique ainda se o endereço de pagamento está na Geo Zone selecionada e se o pedido atinge o Total definido nas configurações.
O pagamento foi feito, mas o pedido continua sem status: o webhook não está funcionando. Verifique se a sua loja usa HTTPS, se a URL em Developers > Webhooks é exatamente a exibida em Webhook URL e se os eventos de pagamento estão selecionados. Verifique se a Secret Key das configurações pertence ao ambiente em que o pagamento foi feito. O painel da Cashfree mostra a resposta da sua loja para cada webhook. O pedido também recebe o status quando o cliente volta à loja depois de pagar e na próxima tentativa de pagamento do mesmo carrinho.
O webhook responde Missing signature ou Invalid signature: a chamada não trazia uma assinatura válida da Cashfree, ou a Secret Key das configurações não corresponde ao ambiente em que o pagamento foi feito. Verifique se as chaves de sandbox e de produção não foram trocadas.
O webhook responde Ignored: o webhook está assinado corretamente, mas pertence a um pagamento que não foi iniciado por esta loja, por exemplo outra loja na mesma conta Cashfree. Dê a cada loja o seu próprio Order ID prefix.
O webhook responde Busy, retry later: o pedido estava sendo confirmado por outra requisição no mesmo momento, ou não foi possível definir o status do pedido. A Cashfree tenta o webhook novamente. Ative o Debug log para ver o motivo.
O cliente vê «Não foi possível carregar a página de pagamento da Cashfree. Tente novamente.»: o script da Cashfree não pôde ser carregado no navegador, por exemplo por causa de um bloqueador. O cliente pode clicar em Pay Now novamente ou em Choose another payment method.
O cliente vê «Não foi possível iniciar o pagamento pela Cashfree»: veja o campo Log na página da extensão. Os motivos típicos são chaves erradas para o modo selecionado ou uma moeda que não está habilitada na sua conta Cashfree.
O cliente vê «Este método de pagamento não está disponível.» após Confirm Order: a sessão da finalização de compra não corresponde mais ao pedido, ou o método de pagamento foi desativado nesse meio tempo. O cliente recarrega a finalização de compra.
O cliente vê «Sessão de pagamento não encontrada. Tente novamente.»: o link da página de pagamento não pertence a um pagamento desta loja, ou a sessão da Cashfree terminou. O cliente confirma o pedido novamente.
O cliente vê «Não foi possível verificar o pagamento»: o link de retorno não correspondeu ao pagamento. Se houve cobrança, o webhook ainda confirma o pedido. Verifique o pagamento no painel da Cashfree antes que o cliente pague novamente.
O pedido está em status de revisão após o pagamento: leia as notas na aba VibeFox Cashfree Payments (veja Status de pedido) e, depois, atenda o pedido ou reembolse o pagamento.
Não há formulário de reembolso na aba: a aba informa o motivo: o pagamento ainda não foi confirmado, está totalmente reembolsado, seu grupo de usuários não tem permissão para modificar a extensão, ou faltam as chaves de API do ambiente do pagamento.
O reembolso falha com uma mensagem sobre o modo sandbox ou real: o pagamento foi feito nesse ambiente, e as chaves de API dele não estão configuradas. Informe-as e tente novamente.
Desinstalação
Acesse Extensions > Extensions, escolha o tipo Payments e clique em Uninstall (o botão vermelho −) ao lado de VibeFox Cashfree Payments. A chave de licença e o status da licença desta extensão são sempre removidos. O OpenCart sempre remove as próprias configurações da extensão: Enable/Disable, Sort Order, Geo Zone, Total e os status de pedido da seção Orders, que voltam aos padrões em uma reinstalação. No OpenCart 4, também são removidos os eventos da extensão e a sua ação de inicialização, que deixa passar o webhook no modo de manutenção. Se Delete Data on Uninstall estiver ativado, as demais configurações da Cashfree (título, descrição, modo, chaves, versão da API, prefixo do ID do pedido, registro de logs) e o log são removidos. Se estiver desativado, elas são mantidas para uma reinstalação futura. As transações e os reembolsos da Cashfree são sempre mantidos, então pedidos pagos antes podem ser reembolsados depois de uma reinstalação. Os pedidos existentes mantêm suas notas de pagamento.
No OpenCart 4, para remover também os arquivos da extensão, acesse Extensions > Installer depois da desinstalação e clique em Uninstall (o botão laranja −) ao lado de VibeFox Cashfree Payments na lista de extensões instaladas e, depois, em Delete (o botão vermelho de lixeira) para remover o pacote enviado.
A Cashfree é uma marca registrada de seu respectivo proprietário. Esta extensão não é afiliada nem endossada pela Cashfree.
