Voltar

VibeFox OpenPay for OpenCart — Ajuda

Requisitos

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

PHP: 8.0 ou superior.

HTTPS: sua loja deve usar HTTPS, porque o formulário do cartão fica na página de finalização de compra.

OpenPay account: uma conta OpenPay do México, da Colômbia ou do Peru. Você precisa do Merchant ID, da chave privada (sk_...) e da chave pública (pk_...) dessa conta. Os painéis de sandbox e de produção têm Merchant IDs e chaves diferentes, e a extensão os mantém separados.

Currency: o cliente deve pagar em uma moeda aceita pelo país da sua conta: México — MXN ou USD, Colômbia — COP ou USD, Peru — PEN ou USD. Para outras moedas, o método de pagamento fica oculto na finalização de compra.

VibeFox license key: comprada em vibefox.net. Uma chave funciona em um único domínio.

O cartão é digitado na sua página de finalização de compra, mas é lido e tokenizado no navegador pelo openpay.js. Os campos do cartão não têm nome e nunca são enviados ao seu servidor. Como o formulário do cartão está na sua página, o seu escopo de PCI DSS é SAQ A-EP; consulte o seu adquirente.

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 do OpenCart 3 wcp_openpay_gateway-oc3-(version).ocmod.zip e o pacote do OpenCart 4 wcp_openpay_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, vá em Extensions > Installer, clique em Upload e escolha o arquivo wcp_openpay_gateway-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. Vá em Extensions > Extensions e escolha o tipo Payments. Encontre VibeFox OpenPay 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 com o lápis) para abrir a página de configurações. Cole sua chave de licença do VibeFox em License key, no bloco de licença no topo da página, e clique em Activate (veja Chave de licença).

4. Escolha o Account country e informe as chaves de sandbox e de produção (veja Configuração).

5. Recomendado: adicione a URL do webhook no painel da OpenPay (veja Configuração).

6. Ative Enable / Disable e clique em Save. Teste um pagamento com os cartões de teste do sandbox da OpenPay e, em seguida, desative Sandbox mode para receber pagamentos reais. Mantenha as chaves de sandbox enquanto ainda puder precisar reembolsar pedidos de sandbox.

OpenCart 4

1. No painel administrativo, vá em Extensions > Installer, clique em Upload e escolha o arquivo wcp_openpay_gateway.ocmod.zip. Não renomeie o arquivo: o OpenCart 4 obtém o código da extensão 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. Vá em Extensions > Extensions e escolha o tipo Payments. Encontre VibeFox OpenPay Gateway, clique em Install (o botão verde +) e depois em Edit (o botão com o lápis).

4. Informe a chave de licença, as chaves da OpenPay e o webhook, como nos passos 3 a 6 para o OpenCart 3. A página de configurações e os seus campos são iguais nas duas versões. Só a URL do webhook é diferente (veja Webhook).

Uma nova instalação começa com o método de pagamento desativado e com o modo sandbox ativado.

Configuração

Todas as configurações ficam na página da extensão: Extensions > Extensions > Payments > VibeFox OpenPay Gateway > 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 avisa quando as chaves do modo atual estão incompletas (nesse caso, o método de pagamento fica oculto na finalização de compra) e quando a moeda padrão da sua loja não é aceita pelo país da conta selecionado, e exibe Sandbox mode is enabled — no real charges are made. enquanto o modo sandbox estiver ativo. Sem o direito de modificar a extensão, a página mostra as configurações, mas não consegue salvá-las.

Ao salvar, as chaves são verificadas. Um Merchant ID pode conter apenas letras e dígitos, uma chave privada deve começar com sk_ e uma chave pública com pk_. Um valor inválido não é salvo: o valor anterior é mantido e um erro é exibido, por exemplo Sandbox: The private key must start with sk_. O mesmo vale para um Sort Order que não seja um número inteiro (Sort Order must be a whole number — the previous value was kept.) e para um Total que não seja um número igual ou maior que 0. Os demais campos são salvos. Se o método de pagamento estiver ativado, mas as chaves do modo atual estiverem incompletas, você também verá uma mensagem informando que o gateway continua oculto na finalização de compra. Um Title vazio ou com mais de 128 caracteres é recusado com Enter a title for the payment method (1 to 128 characters)., e nada é salvo.

OpenPay

Enable / Disable: Enable OpenPay card 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 armazenado no pedido. Padrão: Credit or debit card (OpenPay). Obrigatório, até 128 caracteres.

Description: o texto exibido acima do formulário do cartão na etapa Confirm Order. Padrão: Pay securely with your credit or debit card. O seu banco pode pedir que você confirme o pagamento (3D Secure).

Sort Order: a posição da OpenPay entre os métodos de pagamento na finalização de compra. Deixe vazio ou informe um número inteiro (números negativos são permitidos).

Geo Zone: oferecer a OpenPay 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. No OpenCart 4, quando a loja não pede endereço de pagamento, usa-se o endereço de entrega.

Total: o total do carrinho, na moeda padrão da loja, que um pedido precisa atingir para que a OpenPay seja oferecida. Deixe vazio para oferecer a OpenPay para qualquer total.

Conta OpenPay

O Merchant ID, a chave privada (sk_) e a chave pública (pk_) estão no seu painel da OpenPay, em Settings (Configuración). A seção contém links para os painéis de sandbox e de produção do México, da Colômbia e do Peru.

Account country: o país da sua conta OpenPay. Ele define a API da OpenPay, a biblioteca openpay.js desse país e as moedas aceitas. Padrão: Mexico.

Mexico: MXN and USD.
Colombia: COP and USD.
Peru: PEN and USD.

Sandbox mode: usa o sandbox da OpenPay (chaves de teste, sem cobranças reais) e troca tanto as chaves quanto a API para o sandbox. Um selo SANDBOX MODE é exibido na finalização de compra enquanto ele estiver ativo. Padrão: ativado. Desative-o para receber pagamentos reais.

Sandbox Merchant ID: o Merchant ID do painel de sandbox, em Settings (Configuración), chaves de API.

Sandbox Private Key: a chave privada do sandbox. Ela começa com sk_. É usada somente no servidor; nunca a compartilhe.

Sandbox Public Key: a chave pública do sandbox. Ela começa com pk_. O openpay.js a usa no navegador para tokenizar o cartão.

Live Merchant ID: o Merchant ID do painel de produção, em Settings (Configuración), chaves de API.

Live Private Key: a chave privada de produção (sk_...).

Live Public Key: a chave pública de produção (pk_...).

As chaves privadas 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 privada salva, marque Clear the saved key on save abaixo do campo e clique em Save.

Webhook

O webhook não é obrigatório, mas é recomendado. Ele confirma os pagamentos quando o cliente não volta da página do 3D Secure, por exemplo depois de fechar o navegador. No painel da OpenPay, vá em Settings > Webhooks e adicione a URL mostrada em Webhook URL nesta seção. No OpenCart 3 ela tem o formato https://your-store/index.php?route=extension/payment/wcp_openpay_gateway/webhook, e no OpenCart 4, https://your-store/index.php?route=extension/wcp_openpay_gateway/payment/wcp_openpay_gateway.webhook. Ela é montada a partir do endereço da vitrine da sua instalação do OpenCart. Copie-a exatamente como as configurações a mostram. Adicione o webhook no painel de cada modo que você usa (sandbox e produção).

Ao adicionar o webhook, a OpenPay envia um código de verificação para essa URL. O código aparece nesta seção com a data em que chegou, para que você possa confirmar o webhook no painel da OpenPay. Até lá, a seção mostra No verification code received yet.

A extensão processa estes eventos:

charge.succeeded: o pagamento com cartão foi concluído.
charge.failed: o pagamento falhou.
charge.cancelled: o pagamento foi cancelado.
charge.refunded: o pagamento foi reembolsado, por exemplo pelo painel da OpenPay.
transaction.expired: o cliente não concluiu o pagamento a tempo.
chargeback.created, chargeback.accepted, chargeback.rejected: uma contestação foi aberta ou decidida.

A OpenPay não assina os webhooks, por isso a extensão nunca confia na própria notificação. Ela só a usa para localizar a cobrança e, em seguida, lê a cobrança na API da OpenPay com a chave privada do modo e do país da conta em que o pagamento foi feito. Uma notificação de uma cobrança que esta loja não criou é ignorada. O webhook também funciona enquanto a loja está em modo de manutenção: o OpenCart 3 libera 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 libera o webhook e o retorno do cliente da página do 3D Secure.

Pedidos

O OpenCart cria o pedido na etapa Confirm Order sem status (um pedido ausente). O pedido só recebe um status depois que a OpenPay confirma a cobrança. Um cartão recusado ou uma verificação 3D Secure que falha deixa o pedido sem status, uma nota explica o motivo e o cliente pode pagar novamente. Cada campo abaixo lista os status de pedido do seu OpenCart; você pode criar os seus próprios status em System > Localisation > Order Statuses.

Order Status After Payment: a OpenPay confirmou a cobrança e o valor e a moeda correspondem ao pedido. Padrão: Processing.

Awaiting OpenPay Payment: a cobrança está em andamento (ainda não capturada); o webhook a conclui ou a marca como falha depois. Padrão: Pending.

OpenPay Payment On Hold: a OpenPay cobrou um valor ou uma moeda diferentes do pedido, ou uma cobrança foi concluída depois que o pedido já havia sido cancelado. Padrão: Pending.

Payment Error Status: a cobrança de um pedido aguardando a OpenPay ou retido falhou, foi cancelada ou expirou. Padrão: Failed.

Refunded Status: a cobrança é totalmente reembolsada a partir da página do pedido. Reembolsos parciais apenas adicionam uma nota. Padrão: Refunded.

Avançado

Debug log: registra as etapas do pagamento em wc_opy_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, é movido para wc_opy_debug.old.log.php. Erros e avisos são registrados mesmo quando a opção está desativada. Chaves, dados do cartão e dados dos clientes nunca são registrados. Padrão: desativado.

Log: mostra o tamanho e as entradas mais recentes do log. Clique em Clear log para esvaziá-lo.

Delete data on uninstall: quando ativada, ao desinstalar a extensão são removidas as configurações do gateway, o código de verificação do webhook armazenado e o log. Os registros de cobranças da OpenPay dos pedidos fazem parte do histórico de pagamentos e são sempre mantidos, para que os pedidos 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 chaves privadas não são exportadas.

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

Finalização de compra

Na etapa Payment Method, o cliente escolhe o método de pagamento (por padrão, Credit or debit card (OpenPay)). Na etapa Confirm Order, o cliente vê a sua descrição e o formulário do cartão: Cardholder name, Card number, Expiry (MM/YY) e Card code (CVV). No modo sandbox, o formulário mostra SANDBOX MODE — Test environment. No real charges will be made. O OpenCart cria o pedido nessa etapa, ainda sem status. No OpenCart 4, o cliente escolhe o método de pagamento pelo botão Choose do bloco do método de pagamento, na janela Payment method options; o formulário do cartão fica na seção de confirmação, no final da página de finalização de compra, acima de Confirm Order. Quando o cliente clica em Confirm Order, o openpay.js transforma o cartão em um token de uso único no navegador, e a biblioteca antifraude adiciona um ID de sessão do dispositivo. Somente esses dois valores são enviados à sua loja. Um formulário incompleto mostra Please fill in all card fields. abaixo do formulário.

A extensão então cria a cobrança com 3D Secure pelo total do pedido, na moeda do pedido, e envia o cliente à página 3D Secure do banco dele, servida pela OpenPay. Cada tentativa recebe sua própria referência de pedido na OpenPay. A descrição da cobrança é Order #, o número do pedido e o nome da sua loja. O nome, o e-mail e o telefone do cliente, vindos do endereço de pagamento, são repassados à OpenPay; nenhuma conta de cliente é criada na OpenPay.

Quando o cliente volta, a extensão lê a cobrança na API da OpenPay. O pedido só é marcado como pago depois que a OpenPay confirma: a cobrança precisa pertencer a este pedido, estar concluída e corresponder exatamente ao total e à moeda do pedido. Então o pedido recebe seu 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 com Your card payment has been received. Se a OpenPay informar que a cobrança está em andamento, o pedido recebe o status Awaiting OpenPay Payment e a página mostra We are confirming your card payment with OpenPay. The order will be updated automatically — please do not pay again. Se o resultado ainda não for conhecido, uma página Payment confirmation mostra o mesmo texto com um botão Check again e um botão Back to checkout; o webhook define o status do pedido assim que chega. Se uma cobrança em andamento falhar depois, a página de sucesso mostra Your OpenPay card payment was not completed. Please contact us about this order.

Se o cartão for recusado ou o 3D Secure falhar, o pedido permanece sem status, uma nota é adicionada e o cliente volta à finalização de compra com The card payment was not completed (declined or 3-D Secure failed). Please try again or use another card. O carrinho é mantido. No OpenCart 4, esta mensagem é mostrada acima da página de finalização de compra. O OpenCart 3 cria um novo pedido sempre que a etapa Confirm Order é exibida; o OpenCart 4 mantém um único pedido para a finalização de compra e o atualiza, de modo que o cliente paga novamente o mesmo pedido com uma nova tentativa. Antes de uma nova tentativa, a extensão verifica a cobrança anterior do carrinho: se ela de fato foi paga, aquele pedido recebe o status sem uma segunda cobrança; se ainda estiver em andamento, o cliente vê A previous payment for this order is still being processed. Please do not pay again — the order will be updated automatically.; se o estado dela não puder ser verificado, nenhuma nova cobrança é feita e o cliente vê We could not confirm the status of your previous payment attempt. Please try again in a few minutes. Um carrinho já pago nunca é cobrado novamente.

No OpenCart 4, a finalização de compra mantém o pedido até que a página de sucesso seja exibida. Se esse pedido tiver sido fechado nesse meio-tempo (por exemplo, a cobrança falhou depois de ficar aguardando pagamento, ou você o cancelou ou reembolsou), o cliente volta à finalização de compra com This order can no longer be paid. Please reload the checkout page and confirm the order again., e o próximo Confirm Order paga um novo pedido. Se esse pedido já tiver um status e o carrinho agora tiver outros produtos ou quantidades, o cliente também volta à finalização de compra, e o novo carrinho recebe um novo pedido.

Cartões recusados recebem uma mensagem clara, por exemplo The card has insufficient funds. Please use another card., The card has expired. Please use another card. ou The security code (CVV) is not valid. Please check it and try again. Os erros técnicos da OpenPay nunca são mostrados aos clientes; eles vão para o log e para as notas do pedido.

O método de pagamento fica oculto na finalização de compra quando está desativado, quando as chaves do modo atual estão incompletas ou quando o cliente paga em uma moeda que o país da conta não aceita.

A extensão aceita somente pagamentos com cartão, cobrados imediatamente. Não há cartões salvos, assinaturas, parcelamento sem juros (MSI) ou parcelado, pagamento com pontos do cartão, dinheiro, SPEI, PSE ou CoDi, e não há autorização e captura separadas.

Pedidos e reembolsos

Status do pedido

No status (missing order): o cliente está na página do 3D Secure, não concluiu o pagamento ou o cartão foi recusado. Em Sales > Orders, esses pedidos aparecem somente com o filtro Order Status definido como Missing Orders.

No OpenCart 4, um pedido não pago da finalização de compra pode receber o status Voided, que o OpenCart 4 define quando o cliente volta à etapa Confirm Order. A extensão trata esse pedido como um pedido sem status, e um pagamento posterior ainda o confirma.

Order Status After Payment (default Processing): o pagamento foi confirmado. Uma nota mostra o ID da cobrança na OpenPay e o modo (produção ou sandbox).

Awaiting OpenPay Payment (default Pending): a OpenPay informa que a cobrança está em andamento (ainda não capturada). O pedido passa para Order Status After Payment quando a cobrança é concluída, ou para Payment Error Status se ela falhar.

OpenPay Payment On Hold (default Pending): a OpenPay informa uma cobrança concluída com valor ou moeda diferentes do pedido (o pedido não é marcado como pago e a nota mostra a diferença), ou um pagamento chegou para um pedido que já havia sido cancelado ou reembolsado. Verifique o pedido e atenda-o ou reembolse o pagamento.

Payment Error Status (default Failed): uma cobrança em andamento falhou, foi cancelada ou expirou.

Refunded Status (default Refunded): a cobrança foi totalmente reembolsada pela extensão.

Se chegar uma segunda cobrança concluída para um pedido ou carrinho que já está pago, o pedido não é alterado. Uma nota que começa com OpenPay WARNING no pedido pago pede que você reembolse a duplicata no painel da OpenPay.

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

Aba VibeFox OpenPay Gateway

Em Sales > Orders, abra um pedido pago com a OpenPay. Na parte inferior da página do pedido, ao lado de History e Additional, a aba VibeFox OpenPay Gateway mostra o ID da cobrança, o status da cobrança, o ambiente e o país da conta, com o rótulo Sandbox nos pagamentos de sandbox, os valores Charged / order, o valor reembolsado, o formulário de reembolso, o histórico de reembolsos e as OpenPay notes do pedido. A aba é exibida aos usuários que têm acesso à extensão.

Reembolsos

Para contas do México e do Peru: na aba, informe o Amount (o valor ainda não reembolsado é preenchido automaticamente), opcionalmente um Reason (optional), e clique em Refund via OpenPay. Confirme a pergunta Refund this amount through OpenPay? This cannot be undone. São aceitos reembolsos totais e parciais, até o valor cobrado pela OpenPay. Você precisa do direito de modificar a extensão (definido em System > Users > User Groups). O reembolso é enviado com as chaves do modo e do país da conta em que a cobrança foi feita, então as chaves desse modo precisam estar configuradas. Se a OpenPay não aceitar o reembolso, a aba mostra o erro, por exemplo OpenPay refund failed: ..., e nenhum reembolso é registrado. Um reembolso bem-sucedido é adicionado ao histórico de reembolsos e às notas, com o ID do reembolso da OpenPay. Um reembolso total define o pedido como Refunded Status sem notificar o cliente e sem devolver os produtos ao estoque, como em uma alteração manual de status. Um reembolso parcial não altera o status. Os reembolsos ficam disponíveis depois que a OpenPay confirma o pagamento; um pedido retido por divergência de valor não é reembolsado pela extensão.

A OpenPay Colômbia não oferece suporte a reembolso de cartões pela API, assim como nas integrações oficiais da OpenPay. Para cobranças colombianas, a aba não mostra formulário de reembolso e explica o motivo; reembolse a cobrança pelo painel da OpenPay.

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

Reembolsos e contestações feitos no painel da OpenPay chegam pelo webhook e são adicionados às notas uma única vez. O status do pedido não muda automaticamente. Atualize-o manualmente, se necessário.

Chave de licença

A extensão funciona com uma chave de licença do VibeFox obtida em vibefox.net. O bloco de licença License — VibeFox OpenPay Gateway é o primeiro bloco de Extensions > Extensions > Payments > VibeFox OpenPay 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-openpay e o link Manage licenses and domains in your account, que abre a sua conta do 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 de alterar o endereço da loja, ou depois de 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 da configuração do OpenCart. Remover a chave da loja não libera a vaga de domínio. Libere-a na sua conta do vibefox.net.

Sem uma chave ativa, a OpenPay não é mostrada aos clientes na finalização de compra. 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 painel administrativo 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, essa prévia não está disponível: a loja não vê que você fez login no painel administrativo, então sem uma chave ativa o método de pagamento fica oculto para todos. Depois de abrir a página Edit uma vez, aparece um lembrete no Dashboard do painel administrativo. Feche-o com × para ocultá-lo por 7 dias. Os pedidos existentes não são afetados: os 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 de novo automaticamente quando você abre o Dashboard ou a página Edit do painel administrativo: uma vez por dia nos primeiros 14 dias após a chave ser informada e, depois, uma vez por semana. Não é preciso nenhum cron job. Ao desinstalar a extensão, a chave de licença e o status da licença são sempre removidos.

Solução de problemas

A OpenPay não aparece na finalização de compra: verifique se a licença está ativa, se Enable / Disable está ligado e se o modo atual tem as três chaves: as chaves de sandbox no modo sandbox e as chaves de produção no modo de produção. Verifique se o cliente está pagando em uma moeda aceita pelo Account country (México: MXN, USD; Colômbia: COP, USD; Peru: PEN, USD). A página de configurações exibe um aviso em cada um desses casos. Verifique também 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 aprovado, mas o pedido continua sem status: o cliente não voltou da página do 3D Secure e o webhook não está funcionando. Verifique se a URL do webhook foi adicionada no painel da OpenPay do modo que você usa, exatamente como as configurações a mostram, com os eventos listados acima. Verifique se as chaves do modo em que o pagamento foi feito estão preenchidas: sem elas, o webhook responde not configured e a OpenPay tenta novamente mais tarde. O pedido também recebe seu status quando o cliente volta à loja ou quando tenta pagar novamente o mesmo carrinho.

O webhook responde ignored (unknown order): a cobrança não foi criada por esta loja, por exemplo uma cobrança de outra loja na mesma conta da OpenPay. Nada é alterado.

O webhook responde verification failed: não foi possível acessar a API da OpenPay para ler a cobrança. A OpenPay tenta o webhook novamente.

O webhook responde busy: o carrinho estava sendo atualizado por outra requisição ao mesmo tempo, ou não foi possível definir o status do pedido. A OpenPay tenta o webhook novamente. Ative Debug log para ver o motivo.

A URL do webhook mostra invalid body no navegador: isso é normal. A URL aceita apenas notificações da OpenPay.

O cliente vê The secure card form could not be loaded: o openpay.js ou a biblioteca antifraude da OpenPay não foi carregado no navegador, ou não foi possível criar o ID de sessão do dispositivo. Peça ao cliente que recarregue a página e tente novamente.

O cliente vê The payment could not be processed right now: a OpenPay recusou a requisição ou não respondeu. O motivo está no log e nas notas do pedido. Um Merchant ID ou uma chave privada incorretos são uma causa comum. Se a OpenPay não respondeu, verifique a cobrança no painel da OpenPay antes que o cliente pague de novo.

O cliente vê This test card cannot be used for real payments: um cartão de teste do sandbox foi usado enquanto o modo sandbox está desativado.

O cliente vê Billing email is required for OpenPay: o pedido não tem um endereço de e-mail válido.

O pedido está no status OpenPay Payment On Hold após o pagamento: leia as OpenPay notes na aba (veja Status do pedido) e, em seguida, atenda o pedido ou reembolse o pagamento.

O reembolso falha com uma mensagem sobre o modo: o pedido foi pago no modo sandbox ou no modo de produção, e as chaves desse modo não estão definidas. Informe-as e tente novamente.

O reembolso falha com The order is being updated right now: um webhook ou outra requisição estava atualizando o pedido ao mesmo tempo. Tente novamente em instantes.

Desinstalação

Vá em Extensions > Extensions, escolha o tipo Payments e clique em Uninstall (o botão vermelho −) ao lado de VibeFox OpenPay 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 valores padrão em uma reinstalação. O evento do OpenCart da extensão também é removido (no OpenCart 4, os seus eventos e a sua ação de inicialização, que libera o webhook e o retorno do 3D Secure no modo de manutenção). Se Delete data on uninstall estiver ativada, as demais configurações do gateway (título, descrição, país da conta, modo sandbox, chaves, registro de logs), o código de verificação do webhook armazenado e o log são removidos. Se estiver desativada, eles são mantidos para uma reinstalação posterior. Os registros de cobranças e reembolsos da OpenPay são sempre mantidos, para que pedidos pagos anteriormente 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, vá em Extensions > Installer após a desinstalação e clique em Uninstall (o botão laranja −) ao lado de VibeFox OpenPay Gateway na lista de extensões instaladas, depois em Delete (o botão vermelho com a lixeira) para remover o pacote enviado.

A OpenPay é uma marca registrada do seu respectivo titular. Esta extensão não é afiliada nem endossada pela OpenPay.