Avisos por SMS a partir do seu WHMCS: um gancho que chama a nossa API de SMS nas facturas e pagamentos

WhatsApp e APIs·· 11 visualizações· 3 min de leitura

A resposta curta: se tem o seu próprio WHMCS (para revender hospedagem ou serviços), um gancho (hook) de poucas linhas pode chamar a nossa API de SMS quando uma factura é criada, quando o WHMCS envia um lembrete ou quando um pagamento entra. O SMS sai do saldo de créditos da sua conta, com o NETMSG ou com o seu Sender ID.

Os momentos que interessam

Gancho do WHMCS Quando corre Exemplo de SMS
InvoiceCreated Quando uma factura é criada A factura [N.º] de [VALOR] já está disponível. Vence a [DATA].
InvoicePaymentReminder Quando o WHMCS envia um lembrete de pagamento A factura [N.º] vence a [DATA]. Pode pagar no nosso portal.
InvoicePaid Quando a factura fica paga Recebemos o pagamento da factura [N.º]. Obrigado.

Quando o WHMCS cria facturas e envia lembretes depende da automação dele: veja a automação do WHMCS.

Um gancho mínimo

Grave um ficheiro na pasta includes/hooks/ do seu WHMCS. Este exemplo avisa quando a factura fica paga:

<?php
// includes/hooks/sms_avisos.php
add_hook('InvoicePaid', 1, function ($vars) {
$fac = localAPI('GetInvoice', ['invoiceid' => $vars['invoiceid']]);
$cli = localAPI('GetClientsDetails', ['clientid' => $fac['userid']]);
$num = preg_replace('/[^0-9+]/', '', $cli['phonenumber']);
if ($num === '') { return; }
$chave = trim(file_get_contents('/home/UTILIZADOR/.sms-api-chave'));
$ch = curl_init('https://api.interweb.co.mz/v1/sms/messages');
curl_setopt_array($ch, [
CURLOPT_RETURNTRANSFER => true,
CURLOPT_POST => true,
CURLOPT_TIMEOUT => 10,
CURLOPT_HTTPHEADER => [
'Authorization: Bearer ' . $chave,
'Content-Type: application/json',
'Idempotency-Key: factura-paga-' . $vars['invoiceid'],
],
CURLOPT_POSTFIELDS => json_encode([
'number' => $num,
'text' => 'Recebemos o pagamento da factura ' . $vars['invoiceid'] . '. Obrigado.',
]),
]);
curl_exec($ch);
curl_close($ch);
});

1 A chave fica num ficheiro fora da pasta pública, nunca no código. Crie-a na página API do Meu Interweb só com sms:write e, se o WHMCS está sempre no mesmo servidor, limitada ao IP dele.
2 O número vem do telefone do cliente no WHMCS. O exemplo tira pontos, espaços e traços; a nossa API aceita os números com ou sem o indicativo, porque o sistema reconhece o país pelo primeiro algarismo: 841234567 vai para Moçambique e 923456789 para Angola. Assim, +258 84 123 4567 e 258841234567 são o mesmo número que 841234567.
3 A Idempotency-Key leva o número da factura: se o gancho correr duas vezes para a mesma factura, o cliente recebe um só SMS.
4 O tempo máximo de 10 segundos evita que um problema de rede deixe o WHMCS pendurado.
Teste primeiro com uma chave sandbox_. O pedido é conferido mas nada sai nem é cobrado. Só depois troque pela chave prod_. E lembre-se: o cliente não pode responder ao SMS, por isso escreva como o pode contactar.
Para os outros ganchos, o padrão é o mesmo: troque o nome do gancho e o texto. Se o cliente pagar antes do lembrete que agendou, pode cancelá-lo: cancelar um SMS agendado.

Quer que o seu WHMCS avise os clientes por SMS? Veja a página da API e crie a chave.

Ver a página da API

VEJA TAMBÉM

O que é o WHMCS, e quando precisa dele

Automação do WHMCS: quando saem as facturas, lembretes, suspensão e terminação

SMS de lembrete de pagamento: quando enviar, o que escrever e exemplos prontos

Enviar SMS pela API: chave, permissões, Sandbox e o primeiro pedido

Cancelar um SMS agendado pela API, por exemplo quando o cliente já pagou

Uma chave de API ou um token ficou exposto: o que fazer, pela ordem certa

PRODUTO RECOMENDADO

Revenda de hospedagem com WHM

Crie, aloje e facture os seus próprios planos, com a sua marca. desde 1.793,34 MT/mês (plano de 3 anos, com cupão)

Ver planos
Esta resposta foi útil? A sua resposta ajuda-nos a melhorar este artigo.