Módulo de Pagamentos EDPay para WHMCS
Automatize a faturação e cobrança recorrente de serviços de alojamento, domínios e telecomunicações no WHMCS através da plataforma EDPay.
WHMCS Gateway Module
Disponível no GitHub (v1.0.0)Compatível com WHMCS 7.x e 8.x, liquidação automática de facturas e verificação de assinatura HMAC.
Vantagens para Provedores WHMCS
Receba pagamentos com carteiras móveis (M-Pesa, e-Mola), cartões e referências bancárias no mesmo fluxo.
O webhook assinado em tempo real ativa servidores e contas de alojamento no instante da confirmação.
Autenticação com cabeçalho X-EDPay-Signature contra requisições falsificadas e ataques man-in-the-middle.
Instalação e Configuração
Clone ou copie os ficheiros do repositório para o directório de gateways do seu servidor WHMCS:
cp modules/gateways/edpay.php /var/www/whmcs/modules/gateways/
cp modules/gateways/callback/edpay.php /var/www/whmcs/modules/gateways/callback/// modules/gateways/edpay.php
function edpay_config(): array
{
return [
'FriendlyName' => [
'Type' => 'System',
'Value' => 'EDPay Multi-Gateway (M-Pesa, e-Mola, Cartões)',
],
'publicKey' => [
'FriendlyName' => 'Chave Pública',
'Type' => 'text',
'Size' => '64',
'Description' => 'pk_live_... ou pk_test_...',
],
'privateKey' => [
'FriendlyName' => 'Chave Privada',
'Type' => 'password',
'Size' => '64',
'Description' => 'sk_live_... ou sk_test_...',
],
'webhookSecret' => [
'FriendlyName' => 'Segredo do Webhook',
'Type' => 'password',
'Size' => '64',
'Description' => 'whsec_... para verificação HMAC-SHA256.',
],
'testMode' => [
'FriendlyName' => 'Modo Sandbox',
'Type' => 'yesno',
'Description' => 'Marque para activar o ambiente de testes Sandbox.',
],
];
}// modules/gateways/callback/edpay.php
$rawPayload = file_get_contents('php://input');
$signatureHeader = $_SERVER['HTTP_X_EDPAY_SIGNATURE'] ?? '';
// Validação criptográfica HMAC-SHA256
$expectedSignature = hash_hmac('sha256', $rawPayload, $webhookSecret);
if (!hash_equals($expectedSignature, $signatureHeader)) {
http_response_code(401);
die(json_encode(['error' => 'Invalid signature']));
}
// Reconciliação imediata da factura
$invoiceId = checkCbInvoiceID($invoiceId, $gatewayParams['name']);
checkCbTransID($paymentId);
addInvoicePayment($invoiceId, $paymentId, $amount, $fee, 'edpay');Tarifa plana de 6% em MZN. Saques para contas bancárias em Moçambique são liquidados no prazo de 2 a 7 dias úteis.