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.mozout.com/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 My MozOut 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
|
PRODUTO RECOMENDADO Revenda de hospedagem com WHM Crie, aloje e facture os seus próprios planos, com a sua marca. desde $35.57/mês (plano de 3 anos, com cupão) Ver planos |