SMPP ou API HTTP de SMS: o que é cada uma e de qual precisa a sua aplicação

WhatsApp e APIs·· 5 visualizações· 4 min de leitura

A resposta curta (para programadores): há duas maneiras habituais de uma aplicação entregar SMS a um fornecedor. Com uma API HTTP, o seu código faz um pedido web por envio, com uma chave de API, e recebe de volta um identificador da mensagem; o estado chega depois por callback (um webhook para um endereço seu) ou perguntando. Com o SMPP (Short Message Peer-to-Peer), o seu programa abre uma ligação TCP que fica aberta, autentica-se uma vez (o bind) e envia e recebe pacotes binários por essa mesma ligação: é o protocolo que os centros de SMS (SMSC) e os agregadores falam entre si. Para a maioria dos sites, a API HTTP chega. O SMPP compensa quando o fornecedor o oferece e a aplicação envia sem parar, precisa de receber respostas pelo mesmo canal, ou quer poder trocar de fornecedor sem reescrever a integração.

As diferenças que pesam

Aspecto API HTTP SMPP
Como liga Um pedido HTTPS por envio; nada fica aberto entre envios. Uma ligação TCP que fica aberta durante horas; autentica-se uma vez (bind).
Onde pode correr Em qualquer sítio que faça pedidos HTTPS para fora: hospedagem partilhada, VPS, funções na nuvem. Num programa que está sempre a correr: um VPS ou servidor, como serviço.
Formato JSON ou campos de formulário, diferentes em cada fornecedor. Pacotes (PDU) normalizados: submit_sm, deliver_sm e outros. A versão 3.4 é a mais espalhada.
Relatórios de entrega Um callback para um endereço seu, ou um endereço do fornecedor que se consulta. Um deliver_sm na mesma ligação, com o recibo lá dentro.
Respostas dos destinatários Um webhook para o seu endereço, se o fornecedor o suportar. Um deliver_sm numa ligação de recepção (receiver ou transceiver).
Trocar de fornecedor Reescrever a integração. Sobretudo mudar anfitrião, porta, credenciais e alguns parâmetros.
Dificuldade Baixa: o cURL e poucas linhas. Maior: estado da ligação, janelas, religações, codificações.

Como escolher e por onde começar

1 Pergunte primeiro ao fornecedor o que oferece. Muitos só têm API HTTP; outros têm as duas. Uma conta SMPP costuma exigir que o fornecedor autorize o IP do seu servidor e, às vezes, um acordo à parte.
2 Se envia a partir de um site (códigos de registo, avisos de encomenda, lembretes), escolha a API HTTP: do PHP é um pedido cURL, como em chamar uma API web com o cURL.
3 Escolha o SMPP se envia continuamente e o fornecedor o recomenda, se quer receber respostas e recibos sem expor um endereço público, ou se quer alternar entre vários fornecedores que falam SMPP.
4 Para o SMPP, prepare um VPS com o cliente a correr como serviço que reinicia sozinho, e trate das religações: binds SMPP e enquire_link. Ajuda a escolher: que plano para uma aplicação ou API.
5 Seja qual for o caminho, guarde as credenciais fora do código (variáveis de ambiente e segredos) e grave o identificador que o fornecedor devolve ao lado do seu registo, para poder ligar os relatórios de entrega: relatórios de entrega (DLR).
6 Teste primeiro com o seu número, com e sem acentos no texto, antes de enviar a clientes: GSM-7 ou Unicode.
Nunca chame o fornecedor de SMS a partir do navegador (JavaScript). A chave de API ficaria à vista de qualquer visitante, e alguém podia enviar SMS pagos por si. O envio parte sempre do seu servidor.
Um gateway de código aberto pode ficar no meio. Programas como o Kannel ou o Jasmin mantêm a ligação SMPP ao fornecedor e dão à sua aplicação uma interface HTTP simples. Serve quando quer SMPP sem escrever o tratamento do protocolo, mas é mais um serviço para manter no VPS.

Precisa de ajuda a preparar o VPS onde vai correr a ligação ao fornecedor de SMS? A conta de SMS é com o fornecedor; o servidor, vemos consigo.

Abrir pedido de suporte

VEJA TAMBÉM

Binds SMPP e enquire_link: manter viva a ligação de SMS num VPS

Relatórios de entrega de SMS (DLR): como a aplicação sabe se a mensagem chegou

Chamar uma API web a partir do PHP com o cURL e ler a resposta em JSON

Que plano para uma aplicação web ou uma API: partilhado, VPS ou Cloud

WhatsApp, e-mail ou SMS: vantagens, desvantagens, riscos e para quem serve cada um

Webhook ou consulta periódica: como um sistema fica a saber que algo mudou noutro

PRODUTO RECOMENDADO

Alojamento de sites com cPanel

Domínio e SSL incluídos, cópias diárias e o painel que já conhece. desde 5.940,00 Kz/mês (plano de 3 anos, com cupão)

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