DocsPlugin EDPay para WooCommerce (WordPress)
Plugin Oficial E-Commerce

Plugin EDPay para WooCommerce (WordPress)

Integração nativa multi-gateway para lojas WooCommerce no WordPress. Permite receber pagamentos por Carteiras Móveis (e-Mola e M-Pesa), Cartões de Débito/Crédito (Visa / Mastercard), Apple Pay, Google Pay e Referência Bancária.

Repositório Oficial do Plugin

Código-fonte aberto, compatível com WordPress 6.0+ e WooCommerce 7.0+ (PHP 7.4 a 8.3).

github.com/edutecka/edpay-woocommerce-plugin

Especificações da Integração

Moeda & Tarifa

Metical (MZN) · tarifa plana de 6%

Liquidação bancária em 2 a 7 dias úteis.

Modos de Operação

Sandbox (Teste) & Live (Produção)

Alternância instantânea por credenciais.

Canal de Confirmação

Webhooks Assinados HMAC-SHA256

Atualização assíncrona automática de encomendas.

1. Instalação do Plugin

O plugin pode ser descarregado a partir do repositório GitHub ou instalado via WP-CLI directamente no servidor:

Terminal — Instalação via WP-CLI
# Instalação via WP-CLI no directório do WordPress cd /var/www/html/wp-content/plugins git clone https://github.com/edutecka/edpay-woocommerce-plugin.git edpay-woocommerce wp plugin activate edpay-woocommerce

2. Configuração no Painel do WooCommerce

No painel de administração do WordPress, navegue para WooCommerce > Definições > Pagamentos > EDPay Multi-Gateway e preencha os seguintes parâmetros técnicos:

CampoValor ExigidoDescrição Técnica
Modo de OperaçãoSandbox ou ProduçãoDetermina se os pedidos utilizam pk_test_... ou pk_live_....
Public Keypk_live_... / pk_test_...Chave pública transmitida no cabeçalho X-EDPay-Public-Key.
Private Keysk_live_... / sk_test_...Chave secreta transmitida no cabeçalho X-EDPay-Private-Key (armazenada de forma segura na tabela wp_options).
Webhook SecretSegredo HMACChave secreta para validação criptográfica do cabeçalho X-EDPay-Signature.
Canal Padrão e-MolaTexto customizadoMensagem personalizada exibida no prompt USSD do cliente e-Mola (máx. 100 caracteres).

3. Processamento de Webhooks e Confirmação de Encomendas

O endpoint padrão do webhook é registado automaticamente no WooCommerce através da API de acções:https://seusite.co.mz/?wc-api=edpay_webhook.O snippet abaixo ilustra a validação técnica de assinatura e a transição de estado da encomenda:

PHP — Validação do Webhook e Actualização do Pedido
<?php /** * Verificação de Assinatura Webhook EDPay no WooCommerce * Rota padrão: https://seusite.co.mz/?wc-api=edpay_webhook */ $payload = file_get_contents('php://input'); $signatureHeader = $_SERVER['HTTP_X_EDPAY_SIGNATURE'] ?? ''; $webhookSecret = get_option('woocommerce_edpay_webhook_secret'); // sk_live_... ou segredo de webhook $expectedSignature = hash_hmac('sha256', $payload, $webhookSecret); if (!hash_equals($expectedSignature, $signatureHeader)) { http_response_code(401); echo json_encode(['error' => 'invalid_signature']); exit; } $event = json_decode($payload, true); if ($event['event'] === 'payment.succeeded') { $orderId = (int) $event['data']['reference']; $order = wc_get_order($orderId); if ($order && !$order->is_paid()) { $order->payment_complete($event['data']['id']); $order->add_order_note(sprintf( 'Pagamento confirmado via EDPay (%s). ID da transacção: %s. Tarifa plana da plataforma: 6%% em MZN.', esc_html($event['data']['method']), esc_html($event['data']['id']) )); } } http_response_code(200); echo json_encode(['received' => true]);

Payload Exemplo Recebido pelo Webhook (200 OK)

Webhook Event — payment.succeeded
{ "id": "evt_wc_019313264c8f74a0", "event": "payment.succeeded", "created_at": "2026-11-08T12:00:00Z", "data": { "id": "pay_019313264c8f74a0a4c519d5c805eb5a", "reference": "10492", "amount": 2500, "currency": "MZN", "fee": 150, "net_amount": 2350, "status": "succeeded", "method": "emola", "customer_phone": "+25884xxxxxxx" } }