Voltar

VibeFox Midtrans for OpenCart — Ajuda

Requisitos

OpenCart: 3.0.x (testado na versão 3.0.5.0) ou 4.0.2 e superior (testado na versão 4.1.0.3).

PHP: 8.0 ou superior.

Moeda: Rupia indonésia (IDR). O Midtrans cobra somente em IDR, por isso o método de pagamento só é oferecido quando a moeda do checkout é IDR. Não há conversão de moeda. Adicione a moeda IDR em System > Localisation > Currencies se a sua loja não a tiver.

Conta do Midtrans: você precisa da Server Key em Midtrans Dashboard > Settings > Access Keys, tanto no painel sandbox quanto no painel de produção. Somente a Server Key é usada. A Client Key não é necessária para o Snap Redirect. Os próprios métodos de pagamento (GoPay, QRIS, contas virtuais e outros) são habilitados na sua conta do Midtrans.

Chave de licença VibeFox: comprada em vibefox.net. Uma chave funciona em um único 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_midtrans_payment_gateway-oc3-(version).ocmod.zip e o pacote para OpenCart 4 wcp_midtrans_payment_gateway.ocmod.zip. Instale apenas 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_midtrans_payment_gateway-oc3-(version).ocmod.zip. A extensão não possui modificações OCMOD, portanto Extensions > Modifications não precisa ser atualizado. Em vez do instalador, você 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. Localize VibeFox Midtrans Payment Gateway e clique em Install (o botão verde +). Seu usuário administrador precisa ter o direito de 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 as Server Keys e copie a URL de notificação de pagamento para o painel do Midtrans (veja Configuração).

5. Ative Enable/Disable e clique em Save. Teste no Sandbox e depois altere o Environment para Production.

OpenCart 4

1. No admin, acesse Extensions > Installer, clique em Upload e escolha o arquivo wcp_midtrans_payment_gateway.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, escolha o tipo Payments, encontre VibeFox Midtrans Payment Gateway, 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 Server Keys e a URL de notificação como nos passos 3 a 5 para o OpenCart 3. A página de configurações e os seus campos são iguais nas duas versões. Apenas a URL de notificação é diferente (veja Configuração).

Uma instalação nova começa com o método de pagamento desativado e o ambiente Sandbox selecionado.

Configuração

Todas as configurações ficam na página da extensão: Extensions > Extensions > Payments > VibeFox Midtrans Payment Gateway > Edit. As seções aparecem à esquerda; o botão Save abaixo da lista salva a página inteira. Acima das configurações, a página avisa quando a Server Key do ambiente selecionado está ausente (nesse caso o método de pagamento fica oculto no checkout) e quando a moeda padrão da loja não é IDR, e exibe Sandbox mode: payments are simulated, no real money is charged. enquanto o Sandbox estiver selecionado. Sem o direito de modificar a extensão, a página exibe as configurações, mas não consegue salvá-las.

Ao salvar, Title deve ter de 1 a 128 caracteres, Sort Order deve ser um número inteiro, Total deve ser um número igual ou maior que 0 e Payment page expiry (minutes) deve ser um número inteiro. Se um valor estiver errado, a página mostra o erro e nada é salvo.

Midtrans

Enable/Disable: Enable Midtrans payments ativa ou desativa o método de pagamento. Padrão: desativado.

Title: o título do método de pagamento exibido ao cliente no checkout. Também é o nome do método de pagamento gravado no pedido. Padrão: Midtrans. Obrigatório.

Description: o texto exibido ao cliente na etapa Confirm Order, acima do botão de confirmação. Padrão: Pay securely via Midtrans — GoPay, QRIS, ShopeePay, cards, bank transfer and more. Em Sandbox, a linha SANDBOX MODE: no real money is charged. é exibida acima dele.

Sort Order: a posição do Midtrans entre os métodos de pagamento no checkout. Deixe em branco ou informe um número inteiro.

Geo Zone: oferecer o Midtrans 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 do checkout, na moeda padrão da loja, que um pedido precisa atingir para que o Midtrans seja oferecido. Deixe em branco para oferecer o Midtrans em qualquer valor.

Credenciais da API

Copie a Server Key em Midtrans Dashboard > Settings > Access Keys. A seção traz links para o painel de produção e para o painel sandbox.

Environment: o ambiente do Midtrans usado pelos novos pagamentos. Ao trocar, são usados a chave e a API do ambiente selecionado. Os pedidos mantêm o ambiente em que foram pagos, para reembolsos e notificações. Padrão: Sandbox.

Sandbox: para testes, sem dinheiro real.
Production: pagamentos reais.

Production Server Key: começa com Mid-server-. Mantenha em sigilo.

Sandbox Server Key: começa com SB-Mid-server-.

As chaves salvas nunca são exibidas novamente. O campo fica vazio e mostra Saved — leave empty to keep it. Digite um novo valor somente se quiser alterá-lo. Para remover uma chave salva, marque Clear the saved key on save abaixo do campo e clique em Save.

URL de notificação de pagamento

A notificação informa à sua loja que um pagamento foi feito. O campo Notification URL mostra a URL a ser usada. No OpenCart 3 ela tem a forma https://your-store/index.php?route=extension/payment/wcp_midtrans_payment_gateway/webhook, e no OpenCart 4 é https://your-store/index.php?route=extension/wcp_midtrans_payment_gateway/payment/wcp_midtrans_payment_gateway.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 e cole-a em Midtrans Dashboard > Settings > Payment > Notification URL, tanto no painel sandbox quanto no painel de produção que você usa. A URL precisa estar acessível pela internet. Se você a abrir em um navegador, ela mostra uma breve explicação, para que você possa verificar se está acessível. O botão Test notification URL do painel do Midtrans também recebe resposta.

Cada notificação deve trazer uma assinatura válida feita com uma das suas Server Keys, e o ambiente da chave precisa corresponder ao ambiente do pagamento. Notificações sem assinatura válida são rejeitadas. O status é então consultado novamente na API de status do Midtrans antes de o pedido mudar. A extensão trata estes status de transação do Midtrans:

settlement, capture (accepted): o pagamento foi feito. O pedido é marcado como pago quando o valor (em rupias inteiras) e a moeda conferem com o pedido.
capture (challenge): um pagamento com cartão sinalizado pela detecção de fraude do Midtrans. O pedido vai para o status de análise até que você o aprove ou recuse no painel do Midtrans.
pending: o cliente escolheu um método de pagamento com prazo (conta virtual, loja de conveniência, QRIS) ou uma verificação 3-D Secure do cartão não foi concluída. O pedido recebe o status de aguardando.
expire, cancel: a transação não paga expirou ou foi cancelada. Um pedido aguardando recebe o status expired / cancelled, para todos os métodos de pagamento. Um pedido sem status não recebe nenhum: apenas a tentativa é encerrada e o cliente pode pagar novamente.
deny: o pagamento foi negado. Um pedido aguardando recebe o status failed.
failure: o pagamento falhou. Um pedido aguardando recebe o status failed.
refund, partial_refund: um reembolso feito no painel do Midtrans é registrado no pedido.

Sem a URL de notificação, um pedido só é confirmado quando o cliente volta à loja após pagar, e um pagamento com prazo feito depois não é percebido até que o cliente retorne.

Configurações de pagamento

O Midtrans cobra somente em IDR, e os valores são enviados em rupias inteiras. Se as linhas do pedido não somarem o total arredondado, uma linha de Rounding adjustment é enviada ao Midtrans.

Payment page expiry (minutes): por quanto tempo o cliente pode pagar (página Snap, conta virtual e assim por diante). Deixe em branco ou 0 para o padrão do Midtrans.

Order ID prefix: acrescentado ao número enviado ao Midtrans, para que várias lojas possam compartilhar uma mesma conta do Midtrans. O número é o ID do pedido do OpenCart com uma marca de tempo, por exemplo OC-123-1700000000. Somente letras, dígitos e - _ . ~ são permitidos, até 20 caracteres; os demais são removidos ao salvar. Notificações de outras lojas são ignoradas. Padrão: OC-.

Pedidos

O OpenCart cria o pedido na etapa Confirm Order sem status (um pedido incompleto). O pedido só recebe um status depois que o Midtrans confirma a transação. Cada campo abaixo lista os seus status de pedido do OpenCart.

Status after payment: o status após um pagamento confirmado. Padrão: Processando. Escolha um status concluído para marcar os pedidos pagos como concluídos, ou o seu próprio status de análise para conferir manualmente cada pedido pago.

Awaiting Midtrans payment status: o Midtrans informa pending: foi emitida uma conta virtual, um código de loja de conveniência ou um QRIS, ou uma verificação 3-D Secure do cartão não foi concluída. Padrão: Pendente.

Midtrans payment on hold status: o pagamento precisa da sua análise (veja Status do pedido). Padrão: Pendente, porque o OpenCart não tem o status On hold. Você pode criar um status próprio em System > Localisation > Order Statuses e selecioná-lo aqui.

Payment failed status: o Midtrans informa deny ou failure para um pedido aguardando. Padrão: Falhou.

Payment expired / cancelled status: a transação pendente de um pedido aguardando expirou ou foi cancelada. Quando você mesmo define este status em um pedido Midtrans não pago, a transação pendente do Midtrans (por exemplo, uma conta virtual emitida) é expirada para que não possa mais ser paga. Padrão: Cancelado.

Refunded status: o pagamento foi reembolsado integralmente pela página do pedido ou no painel do Midtrans. Padrão: Reembolsado.

Avançado

Debug log: grava chamadas à API e notificações em midtrans_p_debug.log.php, na pasta de logs do OpenCart (storage/logs). O arquivo não pode ser aberto pela web. Os erros são sempre registrados. Chaves e dados de clientes nunca são registrados. Padrão: desativado.

Log: mostra o tamanho e as últimas entradas do log. Clique em Clear log para limpá-lo.

Delete data on uninstall: quando ativado, desinstalar a extensão remove as configurações do gateway e o log. As referências de pagamento do Midtrans e os reembolsos dos pedidos são sempre mantidos, para que pedidos antigos ainda possam ser reembolsados após uma reinstalação. Padrão: desativado.

Importar / Exportar

Export: Download JSON salva as configurações em um arquivo JSON. As Server Keys não são exportadas.

Import: cole o JSON exportado anteriormente e clique em Import para restaurar as configurações. As Server Keys salvas são mantidas.

Finalização de compra

Na etapa Payment Method, o cliente escolhe o método de pagamento (por padrão, Midtrans). Na etapa Confirm Order, o cliente vê a sua descrição e a nota You will be redirected to the Midtrans payment page (GoPay, QRIS, ShopeePay, cards, bank transfer and more). O OpenCart cria o pedido nessa etapa, ainda sem status. Quando o cliente clica em Confirm Order, a extensão cria uma transação Snap do Midtrans pelo total do pedido em rupias inteiras, com as linhas do pedido, frete, descontos, impostos e os dados de cobrança e entrega do cliente, e envia o cliente para a página de pagamento do Midtrans. Lá o cliente escolhe qualquer método habilitado na sua conta do Midtrans. No OpenCart 4, o cliente escolhe o método de pagamento com o botão Choose no bloco do método de pagamento, na janela Payment method options, e clica em Confirm Order na parte de baixo da página de finalização de compra.

Depois de pagar, o cliente volta à sua loja. O link de retorno nunca marca um pedido como pago: o pedido só é marcado como pago depois que o Midtrans confirma, seja pela notificação assinada, seja por uma consulta à API de status do Midtrans quando o cliente retorna. O pedido então recebe o seu status da forma padrão do OpenCart, com os e-mails de pedido habituais e a atualização do estoque, e o cliente vê a página de sucesso do pedido do OpenCart. Para um pagamento com prazo, a página também mostra We are waiting for Midtrans to confirm your payment. If you chose a bank transfer, virtual account or convenience store, please complete the payment using the instructions from Midtrans. You will receive an e-mail once the payment is confirmed. Se o Midtrans não puder ser acessado quando o cliente voltar, uma página de Payment confirmation mostra We are confirming your payment with Midtrans. The order will be updated automatically — please do not pay again. com um botão Check again e um botão Back to checkout.

Se o cliente saiu da página Snap sem pagar, ele volta ao checkout com The Midtrans payment was not completed. You can try again below. Se o pagamento foi recusado ou expirou, a mensagem é Your Midtrans payment was declined or has expired. Please try again or choose another payment method. No OpenCart 4 essas mensagens aparecem acima da página de finalização de compra. O carrinho é mantido. O OpenCart 3 cria um novo pedido sempre que a etapa Confirm Order é exibida, enquanto o OpenCart 4 mantém um pedido para a finalização de compra e, ao pagar de novo, usa o mesmo pedido. Em qualquer caso, a extensão trata todos os pedidos de um mesmo carrinho como um único pagamento: quando o cliente paga novamente, um Snap não usado ou pendente do mesmo valor é reaproveitado (uma conta virtual já emitida continua válida); se o valor mudou, a transação pendente é primeiro expirada no Midtrans; se um Snap anterior foi pago nesse meio tempo, esse pagamento é confirmado e o cliente vai para a página de sucesso sem nova transação.

No OpenCart 4, o pedido permanece na finalização de compra até que a página de sucesso seja exibida. Se, nesse meio-tempo, o pedido foi fechado sem pagamento (por exemplo, o pagamento foi recusado ou expirou, ou você cancelou o pedido), o cliente volta à finalização de compra com Your previous order was cancelled without a payment. Please confirm the order again to pay with a new order., e o próximo Confirm Order paga um novo pedido. Se o pedido já foi registrado e o carrinho mudou desde então, a mensagem é Your previous order #(número) has already been placed. Your cart has changed: please confirm the new order to pay for it. Uma alteração do carrinho, incluindo uma nova quantidade, conta como um novo carrinho que precisa de um pagamento próprio. Se o pagamento de um pedido foi recusado ou expirou depois que o carrinho já tinha sido esvaziado (por exemplo, depois de um pagamento por conta virtual), o cliente vê The Midtrans payment of order #(número) was declined or has expired, so the order will not be shipped. To buy these items, please place a new order.

Se o Midtrans não conseguir iniciar o pagamento, o cliente permanece na etapa Confirm Order com uma breve mensagem acima do botão: Could not connect to Midtrans. Please try again in a moment., Midtrans payments are temporarily unavailable. Please choose another payment method or contact us. (por exemplo, com uma Server Key incorreta) ou o motivo informado pelo Midtrans. O motivo técnico é gravado no log.

A notificação também funciona enquanto a loja está em modo de manutenção, porque o OpenCart 3 deixa passar as requisições das extensões de pagamento, e no OpenCart 4 a extensão adiciona para ela uma ação de inicialização (startup action), que também deixa o cliente voltar do Midtrans.

A extensão usa somente o Snap Redirect. Não há pop-up do Snap, formulário de cartão no seu site, cartões salvos ou pagamentos com um clique, nem configurações de parcelamento ou promoções (os métodos de pagamento são configurados no painel do Midtrans), nem assinaturas. Pagamentos com cartão são capturados imediatamente, sem autorização e captura separadas.

Pedidos e reembolsos

Status do pedido

No status (missing order): o cliente foi enviado ao Midtrans e ainda não pagou, ou o Midtrans ainda não confirmou o pagamento. Em Sales > Orders, esses pedidos só são exibidos com o filtro Order Status definido como Missing Orders.

Awaiting Midtrans payment status (padrão Pendente): o cliente escolheu um método com prazo ou iniciou um pagamento com cartão que não foi concluído. Quando o Midtrans informa o pagamento, o pedido passa para Status after payment.

Status after payment (padrão Processando): o pagamento foi confirmado. Uma nota mostra o método de pagamento, o ID do pedido no Midtrans e a transação.

Midtrans payment on hold status (padrão Pendente): um pagamento com cartão está em análise antifraude (challenge, nenhum valor registrado ainda), o valor ou a moeda pagos não conferem com o pedido (o pedido não é marcado como pago), ou chegou um pagamento para um pedido cancelado (o pedido não é reaberto automaticamente). A nota explica. Confira o pedido e depois atenda-o ou reembolse o pagamento.

Payment expired / cancelled status (padrão Cancelado): a transação não paga de um pedido aguardando expirou ou foi cancelada.

Payment failed status (padrão Falhou): o pagamento falhou, ou um pagamento com cartão submetido a desafio foi negado.

Refunded status (padrão Reembolsado): o pagamento foi reembolsado integralmente.

O OpenCart notifica o cliente sobre essas mudanças de status da forma habitual. Se chegar um segundo pagamento para o mesmo carrinho, o pedido não é alterado. Uma nota no pedido pago pede que você reembolse o segundo pagamento no painel do Midtrans. Um pagamento de um pedido já reembolsado apenas adiciona uma nota.

As notas são entradas do History do pedido que o cliente não vê.

Aba VibeFox Midtrans Payment Gateway

Em Sales > Orders, abra um pedido pago com o Midtrans. Na parte inferior da página do pedido, ao lado de History e Additional, a aba VibeFox Midtrans Payment Gateway mostra o Midtrans order ID, o Transaction ID (com link para a transação no painel do Midtrans do ambiente do pagamento), com o rótulo Sandbox para pagamentos sandbox, o Payment method, o Status, os valores Paid / refunded, o formulário de reembolso, o histórico de reembolsos e as Midtrans notes do pedido. A aba é exibida para usuários que têm acesso à extensão.

Reembolsos

Na aba VibeFox Midtrans Payment Gateway, informe o Amount (o valor ainda não reembolsado já vem preenchido), opcionalmente um Reason (optional), e clique em Refund via Midtrans. Confirme a pergunta Refund this amount through Midtrans? This cannot be undone. Reembolsos totais e parciais são suportados em rupias inteiras; um valor com casas decimais é recusado. Você precisa do direito de modificar a extensão (definido em System > Users > User Groups). Você pode reembolsar até o valor que o Midtrans realmente cobrou, mesmo que o pedido tenha sido editado depois. O reembolso é enviado no ambiente em que o pagamento foi feito, por isso a Server Key desse ambiente precisa estar definida. O Midtrans só permite reembolsos pela API para alguns métodos de pagamento e transações liquidadas. Se o Midtrans não aceitar o reembolso, a aba mostra o erro e nenhum reembolso é registrado; nesse caso, reembolse pelo painel do Midtrans. Um reembolso bem-sucedido é adicionado ao histórico de reembolsos e às notas. Um reembolso total define o pedido como Refunded status sem notificar o cliente e sem devolver produtos ao estoque, como uma mudança manual de status. Um reembolso parcial não altera o status. Os reembolsos só estão disponíveis depois que o Midtrans informa que o pagamento foi liquidado.

Devoluções de produtos em Sales > Returns não devolvem dinheiro pelo Midtrans.

Reembolsos feitos no painel do Midtrans chegam pela notificação e são adicionados automaticamente ao histórico de reembolsos, com o motivo Refunded in the Midtrans dashboard. Quando o pagamento inteiro é reembolsado ali, o pedido recebe o Refunded status.

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 Midtrans Payment Gateway é o primeiro bloco em Extensions > Extensions > Payments > VibeFox Midtrans Payment Gateway > Edit, acima das configurações. Cole a chave em License key e clique em Activate. Depois disso, o bloco mostra 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 ficam a linha Product: opencart-payment-midtrans e o link Manage licenses and domains in your account, que abre a sua conta em vibefox.net. Somente administradores com a permissão Modify para a extensão podem alterar a chave. Os textos do bloco seguem o idioma do administrador (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 uma vaga de 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 único domínio: o endereço da loja nas configurações do OpenCart. Remover a chave da loja não libera a vaga de domínio. Libere-a na sua conta em vibefox.net.

Sem uma chave ativa, o Midtrans não é exibido aos clientes no checkout. Se um pagamento for iniciado mesmo assim, o cliente vê This payment method is not available. Please choose another one. Um usuário administrador conectado ao administrador no mesmo navegador ainda vê o método de pagamento na loja, marcado como (unlicensed — visible to admins only), para que você possa configurar e testar a extensão antes de comprar uma chave. No OpenCart 4 esta prévia não está disponível: a loja não enxerga o login no admin, 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 do administrador. 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 ou a página Edit do administrador: uma vez por dia nos primeiros 14 dias após a chave ser informada, depois uma vez por semana. Não é necessário cron job. Desinstalar a extensão sempre remove a chave de licença e o status da licença.

Solução de problemas

O Midtrans não aparece no checkout: verifique se a licença está ativa, se Enable/Disable está ligado e se o Environment selecionado tem a sua Server Key. Confira se a moeda do checkout é IDR, se o endereço de pagamento está na Geo Zone selecionada e se o pedido atinge o Total definido nas configurações. A página de configurações mostra um aviso quando a chave está ausente ou a moeda da loja não é IDR.

O pagamento foi feito, mas o pedido continua sem status: a notificação não está funcionando. Verifique se a URL de notificação de pagamento está definida no painel do Midtrans do ambiente que você usa (sandbox ou produção), se ela é exatamente a URL exibida em Notification URL e se está acessível: abra-a em um navegador, ela mostra uma breve explicação. Ative o Debug log para ver as notificações. O pedido também recebe o status quando o cliente volta à loja após pagar.

A notificação responde Invalid signature: a notificação não foi assinada com a sua Server Key Sandbox ou Production. Confira se as chaves das configurações pertencem à mesma conta do Midtrans que o painel que envia as notificações.

A notificação responde Server key not configured: nenhuma Server Key está definida. Informe-a nas configurações; o Midtrans repete a notificação.

A notificação responde Order not found — ignored: o ID do pedido no Midtrans não foi emitido por esta loja, por exemplo por outra loja na mesma conta do Midtrans. Dê a cada loja um Order ID prefix diferente.

A notificação responde Environment mismatch — ignored: a notificação foi assinada com a chave do outro ambiente, diferente daquele em que o pagamento foi feito.

A notificação responde Verification failed, please retry: a API de status do Midtrans não pôde ser acessada. O Midtrans repete a notificação.

A notificação responde Busy, please retry: o carrinho estava sendo atualizado por outra requisição no mesmo momento, ou não foi possível definir o status do pedido. O Midtrans repete a notificação. Consulte o log para ver o motivo.

O pedido está no status de análise: leia as Midtrans notes na aba. O pagamento com cartão está em análise antifraude, o valor ou a moeda pagos não conferiam com o pedido, ou o pagamento chegou depois que o pedido foi cancelado.

O cliente vê um erro após Confirm Order: consulte o campo Log na página da extensão; os erros são sempre registrados. Uma Server Key incorreta gera a mensagem de que os pagamentos do Midtrans estão temporariamente indisponíveis. Midtrans only supports payments in IDR (Indonesian Rupiah). Please choose another payment method. significa que o pedido não está em IDR. This payment method is not available. significa que a sessão do checkout não corresponde mais ao pedido, ou que o método de pagamento foi desativado nesse meio tempo: o cliente deve recarregar o checkout.

O cliente volta ao checkout com Payment verification failed.: o link de retorno estava incompleto ou não pertence ao pedido. O pedido ainda recebe o seu status pela notificação.

Não há formulário de reembolso na aba: a aba informa o motivo: o pagamento ainda não foi liquidado, está totalmente reembolsado, o seu grupo de usuários não tem o direito de modificar a extensão, ou não há Server Key definida para o ambiente em que o pedido foi pago.

O reembolso falha: o método de pagamento ou o estado da transação não permite reembolsos pela API; reembolse pelo painel do Midtrans, e o reembolso será registrado automaticamente no pedido.

Para desenvolvedores: antes de a transação Snap ser criada, a extensão dispara o evento do OpenCart midtrans_p_snap_payload com os dados da requisição e o pedido; o ID do pedido e o valor não podem ser alterados.

Desinstalação

Acesse Extensions > Extensions, escolha o tipo Payments e clique em Uninstall (o botão vermelho −) ao lado de VibeFox Midtrans Payment Gateway. 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. Os eventos do OpenCart da extensão também são removidos (no OpenCart 4, também a sua ação de inicialização (startup action), que deixa passar as notificações no modo de manutenção). Se Delete data on uninstall estiver ativado, as demais configurações do gateway (título, descrição, ambiente, Server Keys, configurações de pagamento, registro de logs) e o log são removidos. Se estiver desativado, são mantidos para uma reinstalação posterior. As referências de pagamento do Midtrans e os reembolsos dos pedidos são sempre mantidos, para que pedidos pagos antes ainda possam ser reembolsados após uma reinstalação. Os pedidos existentes mantêm suas notas de pagamento.

No OpenCart 4, para remover também os arquivos da extensão, depois da desinstalação acesse Extensions > Installer e clique em Uninstall (o botão laranja −) ao lado de VibeFox Midtrans Payment Gateway na lista de extensões instaladas, depois em Delete (o botão vermelho com a lixeira) para remover o pacote enviado.

Midtrans é uma marca registrada de seu respectivo titular. Esta extensão não é afiliada nem endossada pela Midtrans.